* alias.c (alias_set_subset_of, alias_sets_must_conflict_p)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-12-03  Jan Hubicka  <hubicka@ucw.cz>
2
3         * alias.c (alias_set_subset_of, alias_sets_must_conflict_p)
4         Short circuit for !flag_strict_aliasing
5         (get_alias_set): Remove flag_strict_aliasing check.
6         (new_alias_set): Likewise.
7
8 2015-12-03  Evandro Menezes  <e.menezes@samsung.com>
9
10         * config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model.
11         * config/aarch64/aarch64.c (exynosm1_addrcost_table): New variable.
12         (exynosm1_regmove_cost): Likewise.
13         (exynosm1_vector_cost): Likewise.
14         (exynosm1_tunings): Likewise.
15         * config/arm/aarch-cost-tables.h (exynosm1_extra_costs): Likewise.
16         * config/arm/arm.c (arm_exynos_m1_tune): Likewise.
17
18 2015-12-03  Alan Lawrence  <alan.lawrence@arm.com>
19             Richard Biener  <richard.guenther@gmail.com>
20
21         * cfgexpand.c (pass_expand::execute): Replace call to
22         redirect_edge_var_map_destroy with redirect_edge_var_map_empty.
23         * tree-ssa.c (delete_tree_ssa): Likewise.
24         * function.c (set_cfun): Call redirect_edge_var_map_empty.
25         * passes.c (execute_one_ipa_transform_pass, execute_one_pass): Likewise.
26         * tree-ssa.h (redirect_edge_var_map_destroy): Remove.
27         (redirect_edge_var_map_empty): New.
28         * tree-ssa.c (redirect_edge_var_map_destroy): Remove.
29         (redirect_edge_var_map_empty): New.
30
31 2015-12-03  Jeff Law  <law@redhat.com>
32
33         PR tree-optimization/68599
34         * loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS
35         in call to loop_optimizer_init.
36         * loop-iv.c (get_simple_loop_desc): Only allow unsafe loop
37         optimization to drop the assumptions/infinite notations if
38         the loop has a single exit.
39
40 2015-12-03  Richard Sandiford  <richard.sandiford@arm.com>
41
42         * doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that
43         the pattern cannot FAIL.
44         (vec_store_lanes@var{m}@var{n}): Likewise.
45         (maskload@var{m}@var{n}): Likewise.
46         (maskstore@var{m}@var{n}): Likewise.  Fix a cut-&-paste error
47         in the name of the pattern.
48         (rsqrt@var{m}2): Document that mode m must be a scalar or vector
49         floating-point mode and that all operands have that mode.
50         (fmin@var{m}3, fmax@var{m}3): Likewise.  Document that the
51         pattern cannot FAIL.
52         (sqrt@var{m}2): Document that mode m must be a scalar or vector
53         floating-point mode, that all operands have that mode, and that
54         the patterns cannot FAIL.  Remove previous documentation referring
55         to @code{double} and @code{float}.
56         (fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2)
57         (sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3)
58         (copysign@var{m}3): Likewise.
59         (exp@var{m}2): Likewise.  Explicitly state the base.
60         (floor@var{m}2): As for sqrt@var{m}2, but also specify the operands.
61         (btrunc@var{m}2, rint@var{m}2): Likewise.
62         (round@var{m}2): Likewise.  Fix incorrect description of rounding
63         effect.
64         (ceil@var{m}2): As for round@var{m}2.
65         (nearbyint@var{m}2): As for floor@var{m}2, but also mention that
66         the instruction must not raise an inexact condition.
67         (scalb@var{m}3): Document previously-undocumented pattern
68         (ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2)
69         (atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2)
70         (log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2)
71         (significand@var{m}2): Likewise.
72         (ffs@var{m}2): Fix the description of the modes, so that operand 1 has
73         mode m and operand 0 is defined more freely.  Document that @var{m}
74         can be a scalar or vector integer mode and that the pattern is not
75         allowed to FAIL.
76         (clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise.
77         (clrsb@var{m}2): Likewise, except that the description of the
78         mode was missing in this case.
79
80 2015-12-03  Richard Sandiford  <richard.sandiford@arm.com>
81
82         * internal-fn.def (RSQRT): New function.
83         * optabs.def (rsqrt_optab): New optab.
84         * doc/md.texi (rsqrtM2): Document.
85         * target.def (builtin_reciprocal): Replace gcall argument with
86         a function decl.  Restrict hook to machine functions.
87         * doc/tm.texi: Regenerate.
88         * targhooks.h (default_builtin_reciprocal): Update prototype.
89         * targhooks.c (default_builtin_reciprocal): Likewise.
90         * tree-ssa-math-opts.c: Include internal-fn.h.
91         (internal_fn_reciprocal): New function.
92         (pass_cse_reciprocals::execute): Call it, and build a call to an
93         internal function on success.  Only call targetm.builtin_reciprocal
94         for machine functions.
95         * config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove
96         second argument.
97         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt):
98         Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2.
99         (aarch64_builtin_rsqrt): Remove md_fn argument and only handle
100         machine functions.
101         * config/aarch64/aarch64.c (use_rsqrt_p): New function.
102         (aarch64_builtin_reciprocal): Replace gcall argument with a
103         function decl.  Use use_rsqrt_p.  Remove optimize_size check.
104         Only handle machine functions.  Update call to aarch64_builtin_rsqrt.
105         (aarch64_optab_supported_p): New function.
106         (TARGET_OPTAB_SUPPORTED_P): Define.
107         * config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to...
108         (rsqrt<mode>2): ...this.
109         * config/i386/i386.c (use_rsqrt_p): New function.
110         (ix86_builtin_reciprocal): Replace gcall argument with a
111         function decl.  Use use_rsqrt_p.  Remove optimize_insn_for_size_p
112         check.  Only handle machine functions.
113         (ix86_optab_supported_p): Handle rsqrt_optab.
114         * config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define.
115         (rs6000_builtin_reciprocal): Replace gcall argument with a
116         function decl.  Remove optimize_insn_for_size_p check.
117         Only handle machine functions.
118         (rs6000_optab_supported_p): New function.
119
120 2015-12-03  Bernd Schmidt  <bschmidt@redhat.com>
121
122         PR target/68471
123         PR target/68472
124         * config/i386/i386.c (ix86_mitigate_rop): Don't call
125         compute_bb_for_insn again.  Call df_insn_rescan_all.
126         * config/i386/i386.md (set_got_rex64): Override modrm_class.
127
128         * regrename.c (build_def_use): Ignore stack regs if regstack_completed.
129
130 2015-12-03  Nathan Sidwell  <nathan@acm.org>
131
132         * config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete.
133         * config/nvptx/nvptx.c (enum nvptx_data_area): New.
134         (SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines.
135         (nvptx_option_override): Set data ares for worker vars.
136         (nvptx_addr_space_from_sym): Delete.
137         (nvptx_encode_section_info): New.
138         (section_for_sym, section_for_decl): New.
139         (nvptx_maybe_convert_symbolic_operand): Get data area from symbol
140         flags,
141         (nvptx_section_from_addr_space): Delete.
142         (nvptx_section_for_decl): Delete.
143         (nvptx_output_aligned, nvptx_declare_object_name,
144         nvptx_assemble_undefined_decl): Use section_for_decl, remove
145         unnecessary checks.
146         (nvptx_print_operand): Add 'D', adjust 'A'.
147         (nvptx_expand_worker_addr): Adjust unspec generation.
148         (TARGET_ENCODE_SECTION_INFO): Override.
149         * config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED,
150         ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete.
151         * config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL,
152         UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST,
153         UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM,
154         UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete.
155         (UNSPEC_TO_GENERIC): New.
156         (nvptx_register_or_symbolic_operand): Delete.
157         (cvt_code, cvt_name, cvt_str): Delete.
158         (convaddr_<cvt_name><mode> [P]): Delete.
159         (convaddr_<mode> [P]): New.
160
161 2015-12-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
162
163         PR rtl-optimization/68624
164         * ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both
165         blocks if they exist and simplify the logic choosing the order to emit
166         them in.
167
168 2015-12-03  Richard Biener  <rguenther@suse.de>
169
170         PR tree-optimization/66051
171         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
172         on load group size.  Do not pass in vectorization_factor.
173         (vect_transform_slp_perm_load): Do not require any permute support.
174         (vect_build_slp_tree): Do not pass in vectorization factor.
175         (vect_analyze_slp_instance): Do not compute vectorization
176         factor estimate.  Use vector size instead of vectorization factor
177         estimate to split store groups for BB vectorization.
178
179 2015-12-03  Ilya Enkovich  <enkovich.gnu@gmail.com>
180
181         * cfgexpand.c (expand_gimple_stmt_1): Return statement with
182         DECL as return value is allowed to have NULL bounds.
183
184 2015-12-03  Tom de Vries  <tom@codesourcery.com>
185
186         * graphite-isl-ast-to-gimple.c (binary_op_to_tree)
187         (gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with
188         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
189
190 2015-12-03  Richard Biener  <rguenther@suse.de>
191
192         PR tree-optimization/67800
193         PR tree-optimization/68333
194         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore
195         restriction to reduction contexts but allow SLP reductions as well.
196         (vect_recog_sad_pattern): Likewise.
197         (vect_recog_widen_sum_pattern): Likewise.
198
199 2015-12-03  Richard Biener  <rguenther@suse.de>
200
201         PR tree-optimization/68639
202         * tree-vect-data-refs.c (dr_group_sort_cmp): Split groups
203         belonging to different loops.
204         (vect_analyze_data_ref_accesses): Likewise.
205
206 2015-12-02  Kirill Yukhin  <kirill.yukhin@intel.com>
207
208         * config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
209         Remove "prefix_extra".
210         (define_insn "vec_extract_hi_<mode>_mask"): New.
211         (define_insn "vec_extract_hi_<mode>"): Remove masking.
212
213 2015-12-02  Jan Hubicka  <hubicka@ucw.cz>
214
215         * ipa-pure-const.c (ignore_edge_for_pure_const): New function.
216         (propagate_pure_const): Use it; fix comments and optimize loops.
217
218 2015-12-02  Jan Hubicka  <hubicka@ucw.cz>
219
220         * ipa-pure-const.c (ignore_edge): Rename to ...
221         (ignore_edge_for_nothrow) ... this one; also ignore eges to
222         interposable functions or ones that can not throw.
223         (propagate_nothrow): Fix handling of availability.
224
225 2015-12-02  Jan Hubicka  <hubicka@ucw.cz>
226
227         PR ipa/68184
228         * cgraphunit.c (cgraph_node::analyze): Set can_throw_external.
229
230 2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
231             Sebastian Pop  <s.pop@samsung.com>
232
233         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle isl_ast_op_zdiv_r.
234         (gcc_expression_from_isl_expr_op): Same.
235
236 2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
237             Sebastian Pop  <s.pop@samsung.com>
238
239         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check
240         that insertion point is still in the region.
241
242 2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
243             Sebastian Pop  <s.pop@samsung.com>
244
245         PR tree-optimization/68550
246         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump.
247         (copy_bb_and_scalar_dependences): Do not code generate loop peeled
248         statements.
249
250 2015-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
251
252         * configure.ac: Check assembler support for R_PPC64_ENTRY relocation.
253         * configure: Regenerate.
254         * config.in: Regenerate.
255         * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New
256         function.
257         (rs6000_output_function_prologue): Use it instead of checking
258         cfun->machine->r2_setup_needed.  Use internal labels instead of
259         GNU as local label extension.  Handle ELFv2 large code model.
260         (rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed.
261         (rs6000_elf_declare_function_name): Handle ELFv2 large code model.
262
263 2015-12-02  Jakub Jelinek  <jakub@redhat.com>
264
265         PR target/68647
266         * optabs.c (expand_doubleword_popcount, expand_doubleword_parity):
267         New functions.
268         (expand_unop): Use them.
269
270 2015-12-02  Marek Polacek  <polacek@redhat.com>
271
272         PR c++/68653
273         * tree.c (nonnull_arg_p): Allow OFFSET_TYPE.
274
275 2015-12-02  Nathan Sidwell  <nathan@acm.org>
276
277         * config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New.  Absorb
278         SHUFFLE defines.
279         (nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.
280
281 2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
282             Sebastian Pop  <s.pop@samsung.com>
283
284         * graphite-dependences.c (scop_get_reads): Add extra dumps.
285         (scop_get_must_writes): Same.
286         (scop_get_may_writes): Same.
287         (compute_deps): Same.
288         * graphite-sese-to-poly.c (bounds_are_valid): New.
289         (pdr_add_data_dimensions): Call bounds_are_valid.
290
291 2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
292             Sebastian Pop  <s.pop@samsung.com>
293
294         * common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
295         * graphite-poly.c (apply_poly_transforms): Same.
296         * graphite.c (gate_graphite_transforms): Same.
297         * toplev.c (process_options): Same.
298
299 2015-12-02  Eric Botcazou  <ebotcazou@adacore.com>
300
301         * config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
302         (mips_output_probe_stack_range): Rotate the loop and simplify.
303
304 2015-12-02  David Sherwood  <david.sherwood@arm.com>
305
306         * config/aarch64/aarch64.md: New pattern.
307         * config/aarch64/aarch64-simd.md: Likewise.
308         * config/aarch64/iterators.md: New unspecs, iterators.
309
310 2015-12-02  Pierre-Marie de Rodat  <derodat@adacore.com>
311
312         * dwarf2out.c (dwar2out_var_location): In addition to notes,
313         process indirect calls whose target is compile-time known.
314         Enhance pattern matching to get the SYMBOL_REF they embed.
315         (gen_subprogram_die): Handle such calls.
316         * final.c (final_scan_insn): For call instructions, invoke the
317         var_location debug hook only after the call has been emitted.
318
319 2015-12-02  Tom de Vries  <tom@codesourcery.com>
320
321         * gimplify.c (enum gimplify_omp_var_data): Add enum value
322         GOVD_MAP_FORCE.
323         (oacc_default_clause): Fix default for scalars in oacc kernels.
324         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE.
325
326 2015-12-02  Tom de Vries  <tom@codesourcery.com>
327
328         * omp-low.c (install_var_field, scan_sharing_clauses): Add and handle
329         parameter base_pointers_restrict.
330         (omp_target_base_pointers_restrict_p): New function.
331         (scan_omp_target): Call scan_sharing_clauses with base_pointers_restrict
332         arg.
333
334 2015-12-02  Nathan Sidwell  <nathan@acm.org>
335
336         * config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare.
337         (nvptx_underlying_object_mode): Delete.
338         * config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete.
339         (output_reg): New.
340         (nvptx_declare_function_name): Use output_reg.  Remove punning
341         buffer.
342         (nvptx_output_mov_insn): New.
343         (nvptx_print_operand): Separate SUBREG handling, remove 'f' case,
344         Use output_reg. Merge 't' and 'u' handling.
345         * config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete.
346         (struct machine_function): Remvoe punning_buffer_size.
347         (REGISTER_NAMES): Remove %punbuffer.
348         * config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART,
349         UNSPEC_CPLX_HIGHPART): Delete.
350         (*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use
351         nvptx_output_mov_insn.
352         (*mov<mode>_insn [SDFM): Reorder constraints to match integer
353         moc.  Use nvptx_output_mov_insn.
354         (highpartscsf2,  set_highpartscsf2, lowpartscsf2,
355         set_lowpartscsf2): Delete.
356         (mov<mode> [SDCM]): Delete.
357
358 2015-12-02  Richard Biener  <rguenther@suse.de>
359
360         * tree.h (tree_invariant_p): Declare.
361         * tree.c (tree_invariant_p): Export.
362         * genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never
363         create SAVE_EXPRs but reject patterns if we would need to.
364
365 2015-12-02  Tom de Vries  <tom@codesourcery.com>
366
367         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call)
368         (find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL.
369
370 >>>>>>> .r231221
371 2015-12-02  Segher Boessenkool  <segher@kernel.crashing.org>
372
373         * config/rs6000/rs6000.md (cstore_si_as_di): New expander.
374         (cstore<mode>4): Use it.
375
376 2015-12-02  Richard Biener  <rguenther@suse.de>
377
378         PR tree-optimization/68625
379         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call
380         cleanup_control_flow_bb.
381         (cleanup_tree_cfg_1): First perform cleanup_control_flow_bb
382         on all BBs, then cleanup_tree_cfg_bb and finally iterate
383         over the worklist doing both.
384
385 2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
386
387         PR tree-optimization/68432
388         * coretypes.h (optimization_type): New enum.
389         * doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
390         * doc/tm.texi: Regenerate.
391         * target.def (optab_supported_p): New hook.
392         * targhooks.h (default_optab_supported_p): Declare.
393         * targhooks.c (default_optab_supported_p): New function.
394         * predict.h (function_optimization_type): Declare.
395         (bb_optimization_type): Likewise.
396         * predict.c (function_optimization_type): New function.
397         (bb_optimization_type): Likewise.
398         * optabs-query.h (convert_optab_handler): Define an overload
399         that takes an optimization type.
400         (direct_optab_handler): Likewise.
401         * optabs-query.c (convert_optab_handler): Likewise.
402         (direct_optab_handler): Likewise.
403         * internal-fn.h (direct_internal_fn_supported_p): Take an
404         optimization_type argument.
405         * internal-fn.c (direct_optab_supported_p): Likewise.
406         (multi_vector_optab_supported_p): Likewise.
407         (direct_internal_fn_supported_p): Likewise.
408         * builtins.c (replacement_internal_fn): Update call to
409         direct_internal_fn_supported_p.
410         * gimple-match-head.c (build_call_internal): Likewise.
411         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
412         * tree-vect-stmts.c (vectorizable_internal_function): Likewise.
413         * tree.c (maybe_build_call_expr_loc): Likewise.
414         * config/i386/i386.c (ix86_optab_supported_p): New function.
415         (TARGET_OPTAB_SUPPORTED_P): Define.
416         * config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
417         (asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
418         (expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
419         (exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
420         (scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
421         (<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.
422
423 2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
424
425         * Makefile.in (GENSUPPORT_H): New macro.
426         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
427         (build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
428         (build/gencodes.o, build/genconditions.o, build/genconfig.o)
429         (build/genconstants.o, build/genextract.o, build/genflags.o)
430         (build/gentarget-def.o): Use it.
431         (build/genemit.o): Likewise.  Depend on internal-fn.def.
432         * genopinit.c: Move block comment to optabs.def.
433         (optab_tag, optab_def): Move to gensupport.h
434         (pattern): Likewise, renaming to optab_pattern.
435         (match_pattern): Move to gensupport.c
436         (gen_insn): Use find_optab.
437         (patterns, pattern_cmp): Replace pattern with optab_pattern.
438         (main): Likewise.  Use num_optabs.
439         * optabs.def: Add comment that was previously in genopinit.c.
440         * gensupport.h (optab_tag): Moved from genopinit.c
441         (optab_def): Likewise, expanding commentary.
442         (optab_pattern): Likewise, after renaming from pattern.
443         (optabs, num_optabs, find_optab): Declare.
444         * gensupport.c (optabs): Moved from genopinit.c.
445         (num_optabs): New variable.
446         (match_pattern): Moved from genopinit.c.
447         (find_optab): New function, extracted from genopinit.c:gen_insn.
448         * genemit.c (nofail_optabs): New variable.
449         (emit_c_code): New function.
450         (gen_expand): Check whether the instruction is an optab that isn't
451         allowed to fail.  Call emit_c_code.
452         (gen_split): Call emit_c_code here too.
453         (main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.
454
455 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
456
457         * config/s390/predicates.md (const_mask_operand): New predicate.
458         * config/s390/s390-builtins.def: Set a smaller bitmask for a few builtins.
459         * config/s390/vector.md: Change predicate from immediate_operand
460         to either const_int_operand or const_mask_operand.  Add special
461         insn conditions on patterns which have to exclude certain values.
462         * config/s390/vx-builtins.md: Likewise.
463
464 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
465
466         * config/s390/vector.md ("*vec_set<mode>"): Change shift count
467         mode from DI to SI.
468
469 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
470
471         * config/s390/s390-builtin-types.def: New builtin types added.
472         * config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
473         * config/s390/s390.c (s390_expand_builtin): Always truncate
474         constants to the mode in the pattern.
475         * config/s390/vecintrin.h: Let the vec_splat_* macros point to the
476         respective builtin __builtin_s390_vec_splat_*.
477
478 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
479
480         * config/s390/s390-builtin-types.def: Sort builtin types.
481
482 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
483
484         * config/s390/s390-c.c (s390_get_vstring_flags): Invert the
485         condition for the RT flag.
486
487 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
488
489         * config/s390/constraints.md ("jKK"): New constraint.
490         * config/s390/s390.c (tm-constrs.h): Include for
491         satisfies_constraint_*.
492         (s390_legitimate_constant_p): Allow jKK constants.  Use
493         satisfies_constraint_* also for the others.
494         (legitimate_reload_vector_constant_p): Likewise.
495         (print_operand): Allow h output modifier on vectors.
496         * config/s390/vector.md ("mov<mode>"): Add vrepi.
497
498 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
499
500         * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
501         latter I->K.
502
503 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
504
505         * config/s390/s390.md ("bswap<mode>2"): Add support for strv and
506         strvg.
507         ("bswaphi2"): New pattern.
508         New splitter for HI reg-reg bswap.
509
510 2015-11-27  Jiri Engelthaler  <engycz@gmail.com>
511
512         PR driver/68029
513         * opts-common.c (prune_options): Don't ignore -fdiagnostics-color 
514         if it is the first parameter.
515
516 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
517
518         PR tree-optimization/68577
519         * tree-vect-stmts.c (simple_integer_narrowing): New function.
520         (vectorizable_call): Restrict internal function handling
521         to NONE and NARROW cases, using simple_integer_narrowing
522         to test for the latter.  Add cost of narrowing operation
523         and insert it where necessary.
524
525 2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
526
527         * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
528         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
529         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
530
531 2015-12-01  Nathan Sidwell  <nathan@acm.org>
532
533         * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
534         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
535         ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
536         * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
537         (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
538         (init_output_initializer): Call write_var_marker.
539         (nvptx_output_aligned_decl): New.
540         (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
541
542 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
543
544         * c-common.c (parse_optimize_options): Do not silently ignore
545         -fstrict-aliasing changes.
546
547 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
548
549         * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
550         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
551         stream TYPE_ALIAS_SET.
552         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
553         stream TYPE_ALIAS_SET.
554
555 2015-12-01  Nathan Sidwell  <nathan@acm.org>
556
557         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
558         consider mode.
559
560 2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
561
562         * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
563         indirection for large and small code models.
564         (adjust_vperm): Likewise.
565
566 2015-12-01  Julian Brown  <julian@codesourcery.com>
567             Cesar Philippidis  <cesar@codesourcery.com>
568             James Norris  <James_Norris@mentor.com>
569
570         * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
571         support.
572         * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
573         (is_gimple_omp_oacc): Add support for above.
574         * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
575         (omp_notice_variable): Diagnose undefined implicit uses of
576         use_device variables in offloaded regions.
577         (gimplify_scan_omp_clauses): Add host_data, use_device
578         support. Diagnose undefined mapping of use_device variables in
579         OpenACC clauses.
580         (gimplify_omp_workshare): Add host_data support.
581         (gimplify_expr): Likewise.
582         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
583         * omp-low.c (lookup_decl_in_outer_ctx)
584         (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
585         host_data regions.
586         (scan_sharing_clauses): Support use_device.
587         (check_omp_nesting_restrictions): Support host_data.
588         (expand_omp_target): Support host_data.
589         (lower_omp_target): Skip over outer host_data regions when looking
590         up decls. Support use_device.
591         (make_gimple_omp_edges): Support host_data.
592         * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
593         clause.
594
595 2015-12-01  Marek Polacek  <polacek@redhat.com>
596
597         PR middle-end/68582
598         * cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
599         for VAR_DECLs.
600
601 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
602
603         PR tree-optimization/68474
604         * tree-call-cdce.c (use_internal_fn): Protect call to
605         gen_shrink_wrap_conditions.
606
607 2015-12-01  Christian Bruel  <christian.bruel@st.com>
608
609         PR target/68617
610         * config/arm/arm.opt (unaligned_access): Save.
611         * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
612         * config/arm/arm.c (arm_option_override): Move unaligned_access setting
613         (arm_option_override_internal): ... here.
614         * config/arm/arm.h (TARGET_32BIT_P): New macro.
615
616 2015-12-01  Richard Biener  <rguenther@suse.de>
617
618         PR tree-optimization/68379
619         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
620         always base loads on the first used DR of a group.
621         * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
622         Compute alignment of the first scalar element unconditionally.
623
624 2015-12-01  Richard Biener  <rguenther@suse.de>
625
626         PR middle-end/68590
627         * genmatch.c (struct capture_info): Add match_use_count.
628         (capture_info::walk_match): Increment match_use_count.
629         (dt_simplify::gen_1): For GENERIC, only wrap multi-use
630         replacements in a save_expr if they occur more often than
631         in the original expression.
632
633 2015-12-01  Richard Biener  <rguenther@suse.de>
634
635         PR ipa/68470
636         * ipa-split.c (split_function): Handle main part not returning.
637
638 2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
639
640         PR middle-end/68595
641         * tree-vect-stmts.c (vect_init_vector): Cast boolean
642         scalars to a proper value before building a vector.
643
644 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
645
646         * genattrtab.c (check_attr_test): Take an attr_desc instead of
647         an is_const flag.  Put the file_location argument first.
648         Update recursive calls.  Improve error messages.
649         (check_attr_value): Take a file location and use it instead
650         of attr->loc.  Improve error messages.  Update calls to
651         check_attr_test.
652         (check_defs): Update call to check_attr_value.
653         (make_canonical): Likewise.
654         (gen_attr): Likewise.
655         (main): Likewise.
656         (gen_insn_reserv): Update call to check_attr_test.
657
658 2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
659
660         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
661
662 2015-12-01  Richard Biener  <rguenther@suse.de>
663
664         PR middle-end/68590
665         * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
666
667 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
668
669         * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
670         odr_type_p): Move to ...
671         * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
672         odr_type_p): here; miscro-optimize.
673
674 2015-12-01  Bin Cheng  <bin.cheng@arm.com>
675
676         PR tree-optimization/68529
677         * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
678         Compute no-overflow information for control iv.
679         (number_of_iterations_lt, number_of_iterations_le): Add new param.
680         (number_of_iterations_cond): Pass new argument to above functions.
681
682 2015-11-30  Jan Hubicka  <hubicka@ucw.cz>
683
684         * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
685         inlining -fno-strict-aliasing into -fstrict-aliasing body.
686
687 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
688             Sebastian Pop  <s.pop@samsung.com>
689
690         PR tree-optimization/68565
691         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
692         codegen_error.  Fail when rhs of division operations is integer_zerop.
693         (ternary_op_to_tree): Early return on codegen_error.
694         (unary_op_to_tree): Same.
695         (nary_op_to_tree): Same.
696         (gcc_expression_from_isl_expr_op): Same.
697         (gcc_expression_from_isl_expression): Same.
698         (graphite_create_new_loop): On codegen_error continue generating
699         wrong code.
700         (graphite_create_new_loop_guard): Same.
701         (build_iv_mapping): Same.
702         (graphite_create_new_guard): Same.
703
704 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
705             Sebastian Pop  <s.pop@samsung.com>
706
707         * graphite-isl-ast-to-gimple.c: Fix dump messages.
708         * graphite-scop-detection.c: Same.
709         * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
710
711 2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
712
713         * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
714         OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
715         (convert_local_omp_clauses): Likewise.
716
717 2015-11-30  Tom de Vries  <tom@codesourcery.com>
718
719         PR tree-optimization/46032
720         * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
721         factored out of ...
722         (find_func_aliases_for_call): ... here.
723         (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
724         BUILT_IN_GOMP_PARALLEL.
725         (ipa_pta_execute): Same.  Handle node->parallelized_function as a local
726         function.
727
728 2015-11-30  Jakub Jelinek  <jakub@redhat.com>
729
730         PR tree-optimization/68501
731         * target.def (builtin_reciprocal): Replace the 3 arguments with
732         a gcall * one, adjust description.
733         * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
734         with a gcall * one.
735         * targhooks.c (default_builtin_reciprocal): Likewise.
736         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
737         targetm.builtin_reciprocal even on internal functions, adjust
738         the arguments and allow replacing an internal function with normal
739         built-in.
740         * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
741         with a gcall * one.  Handle internal fns too.
742         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
743         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
744         * doc/tm.texi (builtin_reciprocal): Document.
745
746 2015-11-30  Richard Biener  <rguenther@suse.de>
747
748         PR tree-optimization/68592
749         * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
750         on the pattern def sequence.
751
752 2015-11-30  Nathan Sidwell  <nathan@acm.org>
753
754         * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
755         (write_one_arg): Reorder parms, add 'sep' param.
756         (nvptx_write_function_decl): Rename to ...
757         (write_fn_proto): ... here.  Do name replacement. Emit linaer
758         comment marker. Deal with both decls and defns. Simplify argument
759         formatting.
760         (write_function_decl_and_comment): Delete.
761         (write_func_decl_from_insn): Rename to ...
762         (write_fn_proto_from_insn): ... here.  Don't do name replacement.
763         (nvptx_record_fndecl): Call write_fn_proto.
764         (nvptx_record_libfunc): Call write_fn_proto_from_insn.
765         (nvptx_declare_function_name): Adjust for write_fn_proto changes.
766         (nvotx_output_call_insn): Call write_fn_prot_from_insn.
767
768 2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>
769
770         * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
771         (define_insn "*k<logic><mode>"): Use new iterator.
772
773 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
774
775         PR target/28115
776         * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
777         (sparc_adjust_cost): Add missing space.
778
779 2015-11-30  Richard Biener  <rguenther@suse.de>
780
781         PR c/68162
782         * dwarf2out.c (gen_type_die_with_usage): Keep variant types
783         of arrays.
784
785 2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
786
787         * tree-if-conv.c (struct ifc_dr): Add new tree
788         base_predicate field.
789         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
790         base ref, DR pairs and store base_predicate for write type DRs.
791         (ifcvt_memrefs_wont_trap): Guard checks with
792         -ftree-loop-if-convert-stores flag.
793
794 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
795
796         * cgraph.c (cgraph_node::make_local): No name is unique during
797         incremental linking.
798         * cgraph.h (can_be_discarded_p): Update comment; also common and
799         WEAK in named sections can be discarded; when doing incremental
800         link do not rely on resolution being the final one.
801         * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
802         When symbol can be discarded, do not rely on resolution info.
803         * symtab.c (symtab_node::nonzero_address): Take into account that
804         symbol can be discarded.
805         * ipa-visibility.c (update_visibility_by_resolution_info): Handle
806         definition correctly.
807         (function_and_variable_visibility): Do not set unique_name when
808         incrementally linking.
809
810 2015-11-29  Nathan Sidwell  <nathan@acm.org>
811
812         * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
813         const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
814         (ctrap<mode>): Use const0_operand.
815
816 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
817
818         * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
819         dump
820
821 2015-11-29  David Edelsohn  <dje.gcc@gmail.com>
822
823         PR target/28115
824         * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
825         recog_memoized test for insn and check recog_memoized for dep_insn.
826
827 2015-11-28  Nathan Sidwell  <nathan@acm.org>
828
829         * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
830         (FRAME_POINTER_CFA_OFFSET): Define.
831         (struct nvptx_args): Use 'tree' type.
832         (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
833
834 2015-11-28  Tom de Vries  <tom@codesourcery.com>
835
836         * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
837
838 2015-11-27  Jonathan Wakely  <jwakely@redhat.com>
839
840         * doc/invoke.texi (Option Summary): Use negative form of
841         -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
842         sort alphabetically and re-justify.
843
844 2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>
845
846         PR rtl-optimization/68536
847         * lra.c (lra_emit_add): Add code for null base.
848         * lra-constraints.c (curr_insn_transform): Skip operators for
849         subreg reloads.
850
851 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
852
853         Revert
854         2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
855
856         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
857         multiple_sets.
858         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
859         are not modified by the final modified insns in the basic blocks.
860
861 2015-11-27  Nathan Sidwell  <nathan@acm.org>
862
863         * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
864         Don't declare.
865         * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
866         (nvptx_maybe_convert_symbolic_operand): Simplify.
867         (nvptx_addr_space_from_address): Delete.
868         (nvptx_print_operand): Adjust 'A' case.
869
870 2015-11-27  Richard Biener  <rguenther@suse.de>
871
872         PR tree-optimization/68559
873         * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
874         peeling for gap checks ...
875         * tree-vect-stmts.c (vectorizable_load): ... here and relax
876         for SLP.
877         * tree-vect-loop.c (vect_analyze_loop_2): Re-set
878         LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
879
880 2015-11-27  Nathan Sidwell  <nathan@acm.org>
881
882         * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
883         declare.
884         * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
885         (nvptx_record_fndecl): Don't return value, remove force
886         argument. Require fndecl.
887         (nvptx_record_libfunc): New.
888         (nvptx_record_needed_decl): Deteermine how to record decl here.
889         (nvptx_maybe_record_fnsym): New.
890         (nvptx_expand_call): Don't record libfuncs here,
891         (nvptx_maybe_convert_symbolic_operand): Use
892         nvptx_maye_record_fnsym.
893         (nvptx_assemble_integer): Reimplement with single switch.
894         (nvptx_output_call_insn): Register libfuncs here.
895         (nvptx_file_end): Adjust  nvptx_record_fndecl call.
896         * config/nvptx/nvptx.md (expand_movdi): Don't call
897         nvptx_record_needed_decl.
898
899 2015-11-27  Richard Biener  <rguenther@suse.de>
900
901         PR tree-optimization/68553
902         * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
903         generation for 1:1 permutations.
904         (vect_transform_slp_perm_load): Detect 1:1 permutations.
905
906 2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>
907
908         * gimple.h (nonbarrier_call_p): Declare.
909         * gimple.c (nonbarrier_call_p): New function.
910         * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
911         Also increment call phase for ASMs with vdef and potential barrier
912         calls.
913
914 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
915
916         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
917         multiple_sets.
918         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
919         are not modified by the final modified insns in the basic blocks.
920
921 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
922
923         PR rtl-optimization/68506
924         * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
925         first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
926         blocks.
927
928 2015-11-27  Martin Liska  <mliska@suse.cz>
929
930         PR c++/68312
931         * vec.h (release_vec_vec): New function.
932
933 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
934
935         PR tree-optimization/68552
936         * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
937         (expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
938         or whether v0 == v1.
939
940 2015-11-27  Martin Liska  <mliska@suse.cz>
941
942         * tree-ssa-uninit.c: Fix whitespaces in the source file.
943         The change is just automatical.
944
945 2015-11-27  Martin Liska  <mliska@suse.cz>
946
947         * tree-chkp.c (chkp_make_static_bounds): Release buffer
948         used for string.
949
950 2015-11-27  Martin Liska  <mliska@suse.cz>
951
952         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
953         Do not release memory for comp_alias_ddrs.
954         * tree-vect-loop.c (destroy_loop_vec_info): Release
955         the memory for all loop_vec_info.
956
957 2015-11-27  Martin Liska  <mliska@suse.cz>
958
959         * ipa-devirt.c (ipa_devirt): Use auto_vec instead
960         of a local-scope vec.
961         (struct final_warning_record): Use auto_vec instead
962         of vec.
963
964 2015-11-27  Richard Biener  <rguenther@suse.de>
965
966         PR tree-optimization/68553
967         * tree-vect-slp.c (vect_get_mask_element): Remove.
968         (vect_transform_slp_perm_load): Implement in a simpler way.
969
970 2015-11-26  Alexandre Oliva <aoliva@redhat.com>
971
972         PR rtl-optimization/67753
973         PR rtl-optimization/64164
974         * function.c (assign_parm_setup_block): Right-shift
975         upward-padded big-endian args when bypassing the stack slot.
976
977 2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
978
979         * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
980         `-mcompact-branches='.
981         (MIPS Options): Likewise.
982
983 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
984
985         * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
986
987 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
988
989         * doc/install.texi (Prerequisites): Increase ISL requirement to
990         0.14 or 0.15.
991
992 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
993
994         * config/aarch64/arm_neon.h
995         (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
996         (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
997         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
998         (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
999         (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
1000         (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
1001         (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
1002         (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
1003         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
1004         (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
1005         (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
1006         (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
1007
1008 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1009
1010         * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
1011         (vqrdmlahq_s16, vqrdmlahq_s32): New.
1012         (vqrdmlsh_s16, vqrdmlsh_s32): New.
1013         (vqrdmlshq_s16, vqrdmlshq_s32): New.
1014
1015 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1016
1017         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
1018         ARM_FEATURE_QRDMX.
1019
1020 2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
1021
1022         PR debug/53927
1023         * tree-nested.c (finalize_nesting_tree_1): Append a field to
1024         hold the frame base address.
1025         * dwarf2out.c (gen_subprogram_die): Generate for
1026         DW_AT_static_link a location description that computes the value
1027         of this field.
1028
1029 2015-11-26  Tom de Vries  <tom@codesourcery.com>
1030
1031         revert:
1032         2015-11-25  Tom de Vries  <tom@codesourcery.com>
1033
1034         * cfgloop.c (find_single_latch): New function, factored out of ...
1035         (flow_loops_find): ... here.
1036         (verify_loop_structure): Improve verification of loop->latch.
1037         * cfgloop.h (find_single_latch): Declare.
1038         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
1039
1040 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1041
1042         * config/aarch64/aarch64-simd-builtins.def:
1043         Add missing changes from r230962.
1044
1045 2015-11-26  Nathan Sidwell  <nathan@acm.org>
1046
1047         * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
1048         arg with name.  Don't deal with split regs.  Tweak formatting.
1049         (nvptx_expand_call): Adjust write_func_decl_from_insn call.
1050         (nvptx_output_call_insn): Don't deal with split regs here.
1051
1052 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1053
1054         * config/aarch64/aarch64-simd-builtins.def
1055         (sqrdmlah, sqrdmlsh): New.
1056         (sqrdmlah_lane, sqrdmlsh_lane): New.
1057         (sqrdmlah_laneq, sqrdmlsh_laneq): New.
1058
1059 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1060
1061         * config/aarch64/aarch64-simd.md
1062         (aarch64_sqmovun<mode>): Fix some white-space.
1063         (aarch64_<sur>qmovun<mode>): Likewise.
1064         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
1065         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
1066         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
1067         * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
1068         (UNSPEC_SQRDMLSH): New.
1069         (SQRDMLH_AS): New.
1070         (rdma_as): New.
1071
1072 2015-11-26  Richard Biener  <rguenther@suse.de>
1073
1074         PR tree-optimization/66721
1075         * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
1076         iteration cost earlier.  Re-do analysis without SLP when
1077         vectorization using SLP fails and without has a chance to succeed.
1078
1079 2015-11-26  Richard Biener  <rguenther@suse.de>
1080
1081         * genmatch.c (dt_simplify::gen_1): For generic wrap all
1082         multi-result-use captures in a SAVE_EXPR.
1083
1084 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
1085
1086         * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
1087         (TARGET_SIMD_RDMA): New.
1088
1089 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1090
1091         * combine.c (subst): Do not return clobber of zero in widening mult
1092         case.  Just return x unchanged if it is a no-op substitution.
1093
1094 2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
1095
1096         PR target/68416
1097         * config/i386/i386.h (enum reg_class): Add
1098         bounds registers to ALL_REGS.
1099
1100 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
1101
1102         PR tree-optimization/68128
1103         * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
1104         * gimplify.c: Include gimple-walk.h.
1105         (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
1106         (omp_notice_variable): Set flags to n->value if n already
1107         exists in target region, but we need to jump to do_outer.
1108         (omp_shared_to_firstprivate_optimizable_decl_p,
1109         omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
1110         functions.
1111         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
1112         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
1113         not modified in the body.  Call omp_mark_stores for outer
1114         contexts on OMP_CLAUSE_SHARED clauses if they could be written
1115         in the body or on OMP_CLAUSE_LASTPRIVATE.
1116         (gimplify_adjust_omp_clauses): Add body argument, call
1117         omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
1118         Set OMP_CLAUSE_SHARED_READONLY
1119         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
1120         not modified in the body.  Call omp_mark_stores for outer
1121         contexts on OMP_CLAUSE_SHARED clauses if they could be written
1122         in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
1123         without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
1124         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
1125         gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
1126         gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
1127         * tree-nested.c (convert_nonlocal_omp_clauses,
1128         convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
1129         non-local vars or local vars referenced from nested routines.
1130         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
1131         attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
1132         TREE_READONLY, don't call use_pointer_for_field with non-NULL
1133         second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
1134
1135 2015-11-26  Paolo Bonzini <bonzini@gnu.org>
1136
1137         * doc/implement-c.texi (Integers Implementation): Make GCC's promises
1138         about signed left shift stronger and clarify the cases when they're
1139         broken.
1140
1141 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1142             Bernd Schmidt  <bschmidt@redhat.com>
1143
1144         PR rtl-optimization/67226
1145         * calls.c (store_one_arg): Take into account
1146         crtl->args.pretend_args_size when checking for overlap between
1147         arg->value and argblock + arg->locate.offset during sibcall
1148         optimization.
1149
1150 2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>
1151
1152         * config/aarch64/aarch64.md (cbranch<mode>4): Use
1153         aarch64_fp_compare_operand.
1154         (store_pairsf): Use aarch64_reg_or_fp_zero.
1155         (store_pairdf): Likewise.
1156         (cstore<mode>4): Use aarch64_fp_compare_operand.
1157         (cmov<mode>6): Likewise.
1158         * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
1159
1160 2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
1161             Sebastian Pop  <s.pop@samsung.com>
1162
1163         PR tree-optimization/68453
1164         * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
1165         not redirect edges already pointing to their destination.
1166         (translate_isl_ast_node_for): Split edges after loops to create
1167         basic blocks for close phi nodes.  Save merge points at the end of
1168         a loop guard.
1169         (translate_isl_ast_node_if): Save merge points at the end of the
1170         if region.
1171         (add_close_phis_to_outer_loops): New.
1172         (add_close_phis_to_merge_points): New.
1173         (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
1174         (copy_bb_and_scalar_dependences): Do not split basic blocks on
1175         loop close phi locations.
1176
1177 2015-11-25  Jan Hubicka  <jh@suse.cz>
1178
1179         * ipa-visibility.c (cgraph_externally_visible_p,
1180         varpool_node::externally_visible_p): When doing incremental linking,
1181         hidden symbols may be still used later.
1182         (update_visibility_by_resolution_info): Do not drop weak during
1183         incremental link.
1184         (function_and_variable_visibility): Fix formating.
1185         * flag-types.h (lto_linker_output): Declare.
1186         * common.opt 9flag_incremental_link): New flag.
1187
1188 2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1189
1190         * config/rs6000/constraints.md (wb constraint): New constraint for
1191         ISA 3.0 d-form scalar addressing.
1192
1193         * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
1194         for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
1195         Altivec registers.  Add wb constraint for Altivec registers with
1196         D-form addressing.  If we have ISA 3.0 d-form support, undo
1197         secondary reload support for using FPR registers if we want to do
1198         D-form addressing.
1199         (rs6000_debug_reg_global): Likewise.
1200         (rs6000_setup_reg_addr_masks): Likewise.
1201         (rs6000_init_hard_regno_mode_ok): Likewise.
1202         (rs6000_secondary_reload): Likewise.
1203         (rs6000_preferred_reload_class): Likewise.
1204         (rs6000_secondary_reload_class): Likewise.
1205
1206         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
1207         constraint.
1208
1209         * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
1210         for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
1211         (f32_lm2): Likewise.
1212         (f32_li2): Likewise.
1213         (f32_sr2): Likewise.
1214         (f32_sm2): Likewise.
1215         (f32_si2): Likewise.
1216         (f64_p9): Likewise.
1217         (extendsfdf2_fpr): Likewise.
1218         (mov<mode>_hardfloat): Likewise.
1219         (mov<mode>_hardfloat32): Likewise.
1220         (mov<mode>_hardfloat64): Likewise.
1221
1222         * doc/md.texi (RS/6000 constraints): Document wb constraint.
1223         Fixup we constraint documentation.
1224
1225 2015-11-25  Tom de Vries  <tom@codesourcery.com>
1226
1227         * omp-low.c (pass_expand_omp_ssa::clone): New function.
1228         * passes.def: Add pass_oacc_kernels pass group.
1229         * tree-ssa-loop-ch.c (pass_ch::clone): New function.
1230
1231 2015-11-25  Tom de Vries  <tom@codesourcery.com>
1232
1233         * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
1234         Declare.
1235         * tree-ssa-loop.c (gate_oacc_kernels): New static function.
1236         (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
1237         (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
1238         (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
1239
1240 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
1241
1242         * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
1243         TV_IPA_LTO_OUTPUT): New.
1244         * lto-compress.c: Include timevar.h
1245         (lto_end_compression, lto_end_uncompression): Add timers.
1246         * langhooks.c: Include timevar.h
1247         (lhd_append_data): Add timer.
1248
1249 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
1250
1251         * varasm.c (default_elf_asm_output_limited_string,
1252         default_elf_asm_output_ascii): Replace fprintf by putc.
1253
1254 2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1255
1256         PR rtl-optimization/67954
1257         * lra-constraints.c (curr_insn_transform): Add check on scratch
1258         pseudo when change class to NO_REGS.  Add an assert.
1259
1260 2015-11-25  Nathan Sidwell  <nathan@acm.org>
1261
1262         * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
1263         constraint is 'n'.
1264         * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
1265         number.
1266         (nvptx_write_function_decl): Number args from 0.
1267         (nvptx_declare_function_name): Likewise.
1268         (nvptx_function_incoming_arg): Likewise.
1269         (nvptx_output_call_insn): Correct formatting.
1270
1271 2015-11-25  David Sherwood  <david.sherwood@arm.com>
1272
1273         * optabs.def: Add new optabs fmax_optab/fmin_optab.
1274         * internal-fn.def: Add new fmax/fmin internal functions.
1275         * doc/md.texi: Add fmin and fmax patterns.
1276
1277 2015-11-25  Jason Merrill  <jason@redhat.com>
1278
1279         PR c++/68385
1280         * tree.c (integer_zerop, integer_onep, integer_each_onep)
1281         (integer_all_onesp, integer_minus_onep, integer_pow2p)
1282         (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
1283         (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
1284
1285 2015-11-25  Richard Biener  <rguenther@suse.de>
1286
1287         PR middle-end/68528
1288         * fold-const.c (fold_binary_loc): Do not call negate_expr_p
1289         on stripped operands.
1290
1291 2015-11-25  Nathan Sidwell  <nathan@acm.org>
1292
1293         * config/nvptx/nvptx.c (walk_args_for_params): Delete.
1294         (nvptx_declare_function_name): Move assignments next to register
1295         declarations, and process params here.
1296
1297 2015-11-25  David Edelsohn  <dje.gcc@gmail.com>
1298
1299         * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
1300         both the symbol and the "dot" symbol for function descriptors. Fix
1301         inversion for rename of symbols with dollar sign.
1302
1303 2015-11-25  Tom de Vries  <tom@codesourcery.com>
1304
1305         * cfgloop.c (find_single_latch): New function, factored out of ...
1306         (flow_loops_find): ... here.
1307         (verify_loop_structure): Improve verification of loop->latch.
1308         * cfgloop.h (find_single_latch): Declare.
1309         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
1310
1311 2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1312
1313         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
1314         (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
1315         (STARTFILE_SPEC): Use %(startfile_vtv).
1316         (ENDFILE_SPEC): Use %(endfile_vtv).
1317         (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
1318         ENDFILE_VTV_SPEC.
1319
1320         * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
1321
1322 2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>
1323
1324         * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
1325         noce_can_store_speculate): Delete.
1326         (noce_process_if_block): Don't try to handle single MEM stores.
1327         * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
1328         * alias.c (memory_must_be_modified_in_insn_p): Delete.
1329
1330 2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1331
1332         PR rtl-optimization/68435
1333         * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
1334         for conflicts between a, b and the set destinations.
1335
1336 2015-11-25  Richard Biener  <rguenther@suse.de>
1337
1338         PR tree-optimization/68517
1339         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
1340         Properly handle zero-sized types.
1341
1342 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1343
1344         * ipa-inline-analysis.c: Include gimplify.h
1345         (set_cond_stmt_execution_predicate,
1346         set_switch_stmt_execution_predicate): Be sure to not leak locations
1347         to function body.
1348
1349 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
1350
1351         PR target/67089
1352         * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
1353         match_uaddsub_overflow): New functions.
1354         (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
1355
1356 2015-11-25  Richard Biener  <rguenther@suse.de>
1357
1358         PR tree-optimization/68492
1359         * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
1360         op from scalars after operand swapping.
1361
1362 2015-11-25  Richard Biener  <rguenther@suse.de>
1363
1364         PR tree-optimization/68502
1365         * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
1366         check that the step is a multiple of the type size.
1367
1368 2015-11-24  Michael Collison  <michael.collison@linaro.org>
1369
1370         * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
1371         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
1372         * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
1373
1374 2015-11-24  Steve Ellcey  <sellcey@imgtec.com>
1375
1376         * frame-header-opt.c (gate): Check for optimize > 0.
1377         (has_inlined_assembly): New function.
1378         (needs_frame_header_p): Remove is_leaf_function check,
1379         add argument type check.
1380         (callees_functions_use_frame_header): Add is_leaf_function
1381         and has_inlined_assembly calls..
1382         (set_callers_may_not_allocate_frame): New function.
1383         (frame_header_opt): Add is_leaf_function call, add
1384         set_callers_may_not_allocate_frame call.
1385         * config/mips/mips.c (mips_compute_frame_info): Add check
1386         to see if callee saved regs can be put in frame header.
1387         (mips_expand_prologue): Add check to see if step1 is zero,
1388         fix cfa restores when using frame header to store regs.
1389         (mips_can_use_return_insn): Check to see if registers are
1390         stored in frame header.
1391         * config/mips/mips.h (machine_function): Add
1392         callers_may_not_allocate_frame and
1393         use_frame_header_for_callee_saved_regs fields.
1394
1395 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1396
1397         PR rtl-optimization/68520
1398         * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
1399         its bit was already set in BB_WITH.
1400
1401 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1402
1403         * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
1404         double check that type is main variant.
1405         * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
1406         variant.
1407         (verify_type_variant): Verify that variants have no
1408         TYPE_ALIAS_SET_KNOWN_P set
1409         * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
1410         streaming so constant fields come first; stream TYPE_ALIAS_SET==0
1411         only for main variants; stream TYPE_ALIAS_SET as a bit.
1412         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
1413         accordingly.
1414
1415 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1416
1417         * tree.c (make_vector_type): Properly compute canonical type of the
1418         main variant.
1419         (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
1420         a main variant.
1421
1422 2015-11-24  Nathan Sidwell  <nathan@acm.org>
1423
1424         * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
1425         VOIDmode, don't alter incoming mode.
1426         (nvptx_split_reg_p): Delete.
1427         (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
1428         write_func_decl_from_insn, nvptx_output_call_insn): Adjust
1429         maybe_split_mode calls.
1430         (nvptx_print_operand): Use maybe_split_mode.
1431
1432 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1433
1434         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
1435         only for types where LTO sets them.
1436         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
1437         (make_vector_type): Likewise.
1438         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
1439         * tree.h (canonical_type_used_p): New inline.
1440         * alias.c (get_alias_set): Handle structural equality for all
1441         types that pass canonical_type_used_p.
1442         (record_component_aliases): Look through all types with
1443         record_component_aliases for possible pointers; sanity check that
1444         the alias sets match.
1445
1446 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1447
1448         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
1449
1450 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1451
1452         * tree.c (free_node): New function.
1453         (type_hash_canon): Use it.
1454         * tree.h (free_node): Declare.
1455
1456 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
1457             Michael Meissner  <meissner@linux.vnet.ibm.com>
1458
1459         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
1460         (Fv2): New mode attribute to be used when ISA 2.07 instructions
1461         are used on SF values, and ISA 2.06 instructions on DF values.
1462         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
1463         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
1464         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
1465         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
1466         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
1467         (fre<Fs>): Use <Fv2> instead of <Fv>.
1468         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
1469         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
1470         (xsrdpi<mode>): Add support for the lround function.
1471         (lround<mode>di2): Likewise.
1472         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
1473         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
1474         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
1475         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
1476
1477 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
1478             Sebastian Pop  <s.pop@samsung.com>
1479
1480         PR tree-optimization/67984
1481         * graphite-isl-ast-to-gimple.c (is_constant): New.
1482         (get_rename): Call is_constant.
1483         (get_new_name): Same.
1484
1485 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
1486             Sebastian Pop  <s.pop@samsung.com>
1487
1488         * graphite-dependences.c: Only include graphite.h.
1489         * graphite-isl-ast-to-gimple.c: Same.
1490         * graphite-optimize-isl.c: Same.
1491         * graphite-poly.c: Same.
1492         * graphite-scop-detection.c: Same.
1493         * graphite-sese-to-poly.c: Same.
1494         * graphite.c: Same.
1495         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
1496         * graphite-poly.h: Same.
1497         * graphite-scop-detection.h: Same.
1498         * graphite.h: New.
1499
1500 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
1501
1502         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
1503         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
1504         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
1505         function already takes care of checking what it can emit.
1506
1507 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1508
1509         * doc/invoke.texi (-fpic): Add the AArch64 limit.
1510         (-fPIC): Add AArch64.
1511
1512 2015-11-24  Tom de Vries  <tom@codesourcery.com>
1513
1514         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
1515         (pass_lim::execute): Allow to run outside pass_tree_loop.
1516
1517 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
1518
1519         * config/aarch64/aarch64.md (add<mode>3):
1520         Block early expansion into 2 add instructions.
1521         (add<mode>3_pluslong): New pattern to combine complex
1522         immediates into 2 additions.
1523
1524 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1525
1526         PR target/66217
1527         PR target/67677
1528         PR target/68332
1529         * config/rs6000/predicates.md (and_operand): Check that the operand
1530         is a const_int before calling rs6000_is_valid_and_mask.
1531
1532 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1533
1534         * config/aarch64/aarch64.md (*condjump): Rename to...
1535         (condjump): ... This.
1536         (*compare_condjump<mode>): New define_insn_and_split.
1537         (*compare_cstore<mode>_insn): Likewise.
1538         (*cstore<mode>_insn): Rename to...
1539         (cstore<mode>_insn): ... This.
1540         * config/aarch64/iterators.md (CMP): Handle ne code.
1541         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
1542
1543 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
1544
1545         PR target/68497
1546         * config/i386/i386.c (output_387_binary_op): Fix assertion for
1547         -fno-checking case.
1548
1549 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1550
1551         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
1552         (val_ssa_equiv_hash_traits::remove): Likewise.
1553         (pass_uncprop::execute): Adjust.
1554
1555 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1556
1557         * hash-map-traits.h (simple_hashmap_traits ::remove): call
1558         destructors on values that are being removed.
1559         * mem-stats.h (hash_map): Pass type of values to
1560         simple_hashmap_traits.
1561         * tree-sra.c (sra_deinitialize): Remove work around for hash
1562         maps not destructing values.
1563         * genmatch.c (sinfo_hashmap_traits): Adjust.
1564         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
1565
1566 2015-11-24  Richard Biener  <rguenther@suse.de>
1567             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1568
1569         PR middle-end/68375
1570         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
1571         bogus assertion.
1572
1573 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
1574
1575         PR target/68483
1576         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
1577         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
1578         returns false.
1579         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
1580         whenever first is nelt or above.  Don't mask expected with
1581         2 * nelt - 1.
1582
1583 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
1584
1585         PR c/68337
1586         * gimple-fold.c: Include ipa-chkp.h.
1587         (gimple_fold_builtin_memory_op): Don't fold call if we
1588         are going to instrument it and it may copy pointers.
1589
1590 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
1591             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1592
1593         PR rtl-optimization/68194
1594         PR rtl-optimization/68328
1595         PR rtl-optimization/68185
1596         * ree.c (combine_reaching_defs): Reject copy_needed case if
1597         copies_list is not empty.
1598
1599 2015-11-24  Richard Biener  <rguenther@suse.de>
1600
1601         PR middle-end/68221
1602         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1603         use mem_ref_offset.
1604
1605 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1606
1607         PR rtl-optimization/68381
1608         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
1609         is poisoned.
1610
1611 2015-11-23  Nick Clifton  <nickc@redhat.com>
1612             Jeff Law  <law@redhat.com>
1613
1614         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
1615         the source/dest of the target extension require a different number of
1616         hard registers.
1617         (combine_set_extension): Remove #if 0 code.
1618
1619 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1620             Sebastian Pop  <s.pop@samsung.com>
1621
1622         PR tree-optimization/68314
1623         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
1624         * graphite-poly.c (new_scop): Remove original_schedule.
1625         (free_scop): Same.
1626         * graphite-poly.h (struct scop): Same.
1627         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
1628         (build_pbb_scattering_polyhedrons): Add back.
1629         (build_scop_minimal_scattering): Remove.
1630         (build_scop_scattering): Add back.
1631         (build_scop_original_schedule): Remove.
1632         (build_poly_scop): Revert to only call build_scop_scattering.
1633
1634 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1635             Sebastian Pop  <s.pop@samsung.com>
1636
1637         PR tree-optimization/68493
1638         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
1639         missing early return when codegen_error is set.
1640
1641 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1642             Sebastian Pop  <s.pop@samsung.com>
1643
1644         PR tree-optimization/68279
1645         * graphite-poly.c (new_scop): Remove poly_scop_p.
1646         * graphite-poly.h (struct scop): Same.
1647         (build_poly_scop): Declare.
1648         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
1649         (cleanup_loop_iter_dom): New.
1650         (build_loop_iteration_domains): Early return when scev analysis fails.
1651         (create_pw_aff_from_tree): Same.
1652         (add_condition_to_pbb): Same.
1653         (add_conditions_to_domain): Same.
1654         (add_conditions_to_constraints): Same.
1655         (build_scop_iteration_domain): Same.
1656         (build_poly_scop): Same.  Do not initialize poly_scop_p.
1657         * graphite-sese-to-poly.h: Remove.
1658         * graphite.c: Do not include graphite-sese-to-poly.h.
1659         (graphite_transform_loops): Stop before code generation when
1660         build_poly_scop fails.
1661         * sese.c (scalar_evolution_in_region): Add fixme note about scev
1662         analysis.
1663
1664 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1665             Sebastian Pop  <s.pop@samsung.com>
1666
1667         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
1668         Remove call to update_ssa.
1669         * sese.c (sese_insert_phis_for_liveouts): Same.
1670
1671 2015-11-23  Marek Polacek  <polacek@redhat.com>
1672
1673         PR tree-optimization/68455
1674         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
1675         extract_range_from_multiplicative_op_1 on symbolic ranges.
1676
1677 2015-11-23  Richard Henderson  <rth@redhat.com>
1678
1679         * optabs.def (uaddv4_optab, usubv4_optab): New.
1680         * internal-fn.c (expand_addsub_overflow): Use them.
1681         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
1682
1683         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
1684         to reversed operands.
1685         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
1686         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
1687         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
1688         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
1689         (*add<SWI>3_cconly_overflow_2): New.
1690         (*add<SWI>3_cc_overflow_2): New.
1691         (*addsi3_zext_cc_overflow_2): New.
1692
1693 2015-11-23  Richard Biener  <rguenther@suse.de>
1694
1695         PR tree-optimization/68465
1696         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
1697         Also record equalities from multiple predecessor blocks if
1698         only one non-backedge exists.
1699
1700 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1701
1702         PR target/68363
1703         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
1704         that are not INSN_P.
1705
1706 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
1707
1708         * config/aarch64/aarch64-builtins.c
1709         (aarch64_gimple_fold_builtin): Fold FMULX.
1710
1711 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
1712
1713         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
1714         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
1715         after GCC header files and before graphite header files.
1716         * graphite-dependences.c: Same.
1717         * graphite-isl-ast-to-gimple.c: Same.
1718         * graphite-optimize-isl.c: Same.
1719         * graphite-poly.c: Same.
1720         * graphite-scop-detection.c: Same.
1721         * graphite-sese-to-poly.c: Same.
1722         * graphite.c: Same.
1723
1724 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
1725             Jiong Wang  <jiong.wang@arm.com>
1726
1727         PR tree-optimization/68317
1728         PR tree-optimization/68326
1729         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
1730         final min and max are not infinity.
1731
1732 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
1733             Richard Biener  <rguenther@suse.de>
1734
1735         PR tree-optimization/68327
1736         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1737         compute vectype for non-relevant mask producers.
1738         * tree-vect-stmts.c (vectorizable_comparison): Check stmt
1739         relevance earlier.
1740
1741 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1742
1743         PR tree-optimization/68460
1744         * tree-parloops.c (gather_scalar_reductions): Also call
1745         free_stmt_vec_info_vec if simple_loop_info == NULL.
1746
1747 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
1748
1749         * opts.c (finish_options): Allow -fsanitize-recover=address for
1750         userspace sanitization.
1751         * asan.c (asan_expand_check_ifn): Redefine recover_p.
1752         * doc/invoke.texi (fsanitize-recover): Update documentation.
1753
1754 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1755
1756         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
1757
1758 2015-11-23  Richard Biener  <rguenther@suse.de>
1759
1760         PR tree-optimization/68445
1761         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
1762         two different strides.
1763
1764 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1765
1766         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
1767         * config/s390/s390.c (s390_check_symref_alignment): Use new
1768         symref flags, early abort on wrong alignment
1769         (s390_secondary_reload): Use new symref flags.
1770         (s390_encode_section_info): Likewise.
1771         * config/s390/predicates.md: Likewise.
1772
1773 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1774
1775         PR target/68390
1776         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
1777         for indirect function call.
1778
1779 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
1780
1781         * config/aarch64/aarch64-simd.md
1782         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
1783         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
1784         (*aarch64_mulx_elt_to_64v2df): Likewise.
1785         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
1786         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
1787         (vmulx_lane_f64): Likewise.
1788         (vmulxq_lane_f32): Refactored & moved.
1789         (vmulxq_lane_f64): Likewise.
1790         (vmulx_laneq_f32): New.
1791         (vmulx_laneq_f64): Likewise.
1792         (vmulxq_laneq_f32): Likewise.
1793         (vmulxq_laneq_f64): Likewise.
1794         (vmulxs_lane_f32): Likewise.
1795         (vmulxs_laneq_f32): Likewise.
1796         (vmulxd_lane_f64): Likewise.
1797         (vmulxd_laneq_f64): Likewise.
1798
1799 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
1800
1801         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
1802         In LTO we do not compute TYPE_CANONICAL of pointers.
1803         (gimple_canonical_types_compatible_p): Improve coments; sanity check
1804         that pointers do not have canonical type that would make us believe
1805         they are different.
1806         * alias.c (get_alias_set): Do structural type equality on pointers;
1807         enable pointer path for LTO; also glob pointer to vector with pointer
1808         to vector element; glob pointers and references for LTO; do more strict
1809         sanity checking about build_pointer_type returning the canonical type
1810         which is also the main variant.
1811         (record_component_aliases): When component type is pointer and we
1812         do LTO; record void_type_node alias set.
1813
1814 2015-11-21  Nathan Sidwell  <nathan@acm.org>
1815
1816         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
1817
1818         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
1819         leading blank line.
1820         (write_func_decl_from_insn): Likewise.
1821         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
1822         (nvptx_file_end): Likewise.
1823         (nvptx_function_end): Undent output.
1824         (nvptx_expand_call): Fix formatting.
1825         (nvptx_output_call_insn): Indent output.
1826         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
1827         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
1828
1829 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
1830
1831         PR debug/66432
1832         * tree-inline.c (copy_debug_stmt): If
1833         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
1834         in decl_debug_args, don't call remap_gimple_op_r on it.
1835
1836 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
1837
1838         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
1839         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
1840         Check that all record types are complete.
1841         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
1842         compare alias sets for types w/o alias sets.
1843
1844 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1845
1846         * config/sparc/sparc.md (umulxhi_vis): Move around.
1847         (*umulxhi_sp64): Likewise.
1848         (umulxhi_v8plus): Likewise.
1849         (xmulx_vis): Likewise.
1850         (*xmulx_sp64): Likewise.
1851         (xmulx_v8plus): Likewise.
1852         (xmulxhi_vis): Likewise.
1853         (*xmulxhi_sp64): Likewise.
1854         (xmulxhi_v8plus): Likewise.
1855
1856 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1857
1858         PR 62314
1859         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
1860         (class layout): Update comment
1861         (layout::print_any_fixits): New method.
1862         (layout::move_to_column): New method.
1863         (diagnostic_show_locus): Add call to layout.print_any_fixits.
1864
1865 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
1866
1867         PR middle-end/68221
1868         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
1869         has non-zero bias, subtract it in integer type instead of
1870         pointer plus of negated bias.
1871
1872         PR middle-end/68339
1873         * omp-low.c (expand_simd_clones): Call node->get_body () before
1874         allocating stuff in GC.
1875
1876 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
1877
1878         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
1879
1880 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
1881
1882         * config/aarch64/aarch64.md (predicated): Copy attribute from
1883         "arm.md".
1884         * config/arm/arm.md (predicated): Added description.
1885
1886 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1887
1888         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
1889         for unaligned_access.
1890         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
1891         from matching condition.
1892         (unaligned_loadhis): Likewise.
1893         (unaligned_loadhiu): Likewise.
1894         (unaligned_storesi): Likewise.
1895         (unaligned_storehi): Likewise.
1896
1897 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1898
1899         PR target/68149
1900         * config/arm/arm.md (unaligned_loaddi): Delete.
1901         (unaligned_storedi): Likewise.
1902         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
1903         unaligned DImode memory ops.  Instead perform two back-to-back
1904         unaligned SImode ops.
1905
1906 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
1907             James Norris  <jnorris@codesourcery.com>
1908
1909         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
1910         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
1911
1912 2015-11-20  Alan Hayward <alan.hayward@arm.com>
1913
1914         PR tree-optimization/68413
1915         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
1916         evolution base
1917         (vectorizable_reduction): Use cached base
1918
1919 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1920
1921         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
1922         dump-file string.
1923         (try_create_reduction_list): Same.  Fix typo in dump-file string.
1924
1925 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1926
1927         * doc/md.texi (Standard Names): Move entry for addptr3 around,
1928         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
1929         glitch in entries for cbranch4 and jump.
1930
1931 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1932
1933         PR tree-optimization/68373
1934         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
1935         of ...
1936         (scev_const_prop): ... here.
1937         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
1938         * tree-parloops.c (try_create_reduction_list): Call
1939         final_value_replacement_loop.
1940
1941 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
1942
1943         PR tree-optimization/52272
1944         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
1945         (struct iv_common_cand_hasher): New struct.
1946         (iv_common_cand_hasher::hash): New function.
1947         (iv_common_cand_hasher::equal): New function.
1948         (struct ivopts_data): New fields, iv_common_cand_tab and
1949         iv_common_cands.
1950         (tree_ssa_iv_optimize_init): Initialize above fields.
1951         (record_common_cand, common_cand_cmp): New functions.
1952         (add_iv_candidate_derived_from_uses): New function.
1953         (add_iv_candidate_for_use): Record iv_common_cands derived from
1954         iv use in hash table, instead of adding candidates directly.
1955         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
1956         (record_important_candidates): Add important candidates to iv uses'
1957         related_cands.  Always keep related_cands for future use.
1958         (try_add_cand_for): Use iv uses' related_cands.
1959         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
1960         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
1961
1962 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1963
1964         * config/s390/s390.md ("bswaphi2"): New pattern.
1965
1966 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1967
1968         * config/s390/s390.md (GPR1_REGNUM): New constant.
1969         ("*trunc<BFP:mode><DFP_ALL:mode>2")
1970         ("*trunc<DFP_ALL:mode><BFP:mode>2")
1971         ("trunc<BFP:mode><DFP_ALL:mode>2")
1972         ("trunc<DFP_ALL:mode><BFP:mode>2")
1973         ("*extend<BFP:mode><DFP_ALL:mode>2")
1974         ("*extend<DFP_ALL:mode><BFP:mode>2")
1975         ("extend<BFP:mode><DFP_ALL:mode>2")
1976         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
1977
1978 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1979             Sebastian Pop  <s.pop@samsung.com>
1980
1981         PR tree-optimization/68428
1982         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
1983         over basic blocks outside the scop.
1984
1985 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1986             Sebastian Pop  <s.pop@samsung.com>
1987
1988         PR tree-optimization/68341
1989         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
1990         gcc_unreachable and safely fail codegen.
1991         (copy_loop_close_phi_args): Do not insert merge phis in a basic
1992         block with loop phi nodes.
1993         (edge_for_new_close_phis): New.
1994         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
1995
1996 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1997
1998         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
1999         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
2000         (nvptx_declare_objec_name): Likewise.
2001
2002 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
2003
2004         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
2005         (get_false_edge_from_guard_bb): Move...
2006         * sese.c (get_false_edge_from_guard_bb)
2007         (get_true_edge_from_guard_bb): ... here.
2008
2009 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
2010
2011         Revert
2012         2015-11-18  Alan Modra  <amodra@gmail.com>
2013
2014         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
2015         type-limits warning.
2016
2017
2018 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2019
2020         * tree.h (desired_pro_or_demotion_p): New function.
2021         * tree-vrp.c (simplify_cond_using_ranges): Call it.
2022
2023 2015-11-19  Michael Matz  <matz@suse.de>
2024
2025         * fwprop.c (update_uses): Use flag_checking instead of
2026         gcc_checking_assert.
2027
2028 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
2029
2030         * doc/gty.texi (Support for inheritance): Fix missing
2031         parentheses in example.
2032
2033 2015-11-19  Marek Polacek  <polacek@redhat.com>
2034
2035         PR tree-optimization/68431
2036         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
2037
2038 2015-11-19  Nathan Sidwell  <nathan@acm.org>
2039
2040         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
2041         atomic_exchange<mode>): Input values can be immediates.
2042
2043 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2044
2045         PR lto/61313
2046         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
2047         by the user.
2048         * configure: Regenerate.
2049
2050 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2051
2052         PR target/68408
2053         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
2054         (DTORS_SECTION_ASM_OP): Likewise.
2055
2056 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
2057
2058         PR rtl-optimization/68376
2059         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
2060         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
2061
2062 2015-11-19  Richard Biener  <rguenther@suse.de>
2063
2064         PR middle-end/68117
2065         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
2066         redirect_edge_var_map_destroy.
2067
2068 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
2069
2070         PR target/67770
2071         * config/i386/i386.md (simple_return): Disable if
2072         ix86_static_chain_on_stack is true.
2073
2074 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
2075
2076         PR bootstrap/68393
2077         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
2078         destinations.
2079
2080 2015-11-18  Jeff Law  <law@redhat.com>
2081
2082         PR tree-optimization/68198
2083         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
2084         between threading a multi-way branch and a thread path that contains
2085         a multi-way branch.  Disallow the case where a path contains a
2086         multi-way branch and does not thread a multi-way branch.
2087         (thread_through_all_blocks): Update comment.
2088
2089 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
2090
2091         PR c/65083
2092         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
2093         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
2094         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
2095         functions before defining as macros.
2096
2097 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2098
2099         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
2100         (nvptx_record_offload_symbol): Remove code compensating for lack
2101         of default dimension handling.
2102         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
2103
2104 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
2105
2106         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
2107         type to bool for early exit.
2108         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
2109         in case of error.
2110         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
2111         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
2112         predecessor dominates the other.
2113         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
2114         element is not found it returns -1.
2115         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
2116         out early when codegen fails.
2117         (graphite_regenerate_ast_isl): Remove codegen region when pending
2118         phis could not be generated.
2119
2120 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
2121
2122         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
2123         semicolon.
2124         (class translate_isl_ast_to_gimple): Indentation.
2125         (translate_pending_phi_nodes): Comment.
2126         (add_parameters_to_ivs_params): Moved from sese.c inside class
2127         translate_isl_ast_to_gimple.
2128         (get_max_schedule_dimensions): Same.
2129         (generate_isl_context): Same.
2130         (extend_schedule): Same.
2131         (generate_isl_schedule): Same.
2132         (set_options): Same.
2133         (scop_to_isl_ast): Same.
2134         (is_valid_rename): Same.
2135         (get_rename): Same.
2136         (get_rename_from_scev): Same.
2137         (get_def_bb_for_const): Same.
2138         (get_new_name): Same.
2139         (collect_all_ssa_names): Same.
2140         (copy_loop_phi_args): Same.
2141         (copy_loop_phi_nodes): Same.
2142         (copy_loop_close_phi_args): Same.
2143         (copy_loop_close_phi_nodes): Same.
2144         (copy_cond_phi_args): Same.
2145         (copy_cond_phi_nodes): Same.
2146         (graphite_copy_stmts_from_block): Same.
2147         (copy_bb_and_scalar_dependences): Same.
2148         (add_phi_arg_for_new_expr): Same.
2149         (rename_uses): Same.
2150         (set_rename): Same.
2151         (set_rename_for_each_def): Same.
2152         (gsi_insert_earliest): Same.
2153         (rename_all_uses): Same.
2154         (codegen_error_p): Same.
2155         (print_isl_ast_node): Same.
2156         (translate_isl_ast_for_loop): Call function codegen_error_p.
2157         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
2158         (translate_isl_ast_node_user): Make nb_loops const and release
2159         iv_map before exit.
2160         (get_true_edge_from_guard_bb): Move all free-functions early.
2161         (get_false_edge_from_guard_bb): Same.
2162         (bb_contains_loop_close_phi_nodes): Same.
2163         (bb_contains_loop_phi_nodes): Same.
2164         (is_loop_closed_ssa_use):  Same.
2165         (number_of_phi_nodes): Same.
2166         (phi_uses_name): Same.
2167         (later_of_the_two): Same.
2168         (substitute_ssa_name):
2169         (get_edges): Same.
2170         (get_loc): Same.
2171         (get_loop_init_value): Same.
2172         (find_init_value): Same.
2173         (find_init_value_close_phi): Same.
2174         (ast_build_before_for): Same.
2175         (graphite_regenerate_ast_isl): Formatting changes.
2176         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
2177         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
2178         (set_rename): Same.
2179         (gsi_insert_earliest): Same.
2180         (collect_all_ssa_names): Same.
2181         (rename_all_uses): Same.
2182         (rename_uses): Same.
2183         (get_def_bb_for_const): Same.
2184         (copy_loop_phi_nodes): Same.
2185         (copy_loop_close_phi_args): Same.
2186         (copy_loop_close_phi_nodes): Same.
2187         (copy_cond_phi_args): Same.
2188         (copy_cond_phi_nodes): Same.
2189         (set_rename_for_each_def): Same.
2190         (graphite_copy_stmts_from_block): Same.
2191         (copy_bb_and_scalar_dependences): Same.
2192         (if_region_set_false_region): Same.
2193         (scev_analyzable_p): Same.
2194         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
2195
2196 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
2197
2198         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
2199         commit from r125920 for FreeBSD.
2200
2201 2015-11-18  Jason Merrill  <jason@redhat.com>
2202
2203         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
2204         to be vecs of vecs.
2205         (add_finalizer): Split out from ggc_internal_alloc.
2206         (ggc_handle_finalizers): Run finalizers for the current depth.
2207         (init_ggc, ggc_pch_read): Reserve space for finalizers.
2208
2209 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
2210
2211         PR target/68410
2212         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
2213         from || expression.
2214
2215 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2216
2217         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
2218         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
2219         and atmega328pb.
2220         * doc/avr-mmcu.texi: Regenerate.
2221
2222 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2223
2224         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
2225         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
2226         (struct bb_sese): New struct.
2227         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
2228         (BB_GET_SESE, BB_SET_SESE): Define.
2229         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
2230         (nvptx_find_sese): New.
2231         (nvptx_neuter_pars): Find SESE regions when optimizing.
2232
2233 2015-11-18  Alan Modra  <amodra@gmail.com>
2234
2235         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
2236         type-limits warning.
2237
2238 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
2239
2240         PR bootstrap/68406
2241         * hash-set.h (hash_set::traverse): Expand Key typedef.
2242
2243 2015-11-18  Martin Liska  <mliska@suse.cz>
2244
2245         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
2246         options struct.
2247
2248 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2249
2250         * config/nvptx/nvptx.c (global_lock_var): New.
2251         (nvptx_global_lock_addr): New.
2252         (nvptx_lockless_update): Recomment and adjust for clarity.
2253         (nvptx_lockfull_update): New.
2254         (nvptx_reduction_update): New.
2255         (nvptx_goacc_reduction_fini): Call it.
2256
2257 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
2258
2259         * regrename.h (struct du_head): Add target_data_1 and target_data_2
2260         fields.
2261         * regrename.c (create_new_chain): Clear entire struct after allocating.
2262
2263         * config/i386/i386.opt (mmitigate-rop): New option.
2264         * doc/invoke.texi (mmitigate-rop): Document.
2265         * config/i386/i386.c: Include "regrename.h".
2266         (ix86_rop_should_change_byte_p, reg_encoded_number,
2267         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
2268         static functions.
2269         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
2270         * config/i386/i386.md (attr "modrm_class"): New.
2271         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
2272         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
2273         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
2274
2275 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
2276
2277         PR target/68405
2278         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
2279
2280 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
2281
2282         PR tree-optimization/68157
2283         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
2284         pow_stmt or mul_stmt from stmt's uid.
2285         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
2286
2287 2015-11-18  Martin Liska  <mliska@suse.cz>
2288
2289         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
2290
2291 2015-11-18  Martin Liska  <mliska@suse.cz>
2292
2293         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
2294         Fix GNU coding style.
2295         (find_def_preds): Use auto_vec.
2296         (destroy_predicate_vecs): Change signature of the function.
2297         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
2298         new signature.
2299         (simplify_preds_4): Use destroy_predicate_vecs instread of
2300         just releasing preds vector.
2301         (normalize_preds): Likewise.
2302         (is_use_properly_guarded): Use new signature of
2303         destroy_predicate_vecs.
2304         (find_uninit_use): Likewise.
2305
2306 2015-11-18  Richard Biener  <rguenther@suse.de>
2307
2308         PR tree-optimization/67790
2309         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
2310         IL rewrite for MINUS_EXPR reductions, rename back to ...
2311         (vect_is_simple_reduction): ... this, removing the wrapper.
2312         (vect_force_simple_reduction): Adjust.
2313         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
2314         reductions and make use if reduc_index in all places.  For
2315         the final reduction of MINUS_EXPR use PLUS_EXPR.
2316
2317 2015-11-18  Alan Modra  <amodra@gmail.com>
2318
2319         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
2320         to ld.
2321         * configure: Regenerate.
2322
2323 2015-11-17  Tom de Vries  <tom@codesourcery.com>
2324
2325         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
2326
2327 2015-11-17  Tom de Vries  <tom@codesourcery.com>
2328
2329         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
2330         uses of ssa_name with constant.
2331
2332 2015-11-17  Tom de Vries  <tom@codesourcery.com>
2333
2334         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
2335         something changed.
2336
2337 2015-11-17  Tom de Vries  <tom@codesourcery.com>
2338
2339         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
2340         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
2341         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
2342
2343 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
2344
2345         * regrename.c (regrename_find_superclass): New function, code moved
2346         from ...
2347         (rename_chains): ... here.  Call it.
2348         * regrename.h (regrename_find_superclass): Declare.
2349
2350         * regrename.c (record_out_operands): Terminate earlyclobbered
2351         operands here.
2352
2353         PR target/66785
2354         * regrename.c (record_operand_use): Keep track of failed operands
2355         and stop appending if we see any.
2356         * regrename.h (struct operand_rr_info): Add a failed field and shrink
2357         n_chains to short.
2358
2359 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
2360
2361         PR 48568
2362         * doc/extend.texi (Common Function Attributes) [visibility]:
2363         Add cross-references to matching variable and type attributes.
2364         (Common Variable Attributes) [visibility]: Add missing entry.
2365
2366 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2367
2368         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
2369         entries that map directly to optabs.
2370
2371 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2372
2373         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
2374         entries that map directly to optabs.
2375
2376 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2377
2378         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
2379         * internal-fn.c (direct_internal_fn_array): Update accordingly.
2380         * tree-vectorizer.h (vectorizable_function): Delete.
2381         * tree-vect-stmts.c: Include internal-fn.h.
2382         (vectorizable_internal_function): New function.
2383         (vectorizable_function): Inline into...
2384         (vectorizable_call): ...here.  Explicitly reject calls that read
2385         from or write to memory.  Try using an internal function before
2386         falling back on the old vectorizable_function behavior.
2387
2388 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2389
2390         * target.def (builtin_vectorized_function): Take a combined_fn (in
2391         the form of an unsigned int) rather than a function decl.
2392         (builtin_md_vectorized_function): New.
2393         * targhooks.h (default_builtin_vectorized_function): Replace the
2394         fndecl argument with an unsigned int.
2395         (default_builtin_md_vectorized_function): Declare.
2396         * targhooks.c (default_builtin_vectorized_function): Replace the
2397         fndecl argument with an unsigned int.
2398         (default_builtin_md_vectorized_function): New function.
2399         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
2400         New hook.
2401         * doc/tm.texi: Regenerate.
2402         * tree-vect-stmts.c (vectorizable_function): Update call to
2403         builtin_vectorized_function, also passing internal functions.
2404         Call builtin_md_vectorized_function for target-specific builtins.
2405         * config/aarch64/aarch64-protos.h
2406         (aarch64_builtin_vectorized_function): Replace fndecl argument
2407         with an unsigned int.
2408         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
2409         (aarch64_builtin_vectorized_function): Update after above changes.
2410         Use CASE_CFN_*.
2411         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
2412         fndecl argument with an unsigned int.
2413         * config/arm/arm-builtins.c: Include case-cfn-macros.h
2414         (arm_builtin_vectorized_function): Update after above changes.
2415         Use CASE_CFN_*.
2416         * config/i386/i386.c: Include case-cfn-macros.h
2417         (ix86_veclib_handler): Take a combined_fn rather than a
2418         built_in_function.
2419         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
2420         mathfn_built_in rather than calling builtin_decl_implicit directly.
2421         (ix86_builtin_vectorized_function) Update after above changes.
2422         Use CASE_CFN_*.
2423         * config/rs6000/rs6000.c: Include case-cfn-macros.h
2424         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
2425         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
2426         than calling builtin_decl_implicit directly.
2427         (rs6000_builtin_vectorized_function): Update after above changes.
2428         Use CASE_CFN_*.  Move BUILT_IN_MD to...
2429         (rs6000_builtin_md_vectorized_function): ...this new function.
2430         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
2431
2432 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2433
2434         * tree-vect-patterns.c: Include internal-fn.h.
2435         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
2436
2437 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2438
2439         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
2440         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
2441
2442 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2443
2444         * builtins.c (expand_errno_check, expand_builtin_mathfn)
2445         (expand_builtin_mathfn_2): Delete.
2446         (expand_builtin): Remove handling of functions with
2447         internal function equivalents.
2448         * internal-fn.def (SET_EDOM): New internal function.
2449         * internal-fn.h (set_edom_supported_p): Declare.
2450         * internal-fn.c (expand_SET_EDOM): New function.
2451         (set_edom_supported_p): Likewise.
2452         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
2453         Rewrite comment at head of file.
2454         (is_call_dce_candidate): Rename to...
2455         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
2456         or gimple_call_builtin_p here.
2457         (edom_only_function): New function.
2458         (shrink_wrap_one_built_in_call_with_conds): New function, split out
2459         from...
2460         (shrink_wrap_one_built_in_call): ...here.
2461         (can_use_internal_fn, use_internal_fn): New functions.
2462         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
2463         for calls that have an lhs.
2464         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
2465         (pass_call_cdce::execute): Skip blocks that are optimized for size.
2466         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
2467         calls with an lhs.
2468         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
2469         at -O and above.
2470
2471 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2472
2473         * builtins.h (called_as_built_in): Declare.
2474         * builtins.c (called_as_built_in): Make external.
2475         * internal-fn.h (expand_internal_call): Define a variant that
2476         specifies the internal function explicitly.
2477         * internal-fn.c (expand_load_lanes_optab_fn)
2478         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
2479         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
2480         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
2481         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
2482         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
2483         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
2484         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
2485         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
2486         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
2487         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
2488         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
2489         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
2490         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
2491         argument.
2492         (internal_fn_expanders): Update prototype.
2493         (expand_internal_call): Define a variant that specifies the
2494         internal function explicitly. Use it to implement the previous
2495         interface.
2496         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
2497         functions as calls to internal functions.
2498
2499 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2500
2501         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
2502         (generated_files): Likewise.
2503         (s-cfn-operators, cfn-operators.pd): New rules.
2504         (s-match): Depend on cfn-operators.pd.
2505         * gencfn-macros.c: Expand comment to describe -o behavior.
2506         (print_define_operator_list): New function.
2507         (main): Accept -o.  Call print_define_operator_list.
2508         * genmatch.c (main): Add the current directory to the include path.
2509         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
2510         instead.
2511
2512 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2513
2514         * doc/match-and-simplify.texi: Document the "null" identifier.
2515         * genmatch.c (id_base::NULL_ID): New kind.
2516         (null_id): New variable.
2517         (get_operator): Add a parameter that says whether null identifiers
2518         are allowed.
2519         (contains_id): New function.
2520         (lower_for): Skip substitutions that would have a null_id in
2521         either the match or the result.
2522         (parser::parse_for): Allow the null identifier to be used.
2523         (parser::parse_operator_list): Likewise.
2524         (main): Initialize null_id.
2525
2526 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2527
2528         * match.pd: Use HYPOT and COS rather than hypot and cos.
2529         Use CASE_CFN_* macros.  Guard log/exp folds with
2530         SCALAR_FLOAT_TYPE_P.
2531         * genmatch.c (internal_fn): New enum.
2532         (fn_id::fn): Change to an unsigned int.
2533         (fn_id::fn_id): Accept internal_fn too.
2534         (add_builtin): Rename to...
2535         (add_function): ...this and turn into a template.
2536         (get_operator): Only try one variation if the original name fails.
2537         Only add _EXPR if the original name was all lower case.
2538         Try converting internal and built-in function names to their
2539         CFN equivalents.
2540         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
2541         (dt_simplify::gen_1): Likewise.
2542         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
2543         and get_call_combined_fn for generic.
2544         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
2545         (decision_tree::gen): Likewise.
2546         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
2547         Use add_function rather than add_builtin.  Register internal
2548         functions too.
2549         * generic-match-head.c: Include case-cfn-macros.h.
2550         * gimple-fold.c (replace_stmt_with_simplification): Use
2551         gimple_call_combined_fn to test whether we can keep an
2552         existing call.
2553         * gimple-match.h (code_helper): Replace built_in_function
2554         with combined_fn.
2555         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
2556         and case-fn-macros.h.
2557         (gimple_resimplify1): Use fold_const_call.
2558         (gimple_resimplify2, gimple_resimplify3): Likewise.
2559         (build_call_internal, build_call): New functions.
2560         (maybe_push_res_to_seq): Use them.
2561         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
2562         rather than a built-in function.
2563         * tree.h (build_call_expr_internal_loc): Declare.
2564         (maybe_build_call_expr_loc): Likewise.
2565         * tree.c (build_call_expr_internal_loc_array): New function.
2566         (maybe_build_call_expr_loc): Likewise.
2567
2568 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2569
2570         * builtins.h (mathfn_built_in): Add a variant that takes
2571         a combined_fn.
2572         * builtins.c: Include case-cfn-macros.h.
2573         (CASE_MATHFN): Use CASE_CFN_*.
2574         (CASE_MATHFN_REENT): Use CFN_ codes.
2575         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
2576         argument with a combined_fn.
2577         (mathfn_built_in): Add a variant that takes a combined_fn.
2578         (expand_builtin_int_roundingfn_2): Update callers accordingly.
2579         (fold_builtin_sincos, fold_builtin_classify): Likewise.
2580
2581 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2582
2583         * tree-vect-patterns.c: Include case-cfn-macros.h.
2584         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
2585
2586 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2587
2588         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
2589         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
2590         (pass_cse_sincos::execute): Likewise.
2591
2592 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2593
2594         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
2595         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
2596         (decrement_power, acceptable_pow_call): Likewise.
2597         (attempt_builtin_copysign): Likewise.
2598
2599 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2600
2601         * tree-vrp.c: Include case-cfn-macros.h.
2602         (extract_range_basic): Switch on combined_fn rather than handling
2603         built-in functions and internal functions separately.
2604
2605 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2606
2607         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
2608         than a built_in_function.
2609         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2610         a function decl.
2611         (integer_valued_real_call_p): Likewise.
2612         * fold-const.c: Include case-cfn-macros.h
2613         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
2614         (negate_expr_p): Update accordingly.
2615         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2616         a function decl.
2617         (integer_valued_real_call_p): Likewise.
2618         (tree_invalid_nonnegative_warnv_p): Update accordingly.
2619         (integer_valued_real_p): Likewise.
2620         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
2621         to tree_call_nonnegative_warnv_p.
2622         (gimple_call_integer_valued_real_p): Likewise
2623         integer_valued_real_call_p.
2624         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
2625         (backprop::process_builtin_call_use): Extend to combined_fn.
2626         (strip_sign_op_1): Likewise.
2627         (backprop::process_use): Don't check for built-in calls here.
2628         (backprop::execute): Likewise.
2629         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
2630
2631 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2632
2633         * fold-const-call.h (fold_const_call): Replace built_in_function
2634         arguments with combined_fn arguments.
2635         * fold-const-call.c: Include case-cfn-macros.h.
2636         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
2637         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
2638         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
2639         built_in_function arguments with combined_fn arguments.
2640         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
2641         (fold_builtin_3): Update calls to fold_const_call.
2642
2643 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2644
2645         * Makefile.in (HASH_TABLE_H): Add GGC_H.
2646         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
2647         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
2648         (build/gencfn-macros$(build_exeext): New rules.
2649         (genprogerr): Add cfn-macros.
2650         * hash-set.h (hash_set): Use the traits value_type as the key.
2651         * gencfn-macros.c: New file.
2652
2653 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2654
2655         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
2656         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
2657         * builtins.c (associated_internal_fn): Handle them.
2658
2659 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2660
2661         * builtins.h (associated_internal_fn): Declare.
2662         (replacement_internal_fn): Likewise.
2663         * builtins.c: Include internal-fn.h
2664         (associated_internal_fn, replacement_internal_fn): New functions.
2665         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
2666         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
2667         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
2668         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
2669         (LDEXP): New functions.
2670         * internal-fn.c: Include recog.h.
2671         (unary_direct, binary_direct): New macros.
2672         (expand_direct_optab_fn): New function.
2673         (expand_unary_optab_fn): New macro.
2674         (expand_binary_optab_fn): Likewise.
2675         (direct_unary_optab_supported_p): Likewise.
2676         (direct_binary_optab_supported_p): Likewise.
2677
2678 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2679
2680         * coretypes.h (tree_pair): New type.
2681         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
2682         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
2683         * internal-fn.h (direct_internal_fn_info): New structure.
2684         (direct_internal_fn_array): Declare.
2685         (direct_internal_fn_p, direct_internal_fn): New functions.
2686         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
2687         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
2688         (mask_store_direct, store_lanes_direct): New macros.
2689         (direct_internal_fn_array) New array.
2690         (get_multi_vector_move): Return the optab handler without asserting
2691         that it is available.
2692         (expand_LOAD_LANES): Rename to...
2693         (expand_load_lanes_optab_fn): ...this and add an optab argument.
2694         (expand_STORE_LANES): Rename to...
2695         (expand_store_lanes_optab_fn): ...this and add an optab argument.
2696         (expand_MASK_LOAD): Rename to...
2697         (expand_mask_load_optab_fn): ...this and add an optab argument.
2698         (expand_MASK_STORE): Rename to...
2699         (expand_mask_store_optab_fn): ...this and add an optab argument.
2700         (direct_internal_fn_types, direct_optab_supported_p)
2701         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
2702         (direct_internal_fn_supported_p): New functions.
2703         (direct_mask_load_optab_supported_p): New macro.
2704         (direct_load_lanes_optab_supported_p): Likewise.
2705         (direct_mask_store_optab_supported_p): Likewise.
2706         (direct_store_lanes_optab_supported_p): Likewise.
2707
2708 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2709
2710         * tree-core.h (internal_fn): Move immediately after the definition
2711         of built_in_function.
2712         (combined_fn): New enum.
2713         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
2714         (internal_fn_p, as_internal_fn): New functions.
2715         (get_call_combined_fn, combined_fn_name): Declare.
2716         * tree.c (get_call_combined_fn): New function.
2717         (combined_fn_name): Likewise.
2718         * gimple.h (gimple_call_combined_fn): Declare.
2719         * gimple.c (gimple_call_combined_fn): New function.
2720
2721 2015-11-17  Martin Sebor  <msebor@redhat.com>
2722
2723         PR c++/68308
2724         * cp/init.c (build_new_1): Check for expression constness
2725         the right way.
2726
2727 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
2728
2729         PR target/53587
2730         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
2731         option list.
2732         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
2733         discussion of the Microsoft structure layout details here from
2734         its former home in extend.texi.
2735         * doc/extend.texi (x86 Variable Attributes): Replace detailed
2736         discussion with pointer to its new location.  Add cross-reference
2737         to corresponding type attributes.
2738         (x86 Type Attributes): Add cross-references to command-line options
2739         and variable attributes.
2740
2741 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
2742
2743         PR middle-end/68134
2744         * targhooks.c (default_get_mask_mode): Filter out
2745         scalar modes returned by mode_for_vector.
2746
2747 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2748
2749         PR target/68143
2750         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
2751         offset from dstbase and use it appropriately in
2752         adjust_automodify_address.
2753         (arm_block_set_aligned_vect): Likewise.
2754
2755 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2756
2757         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
2758         (MULTILIB_DIRNAMES): Adjust accordingly.
2759
2760 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
2761
2762         * config/aarch64/aarch64-cores.def (cortex-a35): New.
2763         * config/aarch64/aarch64.c (cortexa35_tunings): New.
2764         * config/aarch64/aarch64-tune.md: Regenerate.
2765         * doc/invoke.texi (-mcpu): Add Cortex-A35
2766
2767 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
2768
2769         PR target/68263
2770         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
2771         to 32 for IAMCU.
2772         * config/i386/sse.md (*mov<mode>_internal): Always enable
2773         AVX and SSE unaligned moves for IAMCU.
2774
2775 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
2776
2777         * tree-if-conv.c: Include varasm.h
2778         (ref_DR_map): Define.
2779         (baseref_DR_map): Like wise
2780         (struct ifc_dr): Add new tree predicate field.
2781         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
2782         (memrefs_read_or_written_unconditionally): Remove.
2783         (write_memrefs_written_at_least_once): Remove.
2784         (ifcvt_memrefs_wont_trap): Use hash maps to query
2785         unconditional read/written information.
2786         (if_convertible_loop_p_1):  Initialize hash maps and predicates
2787         before hashing data references and delete hashmaps at the end.
2788
2789 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
2790
2791         PR 56036
2792         * doc/invoke.texi (Optimize Options): Move @end table to the right
2793         place.
2794
2795 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
2796
2797         PR 65129
2798         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
2799         return value.
2800
2801 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2802
2803         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
2804         128-bit types, just types that fit in a single vector.
2805         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
2806
2807 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
2808
2809         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
2810         in the user documentation.
2811         (define_peephole2, define_split): Similarly.
2812
2813 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
2814
2815         * lto-streamer-out.c (write_global_references): Adjust integer type.
2816         (lto_output_decl_state_refs): Likewise.
2817
2818 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2819
2820         * config/arm/arm-cores.def (cortex-a35): New.
2821         * config/arm/arm.c (arm_cortex_a35_tune): New.
2822         * config/arm/arm-tables.opt: Regenerate.
2823         * config/arm/arm-tune.md: Regenerate.
2824         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
2825         * config/arm/t-aprofile: Likewise.
2826         * doc/invoke.texi (-mcpu): Likewise.
2827
2828 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
2829
2830         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
2831         and qdf24xx and xgene1 to match -march=armv8-a.
2832
2833 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
2834
2835         PR rtl-optimization/68330
2836         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
2837         of LSHIFTRT by a non-zero constant integer.
2838
2839 2015-11-16  Richard Biener  <rguenther@suse.de>
2840
2841         PR tree-optimization/68306
2842         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
2843         bogus copying from verify_data_ref_alignment and use continue
2844         instead of return.
2845
2846 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
2847             Kaz Kojima  <kkojima@gcc.gnu.org>
2848
2849         PR target/68277
2850         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
2851         operands[2].
2852         (*addsi3): Add another insn_and_split variant for reload.
2853
2854 2015-11-16  Richard Biener  <rguenther@suse.de>
2855
2856         PR middle-end/68117
2857         * cfgexpand.c (pass_expand::execute): Destroy the edge
2858         redirection var map before setting RTL CFG hooks.
2859
2860 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
2861
2862         * config/i386/sse.md (reduc_splus_v8df): Rename to...
2863         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
2864
2865         (reduc_splus_v4df): Rename to...
2866         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
2867
2868         (reduc_splus_v2df): Rename to...
2869         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
2870
2871         (reduc_splus_v16sf): Rename to...
2872         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
2873
2874         (reduc_splus_v8sf): Rename to...
2875         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
2876
2877         (reduc_splus_v4sf): Rename to...
2878         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
2879
2880         (reduc_<code>_<mode>, all 3 variants): Rename each to...
2881         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
2882
2883         (reduc_umin_v8hf): Rename to...
2884         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
2885
2886 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2887
2888         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
2889         without additional conditions.
2890         * doc/extend.texi (@item simd): New.
2891
2892 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2893
2894         * passes.c (first_pass_instance): Remove variable.
2895         (execute_todo): Remove setting of first_pass_instance.
2896         * tree-pass.h (first_pass_instance): Remove declaration.
2897
2898 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2899
2900         * passes.def: Add arg to pass_ccp pass instantiation.
2901         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
2902         instead of first_pass_instance.
2903         (do_ssa_ccp): Add and handle param nonzero_p.
2904         (pass_ccp::pass_ccp): Initialize nonzero_p.
2905         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
2906         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
2907         (pass_ccp::nonzero_p): New private member.
2908
2909 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2910
2911         * passes.def: Add arg to pass_object_sizes pass instantiation.
2912         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
2913         insert_min_max_p.
2914         (pass_object_sizes::set_pass_param): New member function.  Set
2915         insert_min_max_p.
2916         (pass_object_sizes::insert_min_max_p): New private member.
2917         (pass_object_sizes::execute): Use insert_min_max_p instead of
2918         first_pass_instance.
2919
2920 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2921
2922         * passes.def: Add arg to pass_dominator pass instantiation.
2923         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
2924         of comment.
2925         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
2926         may_peel_loop_headers_p.
2927         (pass_dominator::set_pass_param): New member function.  Set
2928         may_peel_loop_headers_p.
2929         (pass_dominator::may_peel_loop_headers_p): New private member.
2930         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
2931         first_pass_instance.
2932
2933 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2934
2935         * passes.def: Add arg to pass_reassoc pass instantiation.
2936         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
2937         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
2938         of first_pass_instance.
2939         (execute_reassoc): Add and handle insert_powi_p parameter.
2940         (pass_reassoc::insert_powi_p): New private member.
2941         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
2942         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
2943         (pass_reassoc::execute): Call execute_reassoc with extra arg.
2944
2945 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2946
2947         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
2948         * gen-pass-instances.awk (handle_line): Same.
2949         * pass_manager.h (class pass_manager): Define and undefine
2950         NEXT_PASS_WITH_ARG.
2951         * passes.c (opt_pass::set_pass_param): New function.
2952         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
2953         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
2954         * tree-pass.h (gimple_opt::set_pass_param): Declare.
2955         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
2956         warn_array_bounds_p parameter.
2957         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
2958         (pass_vrp::set_pass_param): New function.
2959         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
2960         (pass_vrp::warn_array_bounds_p): New private member.
2961
2962 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2963
2964         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
2965         (output_probe_stack_range): Rotate the loop and simplify.
2966
2967 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2968
2969         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
2970         (output_probe_stack_range): Rotate the loop and simplify.
2971
2972 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2973
2974         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
2975         an lea instruction when possible.
2976         (output_adjust_stack_and_probe): Rotate the loop and simplify.
2977         (ix86_emit_probe_stack_range): Adjust.
2978         (output_probe_stack_range): Rotate the loop and simplify.
2979
2980 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2981
2982         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
2983         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
2984         with appropriate pragma GCC target.
2985
2986 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2987
2988         PR target/65837
2989         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
2990         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
2991
2992 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2993
2994         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
2995         (cortexa57_tunings): Use it.
2996
2997 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2998
2999         PR target/65837
3000         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
3001         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
3002         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
3003         undefine __ARM_FP.
3004         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
3005         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
3006         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
3007         * doc/extend.texi (-mfpu=): Describe attribute.
3008
3009 2015-11-16  Christian Bruel  <christian.bruel@st.com>
3010
3011         PR target/65837
3012         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
3013         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
3014         arm_init_neon_builtins.
3015         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
3016         (arm_init_neon_builtins_internal)
3017         (arm_init_crypto_builtins_internal):
3018         Test and set neon_set_p, neon_crypto_set_p.
3019         (neon_set_p, neon_crypto_set_p): New static booleans.
3020
3021 2015-11-16  Christian Bruel  <christian.bruel@st.com>
3022
3023         PR target/65837
3024         * config/arm/arm.c (arm_fpu_desc): Remove.
3025         (all_fpus): Make global.
3026         (arm_option_override): Use FPU TARGET accessors.
3027         (arm_declare_function_name): Likewise.
3028         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
3029         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
3030         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
3031         (TARGET_NEON): Likewise.
3032         (all_fpus): Declare extern.
3033         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
3034         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
3035
3036 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3037
3038         PR middle-end/68366
3039         * sdbout.c: Include emit-rtl.h and function.h.
3040
3041 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
3042
3043         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
3044         Remove support for FreeBSD 5 and earlier.
3045
3046 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3047
3048         * configure: Regenerate.
3049         * configure.ac: Always define ENABLE_OFFLOADING.
3050         * cgraph.c (cgraph_node::create): Adjust.
3051         * gcc.c (process_command): Likewise.
3052         * omp-low.c (create_omp_child_function): Likewise.
3053         (expand_omp_target): Likewise.
3054         * varpool.c (varpool_node::get_create): Likewise.
3055
3056 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3057
3058         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
3059         * df-scan.c (df_get_exit_block_use_set): Adjust.
3060         * except.c (expand_eh_return): Likewise.
3061
3062 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3063
3064         * config/i386/i386.h (TARGET_PECOFF): Remove define.
3065         * defaults.h (TARGET_PECOFF): New default definition.
3066         * varasm.c (handle_vtv_comdat_section): Adjust.
3067
3068 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3069
3070         * defaults.h: New definition of SDB_DEBUGGING_INFO.
3071         * doc/tm.texi: Regenerate.
3072         * doc/tm.texi.in: Adjust.
3073         * final.c (rest_of_clean_state): Remove check if
3074         SDB_DEBUGGING_INFO is defined.
3075         * function.c (number_blocks): Likewise.
3076         * output.h: Likewise.
3077         * sdbout.c: Likewise.
3078         * toplev.c (process_options): Likewise.
3079
3080 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3081
3082         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
3083         (enum sdb_masks): Likewise.
3084         * sdbout.c (plain_type_1): Likewise.
3085         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
3086
3087 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
3088
3089         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
3090         internal calls - 0 if ordered simd and 1 for ordered threads simd.
3091         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
3092         argument is 1, replace it with GOMP_ordered_* call instead of removing
3093         it.
3094
3095 2015-11-13  Rich Felker <dalias@libc.org>
3096
3097         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
3098         address loading hack for FDPIC targets.
3099
3100 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
3101             Jeff Law  <law@redhat.com>
3102
3103         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
3104         * common.opt (-fsplit-paths): New flag controlling path splitting.
3105         * doc/invoke.texi (fsplit-paths): Document.
3106         * opts.c (default_options_table): Add -fsplit-paths to -O2.
3107         * passes.def: Add split_paths pass.
3108         * timevar.def (TV_SPLIT_PATHS): New timevar.
3109         * tracer.c: Include "tracer.h"
3110         (ignore_bb_p): No longer static.
3111         (transform_duplicate): New function, broken out of tail_duplicate.
3112         (tail_duplicate): Use transform_duplicate.
3113         * tracer.h (ignore_bb_p): Declare
3114         (transform_duplicate): Likewise.
3115         * tree-pass.h (make_pass_split_paths): Declare.
3116         * gimple-ssa-split-paths.c: New file.
3117
3118 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
3119             Marek Polacek  <polacek@redhat.com>
3120             Jason Merrill  <jason@redhat.com>
3121
3122         * convert.c (maybe_fold_build1_loc): New.
3123         (maybe_fold_build2_loc): New.
3124         (convert_to_pointer_1): Split out from convert_to_pointer.
3125         (convert_to_pointer_nofold): New.
3126         (convert_to_real_1): Split out from convert_to_real.
3127         (convert_to_real_nofold): New.
3128         (convert_to_integer_1): Split out from convert_to_integer.
3129         (convert_to_integer_nofold): New.
3130         (convert_to_complex_1): Split out from convert_to_complex.
3131         (convert_to_complex_nofold): New.
3132         * convert.h: Declare new functions.
3133         * tree-complex.c (create_one_component_var): Break up line to
3134         avoid sequence point issues.
3135
3136 2015-11-13  Jason Merrill  <jason@redhat.com>
3137
3138         * fold-const.c (fold_convert_const): Fold changing cv-quals on
3139         VECTOR_CST.
3140
3141         * hash-map.h (hash_map::empty): New.
3142
3143 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3144
3145         * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
3146         (oacc_loop_fixed_partitions): Correct return type to bool.
3147         (oacc_loop_auto_partitions): New.
3148         (oacc_loop_partition): Take mask argument, call
3149         oacc_loop_auto_partitions.
3150         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
3151
3152 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3153
3154         * config/rs6000/constraints.md (we constraint): New constraint for
3155         64-bit power9 vector support.
3156         (wL constraint): New constraint for the element in a vector that
3157         can be addressed by the MFVSRLD instruction.
3158
3159         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
3160         declaration.
3161         (convert_int_to_float128): Likewise.
3162         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
3163         hardware support for IEEE 128-bit floating point.
3164         (rs6000_expand_float128_convert): Likewise.
3165         (convert_float128_to_int): Likewise.
3166         (convert_int_to_float128): Likewise.
3167
3168         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
3169         ISA 3.0 hardware IEEE 128-bit floating point.
3170         (UNSPEC_IEEE128_MOVE): Likewise.
3171         (UNSPEC_IEEE128_CONVERT): Likewise.
3172         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
3173         (Ff): Add support for DImode.
3174         (Fv): Likewise.
3175         (any_fix code iterator): New and updated iterators for IEEE
3176         128-bit floating point hardware support.
3177         (any_float code iterator): Likewise.
3178         (s code attribute): Likewise.
3179         (su code attribute): Likewise.
3180         (az code attribute): Likewise.
3181         (uns code attribute): Likewise.
3182         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
3183         floating point hardware support.
3184         (abs<mode>2, FLOAT128 iterator): Likewise.
3185         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
3186         floating point hardware.
3187         (sub<mode>3, IEEE128 iterator): Likewise.
3188         (mul<mode>3, IEEE128 iterator): Likewise.
3189         (div<mode>3, IEEE128 iterator): Likewise.
3190         (copysign<mode>3, IEEE128 iterator): Likewise.
3191         (sqrt<mode>2, IEEE128 iterator): Likewise.
3192         (neg<mode>2, IEEE128 iterator): Likewise.
3193         (abs<mode>2, IEEE128 iterator): Likewise.
3194         (nabs<mode>2, IEEE128 iterator): Likewise.
3195         (fma<mode>4_hw, IEEE128 iterator): Likewise.
3196         (fms<mode>4_hw, IEEE128 iterator): Likewise.
3197         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
3198         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
3199         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
3200         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
3201         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
3202         (fix_fixuns code attribute): Likewise.
3203         (float_floatuns code attribute): Likewise.
3204         (fix<uns>_<mode>si2_hw): Likewise.
3205         (fix<uns>_<mode>di2_hw): Likewise.
3206         (float<uns>_<mode>si2_hw): Likewise.
3207         (float<uns>_<mode>di2_hw): Likewise.
3208         (xscvqp<su>wz_<mode>): Likewise.
3209         (xscvqp<su>dz_<mode>): Likewise.
3210         (xscv<su>dqp_<mode): Likewise.
3211         (ieee128_mfvsrd): Likewise.
3212         (ieee128_mfvsrwz): Likewise.
3213         (ieee128_mtvsrw): Likewise.
3214         (ieee128_mtvsrd): Likewise.
3215         (trunc<mode>df2_odd): Likewise.
3216         (cmp<mode>_h): Likewise.
3217         (128-bit GPR splitters): Don't split a 128-bit move that is a
3218         direct move between GPR and vector registers using ISA 3.0 direct
3219         move instructions.
3220         (maddld4): Add support for the ISA 3.0 integer multiply-add
3221         instruction.
3222
3223         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
3224         debugging.
3225         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
3226         constraint.  Disable the VSX<->GPR direct move helpers if we have
3227         the MFVSRLD and MTVSRDD instructions.
3228         (rs6000_secondary_reload_simple_move): Add support for doing
3229         vector direct moves directly without additional scratch registers
3230         if we have ISA 3.0 instructions.
3231         (rs6000_secondary_reload_direct_move): Update comments.
3232         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
3233         instructions.
3234
3235         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
3236         direct move instructions.
3237         (vsx_movti_64bit): Likewise.
3238         (vsx_extract_<mode>): Likewise.
3239
3240         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
3241         macros for ISA 3.0 direct move instructions.
3242         (TARGET_DIRECT_MOVE_128): Likewise.
3243         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
3244         instruction.
3245
3246         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
3247         constraints.  Update wa documentation to say not to use %x<n> on
3248         instructions that only take Altivec registers.
3249
3250 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
3251
3252         * Makefile.in (OBJS): Add gcc-rich-location.o.
3253         * diagnostic.c (diagnostic_append_note): Pass line_table to
3254         rich_location ctor.
3255         (emit_diagnostic): Likewise.
3256         (inform): Likewise.
3257         (inform_n): Likewise.
3258         (warning): Likewise.
3259         (warning_at): Likewise.
3260         (warning_n): Likewise.
3261         (pedwarn): Likewise.
3262         (permerror): Likewise.
3263         (error): Likewise.
3264         (error_n): Likewise.
3265         (error_at): Likewise.
3266         (sorry): Likewise.
3267         (fatal_error): Likewise.
3268         (internal_error): Likewise.
3269         (internal_error_no_backtrace): Likewise.
3270         (source_range::debug): Likewise.
3271         * gcc-rich-location.c: New file.
3272         * gcc-rich-location.h: New file.
3273         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
3274         (warning_at): Likewise.
3275         * gimple.h (gimple_set_block): Use set_block function.
3276         * input.c (dump_line_table_statistics): Dump stats on how many
3277         ranges were optimized vs how many needed ad-hoc table.
3278         (write_digit_row): Add "map" param; use its range_bits
3279         to calculate the per-character offset.
3280         (dump_location_info): Print the range and column bits for each
3281         ordinary map.  Use the range bits to calculate the per-character
3282         offset.  Pass the map as a new param to the various calls to
3283         write_digit_row.  Eliminate uses of
3284         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
3285         * print-tree.c (print_node): Print any source range information.
3286         * rtl-error.c (diagnostic_for_asm): Likewise.
3287         * toplev.c (general_init): Initialize line_table's
3288         default_range_bits.
3289         * tree-cfg.c (move_block_to_fn): Likewise.
3290         (move_block_to_fn): Likewise.
3291         * tree-inline.c (copy_phis_for_bb): Likewise.
3292         * tree.c (tree_set_block): Likewise.
3293         (get_pure_location): New function.
3294         (set_source_range): New functions.
3295         (set_block): New function.
3296         (set_source_range): New functions.
3297         * tree.h (CAN_HAVE_RANGE_P): New.
3298         (EXPR_LOCATION_RANGE): New.
3299         (EXPR_HAS_RANGE): New.
3300         (get_expr_source_range): New inline function.
3301         (DECL_LOCATION_RANGE): New.
3302         (set_source_range): New decls.
3303         (get_decl_source_range): New inline function.
3304
3305 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
3306
3307         PR tree-optimization/67682
3308         * tree-vect-slp.c (vect_split_slp_store_group): New.
3309         (vect_analyze_slp_instance): During basic block SLP, recurse on
3310         subgroups if vect_build_slp_tree fails after 1st vector.
3311
3312 2015-11-13  Christian Bruel  <christian.bruel@st.com>
3313
3314         PR target/65837
3315         * config/arm/arm.c (arm_option_override): Move NEON check...
3316         (arm_option_check_internal): here
3317         (arm_file_start): Move .fpu print...
3318         (arm_declare_function_name): here
3319         (arm_option_print): Dump current fpu name.
3320         * config/arm/arm.opt (arm_fpu_index): Mark Save.
3321
3322 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
3323             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3324
3325         * combine.c (subst): Don't substitute or simplify when
3326         handling register-wise widening multiply.
3327         (force_to_mode): Likewise.
3328
3329 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
3330
3331         PR tree-optimization/68264
3332         * tree-call-cdce.c (gen_one_condition): Update commentary.
3333         (gen_conditions_for_pow_int_base): Invert the sense of the tests
3334         passed to gen_one_condition.
3335         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
3336         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
3337         using EDGE_FALSE_VALUE for edges to the call block and
3338         EDGE_TRUE_VALUE for the others.
3339
3340 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3341
3342         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
3343         complex types.
3344
3345 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3346
3347         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
3348
3349 2015-11-13  Tom de Vries  <tom@codesourcery.com>
3350
3351         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
3352         len_of_prefix.
3353
3354 2015-11-13  Tom de Vries  <tom@codesourcery.com>
3355
3356         * gen-pass-instances.awk (handle_line): Add args_str variable.
3357
3358 2015-11-13  Martin Liska  <mliska@suse.cz>
3359
3360         * graphite-poly.c (free_scop): Release scop->drs vector.
3361         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
3362         Release dom vector.
3363         (try_generate_gimple_bb): Use vNULL as a default initialization
3364         for vectors.
3365
3366 2015-11-13  Martin Liska  <mliska@suse.cz>
3367
3368         PR ipa/68311
3369         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
3370         Replace array initialization (using a variable post-increment)
3371         that possible triggers multiple unsequenced modifications
3372         with a pair of pushes to a vector.
3373
3374 2015-11-13  Richard Biener  <rguenther@suse.de>
3375
3376         PR tree-optimization/68306
3377         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
3378         loop related checks ...
3379         (vect_verify_datarefs_alignment): ... here.
3380         (vect_slp_analyze_and_verify_node_alignment): Compute and
3381         verify alignment of the single DR that it matters.
3382         * tree-vect-stmts.c (vectorizable_store): Add an assert.
3383         (vectorizable_load): Add a comment.
3384         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
3385         for determining load cost.
3386
3387 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3388
3389         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
3390         mix of boolean and integer vectors in a single statement.
3391         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
3392         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
3393         determine constant type.
3394         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
3395         for loop invariants.
3396
3397 2015-11-13  Alan Hayward <alan.hayward@arm.com>
3398
3399         PR tree-optimization/66558
3400         * tree-vect-loop.c (is_integer_induction):Add.
3401         (vectorizable_reduction): Add integer induction checks.
3402
3403 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
3404
3405         Revert [ARM] Remove neon-testgen.ml and generated tests.
3406
3407         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3408
3409         [ARM] Remove neon-testgen.ml and generated tests.
3410
3411         * config/arm/neon-testgen.ml: Remove.
3412
3413 2015-11-13  Richard Biener  <rguenther@suse.de>
3414
3415         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
3416         Signal fatal failure if early checks fail.
3417         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
3418         do not bother testing further vector sizes.
3419
3420 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
3421
3422         * config/i386/predicates.md (misaligned_operand): Return true if
3423         operand is aligned to less than its natural alignmnet.
3424
3425 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3426
3427         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
3428         (vec_cmpu@var{m}@var{n}): New item.
3429         (vcond@var{m}@var{n}): Specify comparison is signed.
3430         (vcondu@var{m}@var{n}): New item.
3431         (vcond_mask_@var{m}@var{n}): New item.
3432         (maskload@var{m}@var{n}): New item.
3433         (maskstore@var{m}@var{n}): New item.
3434
3435 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3436
3437         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
3438         types of stored value and storage are compatible.
3439
3440 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
3441
3442         * gcc.c (POST_LINK_SPEC): Define if not already defined.
3443         (LINK_COMMAND_SPEC): Use post_link.
3444         (post_link_spec): New, initialize to POST_LINK_SPEC.
3445         (post_link): Initialize new static spec.
3446         * doc/tm.texi.in (POST_LINK_SPEC): Document.
3447         * doc/tm.texi: Regenerated.
3448
3449 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
3450
3451         PR driver/67613
3452         * Makefile.in (GCC_OBJS): Add spellcheck.o.
3453         (OBJS): Add spellcheck-tree.o.
3454         * gcc.c: Include "spellcheck.h".
3455         (suggest_option): New function.
3456         (driver::handle_unrecognized_options): Call suggest_option to
3457         provide a hint about misspelled options.
3458         * spellcheck.c: Update file comment.
3459         (levenshtein_distance): Convert 4-param implementation from static
3460         to extern scope.  Remove note about unit tests from leading
3461         comment for const char * implementation.  Move tree
3462         implementation to...
3463         * spellcheck-tree.c: New file.
3464         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
3465
3466 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
3467
3468         * Makefile.in (OBJS): Add spellcheck.o.
3469         * spellcheck.c: New file.
3470         * spellcheck.h: New file.
3471
3472 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
3473
3474         * config/ft32/ft32.md (*sne): New insn pattern.
3475
3476 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
3477
3478         * cprop.c (is_too_expensive): Remove.
3479         (gcse.h): Include.
3480         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
3481         is_too_expensive.
3482         * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
3483         * gcse.c (is_too_expensive): Rename to ...
3484         (gcse_or_cprop_is_too_expensive): ... this.
3485         Expand warning to add required size of max-gcse-memory.
3486         (one_pre_gcse_pass): Use it.
3487         (one_code_hoisting_pass): Use it.
3488         * params.def (max-gcse-memory): Increase from 50MB to 128MB.
3489
3490 2015-11-12  James Norris  <jnorris@codesourcery.com>
3491             Joseph Myers  <joseph@codesourcery.com>
3492
3493         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
3494         GF_OMP_TARGET_KIND_OACC_DECLARE.
3495         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
3496         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3497         * gimplify.c (oacc_declare_returns): New.
3498         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
3499         (device_resident_p): New function.
3500         (oacc_default_clause): Handle device_resident clause.
3501         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
3502         (gimplify_expr): Handle OACC_DECLARE.
3503         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
3504         * omp-low.c (expand_omp_target): Handle
3505         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
3506         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
3507         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
3508         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
3509         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3510         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
3511         GOMP_MAP_DEVICE_RESIDENT.
3512
3513 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3514
3515         [ARM] Remove neon-testgen.ml and generated tests.
3516
3517         * config/arm/neon-testgen.ml: Remove.
3518
3519 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
3520
3521         * config/aarch64/aarch64-cores.def (qdf24xx): New.
3522         * config/aarch64/aarch64-tune.md: Regenerated.
3523         * config/arm/arm-cores.def (qdf24xx): New.
3524         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
3525         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
3526         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
3527         (ARM Options/-mtune): Likewise.
3528
3529 2015-11-12  Martin Liska  <mliska@suse.cz>
3530
3531         * config/i386/i386.c (ix86_valid_target_attribute_p):
3532         Finalize options at the of the function.
3533         * gcc.c (driver_get_configure_time_options): Call newly
3534         introduced init_opts_obstack.
3535         * lto-wrapper.c (main): Likewise.
3536         * opts.c (init_opts_obstack): New function.
3537         (init_options_struct): Call newly introduced init_opts_obstack.
3538         * opts.h (init_options_struct): Declare.
3539
3540 2015-11-12  Martin Liska  <mliska@suse.cz>
3541
3542         PR ipa/68035
3543         * ipa-icf.c (void sem_item::set_hash): New function.
3544         (sem_function::get_hash): Use renamed m_hash member variable.
3545         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
3546         (sem_item::update_hash_by_local_refs): Likewise.
3547         (sem_variable::get_hash): Use renamed m_hash member variable.
3548         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
3549         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
3550         (sem_item_optimizer::build_graph): As the hash value of an item
3551         is lazy initialized, force the calculation.
3552         * ipa-icf.h (set_hash): Declare new function and rename hash member
3553         variable to m_hash.
3554
3555 2015-11-12  Richard Biener  <rguenther@suse.de>
3556
3557         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
3558         Rename to vect_slp_analyze_instance_dependence.
3559         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
3560         Remove WAR special-case.
3561         (vect_slp_analyze_node_dependences): Instead add more specific
3562         code here, not relying on other instances being vectorized.
3563         (vect_slp_analyze_instance_dependence): Adjust accordingly.
3564         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
3565         vertical space in dump files.
3566         (vect_print_slp_tree): Likewise.
3567         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
3568         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
3569         not vectorized stmts until after dependence analysis removed
3570         instances.  Merge alignment and dependence checks.
3571         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
3572         flag on all stmts.
3573
3574 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
3575
3576         * config/aarch64/aarch64-protos.h (tune_params): Add new members
3577         "max_case_values" and "cache_line_size".
3578         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
3579         function.
3580         (aarch64_override_options_internal): Tune heuristics based on new
3581         members in "tune_params".
3582         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3583
3584 2015-11-12  Richard Biener  <rguenther@suse.de>
3585
3586         PR tree-optimization/68306
3587         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
3588         relevant and vectorizable checks here.
3589         (vect_verify_datarefs_alignment): Add relevant check here.
3590
3591 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3592
3593         * gimplify.c (oacc_default_clause): New.
3594         (omp_notice_variable): Call it.
3595
3596 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3597
3598         PR tree-optimization/68305
3599         * tree-vect-slp.c (vect_get_constant_vectors): Support
3600         COND_EXPR with SSA_NAME as a condition.
3601
3602 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3603
3604         * config/visium/visium-protos.h (notice_update_cc): Delete.
3605         (print_operand): Likewise.
3606         (print_operand_address): Likewise.
3607
3608 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3609
3610         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
3611         FUNCTION_VALUE_REGNO_P): Remove.
3612         * config/alpha/alpha-protos.h (function_value): Remove.
3613         * config/alpha/alpha.c (function_value): Rename to...
3614         (alpha_function_value_1): ... this.  Make static.
3615         (alpha_function_value, alpha_libcall_value,
3616         alpha_function_value_regno_p): New functions.
3617         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3618         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3619
3620 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3621
3622         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3623         * config/alpha/alpha.c (alpha_memory_latency): Make static.
3624         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
3625         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3626
3627 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3628
3629         PR target/67265
3630         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
3631         assertion on the CFA register.
3632
3633 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3634
3635         * expr.c (do_store_flag): Expand vector comparison as
3636         VEC_COND_EXPR if vector comparison is not supported by target.
3637
3638 2015-11-12  Renlin Li  <renlin.li@arm.com>
3639
3640         * config/arm/arm.md (addsi3_compare_op2): Make the order of
3641         assembly pattern consistent with constraint order.
3642
3643 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3644
3645         * gen-pass-instances.awk (handle_line): Simplify match regexp.
3646
3647 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3648
3649         * gen-pass-instances.awk (handle_line): Simplify init of
3650         postfix_starts_at.
3651
3652 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3653
3654         * gen-pass-instances.awk (handle_line): Rename var where to
3655         call_starts_at.
3656
3657 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
3658
3659         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
3660         do not expand to rtl.
3661
3662 2015-11-12  Richard Biener  <rguenther@suse.de>
3663
3664         PR tree-optimization/58497
3665         * tree-vect-generic.c: Include gimplify.h.
3666         (tree_vec_extract): Lookup constant/constructor DEFs.
3667         (do_cond): Unshare cond.
3668
3669 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
3672         combined insn if the alignment of vector mode memory operand
3673         is less than ssememalign.
3674
3675 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3676
3677         * gen-pass-instances.awk (handle_line): Print parentheses and
3678         pass_name explicitly.
3679
3680 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3681
3682         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
3683         and postfix vars.
3684
3685 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3686
3687         * gen-pass-instances.awk (handle_line): Add comments.
3688
3689 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3690
3691         * gen-pass-instances.awk (handle_line): Rename len_of_end to
3692         len_of_close.
3693
3694 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3695
3696         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
3697
3698 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3699
3700         * gen-pass-instances.awk (handle_line): Restructure using early-out.
3701
3702 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3703
3704         * gen-pass-instances.awk (handle_line): Unify semicolon use.
3705
3706 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3707
3708         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
3709
3710 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3711
3712         * gen-pass-instances.awk: Add emacs indent setting.
3713
3714 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3715
3716         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
3717         to match.pd.
3718         Move Convert A/(B/C) to (A/B)*C to match.pd.
3719         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
3720         Move Optimize (X & (-A)) / A where A is a power of 2, to
3721         X >> log2(A) to match.pd.
3722
3723         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
3724         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
3725         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
3726         New simplifier.
3727         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
3728
3729 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
3730
3731         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
3732         variable.
3733         (neon_vst2_lane<mode>): Likewise.
3734         (neon_vld3_lane<mode>): Likewise.
3735         (neon_vst3_lane<mode>): Likewise.
3736         (neon_vld4_lane<mode>): Likewise.
3737         (neon_vst4_lane<mode>): Likewise.
3738
3739 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
3740             Sebastian Pop  <s.pop@samsung.com>
3741
3742         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3743         New member codegen_error
3744         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
3745         early return.
3746         (translate_isl_ast_node_user): Early return in case of error.
3747         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
3748         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
3749         (add_parameters_to_ivs_params): Remove macro.
3750         (graphite_regenerate_ast_isl): Add if_region pointer to region.
3751         * graphite-poly.c (new_poly_dr): Remove macro.
3752         (print_pdr): Same.
3753         (new_gimple_poly_bb): Same.
3754         (free_gimple_poly_bb): Same.
3755         (print_scop_params): Same.
3756         * graphite-poly.h (struct poly_dr): Same.
3757         (struct poly_bb): Add new_bb.
3758         (gbb_from_bb): Remove dead code.
3759         (pbb_from_bb): Same.
3760         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
3761         (parameter_index_in_region): Same.
3762         (find_scop_parameters): Same.
3763         (build_cross_bb_scalars_def): New.
3764         (build_cross_bb_scalars_use): New.
3765         (graphite_find_cross_bb_scalar_vars): New
3766         (try_generate_gimple_bb): Reads and Writes.
3767         (build_alias_set): Move.
3768         (gather_bbs::before_dom_children): Gather bbs visited.
3769         (build_scops): call build_alias_set.
3770         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
3771         (remove_simple_copy_phi): Delete.
3772         (remove_invariant_phi): Delete.
3773         (simple_copy_phi_p): Delete.
3774         (reduction_phi_p): Delete.
3775         (isl_id_for_dr): Remove unused param.
3776         (parameter_index_in_region_1): Remove macro usage.
3777         (set_scop_parameter_dim): Same.
3778         (add_param_constraints): Same.
3779         (add_conditions_to_constraints): Same
3780         (build_scop_iteration_domain): Same.
3781         (pdr_add_alias_set): Comment.
3782         (add_scalar_version_numbers): New.
3783         (build_poly_dr): ISL id.
3784         (build_scop_drs): Move.
3785         (build_poly_sr_1): Same.
3786         (insert_stmts): Remove.
3787         (build_poly_sr): New.
3788         (new_pbb_from_pbb): Delete.
3789         (insert_out_of_ssa_copy_on_edge): Delete.
3790         (create_zero_dim_array): Delete.
3791         (scalar_close_phi_node_p): Delete.
3792         (propagate_expr_outside_region): Delete.
3793         (rewrite_close_phi_out_of_ssa): Delete.
3794         (rewrite_phi_out_of_ssa): Delete.
3795         (rewrite_degenerate_phi): Delete.
3796         (rewrite_reductions_out_of_ssa): Delete.
3797         (rewrite_cross_bb_scalar_dependence): Delete.
3798         (handle_scalar_deps_crossing_scop_limits):
3799         (rewrite_cross_bb_scalar_deps): Delete.
3800         (build_poly_scop): Remove calls to out-of-ssa functions.
3801         * graphite.c (graphite_transform_loops): Early return in case of
3802         codegen error.
3803         * sese.c (debug_rename_map_1): Delete.
3804         (debug_rename_map): Delete.
3805         (sese_record_loop): Remove macro.
3806         (build_sese_loop_nests): Same.
3807         (new_sese_info): Same.
3808         (free_sese_info): Same.
3809         (sese_insert_phis_for_liveouts):
3810         (is_loop_closed_ssa_use): New.
3811         (number_of_phi_nodes): New.
3812         (bb_contains_loop_close_phi_nodes): New.
3813         (bb_contains_loop_phi_nodes): New.
3814         (phi_uses_name): New.
3815         (is_valid_rename):
3816         (get_rename): Add old_bb and loop_phi for more precise matching of
3817         exprs.
3818         (set_rename): Pass region.
3819         (later_of_the_two): New.
3820         (gsi_insert_earliest): New.
3821         (collect_all_ssa_names): New.
3822         (substitute_ssa_name): New.
3823         (rename_all_uses): New.
3824         (get_rename_from_scev): New.
3825         (rename_uses): Pass old_bb for more precise matching of exprs.
3826         (get_def_bb_for_const): New.
3827         (get_new_name): New.
3828         (get_loc): New.
3829         (get_edges): New.
3830         (copy_loop_phi_args): New.
3831         (copy_loop_phi_nodes): New.
3832         (get_loop_init_value): New.
3833         (find_init_value): New.
3834         (find_init_value_close_phi): New.
3835         (copy_loop_close_phi_args): New.
3836         (copy_loop_close_phi_nodes): New.
3837         (add_phi_arg_for_new_expr): New.
3838         (copy_cond_phi_args): New.
3839         (copy_cond_phi_nodes): New.
3840         (copy_phi_nodes): New.
3841         (should_copy_to_new_region): New.
3842         (set_rename_for_each_def): New.
3843         (graphite_copy_stmts_from_block): Early return in case of error.
3844         (copy_bb_and_scalar_dependences): Same.
3845         * sese.h (vec_find): New.
3846         (SESE_PARAMS): Delete.
3847         (SESE_LOOPS): Delete.
3848         (SESE_LOOP_NEST): Delete.
3849         (sese_contains_loop): Remove macro usage.
3850         (sese_nb_params): Same.
3851         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
3852
3853 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3854
3855         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
3856         isl_union_map_add_map on every pbb->schedule.
3857
3858 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3859
3860         * tree-parloops.c (create_parallel_loop): Return void.
3861
3862 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3863
3864         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
3865         block only when needed.
3866
3867 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
3868
3869         * config/alpha/alpha-protos.h (print_operand): Remove.
3870         (print_operand_address): Remove.
3871         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
3872         (PRINT_OPERAND_ADDRESS): Remove.
3873         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
3874         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
3875         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
3876         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
3877         (print_operand_address): Rename to...
3878         (alpha_print_operand_address): ...this and make static.
3879         (print_operand): Rename to...
3880         (alpha_print_operand): ...this and make static.
3881         (alpha_print_operand_punct_valid_p): New static function.
3882
3883 2015-11-11  Richard Biener  <rguenther@suse.de>
3884
3885         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
3886         Declare.
3887         (vect_analyze_data_refs_alignment): Make loop vect specific.
3888         (vect_verify_datarefs_alignment): Likewise.
3889         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
3890         Add missing continue.
3891         (vect_compute_data_ref_alignment): Export.
3892         (vect_compute_data_refs_alignment): Merge into...
3893         (vect_analyze_data_refs_alignment): ... this.
3894         (verify_data_ref_alignment): Split out from ...
3895         (vect_verify_datarefs_alignment): ... here.
3896         (vect_slp_analyze_and_verify_node_alignment): New function.
3897         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
3898         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
3899         misplaced checks on alignment.
3900         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
3901         alignment analysis after SLP discovery and do it per instance.
3902         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
3903         bother to re-try using different vector sizes.
3904
3905 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3906             Cesar Philippidis  <cesar@codesourcery.com>
3907
3908         * gimplify.c (enum omp_region_type): Add ORT_ACC,
3909         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
3910         (gimple_add_tmp_var): Add ORT_ACC checks.
3911         (gimplify_var_or_parm_decl): Likewise.
3912         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
3913         (omp_add_variable): Look in outer contexts for openacc and allow
3914         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
3915         (omp_notice_variable, omp_is_private, omp_check_private): Add
3916         ORT_ACC checks.
3917         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
3918         Permit private openacc reductions.
3919         (gimplify_oacc_cache): Specify ORT_ACC.
3920         (gimplify_omp_workshare): Adjust OpenACC region types.
3921         (gimplify_omp_target_update): Likewise.
3922         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
3923         (lower-rec_input_clauses): Don't handle openacc firstprivate
3924         references here.
3925         (lower_omp_target): Emit initializers for openacc firstprivate vars.
3926
3927 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3928
3929         PR target/67265
3930         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
3931         frame pointer for stack checking if non-call exceptions aren't used.
3932         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
3933
3934 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
3935
3936         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
3937         [LA]SHIFTRT.
3938
3939 2015-11-11  Martin Liska  <mliska@suse.cz>
3940             Richard Biener  <rguenther@suse.de>
3941
3942         PR rtl-optimization/68287
3943         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
3944         number of elements.
3945
3946 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
3947
3948         * config/mips/mips.c (mips_breakable_sequence_p): New function.
3949         (mips_break_sequence): New function.
3950         (mips_reorg_process_insns): Use them. Use compact branches in selected
3951         situations.
3952
3953 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
3954
3955         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
3956
3957 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
3958             Jim Wilson  <wilson@gcc.gnu.org>
3959
3960         PR target/67305
3961         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
3962         be true and eliminable registers mentioned.
3963
3964 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
3965
3966         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
3967         options.
3968         * config/arc/arc-opts.h: Add ARCv2 CPUs.
3969         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
3970         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
3971         situation, and store instructions with large offsets.
3972         (arc_secondary_reload_conv): New function.
3973         (arc_init): Add ARCv2 options.
3974         (arc_conditional_register_usage): Select the proper register usage
3975         for ARCv2 processors.
3976         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
3977         architecture.
3978         (arc_compute_function_type): Likewise.
3979         (arc_print_operand): Handle new ARCv2 punctuation characters.
3980         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
3981         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
3982         function.
3983         (arc_reorg, arc_hazard): Use it.
3984         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
3985         (ASM_SPEC): Add ARCv2 options.
3986         (TARGET_NORM): ARC HS has norm instructions by default.
3987         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
3988         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
3989         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
3990         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
3991         Likewise.
3992         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
3993         (TARGET_LP_WR_INTERLOCK): Likewise.
3994         * config/arc/arc.md
3995         (commutative_binary_mult_comparison_result_used, movsicc_insn)
3996         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
3997         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
3998         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
3999         Use it for ARCv2.
4000         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
4001         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
4002         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
4003         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
4004         (extzvsi): New pattern.
4005         * config/arc/arc.opt: New ARCv2 options.
4006         * config/arc/arcEM.md: New file.
4007         * config/arc/arcHS.md: Likewise.
4008         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
4009         values.
4010         (Cm2): A signed 9-bit integer constant constraint.
4011         (C62): An unsigned 6-bit integer constant constraint.
4012         (C16): A signed 16-bit integer constant constraint.
4013         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
4014         (short_const_int_operand): New predicate.
4015         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
4016         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
4017         -mcode-density and -mdiv-rem.
4018
4019 2015-11-11  Julia Koval  <julia.koval@intel.com>
4020
4021         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
4022
4023 2015-11-11  Julia Koval  <julia.koval@intel.com>
4024
4025         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
4026
4027 2015-11-11  Martin Liska  <mliska@suse.cz>
4028
4029         * gimple-ssa-strength-reduction.c (create_phi_basis):
4030         Use auto_vec.
4031         * passes.c (release_dump_file_name): New function.
4032         (pass_init_dump_file): Used from this function.
4033         (pass_fini_dump_file): Likewise.
4034         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
4035         * var-tracking.c (vt_initialize): Use pool_allocator.
4036
4037 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
4038             Jiong Wang      <jiong.wang@arm.com>
4039
4040         PR tree-optimization/68234
4041         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
4042         node which estimiated to be VR_VARYING initially.
4043
4044 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
4045
4046         * regname.c (scan_rtx_reg): Check the matching number of consecutive
4047         registers when tying chains.
4048         (build_def_use): Move terminated_this_insn earlier in the function.
4049
4050 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
4051
4052         * configure.ac: Use = with test and not ==.
4053         * configure: Regenerated.
4054
4055 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
4056
4057         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
4058         machine asserts.  Update defines for 64 bit.
4059
4060 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
4061
4062         PR target/63870
4063         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
4064         lane number.
4065         (neon_vst1_lane<mode>): Likewise.
4066         (neon_vld2_lane<mode>): Likewise.
4067         (neon_vst2_lane<mode>): Likewise.
4068         (neon_vld3_lane<mode>): Likewise.
4069         (neon_vst3_lane<mode>): Likewise.
4070         (neon_vld4_lane<mode>): Likewise.
4071         (neon_vst4_lane<mode>): Likewise.
4072
4073 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
4074
4075         PR target/63870
4076         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
4077         qualifier_struct_load_store_lane_index.
4078         (arm_storestruct_lane_qualifiers) Likewise.
4079         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
4080         big-endian.
4081         (neon_vst1_lane<mode>) Likewise.
4082         (neon_vld2_lane<mode>) Likewise.
4083         (neon_vst2_lane<mode>) Likewise.
4084         (neon_vld3_lane<mode>) Likewise.
4085         (neon_vst3_lane<mode>) Likewise.
4086         (neon_vld4_lane<mode>) Likewise.
4087         (neon_vst4_lane<mode>) Likewise.
4088
4089 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
4090
4091         PR target/63870
4092         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
4093         qualifier_struct_load_store_lane_index.
4094         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
4095         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
4096         argument qualifiers.
4097         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
4098         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
4099
4100 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
4101
4102         * config/nvptx/nvptx.opt (moptimize): New flag.
4103         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
4104         default.
4105         (nvptx_optimize_inner): New.
4106         (nvptx_process_pars): Call it when optimizing.
4107         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
4108
4109 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4110
4111         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
4112         Remove redundant code.
4113
4114 2015-11-10  Jeff Law  <law@redhat.com>
4115
4116         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
4117         call to output_address.
4118         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
4119         Add unnamed machine_mode argument.
4120
4121 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
4122
4123         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
4124         default to 64-bit.
4125
4126 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
4127
4128         * config/i386/i386.md (*movabs<mode>_1): Add explicit
4129         size directives for -masm=intel.
4130         (*movabs<mode>_2): Ditto.
4131
4132 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
4133
4134         * config/i386/i386.c (ix86_print_operand): Remove dead code that
4135         tried to avoid (%rip) for call operands.
4136
4137 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
4138
4139         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
4140         argument.  Do not use RIP relative addressing when no_rip is set.
4141         (ix86_print_operand): Update call to ix86_print_operand_address_as.
4142         (ix86_print_operand_address): Ditto.
4143         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
4144         absolute movabs operand 0.  Add square braces for -masm=intel.
4145         (*movabs<mode>_2): Ditto for operand 1.
4146
4147 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4148
4149         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
4150         combine_vcvtf2i pattern.
4151
4152 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4153
4154         * config/arm/arm.c (neon_valid_immediate): Remove integer
4155         CONST_DOUBLE handling.  It should never occur.
4156
4157 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
4158
4159         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
4160         (ATOMIC_LDOP): Likewise.
4161         (atomic_ldop): Likewise.
4162         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
4163         (ATOMIC_LDOP): Likewise.
4164         (atomic_ldop): Likewise.
4165
4166 2015-11-10  Martin Liska  <mliska@suse.cz>
4167
4168         * alloc-pool.h (allocate_raw): New function.
4169         (operator new (size_t, object_allocator<T> &a)): Use the
4170         function instead of object_allocator::allocate).
4171
4172 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4173
4174         * config/i386/sse.md (HALFMASKMODE): New attribute.
4175         (DOUBLEMASKMODE): New attribute.
4176         (vec_pack_trunc_qi): New.
4177         (vec_pack_trunc_<mode>): New.
4178         (vec_unpacks_lo_hi): New.
4179         (vec_unpacks_lo_si): New.
4180         (vec_unpacks_lo_di): New.
4181         (vec_unpacks_hi_hi): New.
4182         (vec_unpacks_hi_<mode>): New.
4183
4184 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4185
4186         * optabs.c (expand_binop_directly): Allow scalar mode for
4187         vec_pack_trunc_optab.
4188         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
4189         boolean vector producers from pattern sequence when computing VF.
4190         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
4191         vect_recog_mask_conversion_pattern.
4192         (search_type_for_mask): Choose the smallest
4193         type if different size types are mixed.
4194         (build_mask_conversion): New.
4195         (vect_recog_mask_conversion_pattern): New.
4196         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
4197         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
4198         load with pattern.
4199         (vectorizable_conversion): Support boolean vectors.
4200         (free_stmt_vec_info): Allow patterns for statements with no lhs.
4201         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
4202
4203 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4204
4205         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
4206         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
4207         Cast mask to FP mode if required.
4208         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
4209         (vcond_mask_<mode><avx512fmaskmodelower>): New.
4210         (vcond_mask_<mode><sseintvecmodelower>): New.
4211         (vcond_mask_<mode><sseintvecmodelower>): New.
4212         (vcond_mask_v2div2di): New.
4213         (vcond_mask_<mode><sseintvecmodelower>): New.
4214         (vcond_mask_<mode><sseintvecmodelower>): New.
4215
4216 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4217
4218         * optabs-query.h (get_vcond_mask_icode): New.
4219         * optabs-tree.c (expand_vec_cond_expr_p): Use
4220         get_vcond_mask_icode for VEC_COND_EXPR with mask.
4221         * optabs.c (expand_vec_cond_mask_expr): New.
4222         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
4223         * optabs.def (vcond_mask_optab): New.
4224         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
4225         generate redundant comparison for COND_EXPR.
4226         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
4227         as a condition.
4228         (vectorizable_condition): Likewise.
4229         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
4230         cond_exp with no embedded comparison.
4231         (vect_build_slp_tree_1): Likewise.
4232
4233 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4234
4235         * config/i386/sse.md (maskload<mode>): Rename to ...
4236         (maskload<mode><sseintvecmodelower>): ... this.
4237         (maskstore<mode>): Rename to ...
4238         (maskstore<mode><sseintvecmodelower>): ... this.
4239         (maskload<mode><avx512fmaskmodelower>): New.
4240         (maskstore<mode><avx512fmaskmodelower>): New.
4241
4242 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4243
4244         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
4245         (expand_MASK_STORE): Adjust to maskstore optab changes.
4246         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
4247          Adjust to maskload, maskstore optab changes.
4248         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
4249         * optabs.def (maskload_optab): Transform into convert optab.
4250         (maskstore_optab): Likewise.
4251         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
4252         can_vec_mask_load_store_p signature change.
4253         (predicate_mem_writes): Use boolean mask.
4254         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
4255         can_vec_mask_load_store_p signature change.  Allow invariant masks.
4256         (vectorizable_operation): Ignore type precision for boolean vectors.
4257
4258 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4259
4260         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
4261         (const_vector_mask_from_tree): New.
4262         (const_vector_from_tree): Use const_vector_mask_from_tree
4263         for boolean vectors.
4264         * optabs-query.h (get_vec_cmp_icode): New.
4265         * optabs-tree.c (expand_vec_cmp_expr_p): New.
4266         * optabs-tree.h (expand_vec_cmp_expr_p): New.
4267         * optabs.c (vector_compare_rtx): Add OPNO arg.
4268         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
4269         (expand_vec_cmp_expr): New.
4270         * optabs.def (vec_cmp_optab): New.
4271         (vec_cmpu_optab): New.
4272         * optabs.h (expand_vec_cmp_expr): New.
4273         * tree-vect-generic.c (expand_vector_comparison): Add vector
4274         comparison optabs check.
4275         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
4276         operations for VF.  Add mask type computation.
4277         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
4278         (vectorizable_comparison): New.
4279         (vect_analyze_stmt): Add vectorizable_comparison.
4280         (vect_transform_stmt): Likewise.
4281         (vect_init_vector): Support boolean vector invariants.
4282         (vect_get_vec_def_for_operand): Add VECTYPE arg.
4283         (vectorizable_condition): Directly provide vectype for invariants
4284         used in comparison.
4285         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
4286         (enum vect_var_kind): Add vect_mask_var.
4287         (enum stmt_vec_info_type): Add comparison_vec_info_type.
4288         (vectorizable_comparison): New.
4289         (vect_get_vec_def_for_operand): Add VECTYPE arg.
4290         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
4291         (vect_create_destination_var): Likewise.
4292         * tree-vect-patterns.c (check_bool_pattern): Check fails
4293         if we can vectorize comparison directly.
4294         (search_type_for_mask): New.
4295         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
4296         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
4297         comparison statements.
4298         (vect_get_constant_vectors): Support boolean vector constants.
4299         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
4300         (ix86_expand_int_vec_cmp): New.
4301         (ix86_expand_fp_vec_cmp): New.
4302         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
4303         op_true and op_false.
4304         (ix86_int_cmp_code_to_pcmp_immediate): New.
4305         (ix86_fp_cmp_code_to_pcmp_immediate): New.
4306         (ix86_cmp_code_to_pcmp_immediate): New.
4307         (ix86_expand_mask_vec_cmp): New.
4308         (ix86_expand_fp_vec_cmp): New.
4309         (ix86_expand_int_sse_cmp): New.
4310         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
4311         (ix86_expand_int_vec_cmp): New.
4312         (ix86_get_mask_mode): New.
4313         (TARGET_VECTORIZE_GET_MASK_MODE): New.
4314         * config/i386/sse.md (avx512fmaskmodelower): New.
4315         (vec_cmp<mode><avx512fmaskmodelower>): New.
4316         (vec_cmp<mode><sseintvecmodelower>): New.
4317         (vec_cmpv2div2di): New.
4318         (vec_cmpu<mode><avx512fmaskmodelower>): New.
4319         (vec_cmpu<mode><sseintvecmodelower>): New.
4320         (vec_cmpuv2div2di): New.
4321
4322 2015-11-10  Richard Biener  <rguenther@suse.de>
4323
4324         PR tree-optimization/68240
4325         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
4326         properly.
4327         (visit_phi): For PHIs with just a single executable edge
4328         take its value directly.
4329         (expressions_equal_p): Handle VN_TOP properly.
4330
4331 2015-11-10  Richard Biener  <rguenther@suse.de>
4332
4333         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
4334         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
4335         conservatively.
4336
4337 2015-11-10  Richard Biener  <rguenther@suse.de>
4338
4339         PR tree-optimization/56118
4340         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
4341         cost favor vectorized version.
4342
4343 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4344
4345         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
4346         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
4347         (neg_not_op): New code attribute.
4348
4349 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4350
4351         * ifcvt.c (noce_try_inverse_constants): New function.
4352         (noce_process_if_block): Call it.
4353         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
4354         * optabs.def (negcc_optab, notcc_optab): Declare.
4355         * optabs.c (emit_conditional_neg_or_complement): New function.
4356         * doc/tm.texi (Standard Names): Document negcc, notcc names.
4357
4358 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4359
4360         PR rtl-optimization/68236
4361         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
4362         if insn_queue doesn't exist.
4363         (haifa_sched_finish): Reset insn_queue to NULL.
4364
4365 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
4366
4367         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
4368         (build_def_use): Initialize terminated_this_insn.
4369         (find_best_rename_reg): Pick and check register from the tied chain.
4370         (regrename_do_replace): Mark head as renamed.
4371         (struct du_head *terminated_this_insn). New static variable.
4372         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
4373         * regrename.h (struct du_head): Add tied_chain, renamed members.
4374
4375 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4376
4377         PR bootstrap/68256
4378         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
4379         Return false.
4380
4381 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4382
4383         PR target/57845
4384         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
4385         not promote the mode for aggregate types.
4386
4387 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4388
4389         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
4390         * omp-low.c (build_oacc_routine_dims): New.
4391
4392 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4393
4394         * config/rs6000/constraints.md (wF constraint): New constraints
4395         for power9/toc fusion.
4396         (wG constraint): Likewise.
4397
4398         * config/rs6000/predicates.md (u6bit_cint_operand): New
4399         predicate, recognize 0..63.
4400         (upper16_cint_operand): New predicate for power9 and toc fusion.
4401         (fpr_reg_operand): Likewise.
4402         (toc_fusion_or_p9_reg_operand): Likewise.
4403         (toc_fusion_mem_raw): Likewise.
4404         (toc_fusion_mem_wrapped): Likewise.
4405         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
4406         address range.
4407         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
4408         instead.
4409         (fusion_addis_mem_combo_load): Add support for power9 fusion of
4410         floating point loads, floating point stores, and gpr stores.
4411         (fusion_addis_mem_combo_store): Likewise.
4412         (fusion_offsettable_mem_operand): Likewise.
4413
4414         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
4415         (emit_fusion_load_store): Likewise.
4416         (fusion_p9_p): Likewise.
4417         (expand_fusion_p9_load): Likewise.
4418         (expand_fusion_p9_store): Likewise.
4419         (emit_fusion_p9_load): Likewise.
4420         (emit_fusion_p9_store): Likewise.
4421         (fusion_wrap_memory_address): Likewise.
4422
4423         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
4424         elements for power9 fusion.
4425         (rs6000_debug_print_mode): Rework debug information to print more
4426         information about fusion.
4427         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
4428         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
4429         offsettable memory address.
4430         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
4431         (emit_fusion_gpr_load): Move most of the code from
4432         emit_fusion_gpr_load into emit_fusion-addis that handles both
4433         power8 and power9 fusion.
4434         (emit_fusion_addis): Likewise.
4435         (emit_fusion_load_store): Likewise.
4436         (fusion_wrap_memory_address): Add support for TOC fusion.
4437         (fusion_split_address): Likewise.
4438         (fusion_p9_p): Add support for power9 fusion.
4439         (expand_fusion_p9_load): Likewise.
4440         (expand_fusion_p9_store): Likewise.
4441         (emit_fusion_p9_load): Likewise.
4442         (emit_fusion_p9_store): Likewise.
4443
4444         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
4445         new instructions in ISA 3.0.
4446         (TARGET_CTZ): Likewise.
4447         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
4448         (TARGET_TOC_FUSION_FP): Likewise.
4449
4450         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
4451         fusion unspecs.
4452         (UNSPEC_FUSION_ADDIS): Likewise.
4453         (QHSI mode iterator): New iterator for power9 fusion.
4454         (GPR_FUSION): Likewise.
4455         (FPR_FUSION): Likewise.
4456         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
4457         (umod<mode>3): Likewise.
4458         (divmod peephole): Likewise.
4459         (udivmod peephole): Likewise.
4460         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
4461         instructions.
4462         (ctz<mode>2_h): Likewise.
4463         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
4464         (ashdi3_extswsli_dot): Likewise.
4465         (ashdi3_extswsli_dot2): Likewise.
4466         (power9 fusion splitter): New power9/toc fusion support.
4467         (toc_fusionload_<mode>): Likewise.
4468         (toc_fusionload_di): Likewise.
4469         (fusion_gpr_load_<mode>): Update predicate function.
4470         (power9 fusion peephole2s): New power9/toc fusion support.
4471         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
4472         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
4473         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
4474         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
4475         (fusion_p9_<mode>_constant): Likewise.
4476
4477 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
4478
4479         * optabs.c (prepare_libcall_arg): New function.
4480         (expand_fixed_convert): Add call to prepare_libcall_arg.
4481
4482 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
4483
4484         * sched-int.h (dump_rgn_dependencies_dot): Declare
4485         * sched-rgn.c (dump_rgn_dependencies_dot): New function
4486         * print-rtl.h (print_insn): Add prototype
4487
4488         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
4489         * common.opt (-fsched-verbose): Set default value to 1.
4490         * invoke.texi (-fsched-verbose): Update the option's description.
4491
4492 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4493
4494         * config/visium/visium.h (PRINT_OPERAND): Delete.
4495         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
4496         (PRINT_OPERAND_ADDRESS): Likewise.
4497         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
4498         to...
4499         (visium_print_operand_punct_valid_p): ...this.  New function.
4500         (TARGET_PRINT_OPERAND): Define to...
4501         (print_operand): Rename to...
4502         (visium_print_operand): ...this.
4503         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
4504         (visium_output_address): Rename to...
4505         (visium_print_operand_address): ...this.
4506         (print_operand_address): Delete.
4507
4508 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4509
4510         PR middle-end/68259
4511         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
4512         Check that the type of the first operand is an aggregate type.
4513
4514 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4515
4516         * omp-low.c: Fix some OpenACC comment typos.
4517         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
4518         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
4519         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
4520
4521 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
4522
4523         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
4524
4525 2015-11-09  Jeff Law  <law@redhat.com>
4526
4527         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
4528         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
4529         Fix comment typo.
4530
4531 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4532             Peter Bergner  <bergner@vnet.ibm.com>
4533
4534         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
4535         ISA 3.0 (power9).
4536         (-mpower9-vector): Likewise.
4537         (-mpower9-dform): Likewise.
4538         (-mpower9-minmax): Likewise.
4539         (-mtoc-fusion): Likewise.
4540         (-mmodulo): Likewise.
4541         (-mfloat128-hardware): Likewise.
4542
4543         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
4544         mask for ISA 3.0 (power9).
4545         (POWERPC_MASKS): Add new ISA 3.0 switches.
4546         (power9 cpu): Add power9 cpu.
4547
4548         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
4549         (ASM_CPU_SPEC): Likewise.
4550         (EXTRA_SPECS): Likewise.
4551
4552         * config/rs6000/rs6000-opts.h (enum processor_type): Add
4553         PROCESSOR_POWER9.
4554
4555         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
4556         (rs6000_debug_reg_global): Add support for power9 fusion.
4557         (rs6000_setup_reg_addr_masks): Cache mode size.
4558         (rs6000_option_override_internal): Until real power9 tuning is
4559         added, use -mtune=power8 for -mcpu=power9.
4560         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
4561         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
4562         of Altivec registers.
4563         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
4564         (rs6000_loop_align): Add support for power9 cpu.
4565         (rs6000_file_start): Likewise.
4566         (rs6000_adjust_cost): Likewise.
4567         (rs6000_issue_rate): Likewise.
4568         (insn_must_be_first_in_group): Likewise.
4569         (insn_must_be_last_in_group): Likewise.
4570         (force_new_group): Likewise.
4571         (rs6000_register_move_cost): Likewise.
4572         (rs6000_opt_masks): Likewise.
4573
4574         * config/rs6000/rs6000.md (cpu attribute): Add power9.
4575         * config/rs6000/rs6000-tables.opt: Regenerate.
4576
4577         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4578         _ARCH_PWR9 if power9 support is available.
4579
4580         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
4581         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
4582
4583         * configure.ac: Determine if the assembler supports the ISA 3.0
4584         instructions.
4585         * config.in (HAVE_AS_POWER9): Likewise.
4586         * configure: Regenerate.
4587
4588         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
4589         switches.
4590
4591 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4592
4593         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
4594         Remove integer CONST_DOUBLE handling.  It should never occur.
4595
4596 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4597
4598         PR target/68129
4599         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
4600         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
4601         Delete VOIDmode case.  Assert that mode is not VOIDmode.
4602         * config/aarch64/predicates.md (const0_operand): Remove const_double
4603         match.
4604
4605 2015-11-09  Martin Liska  <mliska@suse.cz>
4606
4607         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
4608         body_info release function.
4609         * ipa-prop.c (ipa_release_body_info): New function.
4610         (ipa_analyze_node): Call the function.
4611         (ipa_node_params::~ipa_node_params): Release known_csts.
4612         * ipa-prop.h (ipa_release_body_info): Declare.
4613
4614 2015-11-09  Martin Liska  <mliska@suse.cz>
4615
4616         * gcc.c (record_temp_file): Release name string.
4617         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
4618         * lra-lives.c (free_live_range_list): Utilize
4619         lra_live_range_pool for allocation and deallocation.
4620         (create_live_range): Likewise.
4621         (copy_live_range): Likewise.
4622         (lra_merge_live_ranges): Likewise.
4623         (remove_some_program_points_and_update_live_ranges): Likewise.
4624         (lra_create_live_ranges_1): Release point_freq_vec that can
4625         be not freed from previous iteration of the function.
4626         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
4627         * tree-sra.c (sra_deinitialize): Release all vectors in
4628         base_access_vec.
4629         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
4630         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
4631         Release edge_info for a removed edge.
4632         (thread_through_all_blocks): Free region vector.
4633         * tree-ssa.h (free_dom_edge_info): Declare function extern.
4634
4635 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
4636
4637         * optabs.c (expand_vec_cond_expr): Always get sign from type.
4638         * tree.c (wide_int_to_tree): Support negative values for boolean.
4639         (build_nonstandard_boolean_type): Use signed type for booleans.
4640
4641 2015-11-09  Richard Biener  <rguenther@suse.de>
4642
4643         PR tree-optimization/68248
4644         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
4645
4646 2015-11-09  Richard Biener  <rguenther@suse.de>
4647
4648         PR tree-optimization/56118
4649         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
4650         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
4651         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
4652         function.
4653         (vect_slp_analyze_data_ref_dependences): Instead of computing
4654         all dependences of the region DRs just analyze the code motions
4655         SLP vectorization will perform.  Remove SLP instances that
4656         cannot have their store/load motions applied.
4657         (vect_analyze_data_refs): Allow DRs without a vectype
4658         in BB vectorization.
4659
4660 2015-11-09  Julian Brown  <julian@codesourcery.com>
4661
4662         * final.c (output_asm_insn): Pass VOIDmode to output_address.
4663         (output_address): Add MODE argument. Pass to print_operand_address
4664         hook.
4665         * targhooks.c (default_print_operand_address): Add MODE argument.
4666         * targhooks.h (default_print_operand_address): Update prototype.
4667         * output.h (output_address): Update prototype.
4668         * target.def (print_operand_address): Add MODE argument.
4669         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
4670         output_address.
4671         (print_operand): Pass access mode to output_address.
4672         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
4673         argument.
4674         (mcore_print_operand): Update calls to mcore_print_operand_address.
4675         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
4676         output_address.
4677         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
4678         output_address.
4679         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
4680         global.
4681         (tilegx_print_operand): Don't set above global. Update calls to
4682         output_address.
4683         (tilegx_print_operand_address): Add MODE argument. Use instead of
4684         output_memory_reference_mode global.
4685         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
4686         (frv_print_operand): Pass mode to frv_print_operand_address calls.
4687         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
4688         output_address.
4689         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
4690         (cris_print_operand): Pass mode to output_address calls.
4691         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
4692         * config/aarch64/aarch64.h (aarch64_print_operand)
4693         (aarch64_print_operand_address): Remove prototypes.
4694         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
4695         global.
4696         (aarch64_print_operand): Make static. Update calls to output_address.
4697         (aarch64_print_operand_address): Add MODE argument. Use instead of
4698         aarch64_memory_reference_mode global.
4699         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
4700         hooks.
4701         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4702         Delete macro definitions.
4703         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
4704         * config/xtensa/xtensa.c (print_operand): Pass mode in
4705         output_address calls.
4706         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
4707         argument.
4708         (h83000_print_operand): Update calls to h8300_print_operand_address
4709         and output_address.
4710         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
4711         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
4712         global.
4713         (tilepro_print_operand): Pass mode to output_address.
4714         (tilepro_print_operand_address): Add MODE argument. Use instead of
4715         output_memory_reference_mode.
4716         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
4717         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
4718         to output_address calls.
4719         (nvptx_print_operand_address): Add MODE argument.
4720         * config/alpha/alpha.c (print_operand): Pass mode argument in
4721         output_address calls.
4722         * config/m68k/m68k.c (print_operand): Pass mode argument in
4723         output_address call.
4724         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
4725         (avr_print_operand): Update calls to avr_print_operand_address.
4726         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
4727         argument. Update calls to output_address.
4728         (sparc_print_operand): Pass mode to output_address.
4729         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
4730         argument.
4731         (iq2000_print_operand): Pass mode in output_address calls.
4732         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
4733         MODE argument.
4734         (xstormy16_print_operand): Pass mode to
4735         xstormy16_print_operand_address calls.
4736         * config/mips/mips.c (mips_print_operand): Update calls to
4737         output_address.
4738         (mips_print_operand_address): Add MODE argument.
4739         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
4740         to output_address.
4741         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
4742         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
4743         output_address.
4744         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
4745         (rx_print_operand): Update calls to output_address,
4746         rx_print_operand_address.
4747         * config/nds32/nds32.c (nds32_print_operand): Update calls to
4748         output_address.
4749         (nds32_print_operand_address): Add MODE argument.
4750         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
4751         output_address calls.
4752         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
4753         output_address call.
4754         (c6x_print_address_operand): Update calls to output_address.
4755         (c6x_print_operand_address): Pass mode to above.
4756         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
4757         (v850_print_operand): Pass mode to v850_print_operand_address,
4758         output_address.
4759         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
4760         (mmix_print_operand): Pass mode in output_address calls.
4761         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
4762         (sh_print_operand): Pass mem mode to output_address,
4763         sh_print_operand_address.
4764         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
4765         (cr16_print_operand): Pass mode to output_address,
4766         cr16_print_operand_address.
4767         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
4768         output_address.
4769         * config/microblaze/microblaze.c (print_operand): Pass mode to
4770         output_address.
4771         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
4772         output_address.
4773         (nios2_print_operand_address): Add MODE argument. Update call to
4774         nios2_print_operand_address.
4775         * config/s390/s390.c (print_operand): Pass mode to output_address.
4776         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
4777         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
4778         output_address.
4779         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
4780         Use instead of output_memory_reference_mode.
4781         (output_memory_reference_mode): Delete global.
4782         (arm_print_operand): Pass mem mode to output_address.
4783         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
4784         (m32r_print_operand): Pass mode to output_address.
4785         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
4786         argument.
4787         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
4788         * config/i386/i386.c (ix86_print_operand): Pass mode to
4789         output_address calls.
4790         (ix86_print_operand_address): Add MODE argument.
4791
4792 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4793
4794         PR middle-end/68251
4795         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
4796         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
4797         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
4798         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4799
4800 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4801
4802         PR rtl-optimization/67749
4803         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
4804         case before emitting the two blocks.  Instead modify the register
4805         in the corresponding final insn of the basic block.
4806
4807 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4808
4809         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
4810         assembler syntax.
4811         Support Solaris ld.
4812         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
4813
4814         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
4815         HAVE_INITFINI_ARRAY_SUPPORT.
4816         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
4817
4818         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
4819         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
4820         Don't check HAVE_AS_SPARC_NOBITS.
4821         Heed SECTION_NOTYPE.
4822
4823         * configure: Regenerate.
4824         * config.in: Regenerate.
4825
4826 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4827
4828         PR middle-end/68253
4829         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
4830
4831 2015-11-09  Richard Henderson  <rth@redhat.com>
4832
4833         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
4834         __SEG_GS, __SEG_TLS.
4835         (ix86_register_pragmas): Register address spaces __seg_fs,
4836         __seg_gs, __seg_tls.
4837         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
4838         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
4839         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
4840         * config/i386/i386.c (ix86_decompose_address): Likewise.
4841         (ix86_legitimate_address_p): Likewise.
4842         (memory_address_length): Likewise.  Check mem address space too.
4843         (ix86_print_operand): Use ix86_print_operand_address_as.
4844         (ix86_print_operand_address_as): Rename from
4845         ix86_print_operand_address, add new addr_space_t parameter.
4846         Validate that either the parameter or the ix86_address segment
4847         is default address space.  Handle ADDR_SPACE_SEG_TLS.
4848         (ix86_print_operand_address): New.
4849         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
4850         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
4851         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
4852         (ix86_addr_space_zero_address_valid): New.
4853         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4854         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
4855         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
4856         * config/i386/predicates.md (address_no_seg_operand): Likewise.
4857         (vsib_address_operand): Likewise.
4858         (address_mpx_no_base_operand): Likewise.
4859         (address_mpx_no_index_operand): Likewise.
4860         * doc/extend.texi (x86 Named Address Spaces): New section.
4861
4862         * config/i386/i386.c (ix86_check_no_addr_space): New.
4863         (decide_alg): Add have_as parameter.
4864         (alg_usable_p): Likewise; disable rep algorithms if set.
4865         (ix86_expand_set_or_movmem): Notice if either MEM has a
4866         non-default address space.
4867         (ix86_expand_strlen): Likewise.
4868         * config/i386/i386.md (strmov, strset): Likewise.
4869         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
4870         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
4871         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
4872         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
4873         *cmpstrnqi_1, *strlenqi_1): Likewise.
4874
4875         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
4876         (*movabs<mode>_2): Likewise.
4877
4878         * dwarf2out.c (modified_type_die): Pass the address space number
4879         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
4880         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
4881         * targhooks.c (default_addr_space_debug): New.
4882         * targhooks.h (default_addr_space_debug): Declare.
4883         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
4884         * doc/tm.texi: Rebuild.
4885
4886         * gimple.c (check_loadstore): Return false when 0 is a valid address.
4887         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
4888         null when 0 is valid in the source address space.
4889         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4890         * targhooks.c (default_addr_space_zero_address_valid): New.
4891         * targhooks.h (default_addr_space_zero_address_valid): Declare.
4892         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
4893         * doc/tm.texi: Rebuild.
4894
4895         * cselib.c (add_mem_for_addr): Compare address spaces when
4896         matching memories.
4897         (cselib_lookup_mem): Likewise.
4898         * fold-const.c (operand_equal_p): Check address spaces of
4899         pointer types before checking integer constants.
4900
4901         PR tree-opt/66768
4902         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
4903         the correct type for the base.
4904
4905 2015-11-09  Jeff Law  <law@redhat.com>
4906
4907         * tree-into-ssa.c (names_to_release): No longer static.
4908         * tree-into-ssa.h (names_to_release): Declare.
4909         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
4910         (release_free_names_and_compact_live_names): New function extracted
4911         from pass_release_ssa_names::execute.
4912         (pass_release_ssa_names::execute): Use it.
4913
4914 2015-11-09  Alan Modra  <amodra@gmail.com>
4915
4916         * gensupport.c (add_mnemonic_string): Make len param a size_t.
4917         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
4918         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
4919         return value.
4920
4921 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
4922
4923         PR rtl-optimization/68182
4924         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
4925         branch with only one successor just like unconditional branches.
4926
4927 2015-11-08  Jeff Law  <law@redhat.com>
4928
4929         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
4930         non-FSM path has no edges marked with EDGE_DFS_BACK.
4931         (ssa_redirect_edges): No longer call mark_loop_for_removal.
4932         (thread_single_edge, def_split_header_continue_p): Remove.
4933         (bb_ends_with_multiway_branch): Likewise.
4934         (thread_through_loop_header): Remove cases of threading from
4935         latch through the header.  Simplify knowing we won't thread
4936         the latch.
4937         (thread_through_all_blocks): Simplify knowing that only the FSM
4938         threader needs to handle backedges.
4939
4940 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4941
4942         * doc/extend.texi (type attributes): Document scalar_storage_order.
4943         (Structure-Packing Pragmas): Rename into...
4944         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
4945         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
4946         (Warnings): Document -Wno-scalar-storage-order.
4947         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
4948         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
4949         extract_bit_field and store_bit_field.
4950         (initialize_argument_information): Adjust call to store_expr.
4951         (load_register_parameters): Adjust call to extract_bit_field.
4952         * expmed.c (check_reverse_storage_order_support): New function.
4953         (check_reverse_float_storage_order_support): Likewise.
4954         (flip_storage_order): Likewise.
4955         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
4956         of the value if it is true.  Pass REVERSE to recursive call after
4957         adjusting the target offset.
4958         Do not use extraction or movstrict instruction if REVERSE is true.
4959         Pass REVERSE to store_fixed_bit_field.
4960         (store_bit_field): Add REVERSE parameter and pass to it to above.
4961         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
4962         store_split_bit_field and store_fixed_bit_field_1.
4963         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
4964         order of the value if it is true and adjust the target offset.
4965         (store_split_bit_field): Add REVERSE parameter and pass it to
4966         store_fixed_bit_field.  Adjust the target offset if it is true.
4967         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
4968         of the value if it is true.  Pass REVERSE to recursive call after
4969         adjusting the target offset.
4970         Do not use extraction or subreg instruction if REVERSE is true.
4971         Pass REVERSE to extract_fixed_bit_field.
4972         (extract_bit_field): Add REVERSE parameter and pass to it to above.
4973         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
4974         extract_split_bit_field and extract_fixed_bit_field_1.
4975         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
4976         order of the value if it is true and adjust the target offset.
4977         (extract_split_bit_field): Add REVERSE parameter and pass it to
4978         extract_fixed_bit_field.  Adjust the target offset if it is true.
4979         * expmed.h (flip_storage_order): Declare.
4980         (store_bit_field): Adjust prototype.
4981         (extract_bit_field): Likewise.
4982         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
4983         (emit_group_store): Adjust call to store_bit_field.
4984         (copy_blkmode_from_reg): Likewise.
4985         (copy_blkmode_to_reg): Likewise.
4986         (write_complex_part): Likewise.
4987         (read_complex_part): Likewise.
4988         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
4989         that it isn't true if the target is a register.
4990         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
4991         and flip the storage order of the value.
4992         <BIT_IOR_EXPR>: Flip the storage order of the value.
4993         (get_bit_range): Adjust call to get_inner_reference.
4994         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
4995         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
4996         with reverse storage order.
4997         (store_expr_with_bounds): Add REVERSE parameter and pass it to
4998         recursive calls and call to store_bit_field.  Force the value into a
4999         register if it is true and then flip the storage order of the value.
5000         (store_expr): Add REVERSE parameter and pass it to above.
5001         (categorize_ctor_elements_1): Adjust call to
5002         initializer_constant_valid_p.
5003         (store_constructor_field): Add REVERSE parameter and pass it to
5004         recursive calls and call to store_field.
5005         (store_constructor): Add REVERSE parameter and pass it to calls to
5006         store_constructor_field and store_expr.  Set it to true for an
5007         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
5008         (store_field): Add REVERSE parameter and pass it to recursive calls
5009         and calls to store_expr and store_bit_field.  Temporarily flip the
5010         storage order of the value with record type and integral mode and
5011         adjust the shift if it is true.
5012         (get_inner_reference): Add PREVERSEP parameter and set it to true
5013         upon encoutering a reference with reverse storage order.
5014         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
5015         (expand_constructor): Adjust call to store_constructor.
5016         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
5017         of the union type to store_expr in the MEM case and assert that it
5018         isn't set in the REG case.  Adjust call to store_field.
5019         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
5020         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
5021         get_inner_reference and extract_bit_field. Temporarily flip the
5022         storage order of the value with record type and integral mode and
5023         adjust the shift if it is true.  Flip the storage order of the value
5024         at the end if it is true.
5025         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
5026         get_inner_reference.  Do not fetch an inner reference if it is true.
5027         * expr.h (store_expr_with_bounds): Ajust prototype.
5028         (store_expr): Likewise.
5029         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
5030         REF_REVERSE_STORAGE_ORDER on the reference according to it.
5031         (optimize_bit_field_compare): Deal with reverse storage order.
5032         Adjust calls to get_inner_reference and make_bit_field_ref.
5033         (decode_field_reference): Add PREVERSEP parameter and adjust call to
5034         get_inner_reference.
5035         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
5036         to decode_field_reference and make_bit_field_ref.
5037         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
5038         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
5039         (fold_comparison): Adjust call to get_inner_reference.
5040         (split_address_to_core_and_offset): Adjust call to
5041         get_inner_reference.
5042         * gimple-expr.c (useless_type_conversion_p): Return false for array
5043         types with different TYPE_REVERSE_STORAGE_ORDER flag.
5044         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
5045         REF_REVERSE_STORAGE_ORDER flag.
5046         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
5047         * output.h (assemble_real): Adjust prototype.
5048         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
5049         * stor-layout.c (finish_record_layout): Propagate the
5050         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
5051         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
5052         (TYPE_SATURATING): Adjust.
5053         (REF_REVERSE_STORAGE_ORDER): Document.
5054         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
5055         set it to true upon encoutering a reference with reverse storage order.
5056         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
5057         * tree-inline.c (remap_gimple_op_r): Propagate the
5058         REF_REVERSE_STORAGE_ORDER flag.
5059         (copy_tree_body_r): Likewise.
5060         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
5061         store_expr.
5062         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
5063         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
5064         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
5065         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
5066         REF_REVERSE_STORAGE_ORDER flag.
5067         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
5068         (gimple_canonical_types_compatible_p): Likewise.
5069         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
5070         (TYPE_SATURATING): Adjust.
5071         (REF_REVERSE_STORAGE_ORDER): New flag.
5072         (reverse_storage_order_for_component_p): New inline predicate.
5073         (storage_order_barrier_p): Likewise.
5074         (get_inner_reference): Adjust prototype.
5075         * varasm.c: Include expmed.h.
5076         (assemble_variable_contents): Adjust call to output_constant.
5077         (assemble_real): Add REVERSE parameter.  Flip the storage
5078         order of the value if REVERSE is true.
5079         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
5080         (assemble_constant_contents): Adjust call to output_constant.
5081         (output_constant_pool_2): Adjust call to assemble_real.
5082         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
5083         TYPE_REVERSE_STORAGE_ORDER.
5084         (initializer_constant_valid_p): Add REVERSE parameter.
5085         (output_constant): Add REVERSE parameter.
5086         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
5087         <REAL_TYPE>: Adjust call to assemble_real.
5088         <COMPLEX_TYPE>: Pass it to recursive calls.
5089         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
5090         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
5091         (struct oc_local_state): Add REVERSE field.
5092         (output_constructor_array_range): Adjust calls to output_constant.
5093         (output_constructor_regular_field): Likewise.
5094         (output_constructor_bitfield): Adjust call to output_constructor.
5095         Flip the storage order of the value if REVERSE is true.
5096         (output_constructor): Add REVERSE parameter.  Set it to true for an
5097         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
5098         output_constructor_bitfield.
5099         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
5100         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
5101         * builtins.c (get_object_alignment_2): Likewise.
5102         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
5103         and get_ref_base_and_extent.
5104         * dbxout.c (dbxout_expand_expr): Likewise.
5105         * dwarf2out.c (add_var_loc_to_decl): Likewise.
5106         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
5107         (loc_list_from_tree): Likewise.
5108         (fortran_common): Likewise.
5109         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
5110         get_ref_base_and_extent.
5111         (get_base_constructor): Likewise.
5112         (fold_const_aggregate_ref_1): Likewise.
5113         * gimple-laddress.c (pass_laddress::execute): Adjust call to
5114         get_inner_reference.
5115         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
5116         get_inner_reference and bail out on reverse storage order.
5117         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
5118         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
5119         build_ref_for_offset.
5120         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
5121         get_ref_base_and_extent.
5122         (ipa_polymorphic_call_context): Likewise.
5123         (extr_type_from_vtbl_ptr_store): Likewise.
5124         (check_stmt_for_type_change): Likewise.
5125         (get_dynamic_type): Likewise.
5126         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
5127         get_ref_base_and_extent.
5128         (compute_complex_assign_jump_func): Likewise.
5129         (get_ancestor_addr_info): Likewise.
5130         (compute_known_type_jump_func): Likewise.
5131         (determine_known_aggregate_parts): Likewise.
5132         (ipa_get_adjustment_candidate): Likewise.
5133         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
5134         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
5135         (build_ref_for_offset): Adjust prototype.
5136         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
5137         get_inner_reference.
5138         * tree-affine.c (tree_to_aff_combination): Adjust call to
5139         get_inner_reference.
5140         (get_inner_reference_aff): Likewise.
5141         * tree-data-ref.c (split_constant_offset_1): Likewise.
5142         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
5143         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
5144         get_inner_reference.
5145         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
5146         (dump_access): Print new fields.
5147         (create_access): Adjust call to get_ref_base_and_extent and set the
5148         REVERSE flag according to the result.
5149         (completely_scalarize_record): Set the REVERSE flag.
5150         (scalarize_elem): Add REVERSE parameter.
5151         (build_access_from_expr_1): Preserve storage order barriers.
5152         (build_accesses_from_assign): Likewise.
5153         (build_ref_for_offset): Add REVERSE parameter and set the
5154         REF_REVERSE_STORAGE_ORDER flag accordingly.
5155         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
5156         the REF_REVERSE_STORAGE_ORDER flag if there are components.
5157         (analyze_access_subtree): Likewise.
5158         (create_artificial_child_access): Set the REVERSE flag.
5159         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
5160         (turn_representatives_into_adjustments): Propagate REVERSE flag.
5161         (ipa_sra_check_caller): Adjust call to get_inner_reference.
5162         * tree-ssa-alias.c (ao_ref_base): Adjust call to
5163         get_ref_base_and_extent.
5164         (aliasing_component_refs_p): Likewise.
5165         (stmt_kills_ref_p_1): Likewise.
5166         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
5167         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
5168         Return true if reverse storage order.
5169         <BIT_FIELD_REF>: Likewise.
5170         <COMPONENT_REF>: Likewise.
5171         <ARRAY_REF>: Likewise.
5172         <ARRAY_RANGE_REF>: Likewise.
5173         (split_address_cost): Likewise.  Bail out if reverse storage order.
5174         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
5175         get_inner_reference.  Bail out if reverse storage order.
5176         (bswap_replace): Adjust call to get_inner_reference.
5177         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
5178         the REF_REVERSE_STORAGE_ORDER flag.
5179         <BIT_FIELD_REF>: Likewise.
5180         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
5181         barriers.
5182         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
5183         to the REF_REVERSE_STORAGE_ORDER flag.
5184         <BIT_FIELD_REF>: Likewise.
5185         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
5186         (contains_storage_order_barrier_p): New predicate.
5187         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
5188         Punt on storage order barriers if necessary.
5189         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
5190         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
5191         call to get_ref_base_and_extent.
5192         (do_structure_copy): Likewise.
5193         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
5194         get_inner_reference.
5195         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
5196         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
5197         * ubsan.c (instrument_bool_enum_load): Likewise.
5198         (instrument_object_size): Likewise.
5199         * var-tracking.c (track_expr_p): Adjust call to
5200         get_ref_base_and_extent.
5201         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
5202         get_inner_reference.
5203         * config/s390/s390.c (s390_expand_atomic): Adjust call to
5204         store_bit_field.
5205         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
5206         extract_bit_field.
5207         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
5208
5209 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
5210
5211         * config/sparc/sparc.opt (mfix-at697f): Add final period.
5212
5213 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
5214
5215         PR rtl-optimization/67864
5216         * common/config/i386/i386-common.c (ix86_option_optimization_table)
5217         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
5218         at -Os and up.
5219
5220 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5221
5222         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
5223         internal functions.
5224
5225 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5226
5227         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
5228         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
5229
5230 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5231
5232         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
5233         * internal-fn.c: Don't undef it here.
5234         * tree-core.h: Likewise.
5235
5236 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5237
5238         * builtins.c (fold_builtin_nan): Delete.
5239         (fold_builtin_memcmp): Remove case where both arguments are constant.
5240         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
5241         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
5242         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
5243         * fold-const-call.c: Include fold-const.h.
5244         (host_size_t_cst_p): New function.
5245         (build_cmp_result, fold_const_builtin_nan): Likewise.
5246         (fold_const_call_1): New function, split out from...
5247         (fold_const_call): ...here (for all three interfaces).  Handle
5248         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
5249
5250 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5251
5252         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
5253         (fold_builtin_1): Don't call them.
5254         * fold-const-call.c: Include tm.h.
5255         (fold_const_call_ss): New variant for integer-to-integer folds.
5256         (fold_const_call): Call it.
5257
5258 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5259
5260         * builtins.c (fold_builtin_classify): Move constant cases to...
5261         * fold-const-call.c (fold_const_call_ss): ...here.
5262
5263 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5264
5265         * builtins.h (c_getstr): Move to...
5266         * fold-const.h (c_getstr): ...here.
5267         * builtins.c (c_getstr): Move to...
5268         * fold-const.c (c_getstr): ...here.
5269
5270 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5271
5272         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
5273         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
5274
5275 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
5276
5277         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
5278         the dominance info; free it if we can't.
5279         (pass_call_cdce::execute): Don't free the dominance info here.
5280
5281 2015-11-06  Jeff Law <law@redhat.com>
5282
5283         * tree-ssa-threadedge.c (dummy_simplify): Remove.
5284         (thread_around_empty_blocks): Remove backedge_seen_p argument.
5285         If we thread to a backedge, then return false.  Update recursive
5286         call to eliminate backedge_seen_p argument.
5287         (thread_through_normal_block): Remove backedge_seen_p argument.
5288         Remove backedge_seen_p argument from calls to
5289         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
5290         If we thread to a backedge, then return 0.
5291         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
5292         pass it to thread_through_normal_block or thread_through_empty_blocks.
5293         For joiner handling, if we see a backedge, do not try normal
5294         threading.
5295
5296 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
5297
5298         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
5299         * graphite-poly.c (new_scop): Initialize original_schedule.
5300         (free_scop): Free original_schedule.
5301         * graphite-poly.h (struct scop): Add field original_schedule.
5302         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
5303         (build_poly_scop): Call build_scop_original_schedule.
5304
5305 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
5306
5307         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
5308         (build_pbb_minimal_scattering_polyhedrons): New.
5309         (build_scop_scattering): Remove.
5310         (build_scop_minimal_scattering): New.
5311         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
5312         (build_poly_scop): Call build_scop_minimal_scattering.
5313
5314 2015-11-06  Jeff Law <law@redhat.com>
5315
5316         * cfg-flags.def (IGNORE): New edge flag.
5317         * tree-vrp.c (identify_jump_threads): Mark and clear edges
5318         scheduled for removal with EDGE_IGNORE around call into
5319         jump threader.  Do no thread across edges with EDGE_IGNORE,
5320         but do allow threading across those with EDGE_DFS_BACK.
5321
5322 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
5323
5324         * doc/md.texi (multi-alternative constraints): Don't document
5325         alternatives inherently tied to reload for the user documentation.
5326
5327 2015-11-06  Michael Collison  <michael.collison@linaro.org>
5328             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5329
5330         Revert:
5331         2015-08-01  Michael Collison  <michael.collison@linaro.org
5332                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5333
5334         * config/arm/arm.md (*arm_smin_cmp): New pattern.
5335         (*arm_umin_cmp): Likewise.
5336
5337 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
5338
5339         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
5340         * omp-low.c (check_omp_nesting_restrictions): Update for the
5341         various new OpenMP 4.5 nesting restrictions, clarified
5342         nesting glossary, closely nested region relationship clarified
5343         to mean explicit or implicit parallel regions (target/teams),
5344         use %</%> or %qs where appropriate.
5345
5346 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
5347             Sebastian Pop  <s.pop@samsung.com>
5348
5349         * graphite-scop-detection.c (loop_is_valid_scop): Call
5350         optimize_loop_nest_for_speed_p.
5351
5352 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
5353             Sebastian Pop  <s.pop@samsung.com>
5354
5355         * graphite-optimize-isl.c (optimize_isl): Call
5356         isl_options_set_schedule_maximize_band_depth.
5357
5358 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
5359             Sebastian Pop  <s.pop@samsung.com>
5360
5361         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
5362         and exit edges should not be a part of irreducible loop.
5363         (scop_detection::can_represent_loop_1): Loops should not be
5364         irreducible.
5365         (scop_detection::harmful_stmt_in_region): All the basic block
5366         should belong to reducible loops.
5367
5368 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
5369
5370         * config/aarch64/aarch64-simd-builtins.def: Update builtins
5371         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
5372         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
5373         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
5374         (aarch64_tbx4v8qi): Rename to...
5375         aarch64_tbx4<mode>): ... this.
5376         (aarch64_qtbl3<mode>): New pattern.
5377         (aarch64_qtbx3<mode>): New pattern.
5378         (aarch64_qtbl4<mode>): New pattern.
5379         (aarch64_qtbx4<mode>): New pattern.
5380         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
5381         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
5382         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
5383         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
5384         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
5385         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
5386         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
5387         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
5388         functions.
5389
5390 2015-11-06  Mike Stump  <mikestump@comcast.net>
5391
5392         PR debug/66728
5393         * dwarf2out.c (get_full_len): Return a value based upon the actual
5394         precision needed for the value.
5395         (add_const_value_attribute): Use a maximal wide-int for
5396         CONST_WIDE_INTs, not VOIDmode.
5397         (output_die): Don't ever output NULL with printf.
5398
5399         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
5400         BLKmode nor VOIDmode values.
5401
5402 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5403
5404         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
5405         and "range2".
5406         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
5407         * diagnostic-core.h (warning_at_rich_loc): New declaration.
5408         (error_at_rich_loc): New declaration.
5409         (permerror_at_rich_loc): New declaration.
5410         (inform_at_rich_loc): New declaration.
5411         * diagnostic-show-locus.c (adjust_line): Delete.
5412         (struct point_state): New struct.
5413         (class colorizer): New class.
5414         (class layout_point): New class.
5415         (class layout_range): New class.
5416         (struct line_bounds): New.
5417         (class layout): New class.
5418         (colorizer::colorizer): New ctor.
5419         (colorizer::~colorizer): New dtor.
5420         (layout::layout): New ctor.
5421         (layout::print_source_line): New method.
5422         (layout::print_annotation_line): New method.
5423         (layout::get_state_at_point): New method.
5424         (layout::get_x_bound_for_row): New method.
5425         (diagnostic_show_locus): Reimplement in terms of class layout.
5426         (diagnostic_print_caret_line): Delete.
5427         * diagnostic.c (diagnostic_initialize): Replace
5428         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
5429         (diagnostic_set_info_translated): Convert param from location_t
5430         to rich_location *.  Eliminate calls to set_location on the
5431         message in favor of storing the rich_location ptr there.
5432         (diagnostic_set_info): Convert param from location_t to
5433         rich_location *.
5434         (diagnostic_build_prefix): Break out array into...
5435         (diagnostic_kind_color): New variable.
5436         (diagnostic_get_color_for_kind): New function.
5437         (diagnostic_report_diagnostic): Colorize the option_text
5438         using the color for the severity.
5439         (diagnostic_append_note): Update for change in signature of
5440         diagnostic_set_info.
5441         (diagnostic_append_note_at_rich_loc): New function.
5442         (emit_diagnostic): Update for change in signature of
5443         diagnostic_set_info.
5444         (inform): Likewise.
5445         (inform_at_rich_loc): New function.
5446         (inform_n): Update for change in signature of diagnostic_set_info.
5447         (warning): Likewise.
5448         (warning_at): Likewise.
5449         (warning_at_rich_loc): New function.
5450         (warning_n): Update for change in signature of diagnostic_set_info.
5451         (pedwarn): Likewise.
5452         (permerror): Likewise.
5453         (permerror_at_rich_loc): New function.
5454         (error): Update for change in signature of diagnostic_set_info.
5455         (error_n): Likewise.
5456         (error_at): Likewise.
5457         (error_at_rich_loc): New function.
5458         (sorry): Update for change in signature of diagnostic_set_info.
5459         (fatal_error): Likewise.
5460         (internal_error): Likewise.
5461         (internal_error_no_backtrace): Likewise.
5462         (source_range::debug): New function.
5463         * diagnostic.h (struct diagnostic_info): Eliminate field
5464         "override_column".  Add field "richloc".
5465         (struct diagnostic_context): Add field "colorize_source_p".
5466         (diagnostic_override_column): Delete.
5467         (diagnostic_set_info): Convert param from location_t to
5468         rich_location *.
5469         (diagnostic_set_info_translated): Likewise.
5470         (diagnostic_append_note_at_rich_loc): New function.
5471         (diagnostic_num_locations): New function.
5472         (diagnostic_expand_location): Get the location from the
5473         rich_location.
5474         (diagnostic_print_caret_line): Delete.
5475         (diagnostic_get_color_for_kind): New declaration.
5476         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
5477         (error_cb): Update for change in signature of "error" callback.
5478         (fatal_at): Likewise.
5479         (warning_at): Likewise.
5480         * input.c (linemap_client_expand_location_to_spelling_point): New.
5481         * pretty-print.c (text_info::set_range): New method.
5482         (text_info::get_location): New method.
5483         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
5484         (struct text_info): Eliminate "locations" array in favor of
5485         "m_richloc", a rich_location *.
5486         (textinfo::set_location): Add a "caret_p" param, and reimplement
5487         in terms of a call to set_range.
5488         (textinfo::get_location): Eliminate inline implementation in favor of
5489         an out-of-line reimplementation.
5490         (textinfo::set_range): New method.
5491         * rtl-error.c (diagnostic_for_asm): Update for change in signature
5492         of diagnostic_set_info.
5493         * tree-diagnostic.c (default_tree_printer): Update for new
5494         "caret_p" param for textinfo::set_location.
5495         * tree-pretty-print.c (percent_K_format): Likewise.
5496
5497 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5498
5499         Properly apply.
5500         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5501         * config/aarch64/aarch64.c
5502         (aarch64_can_use_per_function_literal_pools_p): New.
5503         (aarch64_use_blocks_for_constant_p): Adjust declaration
5504         and use aarch64_can_use_function_literal_pools_p.
5505         (aarch64_select_rtx_section): Update.
5506
5507 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5508
5509         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
5510         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
5511         (arm_output_multireg_pop): Likewise.
5512         (output_move_double):  Likewise.
5513         (output_move_quad):  Likewise.
5514         (output_return_instruction): Likewise.
5515         (arm_print_operand): Remove support for %( and %. print modifiers.
5516         (arm_output_shift): Make unified asm.
5517         (arm_declare_function_name): Likewise.
5518         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
5519         (ASM_APP_OFF): Adjust.
5520         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
5521         (ASM_OUTPUT_REG_POP): Likewise.
5522         * config/arm/arm.md: Adjust uses of %., %(, %)
5523         * config/arm/sync.md: Likewise.
5524         * config/arm/thumb2.md: Likewise.
5525         * config/arm/ldmstm.md: Regenerate.
5526         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
5527         * doc/invoke.texi (masm-unified-syntax): Update documentation.
5528
5529 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5530
5531         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
5532
5533 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5534
5535         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
5536         add OEP_MATCH_SIDE_EFFECTS.
5537         * fold-const.c (operand_equal_p): Update documentation; handle
5538         OEP_MATCH_SIDE_EFFECTS.
5539         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
5540         OEP_MATCH_SIDE_EFFECTS.
5541
5542 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
5543             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5544
5545         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
5546         * config/aarch64/aarch64-protos.h: Declare.
5547         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
5548         frsqrts.
5549         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
5550         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
5551         code when applicable.
5552         * config/aarch64/aarch64.md: Added enum entries.
5553         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
5554
5555 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5556
5557         PR ipa/68057
5558         PR ipa/68220
5559         * ipa-polymorphic-call.c
5560         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
5561         issue when offset is out of range.
5562         (contains_type_p): Fix out of range check, clear dynamic flag.
5563
5564 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
5565
5566         * config.gcc (e6500): Fix cpu_is_64bit typo.
5567
5568 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
5569
5570         * tree-sra.c (completely_scalarize): Properly handle negative array
5571         indices using offset_int.
5572
5573 2015-11-06  Richard Biener  <rguenther@suse.de>
5574
5575         * alloc-pool.h (object_allocator::allocate): Default-initialize
5576         object.
5577
5578 2015-11-06  Richard Biener  <rguenther@suse.de>
5579
5580         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
5581         * lra.c (init_reg_info): Truncate copy_vec instead of
5582         re-allocating a new one and leaking the old.
5583         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
5584         bb_infos vec.
5585         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
5586         * postreload-gcse.c (free_mem): Free modify_mem_list and
5587         canon_modify_mem_list.
5588
5589 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
5590
5591         PR tree-optimization/68145
5592         * tree-vect-stmts.c (vectorizable_operation): Fix
5593         determination for booleans.
5594
5595 2015-11-06  Tom de Vries  <tom@codesourcery.com>
5596
5597         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
5598         cond_jump, instead of split after last nondebug insn before cond_jump.
5599         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
5600         returning.
5601
5602 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5603
5604         PR target/68088
5605         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
5606         subregs from accumulator and make sure it's a register.
5607
5608 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
5609
5610         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
5611         low part to scalar.
5612         (reduc_uplus_<mode>): Remove.
5613         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
5614         loongson_extract_lo_<mode>.
5615         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
5616         reduc_smax_<mode>, reduc_smax_<mode>, use vec
5617         loongson_extract_lo_<mode>.
5618         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
5619
5620 2015-11-06  Richard Biener  <rguenther@suse.de>
5621
5622         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
5623         members.
5624         (vect_stmt_in_region_p): Declare.
5625         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
5626         (destroy_bb_vec_info): Likewise.
5627         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
5628         (vect_get_and_check_slp_defs): Likewise.
5629         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
5630         (vect_slp_bb): Likewise.
5631         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
5632         in terms of vect_stmt_in_region_p.
5633         (vect_pattern_recog): Iterate over the BB region.
5634         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
5635         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
5636         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
5637         * config/i386/i386.c: Include gimple-iterator.h.
5638         * config/aarch64/aarch64.c: Likewise.
5639
5640 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
5641
5642         PR rtl-optimization/67753
5643         PR rtl-optimization/64164
5644         * function.c (assign_parm_setup_block): Avoid allocating a
5645         stack slot if we don't have an ABI-reserved one.  Emit the
5646         copy to target_reg in the conversion seq if the copy from
5647         entry_parm is in it too.  Don't use the conversion seq to copy
5648         a PARALLEL to a REG or a CONCAT.
5649
5650 2015-11-06  Richard Biener  <rguenther@suse.de>
5651
5652         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
5653         equal_keys.
5654
5655 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
5656             Thomas Schwinge  <thomas@codesourcery.com>
5657             James Norris  <jnorris@codesourcery.com>
5658
5659
5660         * gimplify.c (gimplify_scan_omp_clauses): Add support for
5661         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
5662         (gimplify_adjust_omp_clauses): Likewise.
5663         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
5664         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
5665         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
5666         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
5667         (omp_clause_code_name): Likewise.
5668         (walk_tree_1): Handle OMP_CLAUSE_TILE.
5669         * tree.h (OMP_TILE_LIST): New macro.
5670
5671 2015-11-05  Martin Sebor  <msebor@redhat.com>
5672
5673         PR c++/67942
5674         * doc/invoke.texi (-Wplacement-new): Document new option.
5675
5676 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
5677
5678         PR tree-optimization/65963
5679         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
5680         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
5681
5682 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
5683
5684         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
5685         (noce_convert_multiple_sets): Likewise.
5686         (noce_process_if_block): Call them.
5687
5688 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5689
5690         * gimple-fold.c: Include omp-low.h.
5691         (fold_internal_goacc_dim): New.
5692         (gimple_fold_call): Call it.
5693
5694 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
5695             Ilya Verbin  <ilya.verbin@intel.com>
5696
5697         * builtin-types.def
5698         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
5699         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
5700         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
5701         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
5702         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
5703         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
5704         (struct cgraph_simd_clone_arg): Adjust comment.
5705         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
5706         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
5707         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
5708         to GOMP_target_data_ext.
5709         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
5710         to GOMP_target_update_ext.
5711         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
5712         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
5713         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
5714         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
5715         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
5716         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
5717         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
5718         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
5719         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
5720         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
5721         * tree-core.h (enum omp_clause_schedule_kind): Add
5722         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
5723         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
5724         OMP_CLAUSE_SCHEDULE_LAST value.
5725         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
5726         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
5727         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
5728         OMP_FOR_CHECK.  Remove comment.
5729         * tree-pretty-print.c (dump_omp_clause): Handle
5730         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
5731         Simplify.  Print schedule clause modifiers.
5732         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
5733         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
5734         cases.
5735         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
5736         (omp_default_clause): Tweak for
5737         private/firstprivate/is_device_ptr variables on target
5738         construct and use_device_ptr on target data.
5739         (omp_check_private): Likewise.
5740         (omp_notice_variable): For references check whether what it refers
5741         to has mappable type, rather than the reference itself.
5742         (omp_is_private): Diagnose linear iteration variables on non-simd
5743         constructs.
5744         (omp_no_lastprivate): Return true only for Fortran.
5745         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
5746         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
5747         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
5748         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
5749         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
5750         lastprivate and linear when combined with distribute.  Gimplify
5751         variable low-bound for array reduction.  Look through
5752         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
5753         reductions.
5754         (gimplify_adjust_omp_clauses_1): For implicit references to
5755         variables with reference type and when not ref to scalar or
5756         ref to pointer, map what they refer to using tofrom and
5757         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
5758         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
5759         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
5760         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
5761         Diagnose the same var on both firstprivate and lastprivate on
5762         distribute construct.
5763         (gimplify_omp_for): Fix up handling of predetermined
5764         lastprivate or linear iter vars when combined with distribute.
5765         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
5766         functions.
5767         (gimplify_omp_workshare): Call optimize_target_teams.
5768         * omp-low.c (struct omp_region): Add sched_modifiers field.
5769         (struct omp_for_data): Likewise.
5770         (omp_any_child_fn_dumped): New variable.
5771         (extract_omp_for_data): Fill in sched_modifiers, and mask out
5772         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
5773         from sched_kind.
5774         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
5775         bits of OMP_CLAUSE_SCHED_KIND.
5776         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
5777         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
5778         for array section reductions.
5779         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
5780         for distribute parallel for, if there are lastprivate clauses on the
5781         for.
5782         (lower_rec_input_clauses): Handle non-zero low-bound on array
5783         section reductions.
5784         (lower_reduction_clauses): Likewise.
5785         (lower_send_clauses): Look through POINTER_PLUS_EXPR
5786         for array section reductions.
5787         (expand_parallel_call): Use nonmonotonic entrypoints for
5788         nonmonotonic: dynamic/guided.
5789         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
5790         child_fn if current_function_decl has assembler name set, but child_fn
5791         does not.  Dump the header and IL of the child function when not in SSA
5792         form.
5793         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
5794         arguments to BUILT_IN_GOMP_TARGET.
5795         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
5796         Initialize the extra _looptemp_ clause to fd->loop.n2.
5797         (expand_omp_for): Use nonmonotonic entrypoints for
5798         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
5799         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
5800         again if we have dumped any child functions.
5801         (lower_omp_for_lastprivate): Determine the right count variable
5802         for distribute simd, or distribute parallel for{, simd}.
5803         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
5804         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
5805         support.
5806         (simd_clone_clauses_extract): Handle variable step
5807         for references and arguments passed by reference.
5808         (simd_clone_mangle): Mangle ref/uval/val variable steps.
5809         (simd_clone_adjust_argument_types): Handle
5810         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
5811         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
5812         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
5813         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
5814         (simd_clone_linear_addend): New function.
5815         (simd_clone_adjust): Handle variable step like similarly
5816         to constant step, use simd_clone_linear_addend to determine
5817         the actual step at runtime.
5818
5819 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5820
5821         * target.def (goacc.dim_limit): New hook.
5822         * targhooks.h (default_goacc_dim_limit): Declare.
5823         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
5824         * doc/tm.texi: Rebuilt.
5825         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
5826         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
5827         (default_goacc_dim_limit): New.
5828         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5829         (nvptx_goacc_dim_limit) New.
5830         (TARGET_GOACC_DIM_LIMIT): Override.
5831         * tree-vrp.c: Include omp-low.h, target.h.
5832         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
5833         IFN_GOACC_DIM_POS.
5834
5835 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5836
5837         * tree-vect-generic.c (do_compare): Use -1 for true
5838         result instead of 1.
5839
5840 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5841
5842         * config/aarch64/aarch64.c
5843         (aarch64_can_use_per_function_literal_pools_p): New.
5844         (aarch64_use_blocks_for_constant_p): Adjust declaration
5845         and use aarch64_can_use_function_literal_pools_p.
5846         (aarch64_select_rtx_section): Update.
5847
5848 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5849
5850         * targhooks.c (default_get_mask_mode): Use BLKmode in
5851         case target doesn't support required vector mode.
5852         * stor-layout.c (layout_type); Check for BLKmode.
5853
5854 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5855             Sebastian Pop  <s.pop@samsung.com>
5856
5857         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
5858         Remove use of parameter_rename_map.
5859         (copy_def): Remove.
5860         (copy_internal_parameters): Remove.
5861         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
5862         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
5863         (free_sese_info): Do not free parameter_rename_map.
5864         (set_rename): Do not use parameter_rename_map.
5865         (rename_uses): Update call to set_rename.
5866         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
5867         * sese.h (parameter_rename_map_t): Remove.
5868         (struct sese_info_t): Remove field parameter_rename_map.
5869
5870 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5871             Sebastian Pop  <s.pop@samsung.com>
5872
5873         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
5874         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
5875         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
5876         anonymous namespace.
5877         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
5878         (isl_id_for_pbb): Use a buffer of size 10.
5879         (isl_id_for_ssa_name): Same.
5880         * sese.c (set_rename): Add more dumps.
5881
5882 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5883
5884         * omp-low.c (struct omp_context): Remove reduction_map field.
5885         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
5886         (new_omp_context, delete_omp_context, scan_omp_target): Remove
5887         reduction_map handling.
5888         (lower_omp_target): Remove obsolete openacc reduction handling.
5889
5890 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5891
5892         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
5893
5894 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5895             Cesar Philippidis  <cesar@codesourcery.com>
5896
5897         * config/nvptx/nvptx.c: Include gimple headers.
5898         (worker_red_size, worker_red_align, worker_red_name,
5899         worker_red_sym): New.
5900         (nvptx_option_override): Initialize worker reduction buffer.
5901         (nvptx_file_end): Write out worker reduction buffer var.
5902         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
5903         nvptx_expand_cmp_swap): New builtin expanders.
5904         (enum nvptx_builtins): New.
5905         (nvptx_builtin_decls): New.
5906         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
5907         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5908         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
5909         nvptx_lockless_update): New helpers.
5910         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
5911         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
5912         (nvptx_goacc_reduction): New.
5913         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
5914         TARGET_BUILTIN_DECL): Override.
5915         (TARGET_GOACC_REDUCTION): Override.
5916
5917 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5918             Cesar Philippidis  <cesar@codesourcery.com>
5919
5920         * internal-fn.def (GOACC_REDUCTION): New.
5921         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
5922         * internal-fn.c (expand_GOACC_REDUCTION): New.
5923         * target.def (goacc.reduction): New OpenACC hook.
5924         * targhooks.h (default_goacc_reduction): Declare.
5925         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
5926         * doc/tm.texi: Rebuilt.
5927         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
5928         scan_sharing_clauses): Remove oacc reduction handling here.
5929         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
5930         (oacc_lower_reduction_var_helper): Delete.
5931         (lower_oacc_reductions): New.
5932         (lower_reduction_clauses): Don't handle OpenACC reductions here.
5933         (lower_oacc_head_tail): Call lower_oacc_reductions.
5934         (oacc_gimple_assign, oacc_init_reduction_array,
5935         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
5936         oacc_process_reduction_data): Delete.
5937         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
5938         dummy OpenACC gang reduction for reductions at outer level.
5939         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
5940         (default_goacc_reduction): New.
5941         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
5942
5943 2015-11-04  Martin Liska  <mliska@suse.cz>
5944
5945         * cgraphunit.c (cgraph_node::expand_thunk): Call
5946         allocate_struct_function before init_function_start.
5947         (cgraph_node::expand): Use push_cfun and pop_cfun.
5948         * config/i386/i386.c (ix86_code_end): Call
5949         allocate_struct_function before init_function_start.
5950         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
5951         * function.c (init_function_start): Move preamble to all
5952         callers.
5953         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
5954         (execute_one_pass): Handle newly added TODO_discard_function.
5955         (execute_pass_list_1): Terminate if cfun equals to NULL.
5956         (execute_pass_list): Do not push and pop cfun, expect that
5957         cfun is set.
5958         * tree-pass.h (TODO_discard_function): Define.
5959
5960 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
5961
5962         * cfganal.c (inverted_post_order_compute): Remove conditional
5963         compilation, use flag_checking.
5964         * config.in: Regenerate.
5965         * configure: Regenerate.
5966         * configure.ac: Remove ENABLE_CHECKING.
5967         * genconditions.c: Do not #undef ENABLE_CHECKING.
5968         * sese.h (bb_in_region): Comment out broken check.
5969         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
5970         conditional compilation, use flag_checking.
5971
5972 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5973
5974         PR tree-optimization/67742
5975         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
5976         field.
5977         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
5978         (create_variable_info_for_1): Add and handle handle_param parameter.
5979         Add restrict handling.
5980         (create_variable_info_for): Call create_variable_info_for_1 with extra
5981         arg.
5982         (make_param_constraints): Drop restrict_name parameter.  Ignore
5983         vi->only_restrict_pointers.
5984         (intra_create_variable_infos): Call create_variable_info_for_1 with
5985         extra arg.  Remove restrict handling.  Call make_param_constraints with
5986         one fewer arg.
5987
5988 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5989
5990         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
5991         variable.
5992
5993 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5994
5995         * config/arm/coff.h: Remove.
5996
5997 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5998
5999         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
6000         check for aggregate types and beef up comment for mode check.
6001
6002 2015-11-03  Richard Biener  <rguenther@suse.de>
6003
6004         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
6005         data references here.
6006         * tree-vect-loop.c: Include cgraph.h.
6007         (vect_analyze_loop_2): Collect data references here.
6008         * tree-vect-slp.c (find_bb_location): Inline ...
6009         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
6010         Factor in vect_slp_transform_bb.
6011         (vect_slp_transform_bb): Removed.
6012         (vect_slp_analyze_bb_1): Collect data references here.
6013         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
6014         vect_slp_bb.
6015         * tree-vectorizer.h (vect_slp_bb): Declare.
6016         (vect_slp_analyze_bb): Remove.
6017         (vect_slp_transform_bb): Remove.
6018         (find_bb_location): Remove.
6019         (vect_analyze_data_refs): Remove stmt count reference parameter.
6020
6021 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
6022
6023         * multiple_target.c (create_dispatcher_calls): Add target check
6024         on ifunc.
6025         (create_target_clone): Change assembler name for versioned declarations.
6026
6027 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
6028             Chung-Lin Tang  <cltang@codesourcery.com>
6029
6030         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
6031         * omp-low.c (check_omp_nesting_restrictions): Allow
6032         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
6033         contexts.
6034
6035 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
6036
6037         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
6038         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
6039         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
6040         builtin.
6041         (vmulxq_f32): Likewise.
6042         (vmulx_f64): New.
6043         (vmulxq_f64): Rewrite to call fmulx builtin.
6044         (vmulxs_f32): Likewise.
6045         (vmulxd_f64): Likewise.
6046         (vmulx_lane_f32): Remove.
6047         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
6048
6049 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
6050
6051         * config/aarch64/aarch64.md (*movhf_aarch64): Use
6052         aarch64_reg_or_fp_zero for second operand.
6053
6054 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
6055
6056         * gimple-expr.c: Include hash-set.h and rtl.h.
6057         (mark_addressable_queue): New var.
6058         (mark_addressable): Factor actual marking into...
6059         (mark_addressable_1): ... this.  Queue it up during expand.
6060         (mark_addressable_2): New.
6061         (flush_mark_addressable_queue): New.
6062         * gimple-expr.h (flush_mark_addressable_queue): Declare.
6063         * cfgexpand.c: Include gimple-expr.h.
6064         (pass_expand::execute): Flush mark_addressable queue.
6065
6066 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
6067
6068         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
6069         bb_no_side_effects_p tests...
6070         (tree_ssa_ifcombine_bb): ... here.
6071
6072         PR tree-optimization/68083
6073         * tree-ssa-ifcombine.c: Include tree-ssa.h.
6074         (bb_no_side_effects_p): Test for undefined uses too.
6075         * tree-ssa.c (gimple_uses_undefined_value_p): New.
6076         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
6077
6078 2015-11-02  Jeff Law <law@redhat.com>
6079
6080         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
6081         cases where the loop latch edge is in the middle of an FSM path.
6082
6083 2015-11-03  Tom de Vries  <tom@codesourcery.com>
6084
6085         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
6086         (make_param_constraints): ... this.  Add and handle restrict_name
6087         parameter.  Handle is_full_var case.
6088         (intra_create_variable_infos): Use make_param_constraints.
6089
6090 2015-11-03  Tom de Vries  <tom@codesourcery.com>
6091
6092         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
6093         make_copy_constraint call with make_constraint_from call.
6094
6095 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
6096
6097         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
6098         PIE executables.
6099
6100 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
6101
6102         * builtins.h (fold_fma): Move to fold-const-call.h.
6103         * builtins.c: Include fold-const-call.h.
6104         (mathfn_built_in_2): New function, split out from...
6105         (mathfn_built_in_1): ...here.
6106         (do_real_to_int_conversion, fold_const_builtin_pow)
6107         (fold_const_builtin_logb, fold_const_builtin_significand)
6108         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
6109         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
6110         (fold_builtin_sincos): Use fold_const_call to handle constants.
6111         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
6112         checks for ERROR_MARK.  Use fold_const_call to handle constant
6113         folds for math functions.
6114         (fold_fma): Move to fold-const-call.c.
6115         * fold-const.c: Include fold-const-call.h.
6116         * Makefile.in (OBJS): Add fold-const-call.o.
6117         (PLUGIN_HEADERS): Add fold-const-call.h.
6118         * realmpfr.h (real_from_mpfr): Allow the format to be specified
6119         directly.
6120         * realmpfr.c (real_from_mpfr): Likewise.
6121         * fold-const-call.h, fold-const-call.c: New files.
6122
6123 2015-11-02  Julian Brown  <julian@codesourcery.com>
6124
6125         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
6126         brackets and semicolon.
6127
6128 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
6129
6130         Revert:
6131         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
6132
6133         PR tree-optimization/65963
6134         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
6135         LSHIFT_EXPRs as equivalent MULT_EXPRs.
6136
6137 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
6138
6139         PR middle-end/68166
6140         * fold-const.c: Include "md5.h".
6141
6142 2015-11-01  Jeff Law <law@redhat.com>
6143
6144         * vmsdbgout.c: Revert unused header file reduction patch.
6145
6146         * config/mcore/mcore.c: Include regs.h.
6147
6148 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
6149
6150         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
6151
6152 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
6153
6154         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
6155         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
6156         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
6157
6158 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
6159
6160         * ggc-common.c: Restore needed header for checking=release.
6161
6162 2015-10-31  Tom de Vries  <tom@codesourcery.com>
6163
6164         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
6165
6166 2015-10-31  Tom de Vries  <tom@codesourcery.com>
6167
6168         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
6169         existing varinfo for arguments.
6170
6171 2015-10-31  Tom de Vries  <tom@codesourcery.com>
6172
6173         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
6174         create_function_info_for.  Dump constraints generated during
6175         create_function_info_for. Move intra_create_variable_infos call and
6176         function-return-values-escape bit to ...
6177         (create_function_info_for): ... here, and merge
6178         intra_create_variable_infos call with argument loop.  Add and handle
6179         nonlocal_p parameter.
6180
6181 2015-10-31  Tom de Vries  <tom@codesourcery.com>
6182
6183         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
6184         updating is alap, and seperated from preceding code.  Make sure
6185         insert_vi_for_tree is seperated from surrounding code.
6186
6187 2015-10-31  Tom de Vries  <tom@codesourcery.com>
6188
6189         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
6190
6191 2015-10-30  Jeff Law <law@redhat.com>
6192             Nathan Sidwell  <nathan@acm.org>
6193
6194         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
6195         args.
6196         (MOVE_MAX): Set to 8.
6197
6198 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
6199
6200         * cgraph.c: Include context.h for offloading.
6201         * varpool.c: Include context.h and omp-low.h.
6202
6203 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
6204
6205         * rtl.h (contains_symbol_ref_p): Declare.
6206         (SYMBOL_REF_P): Define.
6207         * rtlanal.c (contains_symbol_ref_p: New function.
6208         * lra-constraints.c (contains_symbol_ref_p): Remove.
6209         * var-tracking.c (contains_symbol_ref): Remove.
6210         (track_expr_p): Use contains_symbol_ref_p instead of
6211         contains_symbol_ref.
6212
6213 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
6214
6215         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
6216         * fold-const.c (get_array_ctor_element_at_index): New.
6217         (fold): Remove binary-search through CONSTRUCTOR, call previous.
6218
6219         * fold-const.h (get_array_ctor_element_at_index): New.
6220
6221 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
6222
6223         * Makefile.in (OBJS): Add multiple_target.o.
6224         * attrib.c (make_attribute): Moved from config/i386/i386.c
6225         * config/i386/i386.c (make_attribute): Deleted.
6226         * multiple_target.c (create_dispatcher_calls): New.
6227         (get_attr_len): Ditto.
6228         (get_attr_str): Ditto.
6229         (separate_attrs): Ditto.
6230         (is_valid_asm_symbol): Ditto.
6231         (create_new_asm_name): Ditto.
6232         (create_target_clone): Ditto.
6233         (expand_target_clones): Ditto.
6234         (ipa_target_clone): Ditto.
6235         (ipa_dispatcher_calls): Ditto.
6236         * passes.def (pass_target_clone): Two new ipa passes.
6237         * tree-pass.h (make_pass_target_clone): Ditto.
6238         * doc/extend.texi (target_clones): New attribute description.
6239
6240 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
6241
6242         PR rtl-optimization/68106
6243         * lra-remat.c (input_regno_present_p): Process hard regs
6244         explicitly present in machine description insns.
6245         (call_used_input_regno_present_p): Ditto.
6246         (calculate_gen_cands): Ditto.
6247         (do_remat): Ditto.
6248
6249 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
6250
6251         * config/arm/neon-testgen.ml: Fix comment typo.
6252
6253 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6254
6255         * rtlanal.c (reg_set_p): Expand function comment.
6256
6257 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
6258
6259         * alias.c: Remove unused headers.
6260         * asan.c: Likewise.
6261         * attribs.c: Likewise.
6262         * auto-inc-dec.c: Likewise.
6263         * auto-profile.c: Likewise.
6264         * bb-reorder.c: Likewise.
6265         * bitmap.c: Likewise.
6266         * bt-load.c: Likewise.
6267         * builtins.c: Likewise.
6268         * caller-save.c: Likewise.
6269         * calls.c: Likewise.
6270         * ccmp.c: Likewise.
6271         * cfg.c: Likewise.
6272         * cfganal.c: Likewise.
6273         * cfgbuild.c: Likewise.
6274         * cfgcleanup.c: Likewise.
6275         * cfgexpand.c: Likewise.
6276         * cfghooks.c: Likewise.
6277         * cfgloop.c: Likewise.
6278         * cfgloopanal.c: Likewise.
6279         * cfgloopmanip.c: Likewise.
6280         * cfgrtl.c: Likewise.
6281         * cgraph.c: Likewise.
6282         * cgraphbuild.c: Likewise.
6283         * cgraphclones.c: Likewise.
6284         * cgraphunit.c: Likewise.
6285         * cilk-common.c: Likewise.
6286         * combine-stack-adj.c: Likewise.
6287         * combine.c: Likewise.
6288         * compare-elim.c: Likewise.
6289         * convert.c: Likewise.
6290         * coverage.c: Likewise.
6291         * cppbuiltin.c: Likewise.
6292         * cprop.c: Likewise.
6293         * cse.c: Likewise.
6294         * cselib.c: Likewise.
6295         * data-streamer-in.c: Likewise.
6296         * data-streamer-out.c: Likewise.
6297         * data-streamer.c: Likewise.
6298         * dbxout.c: Likewise.
6299         * dce.c: Likewise.
6300         * ddg.c: Likewise.
6301         * debug.c: Likewise.
6302         * df-core.c: Likewise.
6303         * df-problems.c: Likewise.
6304         * df-scan.c: Likewise.
6305         * dfp.c: Likewise.
6306         * dojump.c: Likewise.
6307         * dominance.c: Likewise.
6308         * domwalk.c: Likewise.
6309         * double-int.c: Likewise.
6310         * dse.c: Likewise.
6311         * dumpfile.c: Likewise.
6312         * dwarf2asm.c: Likewise.
6313         * dwarf2cfi.c: Likewise.
6314         * dwarf2out.c: Likewise.
6315         * emit-rtl.c: Likewise.
6316         * except.c: Likewise.
6317         * explow.c: Likewise.
6318         * expmed.c: Likewise.
6319         * expr.c: Likewise.
6320         * final.c: Likewise.
6321         * fixed-value.c: Likewise.
6322         * fold-const.c: Likewise.
6323         * function.c: Likewise.
6324         * fwprop.c: Likewise.
6325         * gcse.c: Likewise.
6326         * generic-match-head.c: Likewise.
6327         * ggc-common.c: Likewise.
6328         * gimple-builder.c: Likewise.
6329         * gimple-expr.c: Likewise.
6330         * gimple-fold.c: Likewise.
6331         * gimple-iterator.c: Likewise.
6332         * gimple-low.c: Likewise.
6333         * gimple-match-head.c: Likewise.
6334         * gimple-pretty-print.c: Likewise.
6335         * gimple-ssa-isolate-paths.c: Likewise.
6336         * gimple-ssa-strength-reduction.c: Likewise.
6337         * gimple-streamer-in.c: Likewise.
6338         * gimple-streamer-out.c: Likewise.
6339         * gimple-walk.c: Likewise.
6340         * gimple.c: Likewise.
6341         * gimplify-me.c: Likewise.
6342         * gimplify.c: Likewise.
6343         * godump.c: Likewise.
6344         * graph.c: Likewise.
6345         * graphds.c: Likewise.
6346         * haifa-sched.c: Likewise.
6347         * hw-doloop.c: Likewise.
6348         * ifcvt.c: Likewise.
6349         * init-regs.c: Likewise.
6350         * internal-fn.c: Likewise.
6351         * ipa-chkp.c: Likewise.
6352         * ipa-comdats.c: Likewise.
6353         * ipa-cp.c: Likewise.
6354         * ipa-devirt.c: Likewise.
6355         * ipa-icf-gimple.c: Likewise.
6356         * ipa-icf.c: Likewise.
6357         * ipa-inline-analysis.c: Likewise.
6358         * ipa-inline-transform.c: Likewise.
6359         * ipa-inline.c: Likewise.
6360         * ipa-polymorphic-call.c: Likewise.
6361         * ipa-profile.c: Likewise.
6362         * ipa-prop.c: Likewise.
6363         * ipa-pure-const.c: Likewise.
6364         * ipa-ref.c: Likewise.
6365         * ipa-reference.c: Likewise.
6366         * ipa-split.c: Likewise.
6367         * ipa-utils.c: Likewise.
6368         * ipa-visibility.c: Likewise.
6369         * ipa.c: Likewise.
6370         * ira-build.c: Likewise.
6371         * ira-color.c: Likewise.
6372         * ira-conflicts.c: Likewise.
6373         * ira-costs.c: Likewise.
6374         * ira-emit.c: Likewise.
6375         * ira-lives.c: Likewise.
6376         * ira.c: Likewise.
6377         * jump.c: Likewise.
6378         * langhooks.c: Likewise.
6379         * lcm.c: Likewise.
6380         * lists.c: Likewise.
6381         * loop-doloop.c: Likewise.
6382         * loop-init.c: Likewise.
6383         * loop-invariant.c: Likewise.
6384         * loop-iv.c: Likewise.
6385         * loop-unroll.c: Likewise.
6386         * lower-subreg.c: Likewise.
6387         * lra-assigns.c: Likewise.
6388         * lra-coalesce.c: Likewise.
6389         * lra-constraints.c: Likewise.
6390         * lra-eliminations.c: Likewise.
6391         * lra-lives.c: Likewise.
6392         * lra-remat.c: Likewise.
6393         * lra-spills.c: Likewise.
6394         * lra.c: Likewise.
6395         * lto-cgraph.c: Likewise.
6396         * lto-compress.c: Likewise.
6397         * lto-opts.c: Likewise.
6398         * lto-section-in.c: Likewise.
6399         * lto-section-out.c: Likewise.
6400         * lto-streamer-in.c: Likewise.
6401         * lto-streamer-out.c: Likewise.
6402         * lto-streamer.c: Likewise.
6403         * mcf.c: Likewise.
6404         * mode-switching.c: Likewise.
6405         * modulo-sched.c: Likewise.
6406         * optabs.c: Likewise.
6407         * opts-global.c: Likewise.
6408         * passes.c: Likewise.
6409         * plugin.c: Likewise.
6410         * postreload-gcse.c: Likewise.
6411         * postreload.c: Likewise.
6412         * predict.c: Likewise.
6413         * print-tree.c: Likewise.
6414         * profile.c: Likewise.
6415         * real.c: Likewise.
6416         * realmpfr.c: Likewise.
6417         * recog.c: Likewise.
6418         * ree.c: Likewise.
6419         * reg-stack.c: Likewise.
6420         * regcprop.c: Likewise.
6421         * reginfo.c: Likewise.
6422         * regrename.c: Likewise.
6423         * regstat.c: Likewise.
6424         * reload.c: Likewise.
6425         * reload1.c: Likewise.
6426         * reorg.c: Likewise.
6427         * resource.c: Likewise.
6428         * rtl-chkp.c: Likewise.
6429         * rtl-error.c: Likewise.
6430         * rtlanal.c: Likewise.
6431         * rtlhooks.c: Likewise.
6432         * sanopt.c: Likewise.
6433         * sched-deps.c: Likewise.
6434         * sched-ebb.c: Likewise.
6435         * sched-rgn.c: Likewise.
6436         * sdbout.c: Likewise.
6437         * sel-sched-dump.c: Likewise.
6438         * sel-sched-ir.c: Likewise.
6439         * sel-sched.c: Likewise.
6440         * sese.c: Likewise.
6441         * shrink-wrap.c: Likewise.
6442         * simplify-rtx.c: Likewise.
6443         * stack-ptr-mod.c: Likewise.
6444         * statistics.c: Likewise.
6445         * stmt.c: Likewise.
6446         * stor-layout.c: Likewise.
6447         * store-motion.c: Likewise.
6448         * stringpool.c: Likewise.
6449         * symtab.c: Likewise.
6450         * target-globals.c: Likewise.
6451         * targhooks.c: Likewise.
6452         * toplev.c: Likewise.
6453         * tracer.c: Likewise.
6454         * trans-mem.c: Likewise.
6455         * tree-affine.c: Likewise.
6456         * tree-call-cdce.c: Likewise.
6457         * tree-cfg.c: Likewise.
6458         * tree-cfgcleanup.c: Likewise.
6459         * tree-chkp-opt.c: Likewise.
6460         * tree-chkp.c: Likewise.
6461         * tree-chrec.c: Likewise.
6462         * tree-complex.c: Likewise.
6463         * tree-data-ref.c: Likewise.
6464         * tree-dfa.c: Likewise.
6465         * tree-diagnostic.c: Likewise.
6466         * tree-dump.c: Likewise.
6467         * tree-eh.c: Likewise.
6468         * tree-emutls.c: Likewise.
6469         * tree-if-conv.c: Likewise.
6470         * tree-inline.c: Likewise.
6471         * tree-into-ssa.c: Likewise.
6472         * tree-iterator.c: Likewise.
6473         * tree-loop-distribution.c: Likewise.
6474         * tree-nested.c: Likewise.
6475         * tree-nrv.c: Likewise.
6476         * tree-object-size.c: Likewise.
6477         * tree-outof-ssa.c: Likewise.
6478         * tree-parloops.c: Likewise.
6479         * tree-phinodes.c: Likewise.
6480         * tree-predcom.c: Likewise.
6481         * tree-pretty-print.c: Likewise.
6482         * tree-profile.c: Likewise.
6483         * tree-scalar-evolution.c: Likewise.
6484         * tree-sra.c: Likewise.
6485         * tree-ssa-address.c: Likewise.
6486         * tree-ssa-alias.c: Likewise.
6487         * tree-ssa-ccp.c: Likewise.
6488         * tree-ssa-coalesce.c: Likewise.
6489         * tree-ssa-copy.c: Likewise.
6490         * tree-ssa-dce.c: Likewise.
6491         * tree-ssa-dse.c: Likewise.
6492         * tree-ssa-forwprop.c: Likewise.
6493         * tree-ssa-ifcombine.c: Likewise.
6494         * tree-ssa-live.c: Likewise.
6495         * tree-ssa-loop-ch.c: Likewise.
6496         * tree-ssa-loop-im.c: Likewise.
6497         * tree-ssa-loop-ivcanon.c: Likewise.
6498         * tree-ssa-loop-ivopts.c: Likewise.
6499         * tree-ssa-loop-manip.c: Likewise.
6500         * tree-ssa-loop-niter.c: Likewise.
6501         * tree-ssa-loop-prefetch.c: Likewise.
6502         * tree-ssa-loop-unswitch.c: Likewise.
6503         * tree-ssa-loop.c: Likewise.
6504         * tree-ssa-math-opts.c: Likewise.
6505         * tree-ssa-operands.c: Likewise.
6506         * tree-ssa-phiopt.c: Likewise.
6507         * tree-ssa-phiprop.c: Likewise.
6508         * tree-ssa-pre.c: Likewise.
6509         * tree-ssa-propagate.c: Likewise.
6510         * tree-ssa-reassoc.c: Likewise.
6511         * tree-ssa-scopedtables.c: Likewise.
6512         * tree-ssa-sink.c: Likewise.
6513         * tree-ssa-strlen.c: Likewise.
6514         * tree-ssa-structalias.c: Likewise.
6515         * tree-ssa-tail-merge.c: Likewise.
6516         * tree-ssa-ter.c: Likewise.
6517         * tree-ssa-threadupdate.c: Likewise.
6518         * tree-ssa-uncprop.c: Likewise.
6519         * tree-ssa-uninit.c: Likewise.
6520         * tree-ssa.c: Likewise.
6521         * tree-ssanames.c: Likewise.
6522         * tree-stdarg.c: Likewise.
6523         * tree-streamer-in.c: Likewise.
6524         * tree-streamer-out.c: Likewise.
6525         * tree-streamer.c: Likewise.
6526         * tree-switch-conversion.c: Likewise.
6527         * tree-tailcall.c: Likewise.
6528         * tree-vect-data-refs.c: Likewise.
6529         * tree-vect-generic.c: Likewise.
6530         * tree-vect-loop-manip.c: Likewise.
6531         * tree-vect-loop.c: Likewise.
6532         * tree-vect-patterns.c: Likewise.
6533         * tree-vect-slp.c: Likewise.
6534         * tree-vect-stmts.c: Likewise.
6535         * tree-vectorizer.c: Likewise.
6536         * tree-vrp.c: Likewise.
6537         * tree.c: Likewise.
6538         * tsan.c: Likewise.
6539         * ubsan.c: Likewise.
6540         * value-prof.c: Likewise.
6541         * var-tracking.c: Likewise.
6542         * varasm.c: Likewise.
6543         * varpool.c: Likewise.
6544         * vmsdbgout.c: Likewise.
6545         * vtable-verify.c: Likewise.
6546         * web.c: Likewise.
6547         * wide-int-print.cc: Likewise.
6548         * wide-int.cc: Likewise.
6549         * xcoffout.c: Likewise.
6550
6551 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
6552
6553         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
6554         between pass numbering and execution order.
6555
6556 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6557
6558         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
6559         check for dependencies.
6560
6561 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6562
6563         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
6564         CDI_DOMINATORS.
6565
6566 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6567
6568         * real.h (format_helper): New.
6569         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
6570         (real_from_target, real_nan, real_2expN, real_value_truncate)
6571         (significand_size, real_from_string2, exact_real_inverse)
6572         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
6573         (real_round, real_isinteger, real_from_integer): Replace
6574         machine_mode arguments with format_helper arguments.
6575         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
6576         (real_from_integer, real_nan, real_2expN, real_convert)
6577         (real_value_truncate, exact_real_truncate, real_to_target)
6578         (real_from_target, significand_size, real_powi, real_trunc)
6579         (real_floor, real_ceil, real_round, real_isinteger): Replace
6580         machine_mode arguments with format_helper arguments.
6581         (real_to_target_fmt, real_from_target_fmt): Delete.
6582         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
6583         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
6584         argument with real_format.
6585         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
6586
6587 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6588
6589         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
6590         (fixed_to_decimal, fixed_convert_from_real)
6591         (real_convert_from_fixed): Fix mode arguments to real_2expN.
6592
6593 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6594
6595         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
6596         SCALAR_FLOAT_MODE_P.
6597
6598 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
6599
6600         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
6601         (completely_scalarize): Comment zero-length arrays.
6602         (get_access_replacement): Correct comment re. precondition.
6603
6604 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6605
6606         * config/i386/i386.c (get_builtin_code_for_version): Set priority
6607         for PROCESSOR_ZNVER1.
6608         (enum processor_model): Add M_AMDFAM17H_znver1.
6609         (struct arch_names_table): Likewise.
6610         * doc/extend.texi: ADD znver1.
6611
6612 2015-10-30  Richard Biener  <rguenther@suse.de>
6613
6614         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
6615         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
6616         zeros to be folded to VECTOR_CSTs.
6617         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
6618         * fold-const.c (fold): Use build_vector_from_ctor.
6619
6620 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
6621
6622         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
6623         "mov %0.h[0], %1.h[0] to "neon_move".
6624         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
6625         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
6626         "mov_imm".
6627         (*cmovsi_insn_uxtw): Likewise.
6628
6629 2015-10-30  Tom de Vries  <tom@codesourcery.com>
6630
6631         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
6632         unsigned, and initialize, and use initial value instead of hardcoded
6633         constant.  Add generic constraints dumping section.  Don't dump global
6634         initializers constraints dumping section if empty.  Don't update
6635         variable from if unused.
6636
6637 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6638
6639         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
6640         flag_checking and/or CHECKING_P to eliminate conditional compilation
6641         on ENABLE_CHECKING.
6642         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
6643         * config/bfin/bfin.c (hwloop_optimize): Likewise.
6644         * config/i386/i386.c (ix86_print_operand_address): Likewise.
6645         (output_387_binary_op): Likewise.
6646         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
6647         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
6648         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
6649         Likewise.
6650         * config/rs6000/rs6000.h: Likewise.
6651         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
6652
6653 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6654
6655         * config/sh/sh.opt (mfdpic): Add missing period.
6656
6657 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6658
6659         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6660         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
6661         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6662         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
6663         mcore_base_register_rtx_p, mcore_legitimate_index_p,
6664         mcore_legitimate_address_p): New functions.
6665         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6666
6667 2015-10-29  Jeff Law  <law@redhat.com>
6668
6669         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
6670         method.
6671         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
6672         * tree-ssa-threadedge.c
6673         (record_temporary_equivalences_from_stmts_at_dest): Remove
6674         backedge_seen argument and associated code which invalidated
6675         equivalences based on the value of that argument.
6676         (thread_through_normal_block): Corresponding changes.
6677
6678 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6679
6680         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
6681         function earlier in the file.
6682         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
6683         df_regs_ever_live_p.
6684
6685 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6686
6687         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
6688         by ignoring it.
6689
6690 2015-10-29  Richard Henderson  <rth@redhat.com>
6691
6692         PR target/68124
6693         PR rtl-opt/67609
6694         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
6695         sse check to the exact conditions of PR 67609.
6696
6697 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6698
6699         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
6700         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
6701         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
6702         of the traditional names that TFmode uses for handling IEEE
6703         extended double. If -mfloat128, add KFmode functions for all of
6704         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
6705         make TFmode use the same emulation functions as KFmode.
6706         (init_float128_ibm): Likewise.
6707         (init_float128_ieee): Likewise.
6708         (rs6000_generate_compare): For IEEE 128-bit floating point
6709         comparisons, call the unordered comparison function instead of the
6710         ordered comparison function.
6711         (rs6000_expand_float128_convert): Deal with operands that are
6712         memory operands. Restructure the code to use a switch statement on
6713         the mode. Add support for TFmode defaulting to either IBM extended
6714         double or IEEE 128-bit floating point. If the underlying types are
6715         the same, use a move instead of a conversion function.
6716         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
6717         use for IEEE 128-bit floating point constants with -mfloat128.
6718         (rs6000_c_mode_for_suffix): Likewise.
6719         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
6720         128-bit floating point with IBM extended double floating point.
6721         (rs6000_invalid_binary_op): Likewise.
6722         (rs6000_gen_le_vsx_permute): On little endian systems generate a
6723         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
6724         types that can go in vector registers.
6725         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
6726         point types that can go in vector registers on little endian
6727         PowerPC systems.
6728         (mark_swaps_for_removal): Likewise.
6729         (rs6000_analyze_swaps): Likewise.
6730         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
6731
6732         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
6733         rework IEEE 128-bit floating point insns to deal with TFmode being
6734         either IBM extended double or IEEE 128-bit floating point.
6735         (IFKF): Likewise.
6736         (IBM128): Update iterator to add condition that the mode is IBM
6737         extended double.
6738         (IEEE128): New iterator for IEEE 128-bit floating point.
6739         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
6740         (FLOAT128): Likewise.
6741         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
6742         iterator.
6743         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
6744         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
6745         instead of hard coding TFmode or KFmode.
6746         (negtf2_internal): Likewise.
6747         (neg<mode>2_internal): Likewise.
6748         (abs<mode>2): Likewise.
6749         (abstf2_internal): Likewise.
6750         (abs<mode>2_internal): Likewise.
6751         (ieee_128bit_neg<mode>2): Likewise.
6752         (ieee_128bit_neg<mode>2_internal): Likewise.
6753         (ieee_128bit_abs<mode>2): Likewise.
6754         (ieee_128bit_abs<mode>2_internal): Likewise.
6755         (ieee_128bit_nabs<mode>2): Likewise.
6756         (ieee_128bit_nabs<mode>2_internal): Likewise.
6757         (extendiftf2): Add explicit conversions between 128-bit floating
6758         point types. Drop the old conversions that had become unwieldy.
6759         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
6760         (extendifkf2): Likewise.
6761         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
6762         (extendtfkf2): Likewise.
6763         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
6764         (trunciftf2): Likewise.
6765         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
6766         (truncifkf2): Likewise.
6767         (float<SDI:mode><IFKF:mode>2): Likewise.
6768         (trunckftf2): Likewise.
6769         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
6770         (trunctfif2): Likewise.
6771         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
6772         (extenddftf2): Rework 128-bit floating point conversions to
6773         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
6774         KFmode expanders into one function.
6775         (extenddf<mode>2): Likewise.
6776         (extenddftf2_fprs): Likewise.
6777         (extenddf<mode>2_fprs): Likewise.
6778         (extenddftf2_vsx): Likewise.
6779         (extenddf<mode>2_vsx): Likewise.
6780         (extendsftf2): Likewise.
6781         (extendsf<mode>2): Likewise.
6782         (trunctfdf2): Likewise.
6783         (trunc<mode>df2): Likewise.
6784         (trunctfdf2_internal1): Likewise.
6785         (trunc<mode>df2_internal1): Likewise.
6786         (trunctfdf2_internal2): Likewise.
6787         (trunc<mode>df2_internal2): Likewise.
6788         (trunctfsf2): Likewise.
6789         (trunc<mode>sf2): Likewise.
6790         (trunctfsf2_fprs): Likewise.
6791         (trunc<mode>sf2_fprs): Likewise.
6792         (floatsit2f): Likewise.
6793         (floatsi<mode>2): Likewise.
6794         (fix_trunc_helper): Likewise.
6795         (fix_trunc_helper<mode>): Likewise.
6796         (fix_trunctfsi2): Likewise.
6797         (fix_trunc<mode>si2): Likewise.
6798         (fix_trunctfsi2_fprs): Likewise.
6799         (fix_trunc<mode>si2_fprs): Likewise.
6800         (fix_trunctfsi2_internal): Likewise.
6801         (fix_trunc<mode>si2_internal): Likewise.
6802         (fix_trunctfdi2): Likewise.
6803         (fix_trunc<mode>di2): Likewise.
6804         (fixuns_trunctf<mode>2): Likewise.
6805         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6806         (floatditf2): Likewise.
6807         (floatdi<mode>2): Likewise.
6808         (floatuns<mode>tf2): Likewise.
6809         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
6810         (cmptf_internal1): Use a mode iterator to add support for both
6811         types (IFmode, TFmode) that support IBM extended double.
6812         (cmp<mode>_internal1): Likewise.
6813         (cmptf_internal2): Likewise.
6814         (cmp<mode>_internal2): Likewise.
6815
6816         * doc/extend.texi (Floating Types): Document __ibm128 and
6817         __float128 on PowerPC.
6818
6819         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6820         -mfloat128 and -mno-float128.
6821
6822 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6823
6824         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
6825         floating point modes that can go in vector registers.
6826         (MODES_TIEABLE_P): Move tests for vector modes before tests for
6827         scalar floating point, so that IEEE 128-bit floating point that
6828         can go in vector registers bind with vectors and not FP.
6829         (struct rs6000_args): Add libcall field.
6830
6831         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
6832         and -mfloat128-software switches.  Replace them with a binary
6833         -mfloat128 switch.
6834         (-mfloat128): Likewise.
6835
6836         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
6837         128-bit floating point types in GPRs, even if the appropriate
6838         option enabling the type was not used.
6839         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
6840         debugging.
6841         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
6842         pre-decrement on IEEE 128-bit floating point values.
6843         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
6844         is IEEE 128-bit floating point.
6845         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
6846         128-bit floating point types that can go in vector registers.
6847         (rs6000_option_override_internal): Change -mfloat128-none and
6848         -mfloat128-software to -mfloat128, and move code to be near other
6849         VSX option handling.
6850         (rs6000_option_override_internal): Disable -mfloat128 if we don't
6851         have the Altivec ABI.
6852         (rs6000_init_builtins): Don't make TFmode use either IFmode or
6853         KFmode floating point nodes. Instead, have three separate nodes.
6854         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
6855         eventually moving the long double default to IEEE 128-bit floating
6856         point.
6857         (rs6000_opt_masks): Add -mfloat128.
6858         (struct rs6000_opt_var): Fix typo in comment.
6859         (init_cumulative_args): Initialize libcall field in
6860         CUMULATIVE_ARGS.
6861         (rs6000_function_arg): Treat library functions as if they had
6862         prototypes to prevent IEEE 128-bit support functions from passing
6863         arguments in both GPRs and vector registers.
6864         (rs6000_arg_partial_bytes): Likewise.
6865
6866         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
6867         an option that can be turned on via -mcpu=<xxx>.
6868
6869         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
6870         longer used.
6871
6872         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6873         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
6874         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
6875         double is IBM extended double.
6876
6877         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
6878         SUBREGs.
6879
6880 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6881
6882         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
6883         * genconditions.c: Define CHECKING_P in the generated code.
6884         * genextract.c: Use flag_checking in insn_extract.
6885         * gengtype.c (main): Remove conditional compilation.
6886         * gengtype.h: Likewise.
6887
6888 2015-10-29  Jeff Law  <law@redhat.com>
6889
6890         PR tree-optimization/67892
6891         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
6892         in comment.
6893         (thread_through_normal_block): If we have seen a backedge, then
6894         do nothing.  No longer call find_jump_threads_backwards here.
6895         (thread_across_edge): Use find_jump_threads_backwards to find
6896         jump threads if the old style threader was not successful.
6897         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
6898         gsi_last_nondebug_bb.  Return NULL if the block does not end
6899         with a control statement.
6900         (find_jump_threads_backwards): Setup code moved here from
6901         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
6902         single edge argument instead of name & block.
6903         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
6904         prototype.
6905
6906 2015-10-29  Tom de Vries  <tom@codesourcery.com>
6907
6908         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
6909         types.
6910
6911 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
6912
6913         * omp-low.c (lower_omp_target): Remove unreachable code & merge
6914         ifs.
6915
6916 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
6917
6918         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
6919
6920 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6921
6922         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6923         guard_bb0 and use guard_bb throughout.
6924
6925 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6926
6927         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6928         unnecessary label.
6929
6930 2015-10-29  Richard Biener  <rguenther@suse.de>
6931
6932         PR middle-end/68142
6933         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
6934         overflow.
6935
6936 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
6937
6938         * alias.c: Reorder #include statements and remove duplicates.
6939         * asan.c: Likewise.
6940         * attribs.c: Likewise.
6941         * auto-inc-dec.c: Likewise.
6942         * auto-profile.c: Likewise.
6943         * bb-reorder.c: Likewise.
6944         * bt-load.c: Likewise.
6945         * builtins.c: Likewise.
6946         * caller-save.c: Likewise.
6947         * calls.c: Likewise.
6948         * ccmp.c: Likewise.
6949         * cfg.c: Likewise.
6950         * cfganal.c: Likewise.
6951         * cfgbuild.c: Likewise.
6952         * cfgcleanup.c: Likewise.
6953         * cfgexpand.c: Likewise.
6954         * cfghooks.c: Likewise.
6955         * cfgloop.c: Likewise.
6956         * cfgloopanal.c: Likewise.
6957         * cfgloopmanip.c: Likewise.
6958         * cfgrtl.c: Likewise.
6959         * cgraph.c: Likewise.
6960         * cgraphbuild.c: Likewise.
6961         * cgraphclones.c: Likewise.
6962         * cgraphunit.c: Likewise.
6963         * cilk-common.c: Likewise.
6964         * combine-stack-adj.c: Likewise.
6965         * combine.c: Likewise.
6966         * compare-elim.c: Likewise.
6967         * convert.c: Likewise.
6968         * coverage.c: Likewise.
6969         * cppbuiltin.c: Likewise.
6970         * cprop.c: Likewise.
6971         * cse.c: Likewise.
6972         * cselib.c: Likewise.
6973         * data-streamer-in.c: Likewise.
6974         * data-streamer-out.c: Likewise.
6975         * data-streamer.c: Likewise.
6976         * dbxout.c: Likewise.
6977         * dce.c: Likewise.
6978         * ddg.c: Likewise.
6979         * debug.c: Likewise.
6980         * df-core.c: Likewise.
6981         * df-problems.c: Likewise.
6982         * df-scan.c: Likewise.
6983         * dfp.c: Likewise.
6984         * dojump.c: Likewise.
6985         * dominance.c: Likewise.
6986         * double-int.c: Likewise.
6987         * dse.c: Likewise.
6988         * dumpfile.c: Likewise.
6989         * dwarf2asm.c: Likewise.
6990         * dwarf2cfi.c: Likewise.
6991         * dwarf2out.c: Likewise.
6992         * emit-rtl.c: Likewise.
6993         * except.c: Likewise.
6994         * explow.c: Likewise.
6995         * expmed.c: Likewise.
6996         * expr.c: Likewise.
6997         * final.c: Likewise.
6998         * fixed-value.c: Likewise.
6999         * fold-const.c: Likewise.
7000         * function.c: Likewise.
7001         * fwprop.c: Likewise.
7002         * gcse.c: Likewise.
7003         * generic-match-head.c: Likewise.
7004         * ggc-common.c: Likewise.
7005         * gimple-builder.c: Likewise.
7006         * gimple-expr.c: Likewise.
7007         * gimple-fold.c: Likewise.
7008         * gimple-iterator.c: Likewise.
7009         * gimple-low.c: Likewise.
7010         * gimple-match-head.c: Likewise.
7011         * gimple-pretty-print.c: Likewise.
7012         * gimple-ssa-isolate-paths.c: Likewise.
7013         * gimple-ssa-strength-reduction.c: Likewise.
7014         * gimple-streamer-in.c: Likewise.
7015         * gimple-streamer-out.c: Likewise.
7016         * gimple-walk.c: Likewise.
7017         * gimple.c: Likewise.
7018         * gimplify-me.c: Likewise.
7019         * gimplify.c: Likewise.
7020         * godump.c: Likewise.
7021         * graph.c: Likewise.
7022         * graphite-poly.c: Likewise.
7023         * haifa-sched.c: Likewise.
7024         * hw-doloop.c: Likewise.
7025         * ifcvt.c: Likewise.
7026         * incpath.c: Likewise.
7027         * init-regs.c: Likewise.
7028         * internal-fn.c: Likewise.
7029         * ipa-chkp.c: Likewise.
7030         * ipa-comdats.c: Likewise.
7031         * ipa-cp.c: Likewise.
7032         * ipa-devirt.c: Likewise.
7033         * ipa-icf-gimple.c: Likewise.
7034         * ipa-icf.c: Likewise.
7035         * ipa-inline-analysis.c: Likewise.
7036         * ipa-inline-transform.c: Likewise.
7037         * ipa-inline.c: Likewise.
7038         * ipa-polymorphic-call.c: Likewise.
7039         * ipa-profile.c: Likewise.
7040         * ipa-prop.c: Likewise.
7041         * ipa-pure-const.c: Likewise.
7042         * ipa-ref.c: Likewise.
7043         * ipa-reference.c: Likewise.
7044         * ipa-split.c: Likewise.
7045         * ipa-utils.c: Likewise.
7046         * ipa-visibility.c: Likewise.
7047         * ipa.c: Likewise.
7048         * ira-build.c: Likewise.
7049         * ira-color.c: Likewise.
7050         * ira-conflicts.c: Likewise.
7051         * ira-costs.c: Likewise.
7052         * ira-emit.c: Likewise.
7053         * ira-lives.c: Likewise.
7054         * ira.c: Likewise.
7055         * jump.c: Likewise.
7056         * langhooks.c: Likewise.
7057         * lcm.c: Likewise.
7058         * lists.c: Likewise.
7059         * loop-doloop.c: Likewise.
7060         * loop-init.c: Likewise.
7061         * loop-invariant.c: Likewise.
7062         * loop-iv.c: Likewise.
7063         * loop-unroll.c: Likewise.
7064         * lower-subreg.c: Likewise.
7065         * lra-assigns.c: Likewise.
7066         * lra-coalesce.c: Likewise.
7067         * lra-constraints.c: Likewise.
7068         * lra-eliminations.c: Likewise.
7069         * lra-lives.c: Likewise.
7070         * lra-remat.c: Likewise.
7071         * lra-spills.c: Likewise.
7072         * lra.c: Likewise.
7073         * lto-cgraph.c: Likewise.
7074         * lto-compress.c: Likewise.
7075         * lto-opts.c: Likewise.
7076         * lto-section-in.c: Likewise.
7077         * lto-section-out.c: Likewise.
7078         * lto-streamer-in.c: Likewise.
7079         * lto-streamer-out.c: Likewise.
7080         * lto-streamer.c: Likewise.
7081         * mode-switching.c: Likewise.
7082         * modulo-sched.c: Likewise.
7083         * omp-low.c: Likewise.
7084         * optabs.c: Likewise.
7085         * opts-global.c: Likewise.
7086         * passes.c: Likewise.
7087         * plugin.c: Likewise.
7088         * postreload-gcse.c: Likewise.
7089         * postreload.c: Likewise.
7090         * predict.c: Likewise.
7091         * print-tree.c: Likewise.
7092         * profile.c: Likewise.
7093         * real.c: Likewise.
7094         * realmpfr.c: Likewise.
7095         * recog.c: Likewise.
7096         * ree.c: Likewise.
7097         * reg-stack.c: Likewise.
7098         * regcprop.c: Likewise.
7099         * reginfo.c: Likewise.
7100         * regrename.c: Likewise.
7101         * regstat.c: Likewise.
7102         * reload.c: Likewise.
7103         * reload1.c: Likewise.
7104         * reorg.c: Likewise.
7105         * resource.c: Likewise.
7106         * rtl-chkp.c: Likewise.
7107         * rtl-error.c: Likewise.
7108         * rtlanal.c: Likewise.
7109         * rtlhooks.c: Likewise.
7110         * sanopt.c: Likewise.
7111         * sched-deps.c: Likewise.
7112         * sched-ebb.c: Likewise.
7113         * sched-rgn.c: Likewise.
7114         * sese.c: Likewise.
7115         * shrink-wrap.c: Likewise.
7116         * simplify-rtx.c: Likewise.
7117         * stack-ptr-mod.c: Likewise.
7118         * statistics.c: Likewise.
7119         * stmt.c: Likewise.
7120         * stor-layout.c: Likewise.
7121         * store-motion.c: Likewise.
7122         * stringpool.c: Likewise.
7123         * symtab.c: Likewise.
7124         * target-globals.c: Likewise.
7125         * targhooks.c: Likewise.
7126         * toplev.c: Likewise.
7127         * tracer.c: Likewise.
7128         * trans-mem.c: Likewise.
7129         * tree-affine.c: Likewise.
7130         * tree-call-cdce.c: Likewise.
7131         * tree-cfg.c: Likewise.
7132         * tree-cfgcleanup.c: Likewise.
7133         * tree-chkp-opt.c: Likewise.
7134         * tree-chkp.c: Likewise.
7135         * tree-chrec.c: Likewise.
7136         * tree-complex.c: Likewise.
7137         * tree-data-ref.c: Likewise.
7138         * tree-dfa.c: Likewise.
7139         * tree-diagnostic.c: Likewise.
7140         * tree-dump.c: Likewise.
7141         * tree-eh.c: Likewise.
7142         * tree-emutls.c: Likewise.
7143         * tree-if-conv.c: Likewise.
7144         * tree-inline.c: Likewise.
7145         * tree-into-ssa.c: Likewise.
7146         * tree-iterator.c: Likewise.
7147         * tree-loop-distribution.c: Likewise.
7148         * tree-nested.c: Likewise.
7149         * tree-nrv.c: Likewise.
7150         * tree-object-size.c: Likewise.
7151         * tree-outof-ssa.c: Likewise.
7152         * tree-parloops.c: Likewise.
7153         * tree-phinodes.c: Likewise.
7154         * tree-predcom.c: Likewise.
7155         * tree-pretty-print.c: Likewise.
7156         * tree-profile.c: Likewise.
7157         * tree-scalar-evolution.c: Likewise.
7158         * tree-sra.c: Likewise.
7159         * tree-ssa-address.c: Likewise.
7160         * tree-ssa-alias.c: Likewise.
7161         * tree-ssa-ccp.c: Likewise.
7162         * tree-ssa-coalesce.c: Likewise.
7163         * tree-ssa-copy.c: Likewise.
7164         * tree-ssa-dce.c: Likewise.
7165         * tree-ssa-dom.c: Likewise.
7166         * tree-ssa-dse.c: Likewise.
7167         * tree-ssa-forwprop.c: Likewise.
7168         * tree-ssa-ifcombine.c: Likewise.
7169         * tree-ssa-live.c: Likewise.
7170         * tree-ssa-loop-ch.c: Likewise.
7171         * tree-ssa-loop-im.c: Likewise.
7172         * tree-ssa-loop-ivcanon.c: Likewise.
7173         * tree-ssa-loop-ivopts.c: Likewise.
7174         * tree-ssa-loop-manip.c: Likewise.
7175         * tree-ssa-loop-niter.c: Likewise.
7176         * tree-ssa-loop-prefetch.c: Likewise.
7177         * tree-ssa-loop-unswitch.c: Likewise.
7178         * tree-ssa-loop.c: Likewise.
7179         * tree-ssa-math-opts.c: Likewise.
7180         * tree-ssa-operands.c: Likewise.
7181         * tree-ssa-phiopt.c: Likewise.
7182         * tree-ssa-phiprop.c: Likewise.
7183         * tree-ssa-pre.c: Likewise.
7184         * tree-ssa-propagate.c: Likewise.
7185         * tree-ssa-reassoc.c: Likewise.
7186         * tree-ssa-sccvn.c: Likewise.
7187         * tree-ssa-scopedtables.c: Likewise.
7188         * tree-ssa-sink.c: Likewise.
7189         * tree-ssa-strlen.c: Likewise.
7190         * tree-ssa-structalias.c: Likewise.
7191         * tree-ssa-tail-merge.c: Likewise.
7192         * tree-ssa-ter.c: Likewise.
7193         * tree-ssa-threadedge.c: Likewise.
7194         * tree-ssa-threadupdate.c: Likewise.
7195         * tree-ssa-uncprop.c: Likewise.
7196         * tree-ssa-uninit.c: Likewise.
7197         * tree-ssa.c: Likewise.
7198         * tree-ssanames.c: Likewise.
7199         * tree-stdarg.c: Likewise.
7200         * tree-streamer-in.c: Likewise.
7201         * tree-streamer-out.c: Likewise.
7202         * tree-streamer.c: Likewise.
7203         * tree-switch-conversion.c: Likewise.
7204         * tree-tailcall.c: Likewise.
7205         * tree-vect-data-refs.c: Likewise.
7206         * tree-vect-generic.c: Likewise.
7207         * tree-vect-loop-manip.c: Likewise.
7208         * tree-vect-loop.c: Likewise.
7209         * tree-vect-patterns.c: Likewise.
7210         * tree-vect-slp.c: Likewise.
7211         * tree-vect-stmts.c: Likewise.
7212         * tree-vectorizer.c: Likewise.
7213         * tree-vrp.c: Likewise.
7214         * tree.c: Likewise.
7215         * tsan.c: Likewise.
7216         * ubsan.c: Likewise.
7217         * value-prof.c: Likewise.
7218         * var-tracking.c: Likewise.
7219         * varasm.c: Likewise.
7220         * varpool.c: Likewise.
7221         * vtable-verify.c: Likewise.
7222         * web.c: Likewise.
7223         * wide-int-print.cc: Likewise.
7224         * wide-int.cc: Likewise.
7225         * xcoffout.c: Likewise.
7226
7227 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
7228
7229         * Makefile.in (NO_PIE_CFLAGS): New.
7230         (NO_PIE_FLAG): Likewise.
7231         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
7232         (NO_PIE_FLAG_FOR_BUILD): Likewise.
7233         (BUILD_NO_PIE_CFLAGS): Likewise.
7234         (BUILD_NO_PIE_FLAG): Likewise.
7235         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
7236         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
7237         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
7238         $(BUILD_NO_PIE_CFLAGS).
7239         (BUILD_CXXFLAGS): Likewise.
7240         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
7241         $(BUILD_NO_PIE_FLAG).
7242         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
7243         (BUILD_NO_PIE_FLAG): Likewise.
7244         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
7245         (NO_PIE_FLAG_FOR_BUILD): Likewise.
7246         * configure: Regenerated.
7247
7248 2015-10-29  Richard Biener  <rguenther@suse.de>
7249
7250         PR middle-end/56956
7251         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
7252         unsigned conditonal negation to ABS_EXPR.
7253
7254 2015-10-29  Richard Biener  <rguenther@suse.de>
7255
7256         * gimple-match-head.c (gimple_simplify): Remove premature checking
7257         of builtin_decl_implicit of function calls we simplify.
7258
7259 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
7260
7261         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
7262         (get_computation_cost_at): Ditto.
7263         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
7264         and inv_expr_id.
7265
7266 2015-10-28  Tom de Vries  <tom@codesourcery.com>
7267
7268         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
7269         superfluous code.
7270
7271 2015-10-28  Jason Merrill  <jason@redhat.com>
7272
7273         * Makefile.in (TAGS): Include libcpp and libiberty.
7274
7275 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
7276
7277         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
7278         (extract_omp_for_data): Remove OpenACC special handling of
7279         chunking.
7280
7281         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
7282         (struct parallel): Update comment.
7283         (nvptx_reorg): Likewise.
7284         (nvptx_neuter): Cleanup whitespace.
7285
7286 2015-10-28  Richard Henderson  <rth@redhat.com>
7287
7288         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
7289
7290 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7291
7292         PR target/67839
7293         * config/avr/predicates.md (low_io_address_operand): Don't
7294         consider MODE when computing upper bound.
7295         (io_address_operand): Likewise.
7296
7297 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
7298
7299         * fold-const.c (operand_equal_p): Do not verify that types are
7300         compatible for MEM_REFs.
7301
7302 2015-10-28  Richard Biener  <rguenther@suse.de>
7303
7304         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
7305         in simplifying VEC_COND_EXPR conditions.
7306
7307 2015-10-28  Tom de Vries  <tom@codesourcery.com>
7308
7309         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
7310         into vi_next of a full_var.
7311
7312 2015-10-28  Tom de Vries  <tom@codesourcery.com>
7313
7314         * tree-ssa-structalias.c (new_var_info, make_heapvar)
7315         (make_constraint_from_restrict, make_constraint_from_global_restrict)
7316         (create_function_info_for, create_variable_info_for_1)
7317         (create_variable_info_for): Add and handle add_id parameter.
7318         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
7319         (init_base_vars): Add extra argument to calls to new_var_info.
7320         (get_vi_for_tree): Add extra argument to call to
7321         create_variable_info_for.
7322         (process_constraint, do_deref, process_all_all_constraints): Add extra
7323         argument to calls to new_scalar_tmp_constraint_exp.
7324         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
7325         argument to calls to make_heapvar.
7326         (make_restrict_var_constraints): Add extra argument to call to
7327         make_constraint_from_global_restrict.
7328         (intra_create_variable_infos): Add extra argument to call to
7329         create_variable_info_for_1.
7330         (ipa_pta_execute): Add extra argument to call to
7331         create_function_info_for.
7332
7333 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7334
7335         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
7336         (sibcall_value): Likewise.
7337
7338 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
7339
7340         * config/nvptx/nvptx.h (struct machine_function): Add
7341         axis_predicate.
7342         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
7343         nvptx_expand_oacc_join): Declare.
7344         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
7345         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
7346         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
7347         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
7348         UNSPECV_JOINING, UNSPECV_JOIN): New.
7349         (BITS, BITD): New mode iterators.
7350         (br_true_uni, br_false_uni): New.
7351         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
7352         (oacc_dim_size, oacc_dim_pos): New.
7353         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
7354         (oacc_fork, oacc_join): New.
7355         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
7356         (worker_load<mode>, worker_store<mode>): New.
7357         (nvptx_barsync): New.
7358         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
7359         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
7360         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
7361         worker_bcast_sym): New.
7362         (nvptx_option_override): Initialize worker broadcast buffer.
7363         (nvptx_emit_forking, nvptx_emit_joining): New.
7364         (nvptx_init_axis_predicate): New.
7365         (nvptx_declare_function_name): Init axis predicates.
7366         (nvptx_expand_call): Add fork/join markers around routine call.
7367         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
7368         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
7369         (nvptx_gen_vcast): New.
7370         (struct wcast_data_t): New.
7371         (enum propagate_mask): New.
7372         (nvptx_gen_wcast): New.
7373         (nvptx_print_operand): Add 'S' case.
7374         (struct parallel): New.
7375         (parallel::parallel, parallel::~parallel): New.
7376         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
7377         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
7378         nvptx_find_par, nvptx_discover_pars): New.
7379         (nvptx_propagate): New.
7380         (vprop_gen, nvptx_vpropagate): New.
7381         (wprop_gen, nvptx_wpropagate): New.
7382         (nvptx_wsync): New.
7383         (nvptx_single, nvptx_skip_par): New.
7384         (nvptx_process_pars, nvptx_neuter_pars): New.
7385         (ntptx_reorg): Split blocks, generate parallel structure, apply
7386         neutering.
7387         (nvptx_cannot_copy_insn_p): New.
7388         (nvptx_file_end): Emit worker broadcast decl.
7389         (nvptx_goacc_fork_join): New.
7390         (TARGET_CANNOT_COPY_INSN_P): Override.
7391         (TARGET_GOACC_FORK_JOIN): Override.
7392
7393 2015-10-28  Richard Biener  <rguenther@suse.de>
7394
7395         * fold-const.c (negate_expr_p): Adjust the division case to
7396         properly avoid introducing undefined overflow.
7397         (fold_negate_expr): Likewise.
7398
7399 2015-10-28  Richard Biener  <rguenther@suse.de>
7400
7401         PR tree-optimization/65962
7402         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7403         Avoid creating loop carried dependences also for outer loops
7404         of the loop a use to replace is in.
7405
7406 2015-10-28  Richard Biener  <rguenther@suse.de>
7407
7408         * common.opt (fchecking): New flag controlling flag_checking.
7409         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
7410         * timevar.c (timer::print): Adjust output.
7411         * doc/invoke.texi (fchecking): Document.
7412
7413 2015-10-28  Richard Biener  <rguenther@suse.de>
7414
7415         PR middle-end/68067
7416         * fold-const.c (negate_expr_p): We cannot negate plus or minus
7417         if overflow is not wrapping.  Likewise multiplication unless
7418         one operand is constant and not power of two.
7419         (fold_negate_expr): Adjust accordingly.
7420
7421 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7422
7423         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
7424         fields.
7425         (is_oacc_parallel, is_oacc_kernels): New.
7426         (enclosing_target_ctx): May return NULL.
7427         (ctx_in_oacc_kernels_region): New.
7428         (check_oacc_kernel_gwv): New.
7429         (oacc_loop_or_target_p): Delete.
7430         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
7431         operands.  Strip reductions fro kernels.
7432         (scan_omp_target): Don't calculate gwv mask.
7433         (lower_oacc_head_mark, lower_oacc_loop_marker,
7434         lower_oacc_head_tail): New.
7435         (struct oacc_collapse): New.
7436         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
7437         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
7438         Remove OpenACC handling.
7439         (expand_oacc_for): New.
7440         (expand_omp_for): Call expand_oacc_for.
7441         (lower_omp_for): Call lower_oacc_head_tail.
7442
7443 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
7444
7445         * attribs.c (check_attribute_tables): New function, broken out from...
7446         (init_attributes): Use it.
7447         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
7448         gcc_checking_assert and checking_* functions to eliminate
7449         ENABLE_CHECKING conditionals.
7450         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
7451         (pass_expand::execute): Likewise.
7452         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
7453         * cgraphunit.c (mark_functions_to_output): Likewise.
7454         (cgraph_node::expand_thunk): Likewise.
7455         (symbol_table::compile): Likewise.
7456         * ddg.c (add_cross_iteration_register_deps): Likewise.
7457         (create_ddg_all_sccs): Likewise.
7458         * df-core.c (df_finish_pass, df_analyze): Likewise.
7459         * diagnostic-core.h: Likewise.
7460         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
7461         * dominance.c (calculate_dominance_info): Likewise.
7462         * dwarf2out.c (add_AT_die_ref): Likewise.
7463         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
7464         (loc_list_from_tree, gen_lexical_block_die): Likewise.
7465         gen_type_die_with_usage, gen_type_die): Likewise.
7466         (dwarf2out_decl): Likewise.
7467         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
7468         * except.c (duplicate_eh_regions): Likewise.
7469         * fwprop.c (register_active_defs, update_df_init): Likewise.
7470         (fwprop_init, fwprop_done): Likewise.
7471         (update_uses): Likewise.
7472         * ggc-page.c (ggc_grow): Likewise.
7473         * gimplify.c (gimplify_body): Likewise.
7474         (gimplify_hasher::equal): Likewise.
7475         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
7476         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
7477         Likewise.
7478         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
7479         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
7480         * hash-table.h (::find_empty_slot_for_expand): Likewise.
7481         * ifcvt.c (if_convert): Likewise.
7482         * ipa-cp.c (ipcp_propagate_stage): Likewise.
7483         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
7484         (odr_type_p, odr_types_equivalent_p): Likewise.
7485         (add_type_duplicate, get_odr_type): Likewise.
7486         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
7487         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
7488         (sem_item_optimizer::verify_classes): Likewise.
7489         (sem_item_optimizer::traverse_congruence_split): Likewise.
7490         (sem_item_optimizer::checking_verify_classes): New.
7491         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
7492         method.
7493         * cfgrtl.c (commit_edge_insertions): Likewise.
7494         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
7495         (rtl_flow_call_edges_add): Likewise.
7496         * cgraph.c (symbol_table::create_edge): Likewise.
7497         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
7498         * cgraph.h (symtab_node): Likewise.
7499         (symtab_node::checking_verify_symtab_nodes): Define.
7500         (cgraph_node::checking_verify_cgraph_nodes): Define.
7501         * cfghooks.h (checking_verify_flow_info): Define.
7502         * cfgloop.h (checking_verify_loop_structure): Define.
7503         * dominance.h (checking_verify_dominators): Define.
7504         * et-forest.c: Fix comment.
7505         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
7506         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7507         ENABLE_CHECKING conditionals.
7508         * ipa-inline-transform.c (save_inline_function_body): Likewise.
7509         * ipa-inline.c (inline_small_functions): Likewise.
7510         (early_inliner): Likewise.
7511         * ipa-inline.h (estimate_edge_growth): Likewise.
7512         * ipa-visibility.c (function_and_variable_visibility): Likewise.
7513         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
7514         (ipa_single_use): Likewise.
7515         * ira-int.h: Likewise.
7516         * ira.c (ira): Likewise.
7517         * loop-doloop.c (doloop_optimize_loops): Likewise.
7518         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
7519         * loop-invariant.c (move_loop_invariants): Likewise.
7520         * lra-assigns.c (lra_assign): Likewise.
7521         * lra-constraints.c (lra_constraints): Likewise.
7522         * lra-eliminations.c (lra_eliminate): Likewise.
7523         * lra-int.h (struct lra_reg): Likewise.
7524         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7525         (lra_create_live_ranges_1): Likewise.
7526         * lra-remat.c (create_remat_bb_data): Likewise.
7527         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
7528         (lra): Likewise.
7529         (check_rtl): Always define. Remove incorrect guard around
7530         extract_constrain_insn call.
7531         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
7532         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7533         ENABLE_CHECKING conditionals.
7534         * lto-streamer-out.c (DFS::DFS): Likewise.
7535         (lto_output): Likewise.
7536         * lto-streamer.c (lto_streamer_init): Likewise.
7537         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
7538         expand_omp_target, execute_expand_omp): Likewise.
7539         (lower_omp_target): Likewise.
7540         * passes.c (execute_function_todo): Likewise.
7541         (execute_todo, execute_one_pass): Likewise.
7542         (verify_curr_properties): Always define.
7543         * predict.c (tree_estimate_probability: Use flag_checking,
7544         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7545         ENABLE_CHECKING conditionals.
7546         (propagate_freq): Likewise.
7547         * pretty-print.c (pp_format): Likewise.
7548         * real.c (real_to_decimal_for_mode): Likewise.
7549         * recog.c (split_all_insns): Likewise.
7550         * regcprop.c (kill_value_one_regno): Likewise.
7551         (copy_value): Likewise.
7552         (validate_value_data): Define unconditionally.
7553         * reload.c: Fix comment.
7554         * timevar.c: Include options.h
7555         * tree-ssa.h (checking_verify_ssa): Define.
7556         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
7557         * sched-deps.c (CHECK): Remove unused macro.
7558         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
7559         gcc_checking_assert and checking_* functions to eliminate
7560         ENABLE_CHECKING conditionals.
7561         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
7562         * sel-sched.c (struct moveop_static_params): Likewise.
7563         (find_best_reg_for_expr, move_cond_jump): Likewise.
7564         (move_op_orig_expr_not_found): Likewise.
7565         (code_motion_process_successors, move_op): Likewise.
7566         * ssa-iterators.h (first_readonly_imm_use): Likewise.
7567         (next_readonly_imm_use): Likewise.
7568         * store-motion.c (compute_store_table): Likewise.
7569         * symbol-summary.h (function_summary::function_summary): Likewise.
7570         * target.h (cumulative_args_t): Likewise.
7571         (get_cumulative_args, pack_cumulative_args): Likewise.
7572         * timevar.c: (timer::print): Likewise.
7573         * trans-mem.c (ipa_tm_execute): Likewise.
7574         * tree-cfg.c (move_stmt_op): Likewise.
7575         (move_sese_region_to_fn): Likewise.
7576         (gimple_flow_call_edges_add): Likewise.
7577         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
7578         Likewise.
7579         * tree-eh.c (remove_unreachable_handlers): Likewise.
7580         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
7581         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
7582         * tree-into-ssa.c (update_ssa): Likewise.
7583         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
7584         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
7585         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
7586         * tree-predcom.c (suitable_component_p): Likewise.
7587         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
7588         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
7589         * tree-ssa-live.c (verify_live_on_entry): Likewise.
7590         * tree-ssa-live.h (register_ssa_partition): Likewise.
7591         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
7592         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
7593         (tree_transform_and_unroll_loop): Likewise.
7594         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7595         * tree-ssa-operands.c (get_expr_operands): Likewise.
7596         * tree-ssa-propagate.c (replace_exp_1): Likewise.
7597         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
7598         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7599         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
7600         * tree-ssanames.c (release_ssa_name_fn): Likewise.
7601         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
7602         * tree-vect-loop-manip.c
7603         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7604         (slpeel_checking_verify_cfg_after_peeling): Likewise.
7605         (vect_do_peeling_for_loop_bound): Likewise.
7606         (vect_do_peeling_for_alignment): Likewise.
7607         * tree-vrp.c (supports_overflow_infinity): Likewise.
7608         (set_value_range): Likewise.
7609         * tree.c (free_lang_data_in_cgraph): Likewise.
7610         * value-prof.c (gimple_remove_histogram_value): Likewise.
7611         (free_hist): Likewise.
7612         * var-tracking.c (canonicalize_values_star): Likewise.
7613         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
7614
7615 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7616
7617         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
7618         IFN_GOACC_LOOP): New.
7619         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
7620         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
7621         IFN_UNIQUE_OACC_TAIL_MARK.
7622         (enum ifn_goacc_loop_kind): New.
7623         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
7624         IFN_UNIQUE_OACC_JOIN cases.
7625         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
7626         (expand_GOACC_LOOP): New.
7627         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
7628         * omp-low.c: Include gimple-pretty-print.h.
7629         (struct oacc_loop): New.
7630         (enum oacc_loop_flags): New.
7631         (oacc_thread_numbers): New.
7632         (oacc_xform_loop): New.
7633         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
7634         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
7635         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
7636         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
7637         oacc_loop_discovery): New.
7638         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
7639         oacc_loop_process): New.
7640         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
7641         (execute_oacc_device_lower): Discover & process loops.  Process
7642         internal fns.
7643         * target.def (goacc.fork_join): Change sense of hook, clarify
7644         documentation.
7645         * doc/tm.texi: Regenerated.
7646
7647 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7648
7649         * target-insns.def (oacc_fork, oacc_join): Define.
7650         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
7651         (goacc.fork_join): New GOACC hook.
7652         * targhooks.h (default_goacc_fork_join): Declare.
7653         * omp-low.c (default_goacc_forkjoin): New.
7654         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
7655         * doc/tm.texi: Regenerate.
7656
7657 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7658
7659         * omp-low.c (oacc_init_rediction_array): New.
7660         (oacc_initialize_reduction_data): Initialize array.
7661
7662 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7663
7664         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
7665
7666 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7667
7668         * internal-fn.c (expand_UNIQUE): New.
7669         * internal-fn.h (enum ifn_unique_kind): New.
7670         * internal-fn.def (IFN_UNIQUE): New.
7671         * target-insns.def (unique): Define.
7672         * gimple.h (gimple_call_internal_unique_p): New.
7673         * gimple.c (gimple_call_same_target_p): Check internal fn
7674         uniqueness.
7675         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
7676         * tree-ssa-threadedge.c
7677         (record_temporary_equivalences_from_stmts): Likewise.
7678         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
7679
7680 2015-10-27  Richard Henderson  <rth@redhat.com>
7681
7682         PR rtl-opt/67609
7683         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
7684         narrowing subregs on SSE and MMX registers.
7685         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
7686         appear to be sub-words of multi-register pseudos must be rejected.
7687         * doc/tm.texi: Regenerate.
7688
7689 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7690
7691         PR target/68102
7692         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
7693         operands[0] is a reg before taking its REGNO in split condition.
7694         (*movdi_aarch64): Likewise.
7695
7696 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7697
7698         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
7699         Handle floating point inner modes properly.
7700
7701 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
7702
7703         * tree-vect-looop.c
7704         (vectorizable_live_operation): Change iterator.
7705
7706 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7707             Aditya Kumar  <aditya.k7@samsung.com>
7708
7709         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
7710           function to schedule based on isl_schedule_node.
7711         (get_schedule_map_st): New schedule optimizer based on
7712         isl_schedule_node.
7713         (scop_get_domains): New. Return the isl_union_set containing the
7714         domains of all the pbbs.
7715         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
7716
7717 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7718
7719         PR target/67215
7720         * calls.c (prepare_call_address): Don't handle -fno-plt here.
7721         * config/i386/i386.c (ix86_expand_call): Generate indirect call
7722         via GOT for -fno-plt.  Support indirect call via GOT for x32.
7723         * config/i386/predicates.md (sibcall_memory_operand): Allow
7724         GOT memory operand.
7725
7726 2015-10-27  Richard Biener  <rguenther@suse.de>
7727
7728         PR tree-optimization/68104
7729         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7730         strided access check ...
7731         (vect_compute_data_refs_alignment): ... here.
7732
7733 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
7734             Joseph Myers  <joseph@codesourcery.com>
7735             Mark Shinwell  <shinwell@codesourcery.com>
7736             Andrew Stubbs  <ams@codesourcery.com>
7737             Rich Felker <dalias@libc.org>
7738
7739         * config.gcc: Handle --enable-fdpic.
7740         * config/sh/constraints.md (Ccl): New constraint.
7741         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
7742         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
7743         __SH_FDPIC__.
7744         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
7745         library functions.
7746         * config/sh/sh-protos.h (function_symbol_result): New struct.
7747         (function_symbol): Return function_symbol_result.
7748         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
7749         declarations.
7750         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
7751         target hook.
7752         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
7753         (sh_option_override): Force -fPIC if FDPIC is in effect.
7754         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
7755         UNSPEC_GOTOFFFUNCDESC cases.
7756         (prepare_move_operands): Use FDPIC initial GOT register for
7757         TLS-related GOT access; inhibit cross-section address offset constants
7758         for FDPIC.
7759         (sh_assemble_integer): New function.
7760         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
7761         PC-relative call sites.
7762         (expand_ashiftrt): Adapt invocation of function_symbol.
7763         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
7764         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
7765         UNSPEC_GOTOFFFUNCDESC.
7766         (legitimize_pic_address): Resolve function symbols to function
7767         descriptors for FDPIC.  Do not use GOT-relative addressing for local
7768         data that may be read-only on FDPIC.
7769         (sh_emit_storesi, sh_emit_storehi): New functions.
7770         (sh_trampoline_init): Generate FDPIC trampolines.
7771         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
7772         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
7773         (sh_output_mi_thunk): Generate FDPIC call.
7774         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
7775         FDPIC, generate call site labels to use PC-relative addressing rather
7776         than GOT-relative addressing.
7777         (sh_conditional_register_usage): Make PIC register fixed and call used
7778         when FDPIC is in effect.
7779         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
7780         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
7781         sh_get_fdpic_reg_initial_val): New functions.
7782         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
7783         Handle -mfdpic.
7784         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
7785         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
7786         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
7787         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
7788         FDPIC_SELF_SPECS.
7789         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
7790         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
7791         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
7792         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
7793         constants.
7794         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
7795         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
7796         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
7797         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
7798         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
7799         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
7800         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
7801         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
7802         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
7803         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
7804         block_move_real, block_lump_real, block_move_real_i4,
7805         block_lump_real_i4): Add support for FDPIC calls.
7806         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
7807         call_value_pop): Adjust for new function_symbol signature.
7808         * config/sh/sh.opt (-mfdpic): New option.
7809         * doc/install.texi (Options specification): Document --enable-fdpic.
7810         * doc/invoke.texi (SH Options): Document -mfdpic.
7811
7812
7813 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
7814
7815         PR tree-optimization/65963
7816         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
7817         LSHIFT_EXPRs as equivalent MULT_EXPRs.
7818
7819 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7820
7821         PR target/67929
7822         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
7823         * config/arm/constraints.md (Dp): Update callsite.
7824         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
7825
7826 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7827
7828         * builtins.c (fold_builtin_load_exponent): Rename to...
7829         (fold_const_builtin_load_exponent): ...this and only handle
7830         constant arguments.
7831         (fold_builtin_2): Update accordingly.
7832         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
7833
7834 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7835
7836         * builtins.c (fold_builtin_logb): Rename to...
7837         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
7838         (fold_builtin_significand): Rename to...
7839         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
7840         (fold_builtin_1): Update accordingly.
7841
7842 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7843
7844         * builtins.c (fold_builtin_fmin_fmax): Delete.
7845         (fold_builtin_2): Handle constant fmin and fmax arguments here.
7846         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
7847
7848 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
7849
7850         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
7851         for register extension into sign and zero register extension.
7852         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
7853         for sign and zero register extension.
7854         (cortexa57_addrcost_table): Likewise.
7855         (xgene1_addrcost_table): Likewise.
7856
7857 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7858
7859         * fold-const.c (fold_minmax): Delete.
7860         (fold_binary_loc): Don't call it.
7861         * match.pd: Add rules previously handled by fold_minmax.
7862
7863 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7864
7865         * builtins.c (fold_builtin_fma): Remove constant handling.
7866         (fold_builtin_3): Handle constant fma arguments here.
7867
7868 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7869
7870         * builtins.c (fold_builtin_fabs): Remove constant handling.
7871         (fold_builtin_abs): Likewise.
7872
7873 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7874
7875         * builtins.c (fold_builtin_copysign): Delete.
7876         (fold_builtin_2): Handle constant copysign arguments here.
7877         * match.pd: Add rules previously handled by fold_builtin_copysign.
7878
7879 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7880
7881         * builtins.c (fold_builtin_signbit): Delete.
7882         (fold_builtin_2): Handle constant signbit arguments here.
7883         * match.pd: Add rules previously handled by fold_builtin_signbit.
7884
7885 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7886
7887         * match.pd: Handle sqrt(x) cmp 0 specially.
7888
7889 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
7890
7891         * tree-vect-generic.c (expand_vector_operations_1): Check
7892         optab type before using it.
7893
7894 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7895
7896         * config/aarch64/aarch64-protos.h
7897         (struct tune_params): Add autoprefetcher_model field.
7898         * config/aarch64/aarch64.c: Include params.h
7899         (generic_tunings): Specify autoprefetcher_model value.
7900         (cortexa53_tunings): Likewise.
7901         (cortexa57_tunings): Likewise.
7902         (cortexa72_tunings): Likewise.
7903         (thunderx_tunings): Likewise.
7904         (xgene1_tunings): Likewise.
7905         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
7906         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
7907         (aarch64_override_options_internal): Set
7908         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
7909
7910 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7911
7912         * builtins.c (fold_builtin_exponent): Delete.
7913         (fold_builtin_2): Handle constant expN arguments here.
7914         * match.pd: Fold expN(logN(x)) -> x.
7915
7916 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7917
7918         * builtins.c (fold_builtin_powi): Delete.
7919         (fold_builtin_2): Handle constant powi arguments here.
7920         * match.pd: Add rules previously handled by fold_builtin_powi.
7921
7922 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7923
7924         * builtins.c (fold_builtin_pow): Delete in favor of...
7925         (fold_const_builtin_pow): ...this new function.  Only handle constant
7926         arguments.
7927         (fold_builtin_2): Update accordingly.
7928         * match.pd: Add rules previously handled by fold_builtin_pow.
7929
7930 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7931
7932         * builtins.c (fold_builtin_hypot): Delete.
7933         (fold_builtin_2): Handle constant hypot arguments here.
7934         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
7935         hypot(x, x) to fabs(x)*sqrt(2).
7936
7937 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7938
7939         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
7940         instead of make_ssa_name if not yet in SSA form.
7941
7942 2015-10-27  Richard Biener  <rguenther@suse.de>
7943
7944         * cfg.c (free_edge): Add function argument and use it instead of cfun.
7945         (clear_edges): Likewise.
7946         * cfg.h (clear_edges): Adjust prototype.
7947         * cfgexpand.c (pass_expand::execute): Adjust.
7948         * cfgloop.c (release_recorded_exits): Add function argument and use
7949         it instead of cfun.
7950         * cfgloop.h (release_recorded_exits): Adjust prototype.
7951         (loops_state_satisfies_p): Add overload with function argument.
7952         (loops_state_set): Likewise.
7953         (loops_state_clear): Likewise.
7954         (struct loop_iterator): Add function argument to constructor
7955         and iterator and use it instead of cfun.
7956         (FOR_EACH_LOOP_FN): New macro.
7957         (loop_optimizer_finalize): Add overload with function argument.
7958         * loop-init.c (loop_optimizer_init): Adjust.
7959         (fix_loop_structure): Likewise.
7960         (loop_optimizer_finaliz): Add function argument and use it
7961         instead of cfun.
7962         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
7963         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
7964         * cgraph.c (release_function_body): Do not push/pop cfun.
7965         * final.c (rest_of_clean_state): Adjust.
7966         * graphite.c (graphite_finalize): Likewise.
7967         * tree-ssa-copy.c (fini_copy_prop): Likewise.
7968         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
7969         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
7970         (tree_unroll_loops_completely): Likewise.
7971         (pass_complete_unrolli::execute): Likewise.
7972         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
7973         Add function argument and use it instead of cfun.
7974         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
7975         Adjust prototype.
7976         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
7977         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
7978         instead of cfun.
7979         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
7980         * tree-ssanames.c (fini_ssanames): Add function argument and use it
7981         instead of cfun.
7982         * tree-ssanames.c (fini_ssanames): Adjust prototype.
7983         * tree-vrp.c (execute_vrp): Adjust.
7984         * value-prof.c (free_histograms): Add function argument and use it
7985         instead of cfun.
7986         * value-prof.h (free_histograms): Adjust prototype.
7987
7988 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
7989
7990         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
7991         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
7992         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
7993
7994 2015-10-27  Tom de Vries  <tom@codesourcery.com>
7995
7996         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
7997         field_type.
7998
7999 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
8000
8001         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
8002         (inv_can_prop_to_addr_use): New function.
8003         (record_use): Call can_prop_to_addr_uses, set the new field.
8004         (get_inv_cost): Count cost if inv can't be propagated into its
8005         address uses.
8006
8007 2015-10-26  Doug Evans  <dje@google.com>
8008
8009         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
8010
8011 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
8012
8013         * match.pd (fold_widened_comparison): Apply simplifications to all
8014         integral types.
8015
8016 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
8017
8018         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
8019         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
8020         * doc/tm.texi: Regenerated.
8021         * reorg.c (dbr_schedule): Use new hook.
8022         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
8023
8024 2015-10-26  Jeff Law  <law@redhat.com>
8025
8026         PR tree-optimization/68013
8027         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8028         Make sure the first block in the path is in VISITED_BBs.
8029
8030 2015-10-26  Richard Biener  <rguenther@suse.de>
8031         Dominik Vogt  <vogt@linux.vnet.ibm.com>
8032
8033         PR middle-end/67443
8034         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
8035         Properly prune ref->ref for accesses outside of ref.
8036
8037 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
8038
8039         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
8040         new statements to be inserted if inplace.  Allow calls to have
8041         nonempty sequences.
8042
8043 2015-10-26  Richard Biener  <rguenther@suse.de>
8044
8045         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
8046         (do_valueize): New function.
8047         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
8048         replace_uses_by.
8049         * tree-ssa-threadedge.c: Remove builtins.h include, include
8050         gimple-fold.h
8051         (fold_assignment_stmt): Remove.
8052         (threadedge_valueize): New function.
8053         (record_temporary_equivalences_from_stmts): Use
8054         gimple_fold_stmt_to_constant_1, note additional cleanup
8055         opportunities.
8056
8057 2015-10-26  Richard Biener  <rguenther@suse.de>
8058
8059         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
8060         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
8061
8062 2015-10-26  Alan Hayward <alan.hayward@arm.com>
8063
8064         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
8065         VEC_COND_EXPR types.
8066
8067 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8068
8069         * auto-inc-dec.c (insert_move_insn_before): Delete.
8070         (attempt_change): Remember to cost the simple move in the
8071         FORM_PRE_ADD and FORM_POST_ADD cases.
8072
8073 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
8074
8075         PR target/68091
8076         * config/sh/sh.c (sh_vector_mode_supported_p): Use
8077         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
8078
8079 2015-10-26  Tom de Vries  <tom@codesourcery.com>
8080
8081         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
8082         factored out of ...
8083         (intra_create_variable_infos): ... here.
8084
8085 2015-10-26  Tom de Vries  <tom@codesourcery.com>
8086
8087         * tree-ssa-structalias.c (intra_create_variable_infos): Add
8088         restrict_pointer_p and recursive_restrict_p variables.
8089
8090 2015-10-26  Tom de Vries  <tom@codesourcery.com>
8091
8092         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
8093         get_vi_for_tree call.
8094
8095 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8096
8097         PR middle-end/67989
8098         * optabs.c (expand_atomic_compare_and_swap): Handle case when
8099         ptarget_oval or ptarget_bool are const0_rtx.
8100
8101 2015-10-26  Christian Bruel  <christian.bruel@st.com>
8102
8103         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
8104         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
8105         * cp/method.c (implicitly_declare_fn): Likewise.
8106         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
8107         * java/class.c (add_method_1): Likewise.
8108
8109 2015-10-26  Richard Biener  <rguenther@suse.de>
8110
8111         * alloc-pool.h (base_pool_allocator): Use placement new.
8112         (base_pool_allocator::remove): Likewise.  Compute size outside of
8113         flag_checking.
8114
8115 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
8116
8117         * builtins.c (do_real_to_int_conversion): New function.
8118         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
8119         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
8120         arguments here.
8121         * match.pd: Add rules previously handled by fold_fixed_mathfn
8122         and fold_builtin_int_roundingfn.
8123
8124 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
8125
8126         * match.pd: Use macros to define built-in operator lists.
8127
8128 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
8129             Richard Biener  <rguenther@suse.de>
8130
8131         * genmatch.c (dt_simplify::gen): Skip captures that are
8132         part of the result.
8133         (parser::parse_expr): Allow captures in results too.
8134         * builtins.c (fold_builtin_cexp): Delete.
8135         (fold_builtin_1): Handle constant cexp arguments here.
8136         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
8137
8138 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
8139
8140         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
8141         conditional compilation.
8142         (base_pool_allocator::remove): Use flag_checking.
8143
8144 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
8145
8146         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
8147
8148         PR middle-end/68079
8149         * dojump.c (do_compare_and_jump): Canonicalize both function and
8150         method types.
8151
8152 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
8153
8154         PR target/68084
8155         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
8156         for =@ccae.
8157
8158 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
8159
8160         PR ipa/pr67600
8161         * ipa-polymorphic-call.c
8162         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
8163         instance offset with offset of outer type.
8164
8165 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
8166
8167         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
8168
8169 2015-10-23  Caroline Tice  <cmtice@google.com>
8170
8171         (from Richard Biener
8172         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
8173         call to iterative_hash_host_wide_int.
8174
8175 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
8176
8177         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
8178         Define as yes.
8179
8180 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
8181
8182         * tree-vect-generic.c (expand_vector_operations_1): Check
8183         optab exists before use it.
8184
8185 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
8186
8187         * tree-vect-generic.c (expand_vector_condition): Avoid
8188         uninitialized variable warning.
8189
8190 2015-10-23  Jeff Law  <law@redhat.com>
8191
8192         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
8193         here.  Instead...
8194         (execute_todo): Call it here.
8195         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
8196         statistics
8197         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
8198
8199 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
8200             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8201
8202         * config.gcc (enable_secureplt): Add *-linux*-musl*.
8203
8204 2015-10-23  Jeff Law  <law@redhat.com>
8205
8206         PR tree-optimization/67830
8207         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
8208         Explicitly verify the mask has no bits outside the type of
8209         the innermost operands.
8210
8211 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
8212             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8213
8214         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
8215         (MUSL_DYNAMIC_LINKER64): Define.
8216         (GNU_USER_DYNAMIC_LINKER32): Update.
8217         (GNU_USER_DYNAMIC_LINKER64): Update.
8218         (CHOOSE_DYNAMIC_LINKER): Update.
8219
8220         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
8221         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
8222         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
8223         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
8224         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
8225         (CHOOSE_DYNAMIC_LINKER): Update.
8226         (INCLUDE_DEFAULTS): Redefine.
8227
8228         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
8229
8230 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
8231
8232         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
8233         comparing addresses.
8234
8235 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
8236
8237         * fold-const.c (operand_equal_p): Handle matching of vector
8238         constructors.
8239
8240 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
8241
8242         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
8243
8244 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
8245             Andrew Pinski  <apinski@cavium.com>
8246
8247         PR rtl-optimization/67736
8248         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
8249         of gen_lowpart.
8250
8251 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
8252
8253         PR middle-end/68066
8254         * tree.c (build_truth_vector_type): Support BLK mode
8255         returned for boolean vector.
8256
8257 2015-10-23  Alan Hayward <alan.hayward@arm.com>
8258
8259         PR tree-optimization/65947
8260         * tree-vect-loop.c
8261         (vect_is_simple_reduction_1): Find condition reductions.
8262         (vect_model_reduction_cost): Add condition reduction costs.
8263         (get_initial_def_for_reduction): Add condition reduction initial var.
8264         (vect_create_epilog_for_reduction): Add condition reduction epilog.
8265         (vectorizable_reduction): Condition reduction support.
8266         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
8267         * doc/sourcebuild.texi (Vector-specific attributes): Document
8268         vect_max_reduc
8269
8270 2015-10-23  Richard Biener  <rguenther@suse.de>
8271
8272         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
8273         and builtins.def.
8274
8275 2015-10-23  Richard Biener  <rguenther@suse.de>
8276             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8277
8278         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
8279         into (A ^ B) - B to match.pd
8280         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
8281
8282         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
8283         New simplifier.
8284         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
8285         New simplifier.
8286         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
8287         New simplifier.
8288         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
8289         New simplifier.
8290         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
8291         INTEGER_CST@1)): New simplifier.
8292
8293 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
8294
8295         * builtins.c (integer_valued_real_p): Move to fold-const.c.
8296         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
8297         (fold_builtin_ceil, fold_builtin_round): Delete.
8298         (fold_builtin_1): Handle constant trunc, floor, ceil and round
8299         arguments here.
8300         * convert.c (convert_to_real): Remove narrowing of rounding
8301         functions.
8302         * fold-const.h (integer_valued_real_unary_p)
8303         (integer_valued_real_binary_p, integer_valued_real_call_p)
8304         (integer_valued_real_single_p, integer_valued_real_p): Declare.
8305         * fold-const.c (tree_single_nonnegative_warnv_p): Move
8306         name_registered_for_update_p check to SSA_NAME case statement.
8307         Don't call tree_simple_nonnegative_warnv_p for SSA names.
8308         (integer_valued_real_unary_p, integer_valued_real_binary_p)
8309         (integer_valued_real_call_p, integer_valued_real_single_p)
8310         (integer_valued_real_invalid_p): New functions.
8311         (integer_valued_real_p): Move from fold-const.c and rework
8312         to call the functions above.  Handle SSA names.
8313         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
8314         * gimple-fold.c (gimple_assign_integer_valued_real_p)
8315         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
8316         (gimple_stmt_integer_valued_real_p): New functions.
8317         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
8318         Fold f(x)->x for the same f if x is known to be integer-valued.
8319         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
8320         the result.  Canonicalize floor(x) as trunc(x) if x is
8321         nonnegative.
8322
8323 2015-10-23  Tom de Vries  <tom@codesourcery.com>
8324
8325         * tree-ssa-structalias.c (intra_create_variable_infos): Use
8326         make_constraint_from.
8327
8328 2015-10-23  Tom de Vries  <tom@codesourcery.com>
8329
8330         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
8331         setting of is_full_var in case of a single field.
8332
8333 2015-10-22  Martin Sebor  <msebor@redhat.com>
8334
8335         PR driver/68043
8336         * config/i386/i386.opt: Add missing periods to the ends of sentences.
8337         * config/msp430/msp430.opt: Same.
8338
8339 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
8340
8341         * doc/extend.exp (Global Register Variables): Rewrite.
8342
8343 2015-10-22  Jeff Law  <law@redhat.com>
8344
8345         * genattrtab.c (main): If we do not have any annul-true or annul-false
8346         slots, then write out a dummy eligible_for_annul_true or
8347         eligible_for_annul_false as needed.
8348
8349 2015-10-22  Nick Clifton  <nickc@redhat.com>
8350
8351         * config/msp430/msp430.opt: Add -msilicon-errata and
8352         -msilicon-errata-warn.
8353         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
8354         assembler.
8355         * doc/invoke.texi: Document new options.
8356
8357 2015-10-22  Richard Biener  <rguenther@suse.de>
8358
8359         PR tree-optimization/58497
8360         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
8361         (expand_vector_operations_1): Use it.  Lower operations on
8362         all uniform vectors to scalar operations if the HW supports it.
8363
8364 2015-10-22  Richard Biener  <rguenther@suse.de>
8365
8366         PR tree-optimization/19049
8367         PR tree-optimization/65962
8368         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
8369         to strided accesses if single-element interleaving doesn't work.
8370
8371 2015-10-22  Richard Biener  <rguenther@suse.de>
8372
8373         PR middle-end/68046
8374         PR middle-end/61893
8375         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
8376         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
8377         (expand_unop): Likewise.
8378
8379 2015-10-22  Richard Biener  <rguenther@suse.de>
8380
8381         * fold-const.c (fold_addr_of_array_ref_difference): Properly
8382         convert operands before folding a MINUS_EXPR.
8383         (fold_binary_loc): Move simplification of MINUS_EXPR on
8384         converted POINTER_PLUS_EXPRs ...
8385         * match.pd: ... here.
8386
8387 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
8388
8389         * builtins.c (fold_builtin_tan): Delete.
8390         (fold_builtin_1): Handle constant tan arguments here.
8391         * match.pd: Simplify (tan (atan x)) to x.
8392
8393 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
8394
8395         * builtins.c (fold_builtin_cproj): Delete.
8396         (fold_builtin_1): Handle constant arguments here.
8397         (build_complex_cproj): Move and rename to...
8398         * tree.c: (build_complex_inf): ...this.
8399         * tree.h (build_complex_inf): Declare.
8400         * match.pd: Fold cproj(x)->x if x has no infinity.
8401         Use build_complex_inf for existing cproj rules.
8402
8403 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8404
8405         PR target/68015
8406         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
8407         already have a comparison result.
8408
8409 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8410
8411         PR target/63304
8412         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
8413         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
8414         (aarch64_classify_address): Likewise.
8415         (aarch64_secondary_reload): Likewise.
8416         (aarch64_override_options_after_change_1): Adjust.
8417         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
8418         Use aarch64_nopcrelative_literal_loads.
8419         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
8420         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
8421         Declare.
8422
8423 2015-10-21  Martin Sebor  <msebor@redhat.com>
8424
8425         PR driver/68043
8426         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
8427         (print_filtered_help): Reference aliased option's name and encourage
8428         readers to use it in preference to the alias if the former is not
8429         documented.  Mention when using an option is diagnosed.
8430         * gcc.c (display_help): End each sentence with a period.
8431
8432         * common.opt: End each sentence that describes an option with
8433         a period.
8434         * config/aarch64/aarch64.opt: Same.
8435         * config/alpha/alpha.opt: Same.
8436         * config/arc/arc.opt: Same.
8437         * config/arm/arm.opt: Same.
8438         * config/avr/avr.opt: Same.
8439         * config/bfin/bfin.opt: Same.
8440         * config/c6x/c6x.opt: Same.
8441         * config/cr16/cr16.opt: Same.
8442         * config/cris/cris.opt: Same.
8443         * config/cris/linux.opt: Same.
8444         * config/darwin.opt: Same.
8445         * config/epiphany/epiphany.opt: Same.
8446         * config/fr30/fr30.opt: Same.
8447         * config/frv/frv.opt: Same.
8448         * config/ft32/ft32.opt: Same.
8449         * config/g.opt: Same.
8450         * config/h8300/h8300.opt: Same.
8451         * config/i386/cygming.opt: Same.
8452         * config/i386/djgpp.opt: Same.
8453         * config/i386/i386.opt: Same.
8454         * config/i386/interix.opt: Same.
8455         * config/i386/mingw-w64.opt: Same.
8456         * config/i386/mingw.opt: Same.
8457         * config/ia64/ia64.opt: Same.
8458         * config/ia64/ilp32.opt: Same.
8459         * config/iq2000/iq2000.opt: Same.
8460         * config/linux.opt: Same.
8461         * config/lm32/lm32.opt: Same.
8462         * config/lynx.opt: Same.
8463         * config/m32c/m32c.opt: Same.
8464         * config/m32r/m32r.opt: Same.
8465         * config/m68k/ieee.opt: Same.
8466         * config/m68k/m68k.opt: Same.
8467         * config/mcore/mcore.opt: Same.
8468         * config/mep/mep.opt: Same.
8469         * config/microblaze/microblaze.opt: Same.
8470         * config/mips/mips.opt: Same.
8471         * config/mmix/mmix.opt: Same.
8472         * config/mn10300/mn10300.opt: Same.
8473         * config/moxie/moxie.opt: Same.
8474         * config/msp430/msp430.opt: Same.
8475         * config/nios2/elf.opt: Same.
8476         * config/nios2/nios2.opt: Same.
8477         * config/nvptx/nvptx.opt: Same.
8478         * config/pa/pa-hpux.opt: Same.
8479         * config/pa/pa-hpux1010.opt: Same.
8480         * config/pa/pa-hpux1111.opt: Same.
8481         * config/pa/pa-hpux1131.opt: Same.
8482         * config/pa/pa.opt: Same.
8483         * config/pa/pa64-hpux.opt: Same.
8484         * config/pdp11/pdp11.opt: Same.
8485         * config/rl78/rl78.opt: Same.
8486         * config/rs6000/476.opt: Same.
8487         * config/rs6000/aix64.opt: Same.
8488         * config/rs6000/darwin.opt: Same.
8489         * config/rs6000/linux64.opt: Same.
8490         * config/rs6000/rs6000.opt: Same.
8491         * config/rs6000/sysv4.opt: Same.
8492         * config/s390/s390.opt: Same.
8493         * config/s390/tpf.opt: Same.
8494         * config/sh/sh.opt: Same.
8495         * config/sol2.opt: Same.
8496         * config/sparc/long-double-switch.opt: Same.
8497         * config/sparc/sparc.opt: Same.
8498         * config/spu/spu.opt: Same.
8499         * config/stormy16/stormy16.opt: Same.
8500         * config/tilegx/tilegx.opt: Same.
8501         * config/tilepro/tilepro.opt: Same.
8502         * config/v850/v850.opt: Same.
8503         * config/vax/vax.opt: Same.
8504         * config/visium/visium.opt: Same.
8505         * config/vms/vms.opt: Same.
8506         * config/vxworks.opt: Same.
8507         * config/xtensa/xtensa.opt: Same.
8508
8509 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8510             Sebastian Pop  <s.pop@samsung.com>
8511
8512         * graphite-scop-detection.c (parameter_index_in_region): Update call to
8513         invariant_in_sese_p_rec.
8514         * graphite-sese-to-poly.c (extract_affine): Same.
8515         * sese.c (invariant_in_sese_p_rec): Pass in an extra
8516         parameter has_vdefs.
8517         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
8518         variable depends on virtual definitions in the current region.
8519         * sese.h (invariant_in_sese_p_rec): Update declaration.
8520
8521 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8522             Sebastian Pop  <s.pop@samsung.com>
8523
8524         * graphite-scop-detection.c (build_scops): Do not handle scops
8525         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
8526         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
8527
8528 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
8529
8530         * config.in: Regenerate.
8531         * configure: Regenerate.
8532         * configure.ac (CHECKING_P): Define.
8533         * system.h: Use CHECKING_P.
8534
8535 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8536
8537         PR ipa/67056
8538         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
8539         is negative we don't know the type.
8540         (check_stmt_for_type_change): Skip constructors of non-polymorphic
8541         types as those won't help devirutalization.
8542
8543 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8544
8545         * fold-const.c (operand_equal_p): Add code matching empty constructors.
8546
8547 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8548
8549         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
8550         comments.
8551         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
8552         Add comments on sign of the result.
8553         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
8554         Recurse on operand #1 instead of operand #0.
8555         <CEIL_MOD_EXPR>: Do not recurse.
8556         <ROUND_MOD_EXPR>: Likewise.
8557
8558 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8559
8560         * cfgrtl.c (pass_free_cfg::execute): Adjust.
8561         * final.c (dbr_sequence_length): Always define.
8562         (shorten_branches): Adjust.
8563         * genattr-common.c (main): Always define DELAY_SLOTS.
8564         * genattr.c (main): Unconditionally declare functions and define
8565         macros related to delay slots.
8566         * genattrtab.c (write_eligible_delay): Adjust.
8567         (main): Always write out delay slot functions.
8568         * opts.c (default_options_table): Adjust.
8569         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
8570         (redirect_with_delay_list_safe_p): Likewise.
8571         (fill_simple_delay_slots): Likewise.
8572         (fill_slots_from_thread): Likewise.
8573         (make_return_insns): Likewise.
8574         (dbr_schedule): Likewise.
8575         (rest_of_handle_delay_slots): Likewise.
8576         (pass_delay_slots::gate): Likewise.
8577         * toplev.c (process_options): Likewise.
8578
8579 2015-10-21  Richard Henderson  <rth@redhat.com>
8580
8581         * targhooks.c (default_addr_space_pointer_mode): Remove check
8582         for generic address space.
8583         (default_addr_space_address_mode): Likewise.
8584         (default_addr_space_valid_pointer_mode): Likewise.
8585         (default_addr_space_legitimate_address_p): Likewise.
8586         (default_addr_space_legitimize_address): Likewise.
8587         * target.def (addr_space.pointer_mode): Update documentation
8588         of default behavior.
8589         (addr_space.address_mode): Likewise.
8590         * tm.texi: Update.
8591
8592         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
8593         address spaces.
8594
8595 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8596
8597         * builtins.c (fold_builtin_cabs): Delete.
8598         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8599         * match.pd: Add rules previously handled by fold_builtin_cabs.
8600
8601 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8602
8603         * fold-const.h (fold_strip_sign_ops): Delete.
8604         * fold-const.c (fold_strip_sign_ops): Likewise.
8605         (fold_unary_loc, fold_binary_loc): Remove calls to it.
8606         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
8607         (fold_builtin_ccos): Delete.
8608         (fold_builtin_pow): Don't call fold_strip_sign_ops.
8609         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
8610         Remove fndecl argument.
8611         (fold_builtin_1): Update calls accordingly.  Handle constant
8612         cos, cosh, ccos and ccosh here.
8613
8614 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8615
8616         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
8617         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
8618         * common.opt (fssa-backprop): New option.
8619         * fold-const.h (negate_mathfn_p): Declare.
8620         * fold-const.c (negate_mathfn_p): Make public.
8621         * timevar.def (TV_TREE_BACKPROP): New.
8622         * tree-pass.h (make_pass_backprop): Declare.
8623         * passes.def (pass_backprop): Add.
8624         * gimple-ssa-backprop.c: New file.
8625
8626 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8627             Sebastian Pop  <s.pop@samsung.com>
8628
8629         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
8630         Do not call create_empty_if_region_on_edge when cond_expr is true.
8631         (translate_isl_ast_node_for): Check whether a guard has been generated.
8632
8633 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8634
8635         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
8636         (operator=): Removed.
8637         (dr_info): Make alias_set number the last argument with default
8638         value of invalid_alias_set.
8639         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
8640         of dr_info.
8641         (rewrite_reductions_out_of_ssa): Iterate only through the
8642         basic blocks which are inside region.
8643         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
8644         * sese.h (struct sese_l): Removed assignment operator.
8645         (split_region_for_bb): Removed dead code.
8646
8647 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8648
8649         * graphite-poly.h (struct dr_info): Removed conversion constructor.
8650         (struct scop): Renamed scop::region to scop::scop_info
8651         (scop_set_region): Same.
8652         (SCOP_REGION): Removed
8653         (SCOP_CONTEXT): Removed.
8654         (POLY_SCOP_P): Removed.
8655         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
8656         Rename scop->region to scop->scop_info.
8657         (add_parameters_to_ivs_params): Same.
8658         (graphite_regenerate_ast_isl): Same.
8659         * graphite-poly.c (new_scop): Same.
8660         (free_scop): Same.
8661         (print_scop_params): Same.
8662         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
8663         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
8664         (dot_all_scops_1): Rename scop->region to scop->scop_info.
8665         (scop_detection::nb_pbbs_in_loops): Same.
8666         (find_scop_parameters): Same.
8667         (try_generate_gimple_bb): Same.
8668         (gather_bbs::before_dom_children): Same.
8669         (gather_bbs::after_dom_children): Same.
8670         (build_scops): Same.
8671         * graphite-sese-to-poly.c (build_scop_scattering): Same.
8672         (extract_affine_chrec): Same.
8673         (extract_affine): Same.
8674         (set_scop_parameter_dim): Same.
8675         (build_loop_iteration_domains): Same.
8676         (create_pw_aff_from_tree): Same.
8677         (add_param_constraints): Same.
8678         (build_scop_iteration_domain): Same.
8679         (build_scop_drs): Same.
8680         (analyze_drs_in_stmts): Same.
8681         (insert_out_of_ssa_copy_on_edge): Same.
8682         (rewrite_close_phi_out_of_ssa):Same.
8683         (rewrite_reductions_out_of_ssa):Same.
8684         (handle_scalar_deps_crossing_scop_limits):Same.
8685         (rewrite_cross_bb_scalar_deps):Same.
8686         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
8687         (build_poly_scop):Same.
8688         (build_alias_set): Use pointer to dr_info.
8689         * graphite.c (print_graphite_scop_statistics):
8690         (graphite_transform_loops):
8691         * sese.h (struct sese_l): Remove conversion constructor.
8692
8693 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8694
8695         PR middle-end/67966
8696         * tree.c (verify_type): Verify that TYPE_MODE match
8697         between TYPE_CANONICAL and type.
8698         * expr.c (store_expr_with_bounds): Revert my previous change.
8699         * expmed.c (store_bit_field_1): Revert prevoius change.
8700         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
8701         to match for all types.
8702
8703 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
8704
8705         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
8706         nesting.
8707
8708 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8709
8710         * doc/tm.texi: Regenerated.
8711         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
8712         * stor-layout.c (layout_type): Use mode to get vector mask size.
8713         * target.def (get_mask_mode): New.
8714         * targhooks.c (default_get_mask_mode): New.
8715         * targhooks.h (default_get_mask_mode): New.
8716         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
8717         for boolean vector.
8718         * tree.c (MAX_BOOL_CACHED_PREC): New.
8719         (nonstandard_boolean_type_cache): New.
8720         (build_nonstandard_boolean_type): New.
8721         (make_vector_type): Vector mask has no canonical type.
8722         (build_truth_vector_type): New.
8723         (build_same_sized_truth_vector_type): New.
8724         (truth_type_for): Support vector masks.
8725         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
8726         (build_truth_vector_type): New.
8727         (build_same_sized_truth_vector_type): New.
8728         (build_nonstandard_boolean_type): New.
8729         * tree-cfg.c (verify_gimple_comparison) Require boolean
8730         vector type for vector comparison.
8731         (verify_gimple_assign_ternary): Likewise.
8732         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
8733         condition operand.
8734         * tree-vect-stmts.c (vectorizable_condition): Use boolean
8735         vector type for vector comparison.
8736         * tree-vect-generic.c (elem_op_func): Add new operand to hold
8737         vector type.
8738         (do_unop): Adjust to modified function type.
8739         (do_binop): Likewise.
8740         (do_plus_minus): Likewise.
8741         (do_negate); Likewise.
8742         (expand_vector_piecewise): Likewise.
8743         (do_cond): Likewise.
8744         (do_compare): Use comparison instead of condition.
8745         (expand_vector_divmod): Use boolean vector type for comparison.
8746         (expand_vector_operations_1): Skip scalar mask operations.
8747
8748 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8749
8750         * omp-low.c (simd_clone_create): Set in_other_partition
8751         for created clones.
8752
8753 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
8754
8755         * doc/extend.exp (Local Register Variables): Rewrite.
8756
8757 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8758
8759         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
8760         and x*x in cases where the operands are sign ops.  Extend these
8761         rules to handle copysign as a sign op (including for cos, cosh
8762         and pow, which already treated negate and abs as sign ops).
8763
8764 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
8765
8766         PR target/68018
8767         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
8768         for 64-bit MS_ABI targets also when default incoming stack boundary
8769         is overriden.
8770
8771 2015-10-21  Richard Biener  <rguenther@suse.de>
8772
8773         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
8774         cond stmts, enhanced and split out from ...
8775         (vn_phi_eq): ... here.
8776
8777 2015-10-21  Richard Biener  <rguenther@suse.de>
8778
8779         PR middle-end/68031
8780         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
8781         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
8782         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
8783         make sure they are not registered for update.
8784
8785 2015-10-21  Richard Biener  <rguenther@suse.de>
8786
8787         PR tree-optimization/68026
8788         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
8789         unsigned VARYING values.
8790
8791 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
8792
8793         * asan.c (asan_emit_stack_protection): Don't pass local stack to
8794         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
8795         NULL and use local stack than.
8796         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
8797         in addition to __asan_init.
8798         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
8799         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
8800         * asan.h (asan_intercepted_p): Handle new string builtins.
8801         * ubsan.c (ubsan_use_new_style_p): New function.
8802         (ubsan_instrument_float_cast): If location is unknown, assign
8803         input_location to loc. Propagate loc to ubsan_create_data if
8804         ubsan_use_new_style_p returned true.
8805
8806 2015-10-21  Jeff Law  <law@redhat.com>
8807
8808         * Makefile.in (OBJS): Remove sched-vis.c
8809         * sched-vis.c: Removed.  Code moved into...
8810         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
8811         * rtl.h: Remove prototypes for functions now living in print-rtl.c
8812         * print-rtl.h Add prototypes for new functions in print-rtl.c.
8813         * auto-inc-dec.c: Include print-rtl.h
8814         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
8815         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
8816
8817         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
8818         ATTRIBUTE_UNUSED.
8819
8820 2015-10-21  Richard Biener  <rguenther@suse.de>
8821             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8822
8823         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
8824         to match.pd.
8825 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
8826 about signed left shift stronger and clarify the cases when they're
8827 broken.
8828         Move (a * (1 << b)) is (a << b) to match.pd.
8829         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
8830         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
8831         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
8832
8833         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
8834         New simplifier.
8835         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
8836         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
8837         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
8838         : New simplifier.
8839         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
8840         New simplifier.
8841         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
8842
8843 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
8844             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8845             Alan Modra  <amodra@gmail.com>
8846
8847         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
8848         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
8849         (LINK_SPEC): Add %(link_secure_plt).
8850         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
8851         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
8852
8853 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
8854             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8855
8856         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
8857         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
8858
8859 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8860
8861         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
8862         New function.
8863         (fusion_load_store): Use it.
8864         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
8865         ldp and stp in VD modes.
8866         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
8867         (store_pair<mode>, VD): Likewise.
8868
8869 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8870
8871         PR rtl-optimization/67609
8872         * lra-splill.c (lra_final_code_change): Don't remove all
8873         sub-registers.
8874
8875 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8876
8877         * simplify-rtx.c (simplify_binary_operation): If either operand was
8878         a constant pool reference use them if all other simplifications failed.
8879
8880 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8881
8882         * config/aarch64/aarch64.md
8883         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
8884         * config/aarch64/aarch64-simd.md
8885         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
8886         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
8887         (aarch64_fpconst_pow_of_2): New function.
8888         (aarch64_vec_fpconst_pow_of_2): Likewise.
8889         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
8890         prototype.
8891         (aarch64_vec_fpconst_pow_of_2): Likewise.
8892         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
8893         (aarch64_fp_vec_pow2): Likewise.
8894
8895 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
8896
8897         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
8898         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
8899         * config/alpha/alpha.c (alpha_function_arg_advance): Update
8900         ALPHA_ARG_SIZE usage.
8901         (alpha_arg_partial_bytes): Ditto.
8902
8903 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8904
8905         PR target/66810
8906         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
8907         error_mark_node decls.
8908
8909 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8910
8911         PR target/67963
8912         PR target/67985
8913         * common/config/i386/i386-common.c (ix86_handle_option): Remove
8914         OPT_miamcu handling.
8915         * config/i386/i386.c (PTA_NO_80387): New macro.
8916         (processor_alias_table): Add PTA_NO_80387 to lakemont.
8917         (ix86_option_override_internal): Update MASK_80387 from
8918         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
8919         SSE math only if 80387 is supported.  Don't change
8920         MASK_FLOAT_RETURNS.
8921         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
8922         80387 is supported.
8923         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
8924         if TARGET_80387 is true and TARGET_IAMCU is false.
8925         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
8926         is true and TARGET_IAMCU_P is false.
8927
8928 2015-10-20  Richard Biener  <rguenther@suse.de>
8929
8930         PR tree-optimization/68017
8931         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
8932
8933 2015-10-20  Martin Liska  <mliska@suse.cz>
8934
8935         * cgraphclones.c (cgraph_node::create_virtual_clone):
8936         Verify cgraph_node.local.versionable instead of calling
8937         tree_versionable_function_p.
8938         * ipa-cp.c (determine_versionability): Save the information
8939         to ipa_node_params summary.
8940         (ipcp_versionable_function_p): Use it.
8941         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
8942         (ipcp_generate_summary): Do not compute cgraph_node
8943         versionability.
8944         * ipa-inline-analysis.c (inline_generate_summary): Compute
8945         versionability for all cgraph nodes.
8946         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
8947         ipa_node_params::versionability.
8948         * ipa-prop.h (struct ipa_node_params): Declare it.
8949
8950 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8951
8952         PR other/67868
8953         * varasm.c (assemble_variable): Move special vtv handling to..
8954         (handle_vtv_comdat_sections): .. here. New function.
8955         (output_object_block): Handle vtv sections.
8956
8957 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8958
8959         PR target/66912
8960         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
8961
8962 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
8963
8964         * doc/extend.texi: Update documentation WRT inline functions.
8965
8966 2015-10-20  Alan Modra  <amodra@gmail.com>
8967
8968         PR go/66870
8969         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
8970         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8971         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
8972
8973 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
8974
8975         PR rtl-optimization/66790
8976         * df.h (DF_MIR): New macro.
8977         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
8978         (DF_MIR_INFO_BB): New macro.
8979         (DF_MIR_IN, DF_MIR_OUT): New macros.
8980         (struct df_mir_bb_info): New.
8981         (df_mir): New macro.
8982         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
8983         declarations.
8984         (df_mir_get_bb_info): New.
8985         * df-problems.c (struct df_mir_problem_data): New.
8986         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
8987         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
8988         df_mir_confluence_0, df_mir_confluence_n,
8989         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
8990         df_mir_bottom_dump, df_mir_verify_solution_start,
8991         df_mir_verify_solution_end): New.
8992         (problem_MIR): New.
8993         (df_mir_add_problem, df_mir_simulate_one_insn): New.
8994         * timevar.def (TV_DF_MIR): New.
8995         * ree.c: Include bitmap.h
8996         (add_removable_extension): Add an INIT_REGS parameter.  Use it
8997         to skip zero-extensions that may get an uninitialized register.
8998         (find_removable_extensions): Compute must-initialized registers
8999         using the MIR dataflow problem. Update the call to
9000         add_removable_extension.
9001         (find_and_remove_re): Call df_mir_add_problem.
9002
9003 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
9004
9005         * common/config/mn10300/mn10300-common.c
9006         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
9007         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
9008
9009 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
9010
9011         * doc/extend.texi (Explicit Register Variables): Simplify and
9012         avoid unnecessary and confusion abbreviations.  Update cross
9013         references.
9014         doc/implement-c.tex: Update cross reference.
9015
9016 2015-10-19  Jeff Law  <law@redhat.com>
9017
9018         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
9019         that create irreducible loops unless the path elimiantes a multiway
9020         branch.
9021
9022 2015-10-19  Richard Biener  <rguenther@suse.de>
9023
9024         PR tree-optimization/67975
9025         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
9026         * tree-cfg.c (extract_true_false_controlled_edges): Split out
9027         core worker from ...
9028         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
9029         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
9030         instead of block number for PHIs with two or one args.
9031         (vn_phi_eq): Compare edge predicates of PHIs that are in different
9032         blocks.
9033
9034 2015-10-19  Richard Biener  <rguenther@suse.de>
9035
9036         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
9037         (gimple_stmt_nonnegative_warnv_p): Use it.
9038         * match.pd (CPROJ): New operator list.
9039         (cproj (complex ...)): Move simplifications from ...
9040         * builtins.c (fold_builtin_cproj): ... here.
9041
9042 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
9043
9044         * config/i386/i386.c (ix86_expand_vector_move): Use
9045         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
9046         alignment.
9047
9048 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
9049
9050         * doc/invoke.texi: Replace @optindex with @opindex.
9051
9052 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
9053
9054         PR target/67995
9055         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
9056         arch= is set,  clear all bits in x_ix86_isa_flags, except for
9057         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
9058
9059 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
9060
9061         PR middle-end/68002
9062         * common.opt (fkeep-static-functions): New option.
9063         * doc/invoke.texi: Document it.
9064         * cgraphunit.c (cgraph_node::finalize_function): Use it.
9065
9066 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9067
9068         * sched-int.h (struct autopref_multipass_data_): Remove offset
9069         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
9070         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
9071         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
9072         (autopref_rank_data): New function.
9073         (autopref_rank_for_schedule): Use it.
9074         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
9075
9076 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
9077
9078         PR other/65800
9079         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
9080
9081 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
9082
9083         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
9084         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
9085         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
9086         (STANDARD_STARTFILE_PREFIX_1): New.
9087         (STANDARD_STARTFILE_PREFIX_2): New.
9088
9089 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
9090
9091         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
9092         (darwin_driver_init): Note a version-min when provided on the c/l.
9093         * config/darwin.h (%darwin_minversion): Remove.
9094         * config/i386/darwin.h: Likewise.
9095         * config/rs6000/darwin.h: Likewise.
9096         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
9097         rather than an arbitrary constant.
9098
9099 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
9100
9101         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
9102         PPC, detect conflicts between -arch and multilib settings.  Detect
9103         and warn about conflicts between multiple -arch definitions.
9104
9105 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
9106
9107         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
9108
9109 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9110
9111         * lra-constraints.c (add_next_usage_insn): Change argument type
9112         from rtx to rtx_insn *.
9113
9114 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
9115
9116         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
9117         for Lakemont.
9118
9119 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
9120
9121         * config/tilepro/gen-mul-tables.cc: Adjust include files.
9122         * config/tilegx/mul-tables.c: Regenerate.
9123         * config/tilepro/mul-tables.c: Regenerate.
9124
9125         * config/tilegx/tilegx-c.c: Adjust include files.
9126         * config/tilegx/tilegx.c: Likewise.
9127         * config/tilepro/tilepro-c.c: Likewise.
9128         * config/tilepro/tilepro.c: Likewise.
9129         * config/aarch64/aarch64-builtins.c: Likewise.
9130         * config/aarch64/aarch64.c: Likewise.
9131         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
9132         * config/alpha/alpha.c: Likewise.
9133         * config/arc/arc.c: Likewise.
9134         * config/arm/aarch-common.c: Likewise.
9135         * config/arm/arm-builtins.c: Likewise.
9136         * config/arm/arm-c.c: Likewise.
9137         * config/arm/arm.c: Likewise.
9138         * config/avr/avr-c.c: Likewise.
9139         * config/avr/avr-devices.c: Likewise.
9140         * config/avr/avr-log.c: Likewise.
9141         * config/avr/avr.c: Likewise.
9142         * config/bfin/bfin.c: Likewise.
9143         * config/c6x/c6x.c: Likewise.
9144         * config/cr16/cr16.c: Likewise.
9145         * config/cris/cris.c: Likewise.
9146         * config/darwin-c.c: Likewise.
9147         * config/darwin-driver.c: Likewise.
9148         * config/darwin.c: Likewise.
9149         * config/default-c.c: Likewise.
9150         * config/epiphany/epiphany.c: Likewise.
9151         * config/epiphany/mode-switch-use.c: Likewise.
9152         * config/epiphany/resolve-sw-modes.c: Likewise.
9153         * config/fr30/fr30.c: Likewise.
9154         * config/frv/frv.c: Likewise.
9155         * config/ft32/ft32.c: Likewise.
9156         * config/glibc-c.c: Likewise.
9157         * config/h8300/h8300.c: Likewise.
9158         * config/i386/host-cygwin.c: Likewise.
9159         * config/i386/host-mingw32.c: Likewise.
9160         * config/i386/i386-c.c: Likewise.
9161         * config/i386/i386.c: Likewise.
9162         * config/i386/msformat-c.c: Likewise.
9163         * config/i386/winnt-cxx.c: Likewise.
9164         * config/i386/winnt-stubs.c: Likewise.
9165         * config/i386/winnt.c: Likewise.
9166         * config/ia64/ia64-c.c: Likewise.
9167         * config/ia64/ia64.c: Likewise.
9168         * config/iq2000/iq2000.c: Likewise.
9169         * config/lm32/lm32.c: Likewise.
9170         * config/m32c/m32c-pragma.c: Likewise.
9171         * config/m32c/m32c.c: Likewise.
9172         * config/m32r/m32r.c: Likewise.
9173         * config/mcore/mcore.c: Likewise.
9174         * config/mep/mep-pragma.c: Likewise.
9175         * config/mep/mep.c: Likewise.
9176         * config/microblaze/microblaze-c.c: Likewise.
9177         * config/microblaze/microblaze.c: Likewise.
9178         * config/mips/mips-tables.opt
9179         * config/mips/mips.c: Likewise.
9180         * config/mmix/mmix.c: Likewise.
9181         * config/mn10300/mn10300.c: Likewise.
9182         * config/moxie/moxie.c: Likewise.
9183         * config/msp430/msp430-c.c: Likewise.
9184         * config/msp430/msp430.c: Likewise.
9185         * config/nds32/nds32-cost.c: Likewise.
9186         * config/nds32/nds32-fp-as-gp.c: Likewise.
9187         * config/nds32/nds32-intrinsic.c: Likewise.
9188         * config/nds32/nds32-isr.c: Likewise.
9189         * config/nds32/nds32-md-auxiliary.c: Likewise.
9190         * config/nds32/nds32-memory-manipulation.c: Likewise.
9191         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
9192         * config/nds32/nds32-predicates.c: Likewise.
9193         * config/nds32/nds32.c: Likewise.
9194         * config/nios2/nios2.c: Likewise.
9195         * config/nvptx/mkoffload.c: Likewise.
9196         * config/nvptx/nvptx.c: Likewise.
9197         * config/pa/pa.c: Likewise.
9198         * config/pdp11/pdp11.c: Likewise.
9199         * config/rl78/rl78-c.c: Likewise.
9200         * config/rl78/rl78.c: Likewise.
9201         * config/rs6000/host-darwin.c: Likewise.
9202         * config/rs6000/rs6000-c.c: Likewise.
9203         * config/rs6000/rs6000-linux.c: Likewise.
9204         * config/rs6000/rs6000.c: Likewise.
9205         * config/rx/rx.c: Likewise.
9206         * config/s390/s390-c.c: Likewise.
9207         * config/s390/s390.c: Likewise.
9208         * config/sh/sh-c.c: Likewise.
9209         * config/sh/sh-mem.cc: Likewise.
9210         * config/sh/sh.c: Likewise.
9211         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
9212         * config/sh/sh_treg_combine.cc: Likewise.
9213         * config/sol2-c.c: Likewise.
9214         * config/sol2-cxx.c: Likewise.
9215         * config/sol2-stubs.c: Likewise.
9216         * config/sol2.c: Likewise.
9217         * config/sparc/sparc-c.c: Likewise.
9218         * config/sparc/sparc.c: Likewise.
9219         * config/spu/spu-c.c: Likewise.
9220         * config/spu/spu.c: Likewise.
9221         * config/stormy16/stormy16.c: Likewise.
9222         * config/v850/v850-c.c: Likewise.
9223         * config/v850/v850.c: Likewise.
9224         * config/vax/vax.c: Likewise.
9225         * config/visium/visium.c: Likewise.
9226         * config/vms/vms-c.c: Likewise.
9227         * config/vms/vms.c: Likewise.
9228         * config/vxworks.c: Likewise.
9229         * config/winnt-c.c: Likewise.
9230         * config/xtensa/xtensa.c: Likewise.
9231
9232 2015-10-16  Christian Bruel  <christian.bruel@st.com>
9233
9234         PR target/67745
9235         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
9236         (FUNCTION_BOUNDARY_P): New macro:
9237         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
9238         New hook.
9239         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
9240         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
9241         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
9242         * function.c (allocate_struct_function): Call
9243         relayout_function hook.
9244         * passes.c (rest_of_decl_compilation): Likewise.
9245
9246 2015-10-16  Christian Bruel  <christian.bruel@st.com>
9247
9248         PR target/67745
9249         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
9250         * config/arm/arm.c (arm_option_override_internal): Call
9251         arm_override_options_after_change_1.
9252         (arm_override_options_after_change): New function.
9253         (arm_override_options_after_change_1): Likewise.
9254         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
9255
9256 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9257
9258         Revert:
9259         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
9260         empty constructors.
9261
9262 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9263
9264         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
9265         argument is an ADDR_EXPR.
9266
9267 2015-10-16  Richard Biener  <rguenther@suse.de>
9268
9269         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
9270         and get rid of force_gimple_operand_gsi.
9271         (gimple_fold_builtin_memory_chk): Likewise.
9272         (gimple_fold_builtin_stxcpy_chk): Likewise.
9273         (rewrite_to_defined_overflow): Likewise.
9274         (gimple_convert_to_ptrofftype): New function.
9275         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
9276
9277 2015-10-16  Richard Biener  <rguenther@suse.de>
9278
9279         * tree-nested.h (build_addr): Adjust prototype.
9280         * tree-nested.c (build_addr): Remove context argument and use
9281         mark_addressable.
9282         (get_static_chain): Adjust calls to build_addr.
9283         (convert_nl_goto_reference): Likewise.
9284         (convert_tramp_reference_op): Likewise.
9285         (finalize_nesting_tree_1): Likewise.
9286         * value-prof.c (gimple_ic): Likewise.
9287         * gimple-low.c (lower_builtin_setjmp): Likewise.
9288         * tree-parloops.c (take_address_of): Likewise.
9289         (create_call_for_reduction_1): Likewise.
9290         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
9291         (gimple_gen_ic_func_profiler): Likewise.
9292
9293 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9294
9295         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
9296         empty constructors.
9297
9298 2015-10-16  Michael Collison  <michael.collison@linaro.org>
9299             Andrew Pinski <andrew.pinski@caviumnetworks.com>
9300
9301         * match.pd ((x < y) && (x < z) -> x < min (y,z),
9302         (x > y) and (x > z) -> x > max (y,z))
9303
9304 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
9305             Szabolcs Nagy  <szabolcs.nagy@arm.com>
9306
9307         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
9308         (DYNAMIC_LINKER): Renamed to ...
9309         (GLIBC_DYNAMIC_LINKER): This.
9310         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
9311
9312 2015-10-15  Marek Polacek  <polacek@redhat.com>
9313
9314         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
9315         gimple_call_builtin instead of is_gimple_call.
9316
9317 2015-10-15  Richard Biener  <rguenther@suse.de>
9318
9319         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
9320
9321 2015-10-15  Richard Biener  <rguenther@suse.de>
9322
9323         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
9324         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
9325         * tree-vect-loop.c (get_initial_def_for_induction): Drop
9326         use of force_gimple_operand in favor of gimple_build.
9327         Use vect_get_new_ssa_name.
9328         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
9329         (vectorizable_mask_load_store): Likewise.
9330         (vectorizable_call): Likewise.
9331         (vectorizable_store): Likewise.
9332         (vectorizable_load): Likewise.
9333         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
9334
9335 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
9336
9337         PR tree-optimization/67945
9338         * tree-pass.h (PROP_gimple_opt_math): New property flag.
9339         * generic-match-head.c (canonicalize_math_p): New function.
9340         * gimple-match-head.c: Include tree-pass.h.
9341         (canonicalize_math_p): New function.
9342         * match.pd: Group math built-in rules into simplifications
9343         and canonicalizations.  Guard the latter with canonicalize_math_p.
9344         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
9345         PROP_gimple_opt_math property.
9346
9347 2015-10-15  Marek Polacek  <polacek@redhat.com>
9348
9349         PR tree-optimization/67953
9350         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
9351
9352 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
9353
9354         * config.gcc: Recognize "." in architecture base name for AArch64.
9355
9356 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
9357
9358         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
9359         ROUND_UP macro.
9360         * config/mips/mips.c (mips_setup_incoming_varargs): Use
9361         ROUND_DOWN to calculate off.
9362         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
9363         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
9364         rounded_size.
9365
9366 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9367
9368         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
9369
9370 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
9371             Torvald Riegel  <triegel@redhat.com>
9372
9373         PR target/67281
9374         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
9375         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
9376         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
9377         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
9378         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
9379         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
9380         trechkpt, treclaim, tsr, ttest): New define_expands.
9381         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
9382         __TM_FENCE__ for htm.
9383         * doc/extend.texi: Update documentation for htm builtins.
9384
9385 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
9386
9387         PR target/67967
9388         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
9389         REG_CFA_EXPRESSION to aligned SSE stores.
9390
9391 2015-10-14  Jeff Law  <law@redhat.com>
9392
9393         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
9394         num_threaded_edges for successful FSM threads too.
9395
9396 2015-10-14  Richard Biener  <rguenther@suse.de>
9397
9398         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
9399         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
9400         (vect_get_vec_def_for_operand): Remove unused parameter.
9401         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
9402         (vect_create_epilog_for_reduction): Likewise.
9403         (vectorizable_reduction): Likewise.
9404         (vectorizable_live_operation): Likewise.
9405         * tree-vect-patterns.c (type_conversion_p): Likewise.
9406         (vect_recog_vector_vector_shift_pattern): Likewise.
9407         (check_bool_pattern): Likewise.
9408         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
9409         (vect_analyze_slp_cost_1): Likewise.
9410         * tree-vect-stmts.c (process_use): Likewise.
9411         (vect_get_vec_def_for_operand): Do not handle reductions.
9412         (vect_get_vec_defs): Adjust.
9413         (vectorizable_mask_load_store): Likewise.
9414         (vectorizable_call): Likewise.
9415         (vectorizable_simd_clone_call): Likewise.
9416         (vect_get_loop_based_defs): Likewise.
9417         (vectorizable_conversion): Likewise.
9418         (vectorizable_assignment): Likewise.
9419         (vectorizable_shift): Likewise.
9420         (vectorizable_operation): Likewise.
9421         (vectorizable_store): Likewise.
9422         (vectorizable_load): Likewise.
9423         (vect_is_simple_cond): Likewise.
9424         (vectorizable_condition): Likewise.
9425         (vect_is_simple_use): Remove unused parameters.
9426         (vect_is_simple_use_1): Adjust and rename.
9427
9428 2015-10-14  Richard Biener  <rguenther@suse.de>
9429
9430         PR tree-optimization/67915
9431         * match.pd: Handle comparisons of addresses of STRING_CSTs.
9432         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
9433         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
9434         stmt folding in favor of GIMPLE one.
9435
9436 2015-10-14  Marek Polacek  <polacek@redhat.com>
9437
9438         PR tree-optimization/67815
9439         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
9440         (reassociate_bb): Call it.
9441
9442 2015-10-14  Richard Biener  <rguenther@suse.de>
9443
9444         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9445         Reset info at start.
9446         (vect_analyze_group_access_1): Add debug print.
9447         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
9448         (vect_compute_single_scalar_iteration_cost): ... to this.
9449         (vect_analyze_loop_2): Adjust.
9450         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
9451         * tree-vectorizer.h: ... here.
9452         (add_stmt_info_to_vec): Remove.
9453         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
9454
9455 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9456
9457         * targhooks.c (default_target_option_pragma_parse): Do not warn if
9458         called on behalf of "#pragma GCC pop_options".
9459
9460 2015-10-14  Tom de Vries  <tom@codesourcery.com>
9461
9462         * cfganal.c (verify_no_unreachable_blocks): New function.
9463         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
9464         verify_no_unreachable_blocks.
9465         cfganal.h (verify_no_unreachable_blocks): Declare.
9466
9467 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
9468
9469         * common.opt: Add flag_checking.
9470         * system.h (CHECKING_P): Define.
9471
9472 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
9473             Aldy Hernandez  <aldyh@redhat.com>
9474             Ilya Verbin  <ilya.verbin@intel.com>
9475
9476         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
9477         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
9478         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
9479         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
9480         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
9481         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
9482         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
9483         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
9484         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
9485         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
9486         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
9487         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
9488         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
9489         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
9490         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
9491         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
9492         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
9493         (struct cgraph_simd_clone_arg): Adjust comment.
9494         * coretypes.h (struct gomp_ordered): New forward decl.
9495         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
9496         set critical clauses to it.
9497         (gimple_build_omp_ordered): Return gomp_ordered * instead of
9498         gimple *.  Add CLAUSES argument, set ordered clauses to it.
9499         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
9500         GIMPLE_OMP_ORDERED.
9501         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
9502         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
9503         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
9504         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
9505         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
9506         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
9507         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
9508         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
9509         renumber
9510         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
9511         (gomp_critical): Add clauses field.
9512         (gomp_ordered): New struct.
9513         (is_a_helper <gomp_ordered *>::test): New inline.
9514         (gimple_build_omp_critical): Add CLAUSES argument.
9515         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
9516         instead of gimple *.
9517         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
9518         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
9519         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
9520         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
9521         inline functions.
9522         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
9523         (dump_gimple_omp_target): Handle enter data and exit data.
9524         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
9525         (dump_gimple_omp_critical): Print clauses.
9526         (dump_gimple_omp_ordered): New function.
9527         (dump_gimple_omp_task): Handle taskloop.
9528         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
9529         GIMPLE_OMP_ORDERED.
9530         * gimple-walk.c (walk_gimple_op): Walk clauses on
9531         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
9532         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
9533         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
9534         (struct gimplify_omp_ctx): Add loop_iter_var,
9535         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
9536         and target_firstprivatize_array_bases fields.
9537         (delete_omp_context): Release loop_iter_var.
9538         (gimplify_bind_expr): Handle ORT_NONE.
9539         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
9540         ORT_COMBINED_TARGET.
9541         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
9542         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
9543         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
9544         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
9545         ctx->target_map_scalars_firstprivate.
9546         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
9547         data sharing clauses.  For data sharing clause with VLA decl
9548         on omp target/target data don't add firstprivate for the pointer.
9549         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
9550         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
9551         the addition of ORT_COMBINED_TARGET.
9552         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
9553         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
9554         pointers as zero length array sections and
9555         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
9556         data sharing.
9557         (omp_check_private): Handle omp_member_access_dummy_var vars.
9558         (find_decl_expr): New function.
9559         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
9560         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
9561         Handle OMP_CLAUSE_GANG separately.  Handle
9562         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9563         clauses.  Diagnose linear clause on combined
9564         distribute {, parallel for} simd construct, unless it is the loop
9565         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
9566         Handle map clauses with COMPONENT_REF.  Initialize
9567         ctx->target_map_scalars_firstprivate,
9568         ctx->target_firstprivatize_array_bases and
9569         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
9570         linear clause even to target region if combined.  Remove
9571         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
9572         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
9573         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
9574         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
9575         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
9576         For linear clause on worksharing loop combined with parallel add
9577         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
9578         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
9579         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
9580         taskloop if needed.
9581         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
9582         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
9583         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
9584         GOMP_MAP_POINTER.
9585         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
9586         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
9587         in target body.  Handle removal of struct mapping if struct is not
9588         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
9589         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
9590         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
9591         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
9592         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
9593         clause appear together.  Handle
9594         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
9595         clause if it has map-type-modifier always.  Handle
9596         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9597         clauses.
9598         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
9599         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
9600         callers.
9601         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
9602         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
9603         iterators in doacross loops.
9604         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
9605         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
9606         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
9607         for the addition of ORT_COMBINED_TARGET.
9608         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
9609         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
9610         and OMP_TARGET_EXIT_DATA.
9611         (gimplify_omp_ordered): New function.
9612         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
9613         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
9614         Gimplify clauses on OMP_CRITICAL.
9615         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
9616         expand_GOMP_SIMD_ORDERED_END): New functions.
9617         * internal-fn.def (GOMP_SIMD_ORDERED_START,
9618         GOMP_SIMD_ORDERED_END): New internal functions.
9619         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
9620         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
9621         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
9622         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
9623         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
9624         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
9625         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
9626         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
9627         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
9628         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
9629         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
9630         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
9631         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
9632         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
9633         adjust type.
9634         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
9635         GOMP_target_data_41, adjust type.
9636         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
9637         GOMP_target_update_41, adjust type.
9638         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
9639         field.
9640         (struct omp_for_data): Add ordered and simd_schedule fields.
9641         (omp_member_access_dummy_var, unshare_and_remap_1,
9642         unshare_and_remap, is_taskloop_ctx): New functions.
9643         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
9644         (extract_omp_for_data): Handle taskloops and doacross loops
9645         and simd schedule modifier.
9646         (omp_adjust_chunk_size): New function.
9647         (get_ws_args_for): Use it.
9648         (lookup_sfield): Change first argument to splay_tree_key,
9649         add overload with first argument tree.
9650         (maybe_lookup_field): Likewise.
9651         (use_pointer_for_field): Handle omp_member_access_dummy_var.
9652         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
9653         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
9654         (build_outer_var_ref): Add LASTPRIVATE argument, handle
9655         taskloops and omp_member_access_dummy_var vars.
9656         (build_sender_ref): Change first argument to splay_tree_key,
9657         add overload with first argument tree.
9658         (install_var_field): For mask & 8 use &DECL_UID as key instead
9659         of the tree itself.
9660         (fixup_child_record_type): Const qualify *.omp_data_i.
9661         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
9662         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
9663         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
9664         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
9665         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
9666         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
9667         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
9668         kinds.
9669         (add_taskreg_looptemp_clauses): New function.
9670         (scan_omp_parallel): Use it.
9671         (scan_omp_task): Likewise.
9672         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9673         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
9674         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9675         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
9676         sandwiched taskloop constructs.  Type check
9677         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
9678         region.  Diagnose depend(source) or depend(sink:...) on
9679         target constructs or task/taskloop.
9680         (handle_simd_reference): Use get_name.
9681         (lower_rec_input_clauses): Likewise.  Ignore all
9682         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
9683         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
9684         before passing it to omp_clause_{default,copy}_ctor.  Handle
9685         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
9686         lastprivate_firstprivate flag for linear that needs copyin and
9687         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
9688         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
9689         on taskloop lookup decl in outer context.  Pass true to
9690         build_outer_var_ref lastprivate argument.  Handle
9691         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
9692         outside of outer taskloop for.
9693         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
9694         OMP_CLAUSE_DECL.
9695         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
9696         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
9697         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
9698         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
9699         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
9700         abstract origin.  Handle omp_member_access_dummy_var vars.
9701         (expand_parallel_call): Use expand_omp_build_assign.
9702         (expand_task_call): Handle taskloop construct expansion.  Add
9703         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
9704         integers.  Add priority argument to GOMP_task* calls.  Or in
9705         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
9706         GOMP_task call.
9707         (expand_omp_build_assign): Add prototype.  Add AFTER
9708         argument, if true emit statements after *GSI_P and continue linking.
9709         (expand_omp_taskreg): Adjust expand_task_call caller.
9710         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
9711         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
9712         zero_iter2_bb and first_zero_iter2 arguments, handle computation
9713         of counts even for ordered loops.
9714         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
9715         (expand_omp_ordered_source, expand_omp_ordered_sink,
9716         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
9717         functions.
9718         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
9719         clauses on worksharing loop.  Handle DOACROSS loop expansion.
9720         (expand_omp_for_static_nochunk): Handle linear clauses on
9721         worksharing loop.  Adjust expand_omp_for_init_counts
9722         callers.
9723         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
9724         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
9725         expand_omp_for_init_counts callers.
9726         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
9727         functions.
9728         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
9729         Handle doacross loops.
9730         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9731         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
9732         GOMP_target_{41,update_41,enter_exit_data} libcalls.
9733         (expand_omp): Don't expand ordered depend constructs here, record
9734         ord_stmt instead for later expand_omp_for_generic.
9735         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9736         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9737         clause as stand-alone directive.
9738         (lower_omp_ordered_clauses): New function.
9739         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
9740         don't lower anything.
9741         (lower_omp_for_lastprivate): Use last _looptemp_ clause
9742         on taskloop for comparison.
9743         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
9744         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
9745         expansion for linear adjustments.
9746         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9747         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
9748         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
9749         to tree * pointing to the stmt's clauses.
9750         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
9751         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9752         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
9753         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
9754         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
9755         clauses.  Always use short kind and 8-bit align shift.
9756         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
9757         (struct lower_omp_regimplify_operands_data): New type.
9758         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
9759         New functions.
9760         (lower_omp_1): Use lower_omp_regimplify_operands instead of
9761         gimple_regimplify_operands.
9762         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9763         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9764         clause as stand-alone directive.
9765         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
9766         (simd_clone_mangle): Mangle the various linear kinds
9767         per the new ABI.
9768         (simd_clone_adjust_argument_types): Handle
9769         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
9770         (simd_clone_init_simd_arrays): Don't do anything for uval.
9771         (simd_clone_adjust): Handle
9772         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9773         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
9774         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
9775         * omp-low.h (omp_member_access_dummy_var): New prototype.
9776         * passes.def (pass_simduid_cleanup): Schedule another copy of the
9777         pass after all optimizations.
9778         * tree.c (omp_clause_code_name): Add entries for
9779         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9780         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9781         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
9782         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
9783         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
9784         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
9785         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9786         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
9787         clauses.
9788         * tree-core.h (enum omp_clause_linear_kind): New.
9789         (struct tree_omp_clause): Change type of map_kind
9790         from unsigned char to unsigned int.  Add subcode.if_modifier
9791         and subcode.linear_kind fields.
9792         (enum omp_clause_code): Add
9793         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9794         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9795         (OMP_CLAUSE_REDUCTION): Document
9796         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9797         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
9798         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
9799         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
9800         operand.
9801         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
9802         operand.
9803         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
9804         codes.
9805         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
9806         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
9807         char.
9808         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
9809         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
9810         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
9811         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
9812         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
9813         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
9814         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
9815         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
9816         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
9817         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
9818         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
9819         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
9820         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
9821         * tree-inline.c (remap_gimple_stmt): Handle clauses on
9822         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
9823         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
9824         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
9825         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9826         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9827         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9828         (convert_local_omp_clauses): Likewise.
9829         * tree-pretty-print.c (dump_omp_clause): Handle
9830         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9831         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9832         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
9833         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
9834         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
9835         GOMP_MAP_FORCE_DEALLOC.  Handle
9836         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
9837         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
9838         and clauses on OMP_ORDERED and OMP_CRITICAL.
9839         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
9840         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
9841         (vectorize_loops): Adjust comments.
9842         (pass_simduid_cleanup::execute): Likewise.
9843         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9844         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
9845         * wide-int.h (wi::gcd): New.
9846
9847 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9848
9849         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
9850         (ix86_function_arg_advance): Ditto.
9851         (ix86_function_arg): Ditto.
9852         (ix86_gimplify_va_arg): Ditto.
9853         (ix86_class_max_nregs): Ditto.
9854         (inline_memory_move_cost): Ditto.
9855         (ix86_set_reg_reg_cost): Ditto.
9856         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
9857
9858 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
9859
9860         PR middle-end/67912
9861         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
9862
9863 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9864
9865         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
9866         ROUND_UP macro and UNITS_PER_WORD * 2.
9867         * config/sparc/sparc.c (sparc_compute_frame_size):
9868         Use ROUND_UP and ROUND_DOWN macros where applicable.
9869         (function_arg_record_value, function_arg_record_value_1)
9870         (function_arg_record_value_1): Ditto.
9871         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
9872         alignment to double-word.
9873         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
9874         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
9875         rounded_size.
9876
9877 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
9878
9879         * rtl.h (print_insn): Fix prototype.
9880
9881 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9882
9883         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
9884         -1.  Add assert that returned entry matches phi argument.
9885         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
9886         free_stmt_vec_info_vec ...
9887         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
9888         with -1.
9889
9890 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
9891
9892         PR tree-optimization/67909, 67947
9893         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
9894         really skip the inner loop.
9895
9896 2015-10-13  Jeff Law  <law@redhat.com>
9897
9898         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9899         Allow single block jump threading paths.
9900
9901 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9902
9903         PR tree-optimization/67476
9904         * doc/invoke.texi (@item parloops-schedule): New item.
9905         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
9906         * tree-parloops.c: Include params-enum.h.
9907         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
9908
9909 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9910
9911         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
9912         * params-enum.h: New file.
9913         * opts.c (handle_param): Handle case that param arg is a string.
9914         * params-list.h: Handle DEFPARAMENUM5 in params.def.
9915         * params.c (find_param): New function, factored out of ...
9916         (set_param_value): ... here.
9917         (param_string_value_p): New function.
9918         * params.h (struct param_info): Add value_names field.
9919         (find_param, param_string_value_p): Declare.
9920
9921 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9922
9923         PR tree-optimization/67476
9924         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
9925
9926 2015-10-13  Richard Biener  <rguenther@suse.de>
9927
9928         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
9929         the data dependence vector.
9930         (vect_peeling_hash_insert): Get the peeling hash table as argument.
9931         (vect_peeling_hash_get_lowest_cost): Likewise.
9932         (vect_enhance_data_refs_alignment): Adjust.
9933         (struct _vect_peel_info, struct _vect_peel_extended_info,
9934         struct peel_info_hasher): Move from ...
9935         * tree-vectorizer.h: ... here.
9936         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
9937         (LOOP_VINFO_PEELING_HTAB): Likewise.
9938         (struct _loop_vec_info): Remove min_profitable_iters and
9939         peeling_htab members.
9940         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
9941         here.
9942         (destroy_loop_vec_info): Adjust.
9943         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
9944         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
9945         to estimate alias versioning cost.
9946         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
9947
9948 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
9949
9950         * real.h (real_isinteger): Declare.
9951         * real.c (real_isinteger): New function.
9952         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
9953         if y is an even integer.
9954
9955 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9956
9957         revert:
9958         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9959         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9960         counts when these are more informative.
9961
9962 2015-10-12  Jeff Law  <law@redhat.com>
9963
9964         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
9965         (fsm_find_control_stmt_paths): Change name of first argument to
9966         more accurately relfect what it really is.  Handle simplification
9967         of GIMPLE_COND after finding a thread path for NAME.
9968         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
9969         nontrivial conditions to be handled by FSM threader.
9970         (thread_through_normal_block): Extract the name to looup via
9971         FSM threader from COND_EXPR.
9972
9973         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
9974         restriction that traced SSA_NAME is a user variable.
9975
9976 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9977
9978         PR tree-optimization/67476
9979         * omp-low.c (expand_omp_for_generic): Add missing phis.
9980
9981 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9982
9983         PR tree-optimization/67476
9984         * omp-low.c (expand_omp_for_generic): Handle simple latch.
9985
9986 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
9987
9988         * config/aarch64/aarch64-simd-builtins.def: Update builtins
9989         tables: add tbl3 and tbx4.
9990         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
9991         (aarch64_tbx4v8qi): New.
9992         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
9993         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
9994         Rewrite using builtin functions.
9995         * config/aarch64/iterators.md (UNSPEC_TBX): New.
9996
9997 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9998
9999         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
10000         ROUND_UP macro.
10001         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
10002         Use ROUND_UP and ROUND_DOWN macros where applicable.
10003         (rs6000_darwin64_record_arg_flush): Ditto.
10004         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
10005         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
10006         rounded_size.
10007
10008 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
10009
10010         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
10011         (AARCH64_ROUND_DOWN): Ditto.
10012         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
10013
10014 2015-10-12  Richard Biener  <rguenther@suse.de>
10015
10016         PR ipa/67783
10017         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
10018         code that analyzes IVs on each stmt but in a cheaper way avoiding
10019         quadratic behavior.
10020
10021 2015-10-12  Nick Clifton  <nickc@redhat.com>
10022
10023         * config/msp430/msp430.c (msp430_mcu_names): Rename to
10024         msp430_mcu_data, add fields for ISA and hardware multiply
10025         support.  Import latest data from the devices.csv file.
10026         (msp430_override_option): Use the data from the new array.
10027         (msp430_use_f5_series_hwmult): Likewise.
10028         (use_32bit_hwmult): Likewise.
10029         (msp430_no_hwmult): Likewise.
10030         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
10031         MCU names.
10032         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
10033         not recognised then no hardware multiply support is assumed and
10034         that only the MSP430 ISA is allowed.
10035
10036 2015-10-12  Richard Biener  <rguenther@suse.de>
10037
10038         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
10039         related code ...
10040         (vect_analyze_loop_2): ... here.
10041
10042 2015-10-11  Jason Merrill  <jason@redhat.com>
10043
10044         PR c++/67557
10045         * expr.c (store_field): Call store_constructor directly when
10046         storing a CONSTRUCTOR into a target smaller than its type.
10047         Guard against unsafe bitwise copy.
10048
10049 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
10050
10051         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
10052         counts when these are more informative.
10053
10054 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
10055
10056         * tree-profile.c (tree_profiling): Do not clear
10057         pure/const when not instrumenting.
10058         (pass tree_profile): Add dump of symtab.
10059
10060 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
10061
10062         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
10063         addresses.
10064         (fold_addr_of_array_ref_difference): Likewise.
10065
10066 2015-10-11  Jeff Law  <law@redhat.com>
10067
10068         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
10069         tree-ssa-threadbackward.c.
10070         (fsm_find_control_statement_thread_paths): Likewise.
10071         (thread_through_normal_block): Break out FSM bits and move them
10072         into a new function in tree-ssa-threadbackward.c.  Call new function
10073         instead.
10074         Minimize header file usage.
10075         * tree-ssa-threadbackward.h: New file.
10076         * tree-ssa-threadbackward.c: Likewise.
10077         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
10078
10079 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
10080
10081         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
10082
10083 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
10084
10085         PR rtl-optimization/67864
10086         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
10087         fallthrough edges for conditional jumps.  Don't sort candidate
10088         edges if not optimizing for speed.
10089
10090 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10091
10092         * defaults.h (REVERSE_CONDITION): New default definition.
10093         * jump.c (reversed_comparison_code_parts): Adjust.
10094
10095 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10096
10097         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
10098         check HARD_FRAME_POINTER_IS_ARG_POINTER.
10099
10100 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10101
10102         * defaults.h (FRAME_ADDR_RTX): New default definition.
10103         * builtins.c (expand_builtin_return_addr): Adjust.
10104
10105 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10106
10107         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
10108         * builtins.c (expand_builtin_return_addr): Adjust.
10109
10110 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10111
10112         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
10113         * builtins.c (expand_builtin_return_addr): Adjust.
10114         * doc/tm.texi: Likewise.
10115         * doc/tm.texi.in: Likewise.
10116         * except.c (expand_builtin_unwind_init): Likewise.
10117
10118 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10119
10120         * builtins.c (expand_builtin_return_addr): Adjust.
10121         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
10122
10123 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
10124
10125         * tree.c (type_with_interoperable_signedness): New.
10126         (gimple_canonical_types_compatible_p): Use it.
10127         * tree.h (type_with_interoperable_signedness): Declare
10128
10129 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
10130
10131         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
10132         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
10133         when OEP_ADDRESS_OF is se.
10134
10135 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
10136             Sebastian Pop  <s.pop@samsung.com>
10137
10138         * graphite-dependences.c (scop_get_dependences): Add dump of the
10139         data dependence graph.
10140         * graphite-poly.c (print_isl_union_map): New.
10141         (debug_isl_union_map): New.
10142         * graphite-poly.h (print_isl_union_map): Declare.
10143         (debug_isl_union_map): Declare.
10144
10145 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
10146             Sebastian Pop  <s.pop@samsung.com>
10147
10148         * graphite-poly.c (print_iteration_domain): Remove verbosity.
10149         Remove OpenScop formatting.
10150         (print_iteration_domains): Same.
10151         (debug_iteration_domain): Same.
10152         (debug_iteration_domains): Same.
10153         (print_pdr): Same.
10154         (debug_pdr): Same.
10155         (dump_gbb_cases): Same.
10156         (dump_gbb_conditions): Same.
10157         (print_pdrs): Same.
10158         (debug_pdrs): Same.
10159         (print_pbb_body): Same.
10160         (print_pbb): Same.
10161         (print_scop_params): Same.
10162         (print_scop_context): Same.
10163         (print_scop): Same.
10164         (debug_pbb_domain): Same.
10165         (debug_pbb): Same.
10166         (debug_scop_context): Same.
10167         (debug_scop): Same.
10168         (debug_scop_params): Same.
10169         * graphite-poly.h: Same.
10170         * graphite.c (graphite_transform_loops): Same.
10171
10172 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10173
10174         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
10175         call that isn't needed.
10176
10177 2015-10-09  Jeff Law  <law@redhat.com>
10178
10179         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
10180         rather than moving each name to the freelist individually.
10181
10182 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
10183
10184         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
10185         * frame-header-opt.c: New file.
10186         * config/mips/mips-proto.h (mips_register_frame_header_opt):
10187         Add prototype.
10188         * config/mips/mips.c (mips_compute_frame_info): Check
10189         optimize_call_stack flag.
10190         (mips_option_override): Register new frame_header_opt pass.
10191         (mips_frame_info, mips_int_mask, mips_shadow_set,
10192         machine_function): Move these types to...
10193         * config/mips/mips.h: here.
10194         (machine_function): Add does_not_use_frame_header and
10195         optimize_call_stack fields.
10196         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
10197         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
10198         Document new flags.
10199         * config/mips/mips.opt (mframe-header-opt): Add new option.
10200
10201 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
10202
10203         * config/i386/i386.c
10204         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
10205         ROUND_DOWN where applicable.
10206
10207 2015-10-09  Jeff Law  <law@redhat.com>
10208
10209         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
10210         correct statement.
10211
10212 2015-10-09  Renlin Li  <renlin.li@arm.com>
10213
10214         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
10215         operands[0] and operands[2].
10216         (neon_vtrn<mode>_insn): Likewise.
10217         (neon_vzip<mode>_insn): Likewise.
10218
10219 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10220
10221         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
10222         ((X & C2) << C1): Expand to...
10223         (X {&,^,|} C2 << C1): ...This.
10224         ((X & C2) >> C1): Expand to...
10225         (X {&,^,|} C2 >> C1): ...This.
10226
10227 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
10228
10229         PR target/67895
10230         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
10231         Adjust embedded rounding/SAE specifier position.
10232         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
10233         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
10234         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
10235         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
10236         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
10237         Likewise.
10238         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
10239
10240 2015-10-09  Martin Jambor  <mjambor@suse.cz>
10241
10242         tree-optimization/67794
10243         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
10244         between types of state,ents but accept original definitions as a
10245         parameter.
10246         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
10247         iterate over definitions.
10248
10249 2015-10-09  James Norris  <jnorris@codesourcery.com>
10250
10251         * config/rs6000/rs6000.c (rs6000_offload_options): New.
10252         (TARGET_OFFLOAD_OPTIONS): New.
10253
10254 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
10255
10256         PR middle-end/67891
10257         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
10258
10259         PR middle-end/67766
10260         * function.c (expand_function_end): Move return value
10261         promotion past the handling of PARALLELs and CONCATs.
10262
10263         PR rtl-optimization/67828
10264         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
10265         (tree_may_unswitch_on): Don't unswitch on expressions
10266         involving undefined values.
10267
10268 2015-10-09  Richard Biener  <rguenther@suse.de>
10269
10270         * genmatch.c (print_operand): Fix formatting.
10271         (dt_node::append_simplify): Warn for multiple simplifiers
10272         that match the same pattern.
10273         * match.pd (log (exp @0)): Remove duplicates.
10274
10275 2015-10-09  Richard Biener  <rguenth@suse.de>
10276
10277         PR target/67366
10278         * gimple-fold.c (optabs-query.h): Include
10279         (gimple_fold_builtin_memory_op): Allow unaligned stores
10280         when movmisalign_optabs are available.
10281
10282 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10283
10284         PR target/67366
10285         * config/arm/arm.md (movmisalign<mode>): New.
10286         * config/arm/iterators.md (HSI): New.
10287
10288 2015-10-09  Richard Biener  <rguenther@suse.de>
10289
10290         PR tree-optimization/67891
10291         * gimple-match.h (gimple_simplified_result_is_gimple_val):
10292         New helper.
10293         (gimple_resimplify1): Declare.
10294         (gimple_resimplify2): Likewise.
10295         (gimple_resimplify3): Likewise.
10296         * gimple-match-head.c (gimple_resimplify1): Export.
10297         (gimple_resimplify2): Likewise.
10298         (gimple_resimplify3): Likewise.
10299         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
10300         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
10301         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
10302         to avoid creating stmts without VN info.
10303
10304 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
10305
10306         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
10307         of availability.
10308
10309 2015-10-08  Jeff Law  <law@redhat.com>
10310
10311         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
10312         and release_ssa_name in two places.
10313         (gimple_stringop_fixed_value): Similarly.
10314
10315         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
10316         release_defs.
10317
10318         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
10319         unlink_stmt_vdef and release_ssa_name_fn.
10320
10321         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
10322         release_defs.
10323
10324 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10325
10326         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
10327         SSE register save area to 16 bytes only if the incoming stack
10328         boundary is no less than 16 bytes.
10329
10330 2015-10-08  Jeff Law  <law@redhat.com>
10331
10332         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
10333         release_ssa_name.  Fix typo in comment.
10334
10335 2015-10-08  Nathan Sidwell  <nathan@acm.org>
10336
10337         * config/nvptx/nvptx.h (struct machine_function): Add comment.
10338         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
10339         may return pointer as well as in memory.
10340         (nvptx_output_return): Likewise.
10341
10342 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
10343
10344         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
10345         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
10346         * match.pd: Add rules previously handled by fold_builtin_sqrt
10347         and fold_builtin_cbrt.
10348
10349 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
10350
10351         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
10352         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
10353         * fold-const.h (tree_unary_nonnegative_warnv_p)
10354         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
10355         (tree_expr_nonnegative_warnv_p): Add depth parameters.
10356         * fold-const.c: Include gimple-fold.h and params.h.
10357         (tree_ssa_name_nonnegative_warnv_p): New function.
10358         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
10359         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
10360         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
10361         Add a depth parameter and increment it for recursive calls to
10362         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
10363         to handle SSA names.
10364         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
10365         (gimple_stmt_nonnegative_warnv_p): Declare.
10366         * tree-vrp.c (remove_range_assertions): Remove assert that condition
10367         cannot be proven false.
10368         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
10369         (gimple_stmt_nonnegative_warnv_p): Move to...
10370         * gimple-fold.c: ...here.  Add depth parameters and pass them
10371         down to the tree routines.  Accept statements that aren't
10372         assignments or calls but just return false for them.
10373         (gimple_val_nonnegative_real_p): Delete.
10374         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
10375         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
10376         Check HONOR_NANs first.
10377
10378 2015-10-08  Martin Jambor  <mjambor@suse.cz>
10379
10380         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
10381         unnecessary MIN.
10382
10383 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
10384
10385         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
10386         in the tail of outer-loop.
10387
10388 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
10389
10390         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
10391         return UI_NONE.
10392
10393 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
10394
10395         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
10396         "cfghooks.h", add prototypes for introduced new functions.
10397         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
10398         checks on ability of loop unswitching to tree_unswitch_single_loop;
10399         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
10400         on innermost loop check.
10401         (tree_unswitch_single_loop): Add all required checks on ability of
10402         loop unswitching under zero recursive level guard.
10403         (tree_unswitch_outer_loop): New function.
10404         (find_loop_guard): Likewise.
10405         (empty_bb_without_guard_p): Likewise.
10406         (used_outside_loop_p): Likewise.
10407         (get_vop_from_header): Likewise.
10408         (hoist_guard): Likewise.
10409         (check_exit_phi): Likewise.
10410
10411 2015-10-08  Marek Polacek  <polacek@redhat.com>
10412
10413         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
10414         ops element.
10415
10416 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10417
10418         PR c/65345
10419         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
10420         create_tmp_var_raw instead of create_tmp_var.
10421
10422 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
10423
10424         * expr.c (store_expr_with_bounds): Handle aggregate moves from
10425         BLKmode.
10426         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
10427         to define gimple type system; compare aggregates only by size.
10428
10429 2015-10-07  Jeff Law  <law@redhat.com>
10430
10431         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
10432         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
10433         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
10434         unnecessarily.
10435
10436 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10437             Sebastian Pop  <s.pop@samsung.com>
10438
10439         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
10440         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
10441         (generate_isl_schedule): Same.
10442         * graphite-optimize-isl.c (scop_get_domains): Same.
10443         (apply_schedule_map_to_scop): Same.
10444         * graphite-poly.c (print_iteration_domains): Same.
10445         (remove_gbbs_in_scop): Same.
10446         (new_scop): Same.
10447         (free_scop): Same.
10448         (print_scop): Same.
10449         * graphite-poly.h (struct scop): Rename bbs to pbbs.
10450         (SCOP_BBS): Remove.
10451         * graphite-scop-detection.c (compare_bb_depths): Remove.
10452         (graphite_sort_dominated_info): Remove.
10453         (try_generate_gimple_bb): Move out of scop_detection.
10454         (all_non_dominated_preds_marked_p): Remove.
10455         (build_scop_bbs_1): Remove.
10456         (build_scop_bbs): Remove.
10457         (nb_pbbs_in_loops): Do not use SCOP_BBS.
10458         (find_scop_parameters): Same.
10459         (sese_dom_walker): Rename gather_bbs.
10460         (before_dom_children): Call try_generate_gimple_bb and collect gbb
10461         and pbb.
10462         (build_scops): Call gather_bbs.
10463         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
10464         (add_conditions_to_constraints): Same.
10465         (build_scop_iteration_domain): Same.
10466         (build_scop_drs): Same.
10467         (new_pbb_from_pbb): Same.
10468         * sese.c (new_sese_info): Create bbs.
10469         * sese.h (struct sese_info_t): Add bbs.
10470
10471 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
10472
10473         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
10474         encoding in 64-bit mode.
10475
10476 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
10477
10478         PR target/66697
10479         * config/i386/i386.c (ix86_option_override_internal): Always use
10480         8-byte minimum stack boundary in 64-bit mode.
10481         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
10482         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
10483         Add a REG_CFA_EXPRESSION note if needed.
10484         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
10485         (ix86_handle_force_align_arg_pointer_attribute): New.
10486         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
10487         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
10488         with ix86_handle_force_align_arg_pointer_attribute.
10489         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
10490
10491 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10492             Sebastian Pop  <s.pop@samsung.com>
10493
10494         * graphite-scop-detection.c (parameter_index_in_region): Remove
10495         use of SESE_ADD_PARAMS.
10496         (find_scop_parameters): Same.
10497         * sese.c (new_sese_info): Same.
10498         * sese.h (struct sese_info_t): Remove add_params.
10499         (SESE_ADD_PARAMS): Remove.
10500
10501 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10502             Sebastian Pop  <s.pop@samsung.com>
10503
10504         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
10505         an sese_info_p.
10506         (copy_def): Same.
10507         (copy_internal_parameters): Same.
10508         (translate_isl_ast_to_gimple): Use an sese_l.
10509         (build_iv_mapping): Same.
10510         * graphite-poly.c (new_sese): Rename new_sese_info.
10511         (free_sese): Rename free_sese_info.
10512         * graphite-poly.h (struct scop): Use an sese_info_p.
10513         (scop_set_region): Same.
10514         * graphite-scop-detection.c (struct sese_l): Moved...
10515         (get_entry_bb): Moved...
10516         (get_exit_bb): Moved...
10517         (parameter_index_in_region_1): Use an sese_info_p.
10518         (parameter_index_in_region): Same.
10519         (scan_tree_for_params): Same.
10520         (find_params_in_bb): Same.
10521         (sese_dom_walker): Use an sese_l.
10522         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
10523         (reduction_phi_p): Same.
10524         (parameter_index_in_region_1): Use an sese_info_p.
10525         (propagate_expr_outside_region): Use an sese_l.
10526         * graphite.c: Replace uses of SCOP_REGION.
10527         * sese.c (sese_record_loop): Use an sese_info_p.
10528         (build_sese_loop_nests): Same.
10529         (sese_build_liveouts_use): Same.
10530         (sese_build_liveouts_bb): Same.
10531         (sese_build_liveouts_bb): Same.
10532         (sese_bad_liveouts_use): Same.
10533         (sese_reset_debug_liveouts_bb): Same.
10534         (sese_build_liveouts): Same.
10535         (new_sese): Renamed new_sese_info.
10536         (free_sese): Renamed free_sese_info.
10537         (set_rename): Use an sese_info_p.
10538         (graphite_copy_stmts_from_block): Same.
10539         (copy_bb_and_scalar_dependences): Same.
10540         (outermost_loop_in_sese_1): Use an sese_l.
10541         (outermost_loop_in_sese): Same.
10542         (if_region_set_false_region): Use an sese_info_p.
10543         (move_sese_in_condition): Same.
10544         (scalar_evolution_in_region): Use an sese_l.
10545         * sese.h (struct sese_l): ... here.
10546         (SESE_ENTRY): Remove.
10547         (SESE_ENTRY_BB): Remove.
10548         (SESE_EXIT): Remove.
10549         (SESE_EXIT_BB): Remove.
10550         (sese_contains_loop): Use an sese_info_p.
10551         (sese_nb_params): Same.
10552         (bb_in_sese_p): Use an sese_l.
10553         (stmt_in_sese_p): Same.
10554         (defined_in_sese_p): Same.
10555         (loop_in_sese_p): Same.
10556         (sese_loop_depth): Same.
10557         (struct ifsese_s): Use an sese_info_p.
10558         (gbb_loop_at_index): Use an sese_l.
10559         (nb_common_loops): Same.
10560         (scev_analyzable_p): Same.
10561
10562 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10563
10564         * config/i386/i386.c (ix86_conditional_register_usage): Use
10565         CALL_USED_REGISTERS_MASK.
10566         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
10567
10568 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10569
10570         PR bootstrap/67385
10571         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
10572         * configure: Regenerated.
10573
10574 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10575
10576         PR target/67850
10577         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
10578         (ix86_set_current_function): This.
10579         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
10580
10581 2015-10-07  Richard Biener  <rguenther@suse.de>
10582
10583         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
10584         (vinfo_for_stmt): Adjust.
10585         (set_vinfo_for_stmt): Likewise.
10586         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
10587         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
10588         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
10589         of inner loop.
10590         (vect_analyze_loop_1): Remove.
10591         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
10592         inner loop when vectorizing an outer loop by splitting out from ...
10593         (vect_analyze_loop_form): ... here.
10594
10595 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10596
10597         PR c/65345
10598         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
10599         Use create_tmp_var_raw instead of create_tmp_var.
10600
10601 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
10602
10603         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
10604         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
10605         * real.c (CACHED_FRACTION): New helper macro.
10606         (dconst_third_ptr): Use it.
10607         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
10608         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
10609         dconst_sixth.
10610         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
10611
10612 2015-10-06  Jeff Law  <law@redhat.com>
10613
10614         PR tree-optimization/67816
10615         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
10616         from remove_jump_threads_starting_at.  Accept an edge rather than
10617         a basic block.
10618         * tree-ssa-threadupdate.c (removed_edges): New hash table.
10619         (remove_jump_threads_including): Note edges that get removed from
10620         the CFG for later pruning of jump threading paths including them.
10621         (thread_through_all_blocks): Remove paths which include edges that
10622         have been removed.
10623         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
10624         on each outgoing edges when optimizing away a control statement.
10625
10626 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10627
10628         * reorg.c (emit_delay_sequence): Store list of delay slot insns
10629         in a vector instead of rtx_insn_list.
10630         (add_to_delay_list): Likewise.
10631         (delete_from_delay_slot): Likewise.
10632         (optimize_skip): Likewise.
10633         (redirect_with_delay_list_safe_p): Likewise.
10634         (check_annul_list_true_false): Likewise.
10635         (steal_delay_list_from_target): Likewise.
10636         (steal_delay_list_from_fallthrough): Likewise.
10637         (redundant_insn): Likewise.
10638         (fill_simple_delay_slots): Likewise.
10639         (fill_slots_from_thread): Likewise.
10640         (fill_eager_delay_slots): Likewise.
10641         (relax_delay_slots): Likewise.
10642
10643 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
10644
10645         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
10646         For -mgpopt=local, also exclude unintialized common symbols.
10647         * doc/invoke.texi (Nios II Options): Document the change.
10648
10649 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10650
10651         * config/aarch64/iterators.md (vwcore): Add missing cases for
10652          V4HF/V8HF modes.
10653
10654 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10655             Sebastian Pop  <s.pop@samsung.com>
10656
10657         * graphite-poly.c (new_scop): Initialize drs.
10658         * graphite-poly.h (struct dr_info): New.
10659         (struct scop): Add drs.
10660         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
10661         (pdr_add_memory_accesses): Same.
10662         (build_poly_dr): Same.
10663         (build_alias_set): Same.
10664         (build_scop_drs): Same.
10665         (build_pbb_drs): Remove.
10666         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
10667         * tree-data-ref.h (data_reference): Remove alias_set.
10668
10669 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10670             Sebastian Pop  <s.pop@samsung.com>
10671
10672         * graphite-poly.c (free_data_refs_aux): Remove.
10673         (free_gimple_poly_bb): Do not call free_data_refs_aux.
10674         * graphite-poly.h (struct base_alias_pair): Remove.
10675         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
10676         base_alias_pair and dr->aux.
10677         (build_alias_set): Same.
10678         * tree-data-ref.c (create_data_ref): Initialize alias_set.
10679         * tree-data-ref.h (data_reference): Add alias_set.
10680
10681 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10682             Sebastian Pop  <s.pop@samsung.com>
10683
10684         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
10685         Do not set PDR_BASE_OBJECT_SET.
10686         * graphite-poly.h (poly_dr): Same.
10687         (PDR_BASE_OBJECT_SET): Remove.
10688         (new_poly_dr): Update decl.
10689         * graphite-sese-to-poly.c (build_poly_dr): Update call to
10690         new_poly_dr.
10691         (write_alias_graph_to_ascii_dimacs): Remove.
10692         (write_alias_graph_to_ascii_dot): Remove.
10693         (write_alias_graph_to_ascii_ecc): Remove.
10694         (dr_same_base_object_p): Remove.
10695         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
10696         code.
10697         (build_base_obj_set_for_drs): Remove.
10698         (dump_alias_graphs): Remove.
10699         (build_scop_drs): Remove dead code.
10700
10701 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10702             Peter Bergner  <bergner@vnet.ibm.com>
10703
10704         PR target/67808
10705         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
10706         allow registers, but provide insns for the combiner to create for
10707         loads from memory. Separate VSX code from non-VSX code. For
10708         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
10709         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
10710         so that registers come before memory operations. Drop support from
10711         converting DFmode to TFmode, if the DFmode value is in a GPR
10712         register.
10713         (extenddftf2_fprs): Likewise.
10714         (extenddftf2_internal): Likewise.
10715         (extenddftf2_vsx): Likewise.
10716         (extendsftf2): In the expander, only allow registers, but provide
10717         insns for the combiner to create for stores and loads.
10718
10719 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10720
10721         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
10722         from the decl parameter.
10723
10724 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
10725
10726         PR 67861
10727         * gimple-fold.c (gimple_fold_builtin): Add break after
10728         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
10729
10730 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
10731
10732         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
10733         to scop->isl_context.
10734
10735 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10736
10737         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
10738         (output_probe_stack_range): Rotate the loop and simplify.
10739         (thumb1_expand_prologue): Tweak sorry message.
10740         * config/arm/arm.md (probe_stack): Use bare string.
10741
10742 2015-10-06  Nick Clifton  <nickc@redhat.com>
10743
10744         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
10745
10746 2015-10-06  Nick Clifton  <nickc@redhat.com>
10747
10748         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
10749         (ATTR_PERSIST): New constant.
10750         (msp430_data_attr): New function - verifies an attribute that only
10751         applies to variables.
10752         (msp430_attributes): Add noinit and persistent attributes.
10753         (noinit_section): New variable.
10754         (presis_section): New variable.
10755         (TARGET_ASM_INIT_SECTIONS): Define.
10756         (msp430_init_sections): New function - initialises the noinit and
10757         persist section variables.
10758         (msp430_select_section): Add support for noinit and persist
10759         attributes.
10760         (msp430_section_type_flags): Likewise.
10761         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
10762         and persistent attributes.
10763
10764 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10765             Sebastian Pop  <s.pop@samsung.com>
10766
10767         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
10768         (no_violations): Remove.
10769         (subtract_commutative_associative_deps): Remove.
10770         (compute_deps): Do not call subtract_commutative_associative_deps.
10771         (transform_is_safe): Remove.
10772         (graphite_legal_transform): Remove.
10773         * graphite-poly.h (graphite_legal_transform): Remove.
10774
10775 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
10776
10777         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
10778         which are in this region are passed so gcc_assert and remove redundant
10779         computation.
10780         * sese.c (sese_build_liveouts): Pass only those bbs which are not
10781         in region.
10782         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
10783         gcc_assert on that and remove unnecessary computation.
10784         (sese_build_liveouts_use): Same.
10785
10786 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10787
10788         * graphite-dependences.c (scop_get_reads): Renamed scop->context
10789         to scop->param_context.
10790         (scop_get_must_writes): Same.
10791         (scop_get_may_writes): Same.
10792         (scop_get_original_schedule): Same.
10793         (scop_get_transformed_schedule): Same.
10794         (subtract_commutative_associative_deps): Same.
10795         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
10796         (generate_isl_context): Same.
10797         (generate_isl_schedule): Same.
10798         (scop_to_isl_ast): Same.
10799         (graphite_regenerate_ast_isl): Same.
10800         * graphite-optimize-isl.c (scop_get_domains): Same.
10801         (optimize_isl): Renamed scop->context to scop->param_context.
10802         * graphite-poly.c (new_poly_bb): Change the type of argument to
10803         gimple_poly_bb_p.
10804         (new_scop): Renamed scop->context to scop->param_context.
10805         (free_scop): Same.
10806         (print_scop_context): Same.
10807         * graphite-poly.h (new_poly_dr): Change the type of argument from
10808         void* to data_reference_p.
10809         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
10810         (new_poly_bb): Change the type of argument from void* to
10811         gimple_poly_bb_p.
10812         (pbb_set_black_box): Same.
10813         (struct scop): Rename context to param_context, ctx to isl_context.
10814         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
10815         Move declarations closer to assignment.
10816         (find_params_in_bb): Same.
10817         (find_scop_parameters): Same.
10818         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
10819         Global to be used for statement IDs.
10820         (isl_id_for_pbb): Use ssa_name_version_typesize.
10821         (simple_copy_phi_p): Move declarations closer to assignment.
10822         (build_pbb_scattering_polyhedrons): Same.
10823         (build_scop_scattering): Same.
10824         (isl_id_for_ssa_name): Same.
10825         (extract_affine_name): Same.
10826         (extract_affine_int): Same.
10827         (extract_affine): Same.
10828         (set_scop_parameter_dim): Use renamed member.
10829         (build_loop_iteration_domains): Same.
10830         (add_param_constraints): Same.
10831         (build_scop_iteration_domain): Same.
10832         (pdr_add_data_dimensions): Same.
10833         (build_poly_dr): Same.
10834         (build_scop_drs): Move declarations closer to assignment.
10835         (analyze_drs_in_stmts): Same.
10836         (insert_out_of_ssa_copy): Same.
10837         (insert_out_of_ssa_copy_on_edge): Same.
10838         (propagate_expr_outside_region): Same.
10839         (rewrite_phi_out_of_ssa): Same.
10840         (rewrite_degenerate_phi): Same.
10841         (rewrite_reductions_out_of_ssa): Same.
10842         (rewrite_cross_bb_scalar_dependence): Same.
10843         (handle_scalar_deps_crossing_scop_limits): Same.
10844         (rewrite_cross_bb_scalar_deps): Same.
10845         * graphite.c (graphite_transform_loops): Use renamed member.
10846
10847 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
10848
10849         PR c/65345
10850         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
10851         create_tmp_var_raw instead of create_tmp_var.
10852
10853 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10854
10855         PR c/65345
10856         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
10857         Use create_tmp_var_raw instead of create_tmp_var.
10858
10859 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
10860
10861         PR target/67849
10862         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
10863         split for upper-bank registers when target does not support
10864         AVX512VL.
10865         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
10866         split when target does not support AVX512VL.
10867
10868 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
10869
10870         PR c/65345
10871         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
10872         Adjust to use create_tmp_var_raw instead of create_tmp_var.
10873
10874 2015-10-06  Nick Clifton  <nickc@redhat.com>
10875
10876         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
10877         multiplication.
10878
10879 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10880
10881         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
10882         (case ${target}): Add znver1.
10883         * config/i386/cpuid.h(bit_CLZERO):  Define.
10884         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
10885         -march=native recognize znver1 processors.
10886         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10887         znver1, clzero def_and_undef.
10888         * config/i386/i386.c (struct processor_costs znver1_cost): New.
10889         (m_znver1): New definition.
10890         (m_AMD_MULTIPLE): Includes m_znver1.
10891         (processor_target_table): Add znver1 entry.
10892         (ix86_target_string) : Add clzero entry.
10893         (static const char *const cpu_names): Add znver1 entry.
10894         (ix86_option_override_internal): Add znver1 instruction sets.
10895         (PTA_CLZERO) :  New definition.
10896         (ix86_option_override_internal): Handle new clzerooption.
10897         (ix86_issue_rate): Add znver1.
10898         (ix86_adjust_cost): Add znver1.
10899         (ia32_multipass_dfa_lookahead): Add znver1.
10900         (has_dispatch): Add znver1.
10901         * config/i386/i386.h (TARGET_znver1): New definition.
10902         (TARGET_CLZERO): Define.
10903         (TARGET_CLZERO_P): Define.
10904         (struct ix86_size_cost): Add TARGET_ZNVER1.
10905         (enum processor_type): Add PROCESSOR_znver1.
10906         * config/i386/i386.md (define_attr "cpu"): Add znver1.
10907         (set_attr znver1_decode): New definitions for znver1.
10908         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
10909         (mclzero): New.
10910         * config/i386/mmx.md (set_attr znver1_decode): New definitions
10911         for znver1.
10912         * config/i386/sse.md (set_attr znver1_decode): Likewise.
10913         * config/i386/x86-tune.def:  Add znver1 tunings.
10914         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
10915         * doc/invoke.texi: Add details about znver1
10916
10917 2015-10-06  Richard Biener  <rguenther@suse.de>
10918
10919         PR tree-optimization/67859
10920         * tree-ssa-pre.c (create_expression_by_pieces): Properly
10921         discard not inserted stmts.
10922
10923 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
10924
10925         * doc/extend.texi (Template Instantiation): Reorder options and
10926         de-emphasize -frepo.
10927         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
10928         example instead of -frepo.
10929
10930 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10931
10932         PR c/65345
10933         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
10934         use create_tmp_var_raw rather than create_tmp_var.
10935
10936 2015-10-06  Richard Biener  <rguenther@suse.de>
10937
10938         * tree-vectorizer.h (vec_info): New base class for...
10939         (_loop_vec_info): ... this and ...
10940         (_bb_vec_info): ... this.
10941         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
10942         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
10943         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
10944         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
10945         vect_destroy_datarefs): Adjust interface to take a vec_info *
10946         rather than both a loop_vec_info and a bb_vec_info argument.
10947         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
10948         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
10949         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
10950         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
10951         accordingly.
10952         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
10953         (destroy_loop_vec_info, vect_analyze_loop_2,
10954         vect_is_simple_reduction_1, get_initial_def_for_induction,
10955         vect_create_epilog_for_reduction, vectorizable_reduction,
10956         vectorizable_live_operation, vect_transform_loop): Adjust.
10957         * tree-vect-patterns.c (type_conversion_p,
10958         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
10959         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
10960         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
10961         check_bool_pattern, vect_recog_bool_pattern,
10962         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
10963         * tree-vect-slp.c (vect_get_and_check_slp_defs,
10964         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
10965         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
10966         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
10967         (new_bb_vec_info): Initialize base classs.
10968         * tree-vect-stmts.c (record_stmt_cost, process_use,
10969         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
10970         vectorizable_mask_load_store, vectorizable_call,
10971         vectorizable_simd_clone_call, vectorizable_conversion,
10972         vectorizable_assignment, vectorizable_shift,
10973         vectorizable_operation, vectorizable_store,
10974         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
10975         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
10976         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
10977
10978 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10979
10980         PR c/65345
10981         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
10982         create_tmp_var_raw rather than create_tmp_var.
10983
10984 2015-10-05  Marek Polacek  <polacek@redhat.com>
10985
10986         * tree-ssa-loop-im.c
10987         (move_computations_dom_walker::before_dom_children): Don't set
10988         SSA_NAME_ANTI_RANGE_P.
10989         * tree-ssa-phiopt.c (value_replacement): Likewise.
10990
10991 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10992             Sebastian Pop  <s.pop@samsung.com>
10993
10994         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
10995
10996 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10997             Sebastian Pop  <s.pop@samsung.com>
10998
10999         * graphite-poly.c (new_gimple_poly_bb): ... here.
11000         (free_data_refs_aux): ... here.
11001         (free_gimple_poly_bb): ... here.
11002         (remove_gbbs_in_scop): ... here.
11003         (new_scop): Call new_sese.
11004         (free_scop): Call remove_gbbs_in_scop and free_sese.
11005         * graphite-poly.h (base_alias_pair): ... here.
11006         (new_gimple_poly_bb): Declare.
11007         (free_gimple_poly_bb): Declare.
11008         * graphite-scop-detection.c (parameter_index_in_region_1):
11009         (parameter_index_in_region): ... here.
11010         (scan_tree_for_params): ... here.
11011         (find_params_in_bb): ... here.
11012         (find_scop_parameters): ... here.
11013         (build_scops): Call find_scop_parameters.
11014         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
11015         (free_scops): Move...
11016         (single_pred_cond_non_loop_exit): Move...
11017         (sese_dom_walker::before_dom_children): Move...
11018         (sese_dom_walker::after_dom_children): Move...
11019         (build_poly_scop): Move...
11020         * graphite-sese-to-poly.h (base_alias_pair): Move...
11021         * graphite.c (free_scops): ... here.
11022
11023 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
11024             Sebastian Pop  <s.pop@samsung.com>
11025
11026         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
11027         (trivially_empty_bb_p): Move...
11028         (same_close_phi_node): Move...
11029         (new_gimple_poly_bb): Move...
11030         (compare_bb_depths): Move...
11031         (graphite_sort_dominated_info): Move...
11032         (remove_duplicate_close_phi): Move...
11033         (make_close_phi_nodes_unique): Move...
11034         (canonicalize_loop_closed_ssa): Move...
11035         (canonicalize_loop_closed_ssa_form): Move...
11036         (loop_ivs_can_be_represented): Move...
11037         (single_pred_cond_non_loop_exit): Move...
11038         (graphite_can_represent_init): Move...
11039         (graphite_can_represent_scev): Move...
11040         (stmt_has_simple_data_refs_p): Move...
11041         (stmt_has_side_effects):  Move...
11042         (graphite_can_represent_stmt): Move...
11043         (scop_detection): ... here.
11044         (sese_dom_walker): ... and here.
11045         (build_scops): Call all moved functions.
11046         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
11047         (all_non_dominated_preds_marked_p): Move...
11048         (build_scop_bbs_1): Move...
11049         (build_scop_bbs): Move...
11050         (set_scop_parameter_dim): Move...
11051         (nb_pbbs_in_loops): Move...
11052         (build_poly_scop): Do not call all the moved functions.
11053
11054 2015-10-05  Martin Jambor  <mjambor@suse.cz>
11055             Jan Hubicka  <hubicka@ucw.cz>
11056
11057         * ipa-cp.c (ipcp_alignment_lattice): New type.
11058         (ipcp_param_lattices): Use the above to represent alignment.
11059         (ipcp_alignment_lattice::print): New function.
11060         (print_all_lattices): Use it to print alignment information.
11061         (ipcp_alignment_lattice::top_p): New function.
11062         (ipcp_alignment_lattice::bottom_p): Likewise.
11063         (ipcp_alignment_lattice::set_to_bottom): Likewise.
11064         (ipcp_alignment_lattice::meet_with_1): Likewise.
11065         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
11066         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
11067         (initialize_node_lattices): Likewise.
11068         (propagate_alignment_accross_jump_function): Work with the new class
11069         for alignment lattices.
11070         (propagate_constants_accross_call): Pass only the alignment lattice to
11071         propagate_alignment_accross_jump_function.
11072         (ipcp_store_alignment_results): Work with the new class for alignment
11073         lattices.
11074
11075 2015-10-05  Marek Polacek  <polacek@redhat.com>
11076
11077         PR tree-optimization/67821
11078         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
11079
11080 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
11081
11082         PR other/65021
11083         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
11084         function to...
11085         (mkoffload_cleanup): ... this.  Adjust all users.
11086         (maybe_unlink): Look at save_temps and verbose flags instead of
11087         debug flag.
11088         (main): Parse "-save-temps" flag.
11089         (generate_target_descr_file, generate_target_offloadend_file)
11090         (generate_host_descr_file, prepare_target_image): Pass it on.
11091         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
11092         (mkoffload_cleanup): New function.
11093         (maybe_unlink): Look at save_temps and verbose flags instead of
11094         debug flag.
11095         (main): Instead of calling utils_cleanup, register atexit handler
11096         for mkoffload_cleanup.
11097         (main): Parse "-save-temps" flag.
11098         (compile_native, main): Pass it on.
11099         * lto-wrapper.c (compile_offload_image): Likewise.
11100
11101 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11102
11103         * gimple.h (gimple_op_ptr): Require a non const gimple *.
11104         (gimple_assign_lhs_ptr): Likewise.
11105         (gimple_assign_rhs1_ptr): Likewise.
11106         (gimple_assign_rhs2_ptr): Likewise.
11107         (gimple_assign_rhs3_ptr): Likewise.
11108         (gimple_call_lhs_ptr): Likewise.
11109         (gimple_call_fn_ptr): Likewise.
11110         (gimple_call_chain_ptr): Likewise.
11111                 (gimple_call_arg_ptr): Likewise.
11112                 (gimple_cond_lhs_ptr): Likewise.
11113         (gimple_cond_rhs_ptr): Likewise.
11114         (gimple_switch_index_ptr): Likewise.
11115         (gimple_return_retval_ptr): Likewise.
11116
11117 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11118
11119         * gimple.h (gimple_asm_input_op_ptr): Remove.
11120         (gimple_asm_output_op_ptr): Likewise.
11121
11122 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11123
11124         * gimple.h (gimple_location_ptr): Remove.
11125         * tree-vrp.c (check_all_array_refs): Adjust.
11126
11127 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11128
11129         * tree-ssa-operands.c (build_uses): store tree * instead of
11130         tree.
11131         (finalize_ssa_uses): Adjust.
11132         (append_use): Likewise.
11133         (verify_ssa_operands): Likewise.
11134
11135 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11136
11137         * real.h (build_real_truncate): Declare.
11138         * tree.c (build_real_truncate): New function.
11139         (strip_float_extensions): Use it.
11140         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
11141         (fold_builtin_hypot, fold_builtin_pow): Likewise.
11142         * match.pd: Likewise.
11143
11144 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
11145            Jiong Wang  <jiong.wang@arm.com>
11146
11147         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
11148
11149 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11150
11151         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
11152         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
11153         (aarch64_print_operand, aarch64_float_const_representable_p)
11154         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
11155         instead of REAL_VALUE_FROM_CONST_DOUBLE.
11156         * config/arc/arc.c (arc_print_operand): Likewise.
11157         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
11158         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
11159         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
11160         Likewise.
11161         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
11162         (consttable_16): Likewise.
11163         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
11164         * config/avr/avr.c (avr_print_operand): Likewise.
11165         * config/bfin/bfin.md: Likewise (in a define_split).
11166         * config/c6x/c6x.md: Likewise (in a define_split).
11167         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
11168         (cr16_print_operand): Likewise.
11169         * config/cris/cris.c (cris_print_operand): Likewise.
11170         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
11171         * config/fr30/fr30.c (fr30_print_operand): Likewise.
11172         (fr30_const_double_is_zero): Likewise.
11173         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
11174         * config/frv/frv.md: Likewise (in a define_split).
11175         * config/frv/predicates.md (int_2word_operand): Likewise.
11176         * config/h8300/h8300.c (h8300_print_operand): Likewise.
11177         * config/i386/i386.c (standard_80387_constant_p): Likewise.
11178         (ix86_print_operand, ix86_split_to_parts): Likewise.
11179         * config/i386/i386.md: Likewise (in a define_split).
11180         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
11181         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
11182         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
11183         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
11184         (print_operand): Likewise.
11185         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
11186         * config/mep/mep.md: Likewise (in define_split).
11187         * config/microblaze/microblaze.c (microblaze_const_double_ok)
11188         (print_operand): Likewise.
11189         * config/mips/mips.md (consttable_float): Likewise.
11190         * config/mmix/mmix.c (mmix_intval): Likewise.
11191         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
11192         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
11193         * config/pa/pa.c (pa_singlemove_string): Likewise.
11194         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
11195         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
11196         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
11197         (output_toc): Likewise.
11198         * config/rs6000/rs6000.md: Likewise (in define_splits).
11199         * config/rx/rx.c (rx_print_operand): Likewise.
11200         * config/s390/s390.c (s390_output_pool_entry): Likewise.
11201         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
11202         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
11203         (and also in define_splits).
11204         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
11205         (fp_high_losum_p): Likewise.
11206         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
11207         (*movsf_high): Likewise.
11208         * config/spu/spu.c (const_double_to_hwint): Likewise.
11209         * config/v850/v850.c (const_double_split): Likewise.
11210         * config/vax/vax.c (vax_float_literal): Likewise.
11211         * config/visium/visium.c (visium_expand_copysign): Likewise.
11212         * config/visium/visium.md: Likewise (in define_split).
11213         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
11214         * config/xtensa/xtensa.c (print_operand): Likewise.
11215         (xtensa_output_literal): Likewise.
11216         * cprop.c (implicit_set_cond_p): Likewise.
11217         * dwarf2out.c (insert_float): Likewise.
11218         * expmed.c (expand_mult, make_tree): Likewise.
11219         * expr.c (compress_float_constant): Likewise.
11220         * rtlanal.c (split_double): Likewise.
11221         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
11222         (simplify_const_unary_operation, simplify_binary_operation_1)
11223         (simplify_const_binary_operation): Likewise.
11224         (simplify_const_relational_operation): Likewise.
11225         * varasm.c (output_constant_pool_2): Likewise.
11226
11227 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11228
11229         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
11230         instead of CONST_DOUBLE_FROM_REAL_VALUE.
11231         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
11232         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
11233         instead of CONST_DOUBLE_FROM_REAL_VALUE.
11234         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
11235         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
11236         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
11237         (ix86_emit_swsqrtsf): Likewise.
11238         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
11239         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
11240         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
11241         * config/pa/pa.c (pa_expand_builtin): Likewise.
11242         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
11243         (rs6000_scale_v2df): Likewise.
11244         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
11245         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
11246         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
11247         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
11248         (vec_ctul): Likewise.
11249         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
11250         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
11251         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
11252         * cse.c (fold_rtx): Likewise.
11253         * emit-rtl.c (immed_double_const): Likewise (in comments).
11254         (init_emit_once): Likewise.
11255         * expr.c (compress_float_constant, expand_expr_real_1)
11256         (const_vector_from_tree): Likewise.
11257         * optabs.c (expand_float, expand_fix): Likewise.
11258         * reg-stack.c (reg_to_stack): Likewise.
11259         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
11260         (simplify_const_unary_operation, simplify_binary_operation_1)
11261         (simplify_const_binary_operation, simplify_relational_operation)
11262         (simplify_immed_subreg): Likewise.
11263
11264 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11265
11266         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
11267         * doc/tm.texi: Regenerate.
11268         * real.h (REAL_ARITHMETIC): Delete.
11269         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
11270         (ix86_expand_round_sse4): Use real_arithmetic instead of
11271         REAL_ARITHMETIC.
11272         * config/i386/sse.md (round<mode>2): Likewise.
11273         * rtl.h (rtx_to_tree_code): Likewise (in comment).
11274         * explow.c (rtx_to_tree_code): Likewise (in comment).
11275         * match.pd: Likewise.
11276         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
11277         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
11278         (expand_pow_as_sqrts): Likewise.
11279         * tree-pretty-print.c (dump_generic_node): Remove code that
11280         was conditional on REAL_ARITHMETIC being undefined.
11281
11282 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11283
11284         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
11285         * doc/tm.texi: Regenerate.
11286         * real.h (real_less): Declare.
11287         (REAL_VALUES_LESS): Delete.
11288         * real.c (real_less): New function.
11289         (real_compare): Use it.
11290         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
11291         of REAL_VALUES_LESS.
11292         * config/microblaze/microblaze.c (microblaze_const_double_ok):
11293         Likewise.
11294         * fold-const.c (fold_convert_const_int_from_real): Likewise.
11295         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
11296         (simplify_const_relational_operation): Likewise.
11297         * tree-call-cdce.c (check_pow): Likewise.
11298         (gen_conditions_for_pow_cst_base): Likewise.
11299
11300 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11301
11302         * real.h (REAL_VALUES_IDENTICAL): Delete.
11303         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
11304         instead of REAL_VALUES_IDENTICAL.
11305         * fold-const.c (operand_equal_p): Likewise.
11306         * ipa-icf.c (sem_variable::equals): Likewise.
11307         * tree-complex.c (some_nonzerop): Likewise.
11308         (expand_complex_multiplication): Likewise.
11309         * tree.c (simple_cst_equal): Likewise.
11310         * varasm.c (compare_constant): Likewise.
11311
11312 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
11313
11314         * real.h (real_equal): Declare.
11315         (REAL_VALUES_EQUAL): Delete.
11316         * real.c (real_equal): New function.
11317         (real_compare): Use it.
11318         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
11319         * doc/tm.texi: Regenerate.
11320         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
11321         real_equal instead of REAL_VALUES_EQUAL.
11322         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
11323         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
11324         (fp_const_from_val): Likewise.
11325         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
11326         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
11327         (floating_exact_log2): Likewise.
11328         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
11329         * config/vax/vax.c (vax_float_literal): Likewise.
11330         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
11331         * cprop.c (implicit_set_cond_p): Likewise.
11332         * expmed.c (expand_mult): Likewise.
11333         * fold-const.c (const_binop): Likewise.
11334         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
11335         (simplify_const_binary_operation): Likewise.
11336         (simplify_const_relational_operation): Likewise.
11337         * tree-call-cdce.c (check_pow): Likewise.
11338         (gen_conditions_for_pow_cst_base): Likewise.
11339         * tree-inline.c (estimate_num_insns): Likewise.
11340         * tree-ssa-dom.c (record_equality): Likewise.
11341         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
11342         (gimple_expand_builtin_pow): Likewise.
11343         (pass_optimize_widening_mul::execute): Likewise.
11344         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
11345         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
11346         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
11347
11348 2015-10-05  Richard Biener  <rguenther@suse.de>
11349
11350         PR ipa/67783
11351         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
11352         consider loop header PHI defs as IVs.
11353
11354 2015-10-05  Richard Biener  <rguenther@suse.de>
11355
11356         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
11357         call handling ...
11358         (create_expression_by_pieces): ... here and build GIMPLE
11359         calls directly.  Use gimple_build API and avoid force_gimple_operand.
11360         (insert_into_preds_of_block): Simplify.
11361         (do_regular_insertion): Add comment.
11362
11363 2015-10-04  Jason Merrill  <jason@redhat.com>
11364
11365         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
11366
11367 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
11368
11369         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
11370         check for general register.
11371         (ix86_emit_save_regs): Ditto.
11372         (ix86_emit_save_regs_using_mov): Ditto.
11373         (ix86_emit_restore_regs_using_pop): Ditto.
11374         (ix86_emit_restore_regs_using_mov): Ditto.
11375
11376 2015-10-03  Marek Polacek  <polacek@redhat.com>
11377
11378         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
11379         (insn-dfatab.o): Likewise.
11380
11381 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
11382
11383         * config.gcc (xtensa*-*-uclinux*): New configuration.
11384         * config/xtensa/uclinux.h: New file.
11385         * config/xtensa/uclinux.opt: New file.
11386
11387 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
11388
11389         * doc/cpp.texi (Standard Predefined Macros): Document value of
11390         __cplusplus for C++14.
11391
11392 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
11393
11394         * gcc.c (process_command): Use spec_machine rather than
11395         spec_host_machine to build tooldir_prefix2.
11396
11397 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
11398             Bernd Schmidt  <bernds@codesourcery.com>
11399
11400         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
11401         (Token, Stmt): Remove structs.
11402         (decls, vars, fns): Remove variables.
11403         (alloc_comment, append_stmt, is_keyword): Remove macros.
11404         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
11405         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
11406         (parse_init, parse_file): Remove functions.
11407         (read_file): Accept a pointer to a length and store into it.
11408         (process): Don't try to parse the input file, just write it out as
11409         a string, but looking for maps.  Also write out the length.
11410         (main): Don't use "-S" to compile PTX code.
11411
11412 2015-10-02  Jeff Law  <law@redhat.com>
11413
11414         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
11415         fixups.
11416
11417 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
11418
11419         PR target/67822
11420         * config/nvptx/mkoffload.c (main): Scan the argument vector for
11421         -fopenmp, and skip generating an offloading image if specified.
11422
11423 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
11424
11425         * system.h (ROUND_UP): New macro definition.
11426         (ROUND_DOWN): Ditto.
11427         * ggc-page.c (ROUND_UP): Remove local macro definition.
11428         (PAGE_ALIGN): Implement using ROUND_UP macro.
11429
11430         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
11431         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
11432         to align values.
11433         (ix86_compute_frame_layout): Ditto.
11434         (ix86_expand_prologue): Ditto.
11435         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
11436         to round down values.
11437         (expand_set_or_movmem_via_rep): Ditto.
11438
11439 2015-10-02  Marek Polacek  <polacek@redhat.com>
11440
11441         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
11442
11443 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
11444
11445         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
11446         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
11447         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
11448         (free_gimple_bb): Renamed free_gimple_poly_bb.
11449         (try_generate_gimple_bb): Hoist loop invariant code.
11450         (analyze_drs_in_stmts): Same.
11451         (build_scop_drs): Call renamed functions.
11452         (new_pbb_from_pbb): Same.
11453         (scop_ivs_can_be_represented): Delete as functionality now moved to
11454         graphite-scop-detection.c
11455         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
11456
11457 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
11458
11459         * graphite-scop-detection.c (stmt_has_side_effects): New function
11460           outlined from stmt_simple_for_scop_p.
11461         (graphite_can_represent_stmt): Same.
11462         (stmt_simple_for_scop_p): Moved code out of this function for better
11463         readability.
11464
11465 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11466
11467         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
11468         F_AVX512IFMA.
11469         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
11470
11471 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11472
11473         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
11474
11475 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
11476
11477         PR rtl-optimization/67756
11478         * lra-constraints.c (match_reload): Add a new parameter.  Use it
11479         for creating a pseudo with the same value.
11480         (curr_insn_transform): Pass a new argument to match_reload.
11481
11482 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11483
11484         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
11485         (expand_vec_perm_even_odd_1): Handle V64QImode.
11486         (ix86_expand_vec_perm_const_1): Try expansion with
11487         expand_vec_perm_even_odd_trunc as well.
11488         * config/i386/sse.md (VI124_AVX512F): Rename to ...
11489         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
11490         to V54QI.
11491         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
11492         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
11493         to V32HI and V16SI.
11494         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
11495         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
11496         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
11497         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
11498         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
11499         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
11500
11501 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11502
11503         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
11504         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
11505
11506 2015-10-02  Jason Merrill  <jason@redhat.com>
11507
11508         PR c/59218
11509         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
11510         (diagnose_tm_1_op): Also diagnose volatile accesses in
11511         transaction_safe function.
11512
11513 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
11514
11515         * system.h (malloc.h): Don't include obsolete header.
11516
11517 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11518
11519         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
11520         (TLS_SECTION_ASM_FLAG): Delete.
11521
11522 2015-10-02  Marek Polacek  <polacek@redhat.com>
11523
11524         PR c/64249
11525         * doc/invoke.texi: Document -Wduplicated-cond.
11526         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
11527         (insn-dfatab.o): Likewise.
11528         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
11529         warning.
11530
11531 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
11532
11533         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
11534         sequences.
11535
11536 2015-10-02  Renlin Li  <renlin.li@arm.com>
11537
11538         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
11539
11540 2015-10-02  Renlin Li  <renlin.li@arm.com>
11541
11542         PR target/66776
11543         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
11544
11545 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11546
11547         PR rtl-optimization/67786
11548         PR rtl-optimization/67787
11549         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
11550         it modifies a reg used in the condition calculation.
11551
11552 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
11553
11554         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
11555         alternatives for reads from memory and moves from general-purpose
11556         registers.
11557         (*aarch64_combinez_be<mode>): Likewise.
11558
11559 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
11560
11561         PR target/51726
11562         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
11563         selectany within this function without need to keep attribute.
11564         (i386_pe_encode_section_info): Remove selectany-code.
11565
11566 2015-10-02  Richard Biener  <rguenther@suse.de>
11567
11568         * tree-ssa-sccvn.c (has_VN_INFO): New function.
11569         (free_scc_vn): Use it.
11570         (visit_use): Remove dead code and refactor to use gassign
11571         and use less indentation.
11572
11573 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11574
11575         PR target/67788
11576         PR target/67789
11577         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
11578         (rs6000_cannot_copy_insn_p): New function.
11579         * config/rs6000/rs6000.md (cannot_copy): New attribute.
11580         (load_toc_v4_PIC_1_normal): Set cannot_copy.
11581         (load_toc_v4_PIC_1_476): Ditto.
11582
11583 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11584
11585         * graphite-scop-detection.c (struct sese_l): New conversion constructor
11586         so that this type can be pushed into a vec.
11587         (class scop_builder): use sese_l to collect scops.
11588         (get_scops): New getter function.
11589         (remove_intersecting_scops): Use sese_l instead of scops_p.
11590         (intersects): Same.
11591         (add_scop): Same.
11592         (subsumes): Same.
11593         (remove_subscops): Same.
11594         (build_scops): Add scops to vec<scops_p> once all the scops have been
11595         detected.
11596
11597 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11598
11599         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11600         Renamed type from gimple_bb_p to gimple_poly_bb_p.
11601         (translate_isl_ast_node_user): Same.
11602         * graphite-poly.c (new_poly_bb): Same.
11603         * graphite-poly.h (gbb_from_bb): Same.
11604         * sese.h: Same.
11605         * graphite-sese-to-poly.c (new_gimple_bb):
11606         gimple_bb_p -> gimple_poly_bb_p
11607         (build_scop_scattering): Same.
11608         (find_params_in_bb): Same.
11609         (add_conditions_to_domain): Same.
11610         (sese_dom_walker::before_dom_children): Same.
11611         (analyze_drs_in_stmts): Same.
11612         (new_pbb_from_pbb): Same.
11613         (free_data_refs_aux): New pointer to type base_alias_pair.
11614         * graphite-sese-to-poly.h: Same.
11615         * sese.c (if_region_set_false_region): Fixed Indentation.
11616         (move_sese_in_condition): Same.
11617
11618 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11619             Aditya Kumar  <aditya.k7@samsung.com>
11620
11621         PR tree-optimization/66980
11622         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
11623         when data reference analysis has failed.
11624
11625 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11626             Aditya Kumar  <aditya.k7@samsung.com>
11627
11628         PR tree-optimization/67754
11629         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
11630         scev analysis on the same loop nest as analyze_drs_in_stmts.
11631         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
11632         renamed...
11633         (try_generate_gimple_bb): Call outermost_loop_in_sese.
11634         (analyze_drs_in_stmts): Same.
11635         * sese.c (outermost_loop_in_sese): ...here.
11636
11637 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11638             Aditya Kumar  <aditya.k7@samsung.com>
11639
11640         PR tree-optimization/67754
11641         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
11642         recursion on the inner loops.
11643
11644 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11645
11646         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
11647         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
11648         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
11649         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
11650         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
11651
11652 2015-10-01  Marek Polacek  <polacek@redhat.com>
11653
11654         PR c/65345
11655         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
11656         create_tmp_var_raw rather than create_tmp_var.
11657
11658 2015-10-01  Marek Polacek  <polacek@redhat.com>
11659
11660         PR tree-optimization/67769
11661         * tree-ssa-phiopt.c (conditional_replacement): Call
11662         reset_flow_sensitive_info_in_bb.
11663         (minmax_replacement): Likewise.
11664         (abs_replacement): Likewise.
11665
11666 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
11667
11668         * builtins.c: Don't include gomp-constants.h.
11669         (fold_builtin_1): Don't fold acc_on_device here.
11670         * gimple-fold.c: Include gomp-constants.h.
11671         (gimple_fold_builtin_acc_on_device): New.
11672         (gimple_fold_builtin): Call it.
11673
11674 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
11675
11676         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
11677         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
11678
11679 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
11680
11681         * config/arm/aarch-common-protos.h
11682         (aarch_accumulator_forwarding): New.
11683         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11684         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
11685         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11686         * config/arm/cortex-a53.md: Rewrite.
11687
11688 2015-10-01  Richard Biener  <rguenther@suse.de>
11689
11690         * gimple-match.h (mprts_hook): Declare.
11691         * gimple-match.head.c (mprts_hook): Define.
11692         (maybe_push_res_to_seq): Use new hook.
11693         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11694         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
11695         (vn_ssa_aux::has_constants): Remove.
11696         * tree-ssa-sccvn.c: Include gimple-match.h.
11697         (VN_INFO_GET): Assert we don't re-use SSA names.
11698         (vn_get_expr_for): Remove.
11699         (expr_has_constants): Likewise.
11700         (stmt_has_constants): Likewise.
11701         (simplify_binary_expression): Likewise.
11702         (simplify_unary_expression): Likewise.
11703         (vn_lookup_simplify_result): New hook.
11704         (visit_copy): Adjust.
11705         (visit_reference_op_call): Likewise.
11706         (visit_phi): Likewise.
11707         (visit_use): Likewise.
11708         (process_scc): Likewise.
11709         (init_scc_vn): Likewise.
11710         (visit_reference_op_load): Likewise.  Use match-and-simplify and
11711         a gimple seq for inserted expressions.
11712         (try_to_simplify): Remove GENERIC stmt combining code.
11713         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
11714         * tree-ssa-pre.c (eliminate_insert): Adjust.
11715         (eliminate_dom_walker::before_dom_children): Likewise.
11716
11717 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11718
11719         * doc/invoke.texi (Optimization Options): Add
11720         -freorder-blocks-algorithm=.
11721         (Optimize Options) <-O>: Add -freorder-blocks.
11722         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
11723         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
11724         <-freorder-blocks>: Also enabled at levels -O and -Os.
11725         <-freorder-blocks-algorithm=>: Document new option.
11726
11727 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11728
11729         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
11730         with flag_reorder_blocks_algorithm.
11731         * common.opt (freorder-blocks-algorithm=): New flag.
11732         (reorder_blocks_algorithm): New enum.
11733         * flag-types.h (reorder_blocks_algorithm): New enum.
11734         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
11735         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
11736
11737 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11738
11739         * bb-reorder.c: Add intro comment.
11740         (reorder_basic_blocks_software_trace_cache): Print a header to
11741         the dump file.
11742         (edge_order): New function.
11743         (reorder_basic_blocks_simple): New function.
11744         (reorder_basic_blocks): Choose between the STC and the simple
11745         algorithms (always choose the former).
11746
11747 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11748
11749         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
11750         function, factored out from ...
11751         (reorder_basic_blocks): ... here.
11752
11753 2015-10-01  Tom de Vries  <tom@codesourcery.com>
11754
11755         * tree-cfg.c (dump_function_to_file): Dump function attributes using
11756         __attribute__(()) string.  Move dumping of function attributes to before
11757         function name.
11758
11759 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
11760
11761         PR target/66870
11762         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
11763         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
11764         based on gold linker version.
11765         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
11766         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
11767         * configure, config.in: Regenerate.
11768
11769 2015-10-01  Alan Modra  <amodra@gmail.com>
11770
11771         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
11772         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
11773         (rs6000_output_mi_thunk): Likewise.
11774
11775 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11776
11777         * config/nvptx/mkoffload.c (process): Change offload data format.
11778
11779 2015-09-30  Jeff Law  <law@redhat.com>
11780
11781         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
11782         with constant conditions.
11783         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
11784         (remove_ctrl_stmt_and_useless_edges): No longer static.
11785         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
11786         (remove_ctrl_stmt_and_useless_edges): Likewise.
11787
11788 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11789             Cesar Philippidis  <cesar@codesourcery.com>
11790
11791         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
11792         (TARGET_GOACC_VALIDATE_DIMS): Override.
11793         * target.def (TARGET_GOACC): New target hook prefix.
11794         (validate_dims): New hook.
11795         * targhooks.h (default_goacc_validate_dims): New.
11796         * omp-low.c (oacc_validate_dims): New.
11797         (execute_oacc_device_lower): New.
11798         (default_goacc_validate_dims): New.
11799         (pass_data_oacc_device_lower): New.
11800         (pass_oacc_device_lower): New pass.
11801         (make_pass_oacc_device_lower): New.
11802         * tree-pass.h (make_pass_oacc_device_lower): Declare.
11803         * passes.def (pass_oacc_device_lower): Add it.
11804         * doc/tm.texi: Rebuilt.
11805         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
11806         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
11807
11808 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11809
11810         PR rtl-optimization/67037
11811         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
11812
11813 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
11814
11815         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
11816         * passes.c: Include tree-ssanames.h.
11817         (execute_function_todo): Flush the pending free SSA_NAMEs after
11818         eliminating unreachable basic blocks.
11819         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
11820         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
11821         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
11822         (flush_ssanames_freelist): New function.
11823         (release_ssaname_fn): Put released names on the queue.
11824         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
11825         * tree-ssanames.h (flush_ssanames_freelist): Declare.
11826
11827 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11828
11829         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
11830         (generate_target_descr_file, generate_target_offloadend_file)
11831         (generate_host_descr_file, prepare_target_image): Pass it on.
11832         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
11833         (compile_native, main): Pass it on.
11834         * lto-wrapper.c (compile_offload_image): Likewise.
11835
11836 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11837             Ilya Verbin  <ilya.verbin@intel.com>
11838             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11839
11840         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
11841         (prepare_target_image, main): Refactor argv building to use
11842         obstacks.
11843
11844 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11845
11846         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
11847         * config/spu/spu.c (spu_expand_atomic_op): New function.
11848         * config/spu/spu.md (AINT): New mode iterator.
11849         (ATOMIC): New code iterator.
11850         (atomic_name, atomic_pred): New code predicates.
11851         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
11852         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
11853         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
11854         "atomic_<atomic_name>_fetch<mode>"): Likewise.
11855
11856 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
11857
11858         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
11859         debug insns.
11860         (scalar_chain::convert_reg): Likewise.
11861
11862 2015-09-30  Richard Biener  <rguenther@suse.de>
11863
11864         * builtins.c: Add comment that no new simplifications should
11865         be added here.
11866
11867 2015-09-30  Marek Polacek  <polacek@redhat.com>
11868
11869         PR tree-optimization/67690
11870         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
11871         reset_flow_sensitive_info_in_bb.
11872         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
11873         * tree-ssanames.c: Include "gimple-iterator.h".
11874         (reset_flow_sensitive_info_in_bb): New function.
11875         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
11876
11877 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11878
11879         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
11880         variable, replacing it with...
11881         (offload_abi): ... this new variable.  Adjust all users.
11882         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
11883
11884 2015-09-30  Matthias Klose  <doko@ubuntu.com>
11885
11886         * configure.ac: Remove extraneous ;;.
11887         * configure: Regenerate.
11888
11889 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
11890
11891         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
11892         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
11893         predicate, disallow register for operand 2.
11894
11895 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
11896
11897         * graphite-dependences.c (scop_get_dependences): Moved in down
11898         in order to be visible to its caller.
11899         * graphite-poly.h: Removed compute_deps, and extend_schedule.
11900
11901 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11902             Aditya Kumar  <aditya.k7@samsung.com>
11903
11904         PR tree-optimization/67754
11905         * graphite-optimize-isl.c (optimize_isl): Call
11906         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
11907
11908 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11909
11910         * builtins.c (expand_builtin_acc_on_device): Delete.
11911         (expand_builtin): Don't call it.
11912         (fold_builtin_1): Fold acc_on_device.
11913
11914 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
11915
11916         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
11917         (ix86_nsaved_sseregs): Likewise.
11918
11919 2015-09-29  Jeff Law  <law@redhat.com>
11920
11921         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
11922         computation of unused value.
11923
11924         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
11925         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
11926         inline macro expansion.
11927
11928         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
11929
11930         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
11931         (gen_shl_sext): Likewise.
11932         * config/sh/sh.md (divsi3): Likewise.
11933         (imm->ext_dest_operand splitter): Likewise.
11934
11935 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11936             Aditya Kumar  <aditya.k7@samsung.com>
11937
11938         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
11939         (nb_data_writes_in_bb): Remove.
11940         (split_pbb): Remove.
11941         (split_reduction_stmt): Remove.
11942         (is_reduction_operation_p): Remove.
11943         (phi_contains_arg): Remove.
11944         (follow_ssa_with_commutative_ops): Remove.
11945         (detect_commutative_reduction_arg): Remove.
11946         (detect_commutative_reduction_assign): Remove.
11947         (follow_inital_value_to_phi): Remove.
11948         (edge_initial_value_for_loop_phi): Remove.
11949         (initial_value_for_loop_phi): Remove.
11950         (used_outside_reduction): Remove.
11951         (detect_commutative_reduction): Remove.
11952         (translate_scalar_reduction_to_array_for_stmt): Remove.
11953         (remove_phi): Remove.
11954         (dr_indices_valid_in_loop): Remove.
11955         (close_phi_written_to_memory): Remove.
11956         (translate_scalar_reduction_to_array): Remove.
11957         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
11958         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
11959         (rewrite_commutative_reductions_out_of_ssa): Remove.
11960         (build_poly_scop): Remove call to
11961         rewrite_commutative_reductions_out_of_ssa.
11962
11963 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
11964
11965         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
11966         Add new insn types for vector load and store pairs.
11967         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
11968         types "neon_ldp{,_q}".
11969         * config/arm/cortex-a57.md (neon_load_c): Add insn types
11970         "neon_ldp{,_q}".
11971         (neon_store_complex): Add insn types "neon_stp{,_q}".
11972         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
11973         "neon_{ldp,stp}_q".
11974
11975 2015-09-29  Jeff Law  <law@redhat.com>
11976
11977         * config/rx/constraints.md (Int08): Fix undefined left shift
11978         behaviour.
11979         (Sint08, Sint16, Sint24): Likewise.
11980         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11981
11982         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
11983         behaviour.
11984
11985         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
11986         left shift behaviour.
11987         * config/msp430/constraints.md ('L' constraint): Similarly.
11988         ('Ys' constraint): Similarly.
11989
11990 2015-09-29  Richard Biener  <rguenther@suse.de>
11991
11992         PR tree-optimization/67170
11993         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
11994         the translate function pointer parameter to get the
11995         bool whether to disambiguate only by reference.
11996         (walk_non_aliased_vuses): Likewise.
11997         * tree-ssa-alias.c (maybe_skip_until): Adjust.
11998         (get_continuation_for_phi_1): Likewise.
11999         (get_continuation_for_phi): Likewise.
12000         (walk_non_aliased_vuses): Likewise.
12001         * tree-ssa-sccvn.c (const_parms): New bitmap.
12002         (vn_reference_lookup_3): Adjust for interface change.
12003         Disambiguate parameters pointing to readonly memory.
12004         (free_scc_vn): Free const_parms.
12005         (run_scc_vn): Initialize const_parms from a fn spec attribute.
12006
12007 2015-09-29  Richard Biener  <rguenther@suse.de>
12008
12009         PR tree-optimization/67741
12010         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
12011         builtin calls with correct signature.
12012
12013 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
12014
12015         PR target/65105
12016         * config/i386/i386.c: Include dbgcnt.h.
12017         (has_non_address_hard_reg): New.
12018         (convertible_comparison_p): New.
12019         (scalar_to_vector_candidate_p): New.
12020         (remove_non_convertible_regs): New.
12021         (scalar_chain): New.
12022         (scalar_chain::scalar_chain): New.
12023         (scalar_chain::~scalar_chain): New.
12024         (scalar_chain::add_to_queue): New.
12025         (scalar_chain::mark_dual_mode_def): New.
12026         (scalar_chain::analyze_register_chain): New.
12027         (scalar_chain::add_insn): New.
12028         (scalar_chain::build): New.
12029         (scalar_chain::compute_convert_gain): New.
12030         (scalar_chain::replace_with_subreg): New.
12031         (scalar_chain::replace_with_subreg_in_insn): New.
12032         (scalar_chain::emit_conversion_insns): New.
12033         (scalar_chain::make_vector_copies): New.
12034         (scalar_chain::convert_reg): New.
12035         (scalar_chain::convert_op): New.
12036         (scalar_chain::convert_insn): New.
12037         (scalar_chain::convert): New.
12038         (convert_scalars_to_vector): New.
12039         (pass_data_stv): New.
12040         (pass_stv): New.
12041         (make_pass_stv): New.
12042         (ix86_option_override): Created and register stv pass.
12043         (flag_opts): Add -mstv.
12044         (ix86_option_override_internal): Likewise.
12045         * config/i386/i386.md (SWIM1248x): New.
12046         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
12047         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
12048         (*anddi3_doubleword): New.
12049         (*zext<mode>_doubleword): New.
12050         (*zextsi_doubleword): New.
12051         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
12052         (*<code>di3_doubleword): New.
12053         * config/i386/i386.opt (mstv): New.
12054         * dbgcnt.def (stv_conversion): New.
12055
12056 2015-09-29  Tom de Vries  <tom@codesourcery.com>
12057
12058         * tree-cfg.c (dump_function_to_file): Dump function attributes.
12059
12060 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12061
12062         PR target/67716
12063         * config/sh/sh.c (sh_override_options_after_change): New.
12064         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
12065         (sh_option_override): Move align_loops, align_jumps and
12066         align_functions handling into sh_override_options_after_change.
12067
12068 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
12069
12070         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
12071         (nvptx_record_offload_symbol): Record function execution geometry.
12072         * config/nvptx/mkoffload.c (process): Include launch geometry in
12073         function data.
12074         * omp-low.c (oacc_launch_pack): New.
12075         (replace_oacc_fn_attrib): New.
12076         (set_oacc_fn_attrib): New.
12077         (get_oacc_fn_attrib): New.
12078         (expand_omp_target): Create keyed varargs for GOACC_parallel call
12079         generation.
12080         * omp-low.h (get_oacc_fn_attrib): Declare.
12081         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
12082         (DEF_FUNCTION_TYPE_VAR_11): Delete.
12083         * tree.h (OMP_CLAUSE_EXPR): New.
12084         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
12085
12086 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
12087             Sebastian Pop  <s.pop@samsung.com>
12088
12089         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
12090
12091 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
12092             Sebastian Pop  <s.pop@samsung.com>
12093
12094         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
12095         * graphite-scop-detection.c (struct sese_l): New type.
12096         (get_entry_bb): API for getting entry bb of SESE.
12097         (get_exit_bb): API for getting exit bb of SESE.
12098         (class debug_printer): New type.  Simple printer in debug mode.
12099         (trivially_empty_bb_p): New.  Return true when BB is empty or
12100         contains only debug instructions.
12101         (graphite_can_represent_expr): Call scalar_evoution_in_region
12102         instead of analyze_scalar_evolution.  Pass in scop instead of only
12103         the scop entry.
12104         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
12105         scop entry.
12106         (stmt_simple_for_scop_p): Same.
12107         (harmful_stmt_in_bb): Same.
12108         (graphite_can_represent_loop): Deleted.
12109         (struct scopdet_info): Deleted.
12110         (scopdet_basic_block_info): Deleted.
12111         (build_scops_1): Deleted.
12112         (bb_in_sd_region): Deleted.
12113         (find_single_entry_edge): Deleted.
12114         (find_single_exit_edge): Deleted.
12115         (create_single_entry_edge): Deleted.
12116         (sd_region_without_exit): Deleted.
12117         (create_single_exit_edge): Deleted.
12118         (unmark_exit_edges): Deleted.
12119         (mark_exit_edges): Deleted.
12120         (create_sese_edges): Deleted.
12121         (build_graphite_scops): Deleted.
12122         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
12123         (build_scops): Use the new scop_builder to build scops.
12124         (dot_all_scops_1): Use the new pretty printer.  Print loop father
12125         as well.
12126         (loop_body_is_valid_scop): New.  Return true if loop body is a
12127         valid scop.
12128         (class scop_builder): New.  Builds SCoPs for polyhedral
12129         optimizations.
12130         (scop_builder): New constructor.
12131         (static sese_l invalid_sese): sese_l with invalid edges.
12132         (get_sese): Get an sese (from a loop) if possible, invalid_sese
12133         otherwise.
12134         (get_nearest_dom_with_single_entry): Get nearest dominator of a
12135         basic_block with single entry.  Return NULL if we get to the
12136         beginning of a function.
12137         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
12138         a basic_block with single exit.  Return NULL if we get to the
12139         beginning of a function.
12140         (print_sese): Pretty-print SESE.
12141         (merge_sese): Merge two SESEs if possible and return the new SESE.
12142         (build_scop_depth): Start building the SCoP within a loop nest.
12143         (build_scop_breadth): Start building the SCoP at a single loop
12144         depth.  Merge adjacent SESEs if valid.
12145         (can_represent_loop_1): Returns true if Graphite can represent
12146         loop inside SCoP.  Helper for can_represent_loop.
12147         (can_represent_loop): Returns true if Graphite can represent LOOP
12148         and all its nested loops in SCoP.
12149         (loop_is_valid_scop): Returns true if LOOP and all its nests
12150         constitute a valid SCoP.
12151         (region_has_one_loop): Returns true of a region has only one loop.
12152         (add_scop): Add SCoP to the list of valid scops.  Removes an
12153         already existing scop if it intersects with or subsumed by this one.
12154         (harmful_stmt_in_region): Returns true if SCoP has any statment
12155         which cannot be represented by Graphite.
12156         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
12157         (remove_subscops): Remove any SCoP from the list of already found
12158         SCoPs, if subsumed by S1.
12159         (intersects): Return true if region bounded by SCoPs S1 and S2
12160         intersect.
12161         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
12162         * graphite.c (print_graphite_scop_statistics):
12163         (print_graphite_statistics): Print SCoP info while debugging.
12164         (graphite_initialize): Early exit in case number of loops in a
12165         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
12166         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
12167         (graphite_finalize):
12168         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
12169         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
12170         (recompute_all_dominators): Recalculate POST_DOMINATORS.
12171         * tree-cfg.c (print_loops): Print the function name while printing
12172         loops.
12173
12174 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
12175             Sebastian Pop  <s.pop@samsung.com>
12176
12177         PR tree-optimization/67700
12178         * graphite-sese-to-poly.c (parameter_index_in_region): Call
12179         invariant_in_sese_p_rec.
12180         (extract_affine): Same.
12181         (rewrite_cross_bb_scalar_deps): Call update_ssa.
12182         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
12183         * sese.h (invariant_in_sese_p_rec): Declare.
12184
12185 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
12186
12187         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
12188
12189 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
12190
12191         Revert:
12192         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12193                     Jiong Wang  <jiong.wang@arm.com>
12194
12195         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
12196         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
12197         (REG_CLASS_NAMES): Likewise.
12198         (REG_CLASS_CONTENTS): Likewise.
12199         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
12200         (aarch64_register_move_cost): Likewise.
12201         (aarch64_load_symref_appropriately): Invoke the new added pattern if
12202         possible.
12203         * config/aarch64/constraints.md (Uc0): New constraint.
12204
12205 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
12206
12207         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
12208
12209 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
12210
12211         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
12212         SECTION_EXCLUDE in XO mapping class.
12213
12214 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
12215
12216         PR target/54236
12217         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
12218         and handle ne and eq codes.
12219         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
12220         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
12221         CONST_INT_P.  Use reverse_condition.
12222         (sh_split_treg_set_expr): Likewise.
12223
12224 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
12225
12226         * config/arm/types.md (type): Add rotate_imm.
12227         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
12228         ROR immediate case.
12229         (*rorsi3_insn_uxtw): Likewise.
12230         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
12231         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
12232         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
12233
12234 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12235
12236         PR rtl-optimization/67481
12237         * ifcvt.c (contains_ccmode_rtx_p): New function.
12238         (insn_valid_noce_process_p): Use it.
12239
12240 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12241
12242         PR rtl-optimization/67456
12243         PR rtl-optimization/67464
12244         PR rtl-optimization/67465
12245         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
12246         move in the mode of x.  Handle combination of complex and simple
12247         block pairs as well as the case when one is empty.
12248
12249 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12250
12251         * doc/gimple.texi: Update references to gimple_statement_base.
12252         * gdbhooks.py: Likewise.
12253         * gimple.h: Likewise.
12254
12255 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
12256
12257         * config/sparc/driver-sparc.c: map LEON to leon3
12258
12259 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
12260
12261         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
12262           and make it inverse to change default
12263         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
12264           supervisor mode
12265         * doc/invoke.texi: Document change of default
12266
12267 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
12268
12269         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
12270         true on %f0 for a target without FPU.
12271         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
12272         without FPU.
12273         (untyped_return): Do not load %f0 for a target without FPU.
12274
12275 2015-09-28  Andrew Pinski  <apinski@cavium.com>
12276
12277         * config/aarch64/aarch64.md (prefetch):
12278         Change the predicate of operand 0 to register_operand.
12279
12280 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
12281
12282         * config/i386/predicates.md (register_sse4nonimm_operand): New
12283         predicate.
12284         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
12285         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
12286         Use register_sse4nonimm_operand as operand 0 predicate.
12287         (*vec_extractv8hi_sse2): Remove insn pattern.
12288         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
12289         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
12290
12291 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
12292             Kaz Kojima  <kkojima@gcc.gnu.org>
12293
12294         PR target/67391
12295         * config/sh/sh-protos.h (sh_lra_p): Declare.
12296         * config/sh/sh.c (sh_lra_p): Make non-static.
12297         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
12298         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
12299         Expand into addsi3_scr if operands[2] if needed.
12300         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
12301         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
12302         (addsi3_scr, *addsi3): New insn_and_split patterns.
12303
12304 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
12305
12306         PR rtl-optimization/64164
12307         PR tree-optimization/67312
12308         PR middle-end/67340
12309         PR middle-end/67490
12310         PR bootstrap/67597
12311         * cfgexpand.c (parm_in_stack_slot_p): Remove.
12312         (ssa_default_def_partition): Remove.
12313         (get_rtl_for_parm_ssa_default_def): Remove.
12314         (set_rtl): Check that RTL assignments match expectations.
12315         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
12316         default def location for params and results.  Record SSA names
12317         or types in REG and MEM attrs, respectively.
12318         (set_parm_rtl): New.
12319         (expand_one_ssa_partition): Drop logic that assigned MEMs with
12320         unassigned addresses.
12321         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
12322         deferred stack alloc vars.
12323         (expand_used_vars): Skip partitions holding parm default defs.
12324         Move adjust_one_expanded_partition_var loop...
12325         (pass_expand::execute): ... here.  Drop redundant assert.
12326         Adjust comments before the final loop over all ssa names.
12327         Require assigned rtl of parms and results to match exactly.
12328         Reset its attributes to match them, not any other variables in
12329         the same partition.
12330         (expand_debug_expr): Use entry value for PARM's default defs
12331         only iff they have zero nondebug uses.
12332         * cfgexpand.h (parm_in_stack_slot_p): Remove.
12333         (get_rtl_for_parm_ssa_default_def): Remove.
12334         (set_parm_rtl): Declare.
12335         * doc/invoke.texi: Improve wording.
12336         * explow.c (promote_decl_mode): Fix promote_function_mode for
12337         result decls not by reference.
12338         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
12339         bypass TYPE_MODE to get the actual vector mode.
12340         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
12341         2015-08-19's changes as follows.  Drop include of
12342         basic-block.h and df.h.
12343         (rtl_for_parm): Remove.
12344         (maybe_reset_rtl_for_parm): Remove.
12345         (parm_in_unassigned_mem_p): Remove.
12346         (use_register_for_decl): Add logic for RESULT_DECLs matching
12347         assign_parms' behavior.
12348         (split_complex_args): Revert.
12349         (assign_parms_augmented_arg_list): Revert.  Add comment
12350         referencing the logic above.
12351         (assign_parm_adjust_stack_rtl): Revert.
12352         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
12353         of SET_DECL_RTL.  Set up a REG if the parm demands so.
12354         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
12355         calls into a single set_parm_rtl.  Set up a temporary RTL
12356         temporarily for expand_assignment.
12357         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
12358         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
12359         (assign_bounds): Revert.
12360         (assign_parms): Revert.  Use set_parm_rtl.
12361         (allocate_struct_function): Relayout result and parms of
12362         non-abstruct functions.
12363         (expand_function_start): Revert.  Use set_parm_rtl.  If the
12364         result is not a hard reg, create a pseudo from the promoted
12365         mode of the default def.  Promote static chain mode.
12366         * tree-outof-ssa.c (remove_ssa_form): Drop unused
12367         partition_has_default_def.  Set up
12368         partitions_for_parm_default_defs.
12369         (finish_out_of_ssa): Remove partition_has_default_def.
12370         Release partitions_for_parm_default_defs.
12371         * tree-outof-ssa.h (struct ssaexpand): Remove
12372         partition_has_default_def.  Add
12373         partitions_for_parm_default_defs.
12374         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
12375         stor-layout.h.
12376         (build_ssa_conflict_graph): Fix conflict-detection of default
12377         defs of even unused default defs of params and results.
12378         (for_all_parms): New.
12379         (create_default_def): New.
12380         (register_default_def): New.
12381         (coalesce_with_default): New.
12382         (create_outofssa_var_map): Create default defs for all parms
12383         and results, and register their partitions.  Add GIMPLE_RETURN
12384         operands as coalesce candidates with results.  Add default
12385         defs of each parm or result as coalesce candidates with its
12386         other defs.  Mark each result def, and each default def of
12387         parms, as used_in_copy.
12388         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
12389         with the ssa names, even anonymous ones.  Drop
12390         parm_in_stack_slot_p calls.  Require same signedness and
12391         alignment.
12392         (coalesce_ssa_name): Add coalesce candidates for all defs of
12393         each parm and result, even unused ones.
12394         (parm_default_def_partition_arg): New type.
12395         (set_parm_default_def_partition): New.
12396         (get_parm_default_def_partitions): New.
12397         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
12398         * tree-ssa-live.c (partition_view_init): Regard unused defs of
12399         parms and results as used.
12400         (verify_live_on_entry): Don't error out just because they're
12401         not live.
12402
12403 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
12404
12405         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
12406         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
12407         (output_fde): Don't output length for debug_frame on AIX.
12408         (output_call_frame_info): Don't output length for debug_frame on AIX.
12409         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
12410         HAVE_XCOFF_DWARF_EXTRAS.
12411         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
12412         HAVE_XCOFF_DWARF_EXTRAS.
12413         (output_compilation_unit_header): Don't output length on AIX.
12414         (output_pubnames): Don't output length on AIX.
12415         (output_aranges): Delete argument. Compute length locally. Don't
12416         output length on AIX.
12417         (output_line_info): Don't output length on AIX.
12418         (dwarf2out_finish): Don't compute aranges_length.
12419         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
12420         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
12421         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
12422         symbol decoration for AIX.
12423         (rs6000_xcoff_debug_unwind_info): New.
12424         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
12425         for SECTION_DEBUG.
12426         (rs6000_xcoff_declare_function_name): Emit different
12427         .function pseudo-op when DWARF2_DEBUG. Don't call
12428         xcoffout_declare_function for DWARF2_DEBUG.
12429         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
12430         Redefine.
12431         * config/rs6000/aix71.h: New.
12432         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
12433         locations support.
12434         * configure: Regenerate.
12435         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
12436         DWARF support.
12437
12438 2015-09-26  Jeff Law  <law@redhat.com>
12439
12440         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
12441         behaviour.
12442         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
12443         behaviour.
12444
12445         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
12446         behaviour
12447
12448         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
12449         undefined behaviour.
12450
12451         * config/cris/cris.md (asrandb): Fix left shift undefined
12452         behaviour.
12453         (asrandw): Likewise.
12454
12455 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
12456
12457         PR target/61578
12458         * lra-constarints.c (match_reload): Check presence of the input pseudo
12459         in the output operand.
12460
12461 2015-09-25  Tobias Burnus  <burnus@net-b.de>
12462
12463         * doc/invoke.texi (-fsanitize): Minor wording tweak.
12464
12465 2015-09-25  Tobias Burnus  <burnus@net-b.de>
12466
12467         * doc/invoke.texi (-fsanitize): Update URLs.
12468
12469 2015-09-25  Teresa Johnson  <tejohnson@google.com>
12470
12471         * opts.c (finish_options): Unset -freorder-blocks-and-partition
12472         if not using profile.
12473
12474 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12475
12476         PR pretty-print/67567
12477         * pretty-print.c (pp_string): Add gcc_checking_assert.
12478         * pretty-print.h (output_buffer_append_r): Likewise.
12479
12480 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
12481
12482         PR target/67675
12483         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
12484         addr2 individually.  Don't emit logical or insn if one is known to
12485         be aligned approriately.
12486         (sh_expand_cmpnstr): Likewise.
12487
12488 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
12489
12490         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
12491         __builtin_aarch64_fp[sc]r arguments into a register.
12492
12493 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
12494
12495         * config.gcc (x86_archs): Replace lakemount with lakemont.
12496         (with_cpu): Likewise.
12497         (with_arch): Likewise.
12498         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12499         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
12500         __tune_lakemount__ with __tune_lakemont__.
12501         * config/i386/i386.c (lakemount_cost): Renamed to ...
12502         (lakemont_cost): This.
12503         (m_LAKEMOUNT): Renamed to ...
12504         (m_LAKEMONT): This.
12505         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
12506         (processor_target_table): Replace "lakemount" with "lakemont".
12507         (processor_alias_table): Likewise.
12508         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
12509         PROCESSOR_LAKEMONT.
12510         (ix86_adjust_cost): Likewise.
12511         (ia32_multipass_dfa_lookahead): Likewise.
12512         * config/i386/i386.h (processor_type): Likewise.
12513         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
12514         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
12515         Lakemount with Lakemont.
12516
12517 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
12518
12519         * config.gcc (x86_archs): Replace iamcu with lakemount.
12520         (with_cpu): Likewise.
12521         (with_arch): Likewise.
12522         * doc/invoke.texi: Likewise.
12523         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12524         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
12525         __tune_iamcu__ with __tune_lakemount__.
12526         * config/i386/i386.c (iamcu_cost): Renamed to ...
12527         (lakemount_cost): This.
12528         (m_IAMCU): Renamed to ...
12529         (m_LAKEMOUNT): This.
12530         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
12531         (processor_target_table): Replace "iamcu" with "lakemount".
12532         (processor_alias_table): Likewise.
12533         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
12534         PROCESSOR_LAKEMOUNT.
12535         (ix86_adjust_cost): Likewise.
12536         (ia32_multipass_dfa_lookahead): Likewise.
12537         * config/i386/i386.h (processor_type): Likewise.
12538         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
12539
12540 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
12541
12542         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
12543         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
12544         Declare.
12545         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
12546         (pa_expand_compare_and_swap_loop): New.
12547         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
12548         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
12549         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
12550         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
12551         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
12552         Revise.
12553
12554 2015-09-24  Michael Collison  <michael.collison@linaro.org>
12555
12556         PR other/57195
12557         * read-md.c (read_name): Allow mode iterators inside angle
12558         brackets in rtl expressions.
12559
12560 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
12561
12562         PR target/61578
12563         * ira-color.c (update_allocno_cost): Add parameter.
12564         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
12565         parameter.
12566
12567 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12568
12569         PR driver/67640
12570         * opts-common.c (prune_options): Discard all -fdiagnostics-color
12571         but the last one, which is moved to the front to be processed
12572         first.
12573         * opts.c (enable_warning_as_error): Reject options that do not
12574         control warnings.
12575
12576 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12577
12578         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
12579
12580 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12581
12582         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
12583         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
12584         (aarch64_cannot_force_const_mem): Likewise.
12585         (aarch64_classify_address): Likewise.
12586         (aarch64_classify_symbolic_expression): Likewise.
12587         (aarch64_print_operand): Likewise.
12588         (aarch64_classify_symbol): Likewise.
12589         (aarch64_mov_operand_p): Likewise.
12590         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
12591         (aarch64_mov_operand): Likewise.
12592
12593 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
12594
12595         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
12596         for info->spe_gp_size.
12597
12598 2015-09-24  Richard Biener  <rguenther@suse.de>
12599
12600         PR lto/67699
12601         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
12602         abstract origins.
12603
12604 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
12605
12606         * tree-object-size.c (plus_stmt_object_size)
12607         (cond_expr_object_size): Change the formal parameters from gimple
12608         to gimple *.
12609         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
12610         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
12611         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
12612
12613 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12614
12615         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
12616         Check for ld -type pie on Solaris 11.x and 12.
12617         * configure: Regenerate.
12618         * config.in: Regenerate.
12619
12620         * gcc.c (LD_PIE_SPEC): Allow redefinition.
12621
12622         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
12623         (STARTFILE_SPEC): Use it.
12624         (ENDFILE_CRTEND_SPEC): Define.
12625         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
12626         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
12627         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
12628         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
12629         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
12630         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
12631         (ENDFILE_ARCH_SPEC): Define.
12632         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
12633
12634 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12635
12636         * configure.ac (gcc_cv_solaris_crts): New test.
12637         * configure. Regenerate.
12638         * config.in: Regenerate.
12639         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
12640         HAVE_SOLARIS_CRTS variant.
12641
12642 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12643
12644         * tree-inline.h (count_insns_seq): Delete prototype.
12645         (estimate_num_insns_seq): Define prototype.
12646         * tree-inline.c (count_insns_seq): Delete.
12647         (estimate_num_insns_seq): Remove static qualifier.
12648         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
12649         with estimate_num_insns_seq.
12650
12651 2015-09-24  Richard Biener  <rguenther@suse.de>
12652
12653         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
12654         members.
12655         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
12656         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
12657         offset.
12658         (ao_ref_init_from_vn_reference): Record clique and base in the
12659         built base.
12660         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
12661
12662 2015-09-24  Richard Biener  <rguenther@suse.de>
12663
12664         PR tree-optimization/48885
12665         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
12666         as not including any restrict tags from other pointers.
12667
12668 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12669
12670         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
12671         character when appending to offload_targets.
12672
12673         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
12674         offload targets by commas, not colons.
12675         * config.in: Regenerate.
12676         * configure: Likewise.
12677         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
12678         instead of setting up the default offload targets here...
12679         (process_command): ..., do it here.
12680         libgomp/
12681         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
12682         targets are separated by commas.
12683         * config.h.in: Regenerate.
12684
12685 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12686             Nathan Sidwell  <nathan@codesourcery.com>
12687
12688         * omp-low.h (omp_reduction_init_op): Declare.
12689         * omp-low.c (omp_reduction_init_op): New, broken out of ...
12690         (omp_reduction_init): ... here.  Call it.
12691         * tree-parloops.c (initialize_reductions): Use
12692         omp_reduction_init_op.
12693
12694 2015-09-23   Richard Biener  <rguenther@suse.de>
12695
12696         PR middle-end/67662
12697         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
12698         undefined overflow unless they will cancel out.
12699
12700 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12701
12702         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
12703         insn emit.
12704
12705 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12706
12707         PR c/49655
12708         * opts.h (write_langs): Declare.
12709         * opts-global.c (write_langs): Make it extern.
12710
12711 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
12712
12713         PR target/67391
12714         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
12715         overlapping regs when matching the pattern.
12716
12717 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
12718
12719         * config/aarch64/aarch64-simd.md
12720         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
12721         (aarch64_float_truncate_hi_v4sf_le): New.
12722         (aarch64_float_truncate_hi_v4sf_be): Likewise.
12723
12724 2015-09-23  Richard Biener  <rguenther@suse.de>
12725
12726         * tree-ssa-structalias.c (intra_create_variable_infos): Build
12727         representatives for all restrict qualified pointer destinations.
12728
12729 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12730
12731         * config/i386/i386.md (define_code_attr mshift): New.
12732         (define_mode_iterator SWI1248_AVX512BW): Rename ...
12733         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
12734         only.
12735         (define_insn "*k<logic><mode>"): Use new iterator name.
12736         (define_insn "*<mshift><mode>3"): New.
12737
12738 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
12739
12740         PR middle-end/67649
12741         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
12742         mark the block as accessible.
12743
12744 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
12745
12746         * function.c (thread_prologue_and_epilogue_insns): Delete
12747         orig_entry_edge argument to try_shrink_wrapping.
12748         * shrink-wrap.c (can_get_prologue): New function.
12749         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
12750         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
12751         can_get_prologue where needed.  Remove code that finds a single
12752         edge for the prologue.  Remove code that tests if any reg clobbered
12753         by the prologue is live on the prologue edge.  Remove code that finds
12754         the new prologue edge after duplicating blocks.  Make a new prologue
12755         block and edge.
12756         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
12757
12758 2015-09-22  Jeff Law  <law@redhat.com>
12759
12760         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
12761         behavior.
12762
12763 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
12764
12765         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
12766         -Wtemplates, -Wnamespaces): Document.
12767
12768 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12769
12770         PR tree-optimization/67671
12771         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
12772         pointer references as restrict.
12773
12774 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12775
12776         * config/nios2/nios2.c (nios2_legitimize_address): When handling
12777         'reg + reloc' cases, allow first operand to be non-REG, and use
12778         force_reg() to enforce address pattern.
12779
12780 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
12781
12782         PR target/67480
12783         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
12784         (define_mode_iterator VI12_AVX_AVX512F): New.
12785         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
12786         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
12787         (define_insn "*<code><mode>3"): ... Into new pattern using
12788         VI12_AVX_AVX512F iterators without masking.
12789
12790 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12791
12792         * config.gcc: Support "skylake-avx512".
12793         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12794         PROCESSOR_SKYLAKE_AVX512.
12795         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
12796         (processor_target_table): Add "skylake-avx512".
12797         (PTA_SKYLAKE_AVX512): Define.
12798         (ix86_option_override_internal): Add "skylake_avx512".
12799         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
12800         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
12801         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
12802         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
12803         * doc/invoke.texi (skylake-avx512): New.
12804
12805 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12806
12807         * config/i386/i386.md (define_insn "kunpckhi"): Fix
12808         operand in pattern.
12809         (define_insn "kunpcksi"): Ditto.
12810         (define_insn "kunpckdi"): Ditto.
12811
12812 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12813
12814         * config/i386/i386.md (define_split not/xor SWI1248x): Use
12815         iterator instead of fixed modes.
12816
12817 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12818
12819         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12820         Adjust declaration.
12821         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
12822         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
12823         out_result.  Update to support update-fetch operations.
12824         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
12825         Adjust for change to aarch64_gen_atomic_ldop.
12826         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
12827         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
12828         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
12829         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
12830         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
12831
12832 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12833
12834         * config/aarch64/aarch64-protos.h
12835         (aarch64_atomic_ldop_supported_p): Declare.
12836         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
12837         (enum aarch64_atomic_load_op_code): New.
12838         (aarch64_emit_atomic_load_op): New.
12839         (aarch64_gen_atomic_ldop): Update to support load-operate
12840         patterns.
12841         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
12842         to an expander.
12843         (aarch64_atomic_<atomic_optab><mode>): New.
12844         (aarch64_atomic_<atomic_optab><mode>_lse): New.
12845         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
12846         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
12847         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
12848
12849 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12850
12851         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
12852         (UNSPECV_ATOMIC_LDOP_OR): New.
12853         (UNSPECV_ATOMIC_LDOP_BIC): New.
12854         (UNSPECV_ATOMIC_LDOP_XOR): New.
12855         (UNSPECV_ATOMIC_LDOP_PLUS): New.
12856         (ATOMIC_LDOP): New.
12857         (atomic_ldop): New.
12858         (aarch64_atomic_load<atomic_ldop><mode>): New.
12859
12860 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12861
12862         * config/aarch64/aarch64.md
12863         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
12864         pattern.
12865
12866 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12867
12868         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12869         Declare.
12870         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
12871         (aarch64_gen_atomic_ldop): New.
12872         (aarch64_split_atomic_op): Fix whitespace and add a comment.
12873         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
12874         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
12875         (atomic_exchange<mode>): Replace with an expander.
12876         (aarch64_atomic_exchange<mode>): New.
12877         (aarch64_atomic_exchange<mode>_lse): New.
12878         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
12879         (aarch64_atomic_swp<mode>): New.
12880
12881 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12882
12883         * tree-inline.c (expand_call_inline): Use inform for extra note.
12884         Do not give a note with UNKNOWN_LOCATION.
12885         Replace input_location with gimple_location (stmt).
12886         Use true/false instead of TRUE/FALSE.
12887
12888 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12889
12890         PR tree-optimization/67666
12891         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
12892         with single field non-conservative.
12893
12894 2015-09-21  David S. Miller  <davem@davemloft.net>
12895
12896         PR/67622
12897         Revert:
12898         2015-09-11  David S. Miller  <davem@davemloft.net>
12899
12900         * config/sparc/constraints.md: Make "U" constraint a real register
12901         constraint.
12902         * config/sparc/sparc.c (TARGET_LRA_P): Define.
12903         (D_MODES, DF_MODES): Add missing cast.
12904         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
12905         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
12906         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
12907         cost to 8.
12908         * config/sparc/sparc.h (PROMOTE_MODE): Define.
12909         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
12910         provide these insn when flag_pic.
12911
12912         2015-09-17  David S. Miller  <davem@davemloft.net>
12913
12914         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
12915         Declare.
12916         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
12917         function.
12918         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12919         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12920         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12921         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12922         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12923         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12924         provide when flag_pic.
12925
12926 2015-09-21  Jeff Law  <law@redhat.com>
12927
12928         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
12929         behavior.
12930
12931 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12932
12933         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
12934
12935 2015-09-21  Richard Biener  <rguenther@suse.de>
12936
12937         * passes.c (rest_of_decl_compilation): Do not call
12938         dwarf2out_early_global_decl for aliases.
12939
12940 2015-09-21  Richard Biener  <rguenther@suse.de>
12941
12942         PR debug/67664
12943         * dwarf2out.c (add_location_or_const_value_attribute): Remove
12944         attribute parameter.  Early exit if either DW_AT_const_value
12945         or DW_AT_location are present already.
12946         (gen_variable_die): Adjust caller.
12947         (dwarf2out_late_global_decl): Likewise.
12948
12949 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12950
12951         PR target/67657
12952         * config/sh/sh.c (sh_remove_overlapping_post_inc,
12953         sh_peephole_emit_move_insn): Add new functions.
12954         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
12955         sh_peephole_emit_move_insn): Declere them.
12956         * config/sh/sh.md: Use them in various peephole2 patterns.
12957
12958 2015-09-21  Richard Biener  <rguenther@suse.de>
12959
12960         PR middle-end/67651
12961         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
12962         address with -fno-delete-null-pointer-checks.
12963
12964 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
12965
12966         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
12967         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
12968         (reduc_uplus_v16qi): Remove.
12969
12970         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
12971         (reduc_<VEC_reduc_name>_v2df): Remove.
12972         (reduc_<VEC_reduc_name>_v4sf): Remove.
12973         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
12974
12975         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
12976         gen_ function by removing * prefix.
12977         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
12978
12979 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12980
12981         PR middle-end/60832
12982         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12983         Print i_bound without converting it to a tree.
12984
12985 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
12986
12987         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
12988         operands[4] operands[5] swap with std::swap, removed tmp variable.
12989         (arm_evpc_neon_vzip): Replaced in0/in1 and
12990         out0/out1 swaps with std::swap, removed x variable.
12991         (arm_evpc_neon_vtrn): Replaced in0/int1 and
12992         out0/out1 swaos with std::swap, removed x variable.
12993         (arm_expand_vec_perm_const_1): Replaced
12994         d->op0/d->op1 swap with std::swap, removed x variable.
12995         (arm_evpc_neon_vuzp): Replaced in0/in1 and
12996         out0/out1 swaps with std::swap, removed x variable.
12997
12998 2015-09-21  Jonathan Yong  <10walls@gmail.com>
12999
13000         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
13001         sysroot/usr/lib/32api for additional win32 libraries,
13002         fixes failing Cygwin bootstrapping.
13003
13004 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
13005
13006         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
13007
13008 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
13009
13010         PR target/67126
13011         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
13012         (*mov_t_msb_neg): Rewrite negc pattern.
13013
13014 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
13015
13016         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
13017         immediate generation code.
13018
13019 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
13020
13021         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
13022         redundant immediate generation code.
13023
13024 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
13025
13026         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
13027         (AARCH64_NUM_BITMASKS): Remove.
13028         (aarch64_bitmasks_cmp): Remove.
13029         (aarch64_build_bitmask_table): Remove.
13030
13031 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
13032
13033         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
13034         slow immediate matching loops with a faster algorithm.
13035
13036 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
13037
13038         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
13039         faster algorithm.
13040
13041 2015-09-20  Jeff Law  <law@redhat.com>
13042
13043         PR tree-optimization/47679
13044         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
13045         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
13046         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
13047         (thread_through_normal_block): Use record_temporary_equivalences.
13048
13049 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
13050
13051         * coretypes.h (gimple): Change typedef to be a forward declaration.
13052         * gimple.h (gimple_statement_base): rename to gimple.
13053         * (all functions and types using gimple): Adjust.
13054         * *.[ch]: Likewise.
13055
13056 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
13057             David Edelsohn  <dje.gcc@gmail.com>
13058
13059         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
13060         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
13061         (EH_FRAME_THROUGH_COLLECT2): Define.
13062         (EH_TABLES_CAN_BE_READ_ONLY): Define.
13063         (ASM_OUTPUT_DWARF_PCREL): Define.
13064         (ASM_OUTPUT_DWARF_DATAREL): Define.
13065
13066 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
13067
13068         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
13069         of TARGET_ELF32.
13070
13071 2015-09-18  Jeff Law  <law@redhat.com>
13072
13073         PR tree-optimization/47679
13074         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
13075         it here ...
13076         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
13077         object.  Update constructor.
13078         (pass_dominator::execute):  Corresponding chagnes to declaration
13079         and initialization of avail_exprs_stack.  Update constructor call
13080         for dom_opt_dom_walker object.
13081         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
13082         it down to children as needed.
13083         (record_equivalences_from_incoming_edge): Likewise.
13084         (eliminate_redundant_computations): Likewise.
13085         (record_equivalences_from_stmt): Likewise.
13086         (simplify_stmt_for_jump_threading): Likewise.
13087         (record_temporary_equivalences): Likewise.
13088         (optimize_stmt): Likewise.
13089         (dom_opt_dom_walker::thread_across_edge): Update access to
13090         avail_exprs_stack object and pass it to children as needed.
13091         (dom_opt_dom_walker::before_dom_children): Similarly.
13092         (dom_opt_dom_walker::after_dom_children): Similarly.
13093         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
13094         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
13095         Add avail_expr_stack argument.  Pass it to children as needed.
13096         (dummy_simplify): Likewise.
13097         (simplify_control_stmt_condition): Likewise.
13098         (thread_around_empty_blocks): Likewise.
13099         (thread_through_normal_block): Likewise.
13100         (thread_across_edge): Likewise.
13101         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13102         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
13103
13104         PR tree-optimization/47679
13105         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
13106         it here ...
13107         (dom_opt_dom_walker): New private member holding the const_and_copies
13108         object.  Update constructor.
13109         (pass_dominator::execute): Corresponding changes to declaration
13110         and initialization of const_and_copies.  Update constructor call
13111         for the dom_opt_dom_walker object.
13112         (record_temporary_equivalences): Accept const_and_copies argument
13113         pass it down to children as needed.
13114         (record_equality): Likewise.
13115         (record_equivalences_from_incoming_edge): Likewise.
13116         (cprop_into_successor_phis, optimize_stmt): Likewise.
13117         (eliminate_redundant_computations): Likewise.
13118         (dom_opt_dom_walker::thread_across_edge): Update access to
13119         const_and_copies object and pass it to children as needed.
13120         (dom_opt_dom_walker::before_dom_children): Similarly.
13121         (dom_opt_dom_walker::after_dom_children): Similarly.
13122
13123         PR tree-optimization/47679
13124         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
13125         it into the avail_exprs_stack class.
13126         (pass_dominator::execute): Corresponding changes to declaration
13127         and initialization of avail_exprs.  Pass avail_exprs to
13128         dump_dominator_optimization_stats.
13129         (record_cond): Extract avail_exprs from avail_exprs_stack.
13130         (lookup_avail_expr): Similarly.
13131         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
13132         position in file.
13133         (dump_dominator_optimization_stats): Make static and prototype.
13134         Add argument for the hash table to dump.
13135         (debug_dominator_optimization_stats): Remove.
13136         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
13137         prototype.
13138         (debug_dominator_optimization_stats): Similarly.
13139         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
13140         "void" in prototype for pop_to_marker method.  Add accessor method
13141         for the underlying avail_exprs table.
13142
13143         * tree-ssa-threadedge.c: Remove trailing whitespace.
13144
13145 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
13146
13147         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
13148         unsigned.
13149         (pa_ldil_cint_p): Likewise.
13150         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
13151         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
13152         Update callers.
13153         * config/pa/pa.md: Likewise.
13154
13155 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
13156
13157         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
13158         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
13159         (diagnostic_show_locus): Likewise.
13160         (diagnostic_print_caret_line): Likewise.
13161         * diagnostic-show-locus.c: New file.
13162
13163 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
13164
13165         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
13166         "back" parameter. Declare label in #if block.
13167
13168 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
13169
13170         PR middle-end/67619
13171         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
13172         the address to a register.
13173
13174 2015-09-18  Jeff Law  <law@redhat.com>
13175
13176         PR tree-optimization/47679
13177         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
13178         * tree-ssa-dom.c: Remove unnecessary header includes.
13179         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
13180         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
13181         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
13182         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
13183         (pass_phi_only_cprop::execute): Likewise.
13184         (make_pass_phi_only_cprop): Likewise.
13185         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
13186         uses of file scoped statics by passing the required objects
13187         as parameters wherever needed.
13188
13189 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
13190             David Edelsohn  <dje.gcc@gmail.com>
13191
13192         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
13193         EH_FRAME_THROUGH_COLLECT2.
13194         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
13195         DW_EH_PE_datarel.
13196         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
13197         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
13198         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
13199         * except.c (switch_to_exception_section): Use a read-only section
13200         even if EH_FRAME_SECTION_NAME is undefined.
13201         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
13202         * collect2.c (write_c_file_stat): Provide dbase on AIX.
13203         (scan_prog_file): Don't export __dso_handle nor
13204         __gcc_unwind_dbase.
13205         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
13206         (EH_TABLES_CAN_BE_READ_ONLY): Define.
13207         (ASM_OUTPUT_DWARF_PCREL): Define.
13208         (ASM_OUTPUT_DWARF_DATAREL): Define.
13209         (EH_FRAME_THROUGH_COLLECT2): Define.
13210         (EH_FRAME_IN_DATA_SECTION): Delete.
13211         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
13212         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
13213         Declare.
13214         (rs6000_asm_output_dwarf_datarel): Declare.
13215         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
13216         (rs6000_aix_asm_output_dwarf_datarel): New.
13217         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
13218         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
13219         (EH_FRAME_THROUGH_COLLECT2): Define.
13220         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
13221         (EH_FRAME_THROUGH_COLLECT2): Define.
13222         (EH_TABLES_CAN_BE_READ_ONLY): Define.
13223         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
13224         (EH_FRAME_THROUGH_COLLECT2): New.
13225         (ASM_OUTPUT_DWARF_DATAREL): New.
13226         * doc/tm.texi: Regenerate.
13227
13228 2015-09-18  Richard Biener  <rguenther@suse.de>
13229
13230         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
13231         we're in early phase.
13232         (schedule_generic_params_dies_gen): Likewise.
13233         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
13234         work as possible, retaining unhandled cases.
13235         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
13236         clear out generic_type_instances at the end.
13237         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
13238         (dwarf2out_early_finish): ... here.  Do most of
13239         gen_remaining_tmpl_value_param_die_attribute here.
13240
13241 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
13242
13243         PR tree-optimization/67283
13244         * tree-sra.c (type_consists_of_records_p): Rename to...
13245         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
13246         (completely_scalarize_record): Rename to...
13247         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
13248         (scalarize_elem): New.
13249         (analyze_all_variable_accesses): Follow renamings.
13250
13251 2015-09-18  Richard Biener  <rguenther@suse.de>
13252
13253         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
13254         in early-dwarf.
13255
13256 2015-09-18  Richard Biener  <rguenther@suse.de>
13257
13258         PR tree-optimization/66142
13259         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
13260         treat MEM[&x] and x the same.
13261         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
13262         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
13263         when we simplified sth.
13264         (vn_reference_maybe_forwprop_address): Likewise.
13265         (valueize_refs_1): When we simplified through
13266         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
13267         set valueized_anything to true.
13268         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
13269         one ref kills the other instead of just a offset-based test.
13270         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
13271         for the operand_equal_p test to compare bases and also compare
13272         sizes.
13273
13274 2015-09-17  Christian Bruel  <christian.bruel@st.com>
13275
13276         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
13277
13278 2015-09-17  Richard Henderson  <rth@redhat.com>
13279
13280         PR libstdc++/65913
13281         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
13282         pointers that encode the alignment of the object.
13283
13284 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
13285
13286         PR rtl-optimization/66790
13287         * df-problems.c (LIVE): Amend documentation.
13288
13289 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
13290
13291         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
13292         and optabs-tree.o.
13293         (GTFILES): Replace optabs.c with optabs-libfunc.c.
13294         * genopinit.c (main): Add an include guard to insn-opinit.h.
13295         Protect the rtx_code parts with NUM_RTX_CODE.
13296         * optabs.h: Split parts out to...
13297         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
13298         * optabs.c: Split parts out to...
13299         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
13300         * cilk-common.c: Include optabs-query.h rather than optabs.h.
13301         * fold-const.c: Likewise.
13302         * target-globals.c: Likewise.
13303         * tree-if-conv.c: Likewise.
13304         * tree-ssa-forwprop.c: Likewise.
13305         * tree-ssa-loop-prefetch.c: Likewise.
13306         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
13307         Remove unncessary include files.
13308         * tree-ssa-phiopt.c: Likewise.
13309         * tree-ssa-reassoc.c: Likewise.
13310         * tree-switch-conversion.c: Likewise.
13311         * tree-vect-data-refs.c: Likewise.
13312         * tree-vect-generic.c: Likewise.
13313         * tree-vect-loop.c: Likewise.
13314         * tree-vect-patterns.c: Likewise.
13315         * tree-vect-slp.c: Likewise.
13316         * tree-vect-stmts.c: Likewise.
13317         * tree-vrp.c: Likewise.
13318         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
13319         rather than optabs.h.
13320         * expr.c: Include optabs-tree.h.
13321         * function.c: Likewise.
13322
13323 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
13324
13325         PR middle-end/65958
13326         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
13327         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
13328         * config/arm/arm.c: Include common/common-target.h.
13329         (use_return_insn): Return 0 if the static chain register was saved
13330         above a non-APCS frame.
13331         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
13332         (struct scratch_reg): New.
13333         (get_scratch_register_on_entry): New function.
13334         (release_scratch_register_on_entry): Likewise.
13335         (arm_emit_probe_stack_range): Likewise.
13336         (output_probe_stack_range): Likewise.
13337         (arm_expand_prologue): Factor out code dealing with the IP register
13338         for nested function and adjust it for stack checking.
13339         Invoke arm_emit_probe_stack_range if static builtin stack checking
13340         is enabled.
13341         (thumb1_expand_prologue): Sorry out if static builtin stack checking
13342         is enabled.
13343         (arm_expand_epilogue): Add the saved static chain register, if any, to
13344         the amount of pre-pushed registers to pop.
13345         (arm_frame_pointer_required): Return true if static stack checking is
13346         enabled and we want to catch the exception with the EABI unwinder.
13347         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
13348         (UNSPEC_PROBE_STACK_RANGE): Likewise.
13349         * config/arm/arm.md (probe_stack): New insn.
13350         (probe_stack_range): Likewise.
13351
13352 2015-09-17  Richard Biener  <rguenther@suse.de>
13353
13354         * genmatch.c (parser::parse_expr): Improve error message
13355         for mis-placed flags.
13356
13357 2015-09-17  Richard Biener  <rguenther@suse.de>
13358
13359         * passes.c (rest_of_decl_compilation): Always call early_global_decl
13360         debug hook when we created a varpool node.
13361         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
13362         dwarf2out_early_global_decl, when not just add location or
13363         value attributes to existing DIEs.
13364
13365 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
13366
13367         * config/aarch64/aarch64.md (copysigndf3): New.
13368         (copysignsf3): Likewise.
13369
13370 2015-09-17  David S. Miller  <davem@davemloft.net>
13371
13372         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
13373         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
13374         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
13375         (HARD_REGNO_CALLER_SAVE_MODE): Define.
13376         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
13377         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
13378         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
13379         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
13380         provide when flag_pic.
13381
13382 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
13383
13384         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
13385         object_allocator change.
13386
13387 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
13388
13389         PR tree-optimization/66388
13390         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
13391         (dump_iv): Dump no_overflow information.
13392         (alloc_iv): Initialize new field for struct iv.
13393         (mark_bivs): Count number of no_overflow bivs.
13394         (find_deriving_biv_for_expr, record_biv_for_address_use): New
13395         functions.
13396         (idx_find_step): Call new functions above.
13397         (add_candidate_1, add_candidate): New paramter.
13398         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
13399         (get_computation_aff): Simplify convertion of cand for BIV.
13400         (get_computation_cost_at): Step cand's base if necessary.
13401
13402 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
13403
13404         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
13405         parameter.
13406         (tree_simplify_using_condition): Ditto.
13407         (simplify_using_initial_conditions): Ditto.
13408         (loop_exits_before_overflow): Pass new argument to function
13409         simplify_using_initial_conditions.  Remove case for type conversions
13410         simplification.
13411         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
13412         parameter.
13413         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
13414         in iv base using loop initial conditions.
13415
13416 2015-09-16  Jeff Law  <law@redhat.com>
13417
13418         PR tree-optimization/47679
13419         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
13420         (free_all_edge_infos): Use it.
13421         (allocate_edge_info): Free preexisting edge info data.
13422         (pass_dominator::execute): Set up initial edge info structures.
13423         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
13424         thread_across_edge.
13425         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
13426         If non-null, then push/pop markers appropriately.
13427         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13428         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
13429         thread-across_edge.
13430
13431 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
13432
13433         * config/ft32/ft32.c: Fix the memory address space predicate.
13434
13435 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
13436
13437         PR target/67573
13438         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
13439         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
13440
13441 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13442
13443         * toplev.h (check_global_declaration): Remove declaration.
13444         * toplev.c (check_global_declaration): Move to ...
13445         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
13446         (analyze_functions): Update call.
13447
13448 2015-09-16  David S. Miller  <davem@davemloft.net>
13449
13450         * lra-constraints.c (simplify_operand_subreg): Do not assume that
13451         lowpart of a SUBREG has offset zero.
13452
13453 2015-09-16  Jeff Law  <law@redhat.com>
13454
13455         PR tree-optimization/47679
13456         * tree-ssa-dom.c (enum expr_kind): Moved from here to
13457         tree-ssa-scopedtables.h.
13458         (struct hashable_expr, class expr_hash_elt): Likewise.
13459         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
13460         Move associated methods into tree-ssa-scopedtables.c.
13461         (avail_expr_hash, initialize_expr_from_cond): Similarly.
13462         (hashable_expr_equal_p, add_expr_commutative): Likewise.
13463         (add_hashable_expr): Likewise.
13464         (record_cond): Delete element directly.
13465         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
13466         private copy ctor and assignment operator methods.
13467         (expr_elt_hasher): Inline trivial methods.
13468         (initialize_expr_from_cond): Prototype.
13469         * tree-ssa-scopedtables.c: Add necessary includes, functions and
13470         methods that were previously in tree-ssa-dom.c.  Improve various
13471         comments.
13472
13473 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
13474
13475         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
13476
13477 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
13478
13479         PR bootstrap/67587
13480         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
13481         fixup_partitions.
13482
13483 2015-09-16  Richard Biener  <rguenther@suse.de>
13484
13485         PR middle-end/67253
13486         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
13487         location of possibly shared trees.
13488
13489 2015-09-16  Richard Biener  <rguenther@suse.de>
13490
13491         PR middle-end/67271
13492         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
13493
13494 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
13495
13496         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
13497         offset and size computations instead of HOST_WIDE_INT.
13498
13499 2015-09-16  Richard Biener  <rguenther@suse.de>
13500
13501         PR middle-end/67442
13502         * fold-const.c (extract_muldiv_1): Properly extend multiplication
13503         result before builting a tree via wide_int_to_tree.
13504
13505 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
13506
13507         * Makefile.in: Add memory-block.cc
13508         (pool_allocator::initialize): Use fixed block size.
13509         (pool_allocator::release): Use memory_block_pool.
13510         (pool_allocator::allocate): Likewise.
13511         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
13512         object pools.
13513         * cfg.c (initialize_original_copy_tables): Likewise.
13514         * cselib.c (elt_list_pool, elt_loc_list_pool,
13515         cselib_val_pool): Likewise.
13516         * df-problems.c (df_chain_alloc): Likewise.
13517         * df-scan.c (df_scan_alloc): Likewise.
13518         * dse.c (cse_store_info_pool, rtx_store_info_pool,
13519         read_info_type_pool, insn_info_type_pool, bb_info_pool,
13520         group_info_pool, deferred_change_pool): Likewise.
13521         * et-forest.c (et_nodes, et_occurrences): Likewise.
13522         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
13523         ipcp_agg_lattice_pool): Likewise.
13524         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
13525         * ipa-profile.c (histogram_pool): Likewise.
13526         * ipa-prop.c (ipa_refdesc_pool): Likewise.
13527         * ira-build.c (live_range_pool, allocno_pool, object_pool,
13528         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
13529         * ira-color.c (update_cost_record_pool): Likewise.
13530         * lra-lives.c (lra_live_range_pool): Likewise.
13531         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
13532         * memory-block.cc: New file.
13533         * memory-block.h: New file.
13534         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
13535         * sched-deps.c (sched_deps_init): Likewise.
13536         * sel-sched-ir.c (sched_lists_pool): Likewise.
13537         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
13538         * tree-sra.c (access_pool): Likewise.
13539         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13540         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
13541         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
13542         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
13543         * tree-ssa-strlen.c (strinfo_pool): Likewise.
13544         * tree-ssa-structalias.c (variable_info_pool): Likewise.
13545         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
13546         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
13547
13548 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13549
13550         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
13551         definition.
13552         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
13553         call0 ABI.
13554
13555 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13556
13557         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
13558         to pass TLS call argument, according to current ABI.
13559         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
13560         callx0 for TLS call, according to current ABI.
13561
13562 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13563
13564         * tree-eh.c (lower_try_finally_dup_block): Clear location information
13565         on stack restore statements.
13566         (decide_copy_try_finally): Do not consider a stack restore statement as
13567         coming from sources.
13568
13569 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
13570
13571         * config/alpha/alpha.c (alpha_expand_block_clear): Use
13572         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
13573
13574 2015-09-15  Jeff Law  <law@redhat.com>
13575
13576         PR tree-optimization/47679
13577         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
13578         methods and private members.
13579         (avail_exprs_stack): Similarly.  Change type of global
13580         from a pair of expr_hash_elt_t to the new class.
13581         (expr_elt_hasher::hash): Corresponding changes.
13582         (expr_elt_hasher::equal): Similarly.
13583         (avail_expr_hash): Similarly.
13584         (pass_dominator::execute): Similarly.
13585         (dom_opt_dom_walker::thread_across_edge): Similarly.
13586         (record_cond): Similarly.
13587         (dom_opt_dom_walker::before_dom_children): Similarly.
13588         (dom_opt_dom_walker::after_dom_children): Similarly.
13589         (lookup_avail_expr): Likewise.
13590         (initialize_hash_element): Now a expr_hash_elt constructor.
13591         (initialize_hash_element_from_expr): Similarly.
13592         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
13593         (free_expr_hash_elt): Call dtor for the element.
13594         (remove_local_expressions_from_table): Now the "pop_to_marker"
13595         method in the available_exprs_stack class.
13596         (avail_expr_stack::record_expr): Method factored out.
13597         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
13598         Fix formatting.
13599         (hashable_expr_equal_p): Fix formatting.
13600
13601 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
13602
13603         * input.h (location_get_source_line): Drop "expanded_location"
13604         param in favor of a file and line number.
13605         * input.c (location_get_source_line): Likewise.
13606         (dump_location_info): Update for change in signature of
13607         location_get_source_line.
13608         * diagnostic.c (diagnostic_print_caret_line): Likewise.
13609
13610 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13611
13612         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
13613         Bump to 4KB for SJLJ exceptions.
13614         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
13615         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
13616         * doc/tm.texi: Regenerate.
13617
13618 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13619
13620         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
13621         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
13622         Update prototype.
13623
13624 2015-09-15  Richard Biener  <rguenther@suse.de>
13625
13626         PR tree-optimization/67470
13627         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
13628         structure for PHI hoisting by inserting a forwarder block
13629         if appropriate.
13630
13631 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13632
13633         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
13634         (arm_option_print): New function.
13635
13636 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13637
13638         PR target/52144
13639         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
13640         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
13641         Remove flags parameter.
13642         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
13643         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
13644         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
13645         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
13646         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
13647         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
13648         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
13649         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
13650
13651 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13652
13653         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
13654
13655         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
13656         AARCH64_VALID_SIMD_DREG_MODE.
13657
13658 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13659
13660         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
13661         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
13662         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
13663         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
13664         aarch64_ld4_lane<mode>): Combine together, making...
13665         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13666         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13667         aarch64_st4_lane<mode>): Combine together, making...
13668         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13669         * config/aarch64/iterators.md (nregs): Add comment.
13670
13671 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13672
13673         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
13674         Change operand mode from <V_TWO_ELEM> to BLK.
13675         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
13676         (aarch64_vec_store_lanesoi_lane<mode): Likewise
13677         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13678         (aarch64_ld2_lane<mode>): Likewise.
13679         (aarch64_st2_lane<VQ:mode>): Likewise.
13680         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
13681
13682 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13683
13684         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
13685         Change operand mode from <V_FOUR_ELEM> to BLK.
13686         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13687         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
13688         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13689         (aarch64_ld4_lane<mode>): Likewise.
13690         (aarch64_st4_lane<mode>): Likewise.
13691         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
13692
13693 2015-09-15  Richard Biener  <rguenther@suse.de>
13694
13695         PR middle-end/67563
13696         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
13697         transfer EH info from old to new stmt.
13698         (replace_call_with_value): Likewise.
13699         (replace_call_with_call_and_fold): Likewise.
13700         (gimple_fold_builtin_memory_op): Likewise.
13701         (gimple_fold_builtin_memset): Likewise.
13702         (gimple_fold_builtin_stpcpy): Likewise.
13703         (gimple_fold_call): Likewise.
13704
13705 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13706
13707         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
13708         comment.
13709         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
13710         (aarch64_simd_intEI_type_node): Likewise.
13711         (aarch64_simd_builtin_std_type): Remove EImode case.
13712         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
13713         * config/aarch64/aarch64-modes.def: Remove EImode.
13714
13715 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13716
13717         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
13718         Change operand mode from <V_THREE_ELEM> to BLK.
13719         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13720         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
13721         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13722         (aarch64_ld3_lane<mode>): Likewise.
13723         (aarch64_st3_lane<mode>): Likewise.
13724         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
13725
13726 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13727
13728         * config/aarch64/aarch64-simd.md
13729         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
13730         Change all TImode operands to BLKmode.
13731         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
13732         Change all EImode operands to BLKmode.
13733         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
13734         Change all OImode operands to BLKmode.
13735
13736         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
13737         and call set_mem_size.
13738         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
13739
13740         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
13741
13742 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13743
13744         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
13745         to...
13746         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
13747
13748         (vec_store_lanesci_lane<mode>): Rename to...
13749         (aarch64_vec_store_lanesci_lane<mode>): ...this.
13750
13751         (vec_store_lanesxi_lane<mode>): Rename to...
13752         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
13753
13754         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13755         aarch64_st4_lane<mode>): Follow renaming.
13756
13757 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13758
13759         * config/s390/s390.c (s390_const_operand_ok): Add missing
13760         brackets.
13761
13762 2015-09-15  Richard Biener  <rguenther@suse.de>
13763
13764         PR lto/67568
13765         * lto-streamer.h (lto_location_cache::current_sysp): Properly
13766         initialize.
13767         * lto-streamer-out.c (clear_line_info): Likewise.
13768
13769 2015-09-15  Richard Biener  <rguenther@suse.de>
13770
13771         * doc/match-and-simplify.texi: Fix wording.
13772
13773 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
13774
13775         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
13776         unnecessary type conversion in op1.
13777
13778 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
13779
13780         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
13781         (dup_block_and_redirect): Delete function.
13782         (can_dup_for_shrink_wrapping): New function.
13783         (fix_fake_fallthrough_edge): New function.
13784         (try_shrink_wrapping): Rewrite function.
13785         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
13786
13787 2015-09-14  Rich Felker  <dalias@libc.org>
13788
13789         * configure.ac: Change target pattern for sh TLS support
13790         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
13791         * configure: Regenerate.
13792
13793 2015-09-14  Jeff Law  <law@redhat.com>
13794
13795         PR tree-optimization/47679
13796         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
13797         type rather than void *.
13798
13799 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13800
13801         PR fortran/67460
13802         * diagnostic.c (diagnostic_initialize): Do not set
13803         some_warnings_are_errors.
13804         (diagnostic_finish): Use DK_WERROR count instead.
13805         (diagnostic_report_diagnostic): Do not set
13806         some_warnings_are_errors.
13807         * diagnostic.h (struct diagnostic_context): Remove
13808         some_warnings_are_errors.
13809
13810 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
13811
13812         * config/sparc/predicates.md (const_all_ones_operand): Use
13813         CONSTM1_RTX to simplify definition.
13814
13815 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
13816
13817         PR target/67061
13818         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
13819         Handle call insns.
13820
13821 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
13822
13823         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
13824         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
13825         OPT_fshow_column to handled saved option cases.
13826         (append_compiler_options): Do not skip the above added options.
13827
13828 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13829
13830         PR target/63304
13831         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
13832         nopcrelative_literal_loads.
13833         (aarch64_classify_address): Likewise.
13834         (aarch64_constant_pool_reload_icode): Define.
13835         (aarch64_secondary_reload): Handle secondary reloads for
13836         literal pools.
13837         (aarch64_override_options): Handle nopcrelative_literal_loads.
13838         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
13839         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
13840         Define.
13841         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
13842         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
13843         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
13844         predicate.
13845         * doc/invoke.texi (mpc-relative-literal-loads): Document.
13846
13847 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
13848
13849         PR middle-end/67401
13850         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
13851         sync_compare_and_swap_optab libcall to target_oval.
13852
13853 2015-09-14  Marek Polacek  <polacek@redhat.com>
13854
13855         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
13856         value.
13857         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
13858
13859 2015-09-11  Mark Wielaard  <mjw@redhat.com>
13860
13861         PR c/28901
13862         * toplev.c (check_global_declaration): Check and use
13863         warn_unused_const_variable.
13864         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
13865         (-Wunused-variable): Remove non-constant. For C implies
13866         -Wunused-const-variable.
13867         (-Wunused-const-variable): New.
13868
13869 2015-09-14  Richard Biener  <rguenther@suse.de>
13870
13871         * doc/match-and-simplify.texi: Update for changed syntax
13872         of inner ifs and the new switch expression.
13873
13874 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
13875
13876         * config/i386/haswell.md: New file describing Haswell pipeline.
13877         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
13878         haswell-like processors.
13879         (ix86_reassociation_width): Increase reassociation width for 64-bit
13880         Haswell processor family.
13881         * config/i386/i386.md: Introduce haswell cpu and include new md file.
13882
13883 2015-09-14  Richard Biener  <rguenther@suse.de>
13884
13885         * doc/match-and-simplify.texi: Fixup some formatting issues
13886         and document the 's' flag.
13887
13888 2015-09-13  Olivier Hainque  <hainque@adacore.com>
13889             Eric Botcazou  <ebotcazou@adacore.com>
13890
13891         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
13892         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
13893         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
13894         (TARGET_CPU_gr5): Likewise.
13895         (TARGET_CPU_gr6): Likewise.
13896         (MULTILIB_DEFAULTS): Likewise.
13897         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
13898         for mcpu=gr5 and mcpu=gr6.
13899         (MULTILIB_DIRNAMES): Adjust accordingly.
13900
13901 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13902
13903         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
13904         (mem_ref_p): Likewise.
13905         (outermost_indep_loop): Adjust.
13906         (mem_ref_in_stmt): Likewise.
13907         (determine_max_movement): Likewise.
13908         (mem_ref_alloc): Likewise.
13909         (record_mem_ref_loc): Likewise.
13910         (set_ref_stored_in_loop): Likewise.
13911         (mark_ref_stored): Likewise.
13912         (gather_mem_refs_stmt): Likewise.
13913         (mem_refs_may_alias_p): Likewise.
13914         (for_all_locs_in_loop): Likewise.
13915         (struct rewrite_mem_ref_loc): Likewise.
13916         (rewrite_mem_refs): Likewise.
13917         (struct first_mem_ref_loc_1): Likewise.
13918         (first_mem_ref_loc): Likewise.
13919         (struct sm_set_flag_if_changed): Likewise.
13920         (execute_sm_if_changed_flag_set): Likewise.
13921         (execute_sm): Likewise.
13922         (hoist_memory_references):
13923         (struct ref_always_accessed): Likewise.
13924         (ref_always_accessed_p): Likewise.
13925         (refs_independent_p): Likewise.
13926         (record_dep_loop): Likewise.
13927         (ref_indep_loop_p_1): Likewise.
13928         (ref_indep_loop_p_2): Likewise.
13929         (ref_indep_loop_p): Likewise.
13930         (can_sm_ref_p): Likewise.
13931         (find_refs_for_sm): Likewise.
13932         (tree_ssa_lim_finalize): Likewise.
13933
13934 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13935
13936         * dwarf2out.c (dw_attr_ref): Remove typedef.
13937         (dw_line_info_ref): Likewise.
13938         (pubname_ref): Likewise.
13939         (dw_ranges_ref): Likewise.
13940         (dw_ranges_by_label_ref): Likewise.
13941         (comdat_type_node_ref): Likewise.
13942         (get_AT): Adjust.
13943         (get_AT_low_pc): Likewise.
13944         (get_AT_hi_pc): Likewise.
13945         (get_AT_string): Likewise.
13946         (get_AT_flag): Likewise.
13947         (get_AT_unsigned): Likewise.
13948         (get_AT_ref): Likewise.
13949         (get_AT_file): Likewise.
13950         (remove_AT): Likewise.
13951         (print_die): Likewise.
13952         (check_die): Likewise.
13953         (die_checksum): Likewise.
13954         (attr_checksum_ordered): Likewise.
13955         (struct checksum_attributes): Likewise.
13956         (collect_checksum_attributes): Likewise.
13957         (die_checksum_ordered): Likewise.
13958         (same_die_p): Likewise.
13959         (is_declaration_die): Likewise.
13960         (clone_die): Likewise.
13961         (clone_as_declaration): Likewise.
13962         (copy_declaration_context): Likewise.
13963         (break_out_comdat_types): Likewise.
13964         (copy_decls_walk): Likewise.
13965         (output_location_lists): Likewise.
13966         (external_ref_hasher::hash): Likewise.
13967         (optimize_external_refs_1): Likewise.
13968         (build_abbrev_table): Likewise.
13969         (size_of_die): Likewise.
13970         (unmark_all_dies): Likewise.
13971         (size_of_pubnames): Likewise.
13972         (output_die_abbrevs): Likewise.
13973         (output_die): Likewise.
13974         (output_pubnames): Likewise.
13975         (add_ranges_num): Likewise.
13976         (add_ranges_by_labels): Likewise.
13977         (add_high_low_attributes): Likewise.
13978         (gen_producer_string): Likewise.
13979         (dwarf2out_set_name): Likewise.
13980         (new_line_info_table): Likewise.
13981         (prune_unused_types_walk_attribs): Likewise.
13982         (prune_unused_types_update_strings): Likewise.
13983         (prune_unused_types): Likewise.
13984         (resolve_addr): Likewise.
13985         (optimize_location_lists_1): Likewise.
13986         (index_location_lists): Likewise.
13987         (dwarf2out_finish): Likewise.
13988
13989 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13990
13991         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
13992
13993 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13994
13995         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
13996         (dump_asserts_for): Adjust.
13997         (register_new_assert_for): Likewise.
13998         (process_assert_insertions): Likewise.
13999         (insert_range_assertions): Likewise.
14000
14001 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14002
14003         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
14004         and remove typedef.
14005         (new_temp_expr_table): Adjust.
14006         (free_temp_expr_table): Likewise.
14007         (version_to_be_replaced_p): Likewise.
14008         (make_dependent_on_partition): Likewise.
14009         (add_to_partition_kill_list): Likewise.
14010         (remove_from_partition_kill_list): Likewise.
14011         (add_dependence): Likewise.
14012         (finished_with_expr): Likewise.
14013         (process_replaceable): Likewise.
14014         (kill_expr): Likewise.
14015         (kill_virtual_exprs): Likewise.
14016         (mark_replaceable): Likewise.
14017         (find_replaceable_in_bb): Likewise.
14018         (find_replaceable_exprs): Likewise.
14019         (debug_ter): Likewise.
14020
14021 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14022
14023         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
14024         (struct btr_user): Rename from btr_user_s.
14025         (struct btr_def): Rename from btr_def_s.
14026         (find_btr_def_group): Adjust.
14027         (add_btr_def): Likewise.
14028         (new_btr_user): Likewise.
14029         (note_other_use_this_block): Likewise.
14030         (compute_defs_uses_and_gen): Likewise.
14031         (link_btr_uses): Likewise.
14032         (build_btr_def_use_webs): Likewise.
14033         (block_at_edge_of_live_range_p): Likewise.
14034         (btr_def_live_range): Likewise.
14035         (combine_btr_defs): Likewise.
14036         (move_btr_def): Likewise.
14037         (migrate_btr_def): Likewise.
14038         (migrate_btr_defs): Likewise.
14039
14040 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14041
14042         * var-tracking.c (shared_hash_def): Rename to shared_hash.
14043         (shared_hash): Remove typedef.
14044         (struct dataflow_set): Adjust.
14045         (shared_hash_unshare): Likewise.
14046         (dataflow_set_merge): Likewise.
14047         (vt_initialize): Likewise.
14048         (vt_finalize): Likewise.
14049
14050 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14051
14052         * var-tracking.c (struct location_chain): Rename from
14053         location_chain_def.
14054         (struct variable_part): Adjust.
14055         (variable_htab_free): Likewise.
14056         (unshare_variable): Likewise.
14057         (get_init_value): Likewise.
14058         (get_addr_from_local_cache): Likewise.
14059         (drop_overlapping_mem_locs): Likewise.
14060         (val_reset): Likewise.
14061         (struct variable_union_info): Likewise.
14062         (variable_union): Likewise.
14063         (find_loc_in_1pdv): Likewise.
14064         (insert_into_intersection): Likewise.
14065         (intersect_loc_chains): Likewise.
14066         (canonicalize_loc_order_check): Likewise.
14067         (canonicalize_values_mark): Likewise.
14068         (canonicalize_values_star): Likewise.
14069         (canonicalize_vars_star): Likewise.
14070         (variable_merge_over_cur): Likewise.
14071         (remove_duplicate_values): Likewise.
14072         (variable_post_merge_new_vals): Likewise.
14073         (variable_post_merge_perm_vals): Likewise.
14074         (find_mem_expr_in_1pdv): Likewise.
14075         (dataflow_set_preserve_mem_locs): Likewise.
14076         (dataflow_set_remove_mem_locs): Likewise.
14077         (variable_part_different_p): Likewise.
14078         (onepart_variable_different_p): Likewise.
14079         (find_src_set_src): Likewise.
14080         (dump_var): Likewise.
14081         (set_slot_part): Likewise.
14082         (clobber_slot_part): Likewise.
14083         (delete_slot_part): Likewise.
14084         (vt_expand_var_loc_chain): Likewise.
14085         (emit_note_insn_var_location): Likewise.
14086         (vt_finalize): Likewise.
14087
14088 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14089
14090         * dse.c (store_info_t): Remove typedef.
14091         (group_info_t): Likewise.
14092         (const_group_info_t): Likewise.
14093         (deferred_change_t): Likewise.
14094         (get_group_info): Adjust.
14095         (free_store_info): Likewise.
14096         (canon_address): Likewise.
14097         (clear_rhs_from_active_local_stores): Likewise.
14098         (record_store): Likewise.
14099         (replace_read): Likewise.
14100         (check_mem_read_rtx): Likewise.
14101         (scan_insn): Likewise.
14102         (remove_useless_values): Likewise.
14103         (dse_step1): Likewise.
14104         (dse_step2_init): Likewise.
14105         (dse_step2_nospill): Likewise.
14106         (scan_stores_nospill): Likewise.
14107         (scan_reads_nospill): Likewise.
14108         (dse_step3_exit_block_scan): Likewise.
14109         (dse_step3): Likewise.
14110         (dse_step5_nospill): Likewise.
14111         (dse_step6): Likewise.
14112
14113 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14114
14115         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
14116         (alias_set_entry): Remove typedef.
14117         (alias_set_subset_of): Adjust.
14118         (alias_sets_conflict_p): Likewise.
14119         (init_alias_set_entry): Likewise.
14120         (get_alias_set): Likewise.
14121         (new_alias_set): Likewise.
14122         (record_alias_subset): Likewise.
14123
14124 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
14125
14126         * doc/install.texi (Downloading the source): Mark up
14127         contrib/download_prerequisites properly and drop leading "./".
14128
14129 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14130
14131         * config/arc/arc.h: Remove define of STRUCT_VALUE.
14132         * config/lm32/lm32.h: Likewise.
14133         * config/mep/mep.h: Likewise.
14134         * config/visium/visium.h: Likewise.
14135         * system.h: Poison STRUCT_VALUE macro.
14136
14137 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
14138
14139         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
14140         CONSTANT_P operands.
14141
14142 2015-09-11  David S. Miller  <davem@davemloft.net>
14143
14144         * config/sparc/constraints.md: Make "U" constraint a real register
14145         constraint.
14146         * config/sparc/sparc.c (TARGET_LRA_P): Define.
14147         (D_MODES, DF_MODES): Add missing cast.
14148         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
14149         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
14150         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
14151         cost to 8.
14152         * config/sparc/sparc.h (PROMOTE_MODE): Define.
14153         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
14154         provide these insn when flag_pic.
14155
14156 2015-09-11  Jeff Law  <law@redhat.com>
14157
14158         PR tree-optimization/47679
14159         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
14160         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
14161         member with m_.  Update inline member functions as necessary.  Add
14162         toplevel comment.
14163         * tree-ssa-scopedtables.c: Update const_and_copies's member
14164         functions to use m_ prefix to access the stack.
14165
14166 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
14167
14168         * graphite-optimize-isl.c (disable_tiling): Remove.
14169         (get_schedule_for_band): Do not use disable_tiling.
14170         (get_prevector_map): Delete function.
14171         (enable_polly_vector): Remove.
14172         (get_schedule_for_band_list): Remove dead code.
14173
14174 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
14175
14176         * graphite-optimize-isl.c (get_tile_map): Refactor.
14177         (get_schedule_for_band): Same.
14178         (getScheduleForBand): Same.
14179         (get_prevector_map): Same.
14180         (get_schedule_for_band_list): Same.
14181         (get_schedule_map): Same.
14182         (get_single_map): Same.
14183         (apply_schedule_map_to_scop): Same.
14184         (optimize_isl): Same.
14185
14186 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14187
14188         PR target/63304
14189         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
14190         (movtf): Delete.
14191         * config/aarch64/iterators.md (GPF_TF_F16): New.
14192         (GPF_F16): Delete.
14193
14194 2015-09-10  Nathan Sidwell  <nathan@acm.org>
14195
14196         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
14197         (nvptx_reorg): Adjust comments.
14198
14199 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
14200
14201         PR bootstrap/67363
14202         * configure.ac: Check if setenv and unsetenv are declared.
14203         * configure: Rebuild.
14204         * config.in: Rebuild.
14205         * system.h: Declare setenv and unsetenv if not declared.
14206
14207 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14208
14209         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
14210         commentary to simplify permute mask adjustment equation.
14211         (special_handling_values): Add SH_VPERM.
14212         (const_load_sequence_p): New function.
14213         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
14214         the mask loaded from the constant pool.
14215         (adjust_vperm): New function.
14216         (handle_special_swappables): Call adjust_vperm.
14217         (dump_swap_insn_table): Handle SH_VPERM.
14218
14219 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
14220
14221         * shrink-wrap.c (requires_stack_frame_p): Remove static.
14222         * shrink-wrap.h (requires_stack_frame_p): Put back.
14223
14224 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
14225
14226         * reload1.c (elimination_costs_in_insn): Locally turn
14227         -Wmaybe-uninitialized into a warning.
14228
14229 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
14230
14231         * shrink-wrap.c (requires_stack_frame_p): Make static.
14232         (prepare_shrink_wrap): Likewise.
14233         (dup_block_and_redirect): Likewise.
14234         * shrink-wrap.h: Remove declarations of those functions.
14235
14236 2015-09-10  Mark Wielaard  <mjw@redhat.com>
14237
14238         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
14239
14240 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
14241
14242         PR target/67506
14243         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
14244         missing simplify_gen_subreg.
14245
14246 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14247
14248         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
14249         the vector element is bigger than 64 bit.
14250
14251 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14252
14253         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
14254         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
14255
14256 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14257
14258         * config/s390/s390.c: Add V1TImode to constant pool modes.
14259
14260 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14261
14262         PR target/67439
14263         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
14264         predicate.  Set predicable_short_it attr to "no".
14265
14266 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
14267
14268         PR rtl-optimization/67421
14269         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
14270         left wide shift tranformation.
14271
14272 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
14273
14274         * common/config/arc/arc-common.c: Remove references to A5.
14275         * config/arc/arc-opts.h: Likewise.
14276         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
14277         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
14278         * config/arc/t-arc-newlib: Likewise.
14279
14280 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
14281
14282         * config/arc/arc.md (length): Fix attribute length for conditional
14283         executed instructions with long immediate.
14284
14285 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14286
14287         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
14288         type for second alternative.
14289
14290 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
14291
14292         * doc/invoke.texi (Downloading GCC): Mention
14293         contrib/download_prerequisites script.
14294
14295 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
14296
14297         PR c++/67523
14298         * gimplify.c (gimplify_omp_for): If inner stmt is not found
14299         for combined loop, assert seen_error () and return GS_ERROR.
14300
14301         PR middle-end/67521
14302         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
14303         if decl is already in outer->variables.
14304
14305         PR middle-end/67517
14306         * gimplify.c (gimplify_scan_omp_clauses): Instead of
14307         asserting that decl is not specified in octx->variables,
14308         break out of the loop if it is.
14309
14310         PR c++/67514
14311         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
14312         iterator is not explicitly determined, but is defined inside
14313         of the combined workshare region, handle it like if it has
14314         DECL_EXPR in OMP_FOR_PRE_BODY.
14315
14316 2015-09-09  Nathan Sidwell  <nathan@acm.org>
14317
14318         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
14319         (*cmp<mode>): Add assembler spacing.
14320         (setcc_int<mode>, set_cc_float<mode>): Likewise.
14321         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
14322         level.
14323         (write_func_decl_from_insn): Refactor argument loops & comma emission.
14324         (nvptx_expand_call): Likewise.
14325         (nvptx_output_call_insn): Likewise.
14326         (nvptx_reorg_subreg): Add spacing.
14327
14328 2015-09-09  Marek Polacek  <polacek@redhat.com>
14329
14330         PR middle-end/67512
14331         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
14332         for comparisons.
14333
14334 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
14335
14336         PR c++/53184
14337         * doc/invoke.texi ([Wsubobject-linkage]): Document.
14338
14339 2015-09-09  Tom de Vries  <tom@codesourcery.com>
14340
14341         * params-list.h: Add missing copyright notice.
14342
14343 2015-09-09  Nathan Sidwell  <nathan@acm.org>
14344
14345         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
14346         sel_truesi, not andsi.
14347
14348 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14349
14350         * config/arm/arm.md (*subsi3_compare0): Rename to...
14351         (subsi3_compare0): ... This.
14352         (modsi3): New define_expand.
14353         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
14354         when operand is power of 2.
14355
14356 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14357
14358         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
14359         (*neg<mode>2_compare0): Rename to...
14360         (neg<mode>2_compare0): ... This.
14361         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
14362         Move check for speed inside the if-then-elses.  Reflect
14363         CSNEG sequence in MOD by power of 2 case.
14364
14365 2015-09-09  Alan Modra  <amodra@gmail.com>
14366
14367         PR target/67378
14368         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
14369         reload replacement for PRE_MODIFY address reg.
14370
14371 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
14372
14373         PR tree-optimization/53852
14374         * config.in: Regenerate.
14375         * configure: Regenerate.
14376         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
14377         * graphite-optimize-isl.c (optimize_isl): Stop computation when
14378         PARAM_MAX_ISL_OPERATIONS is reached.
14379         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
14380         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
14381         result equal to isl_stat_ok as the status now can be isl_error_quota.
14382         (subtract_commutative_associative_deps): Same.
14383         (compute_deps): Same.
14384
14385 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
14386             Sebastian Pop  <s.pop@samsung.com>
14387
14388         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14389         Return the parameter if it was saved in corresponding
14390         parameter_rename_map of the region.
14391         (copy_def): Copy def from sese region to the newly created region.
14392         (copy_internal_parameters): Copy all the internal parameters defined
14393         within a region to the newly created region.
14394         (graphite_regenerate_ast_isl): Copy parameters to the new region before
14395         translating isl to gimple.
14396         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
14397         the loop-nest does not have any data-references.
14398         (build_graphite_scops): Create a scop only when there is at least one
14399         loop inside it.
14400         (contains_only_close_phi_nodes): Deleted.
14401         (print_graphite_scop_statistics): Deleted
14402         (print_graphite_statistics): Deleted
14403         (limit_scops): Deleted.
14404         (build_scops): Removed call to limit_scops.
14405         * sese.c (new_sese): Construct.
14406         (free_sese): Destruct.
14407         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
14408         added.
14409         (set_rename): Pass sese region so that parameters inside the region can
14410         be added to its parameter_rename_map.
14411         (rename_uses): Pass sese region.
14412         (graphite_copy_stmts_from_block): Do not copy parameters that have been
14413         generated in the header of the scop. For each SSA_NAME in the
14414         parameter_rename_map rename its usage.
14415         (invariant_in_sese_p_rec): Return false if tree t is defined outside
14416         sese region.
14417         (scalar_evolution_in_region): If the tree t is invariant just return t.
14418         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
14419         struct sese to keep track of all the parameters which need renaming.
14420         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
14421         any data-refs.
14422         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
14423
14424 2015-09-08  Tom de Vries  <tom@codesourcery.com>
14425
14426         * Makefile.in (generated_files): Add params.list.
14427         (params.list, s-params.list): Add rule.
14428         * params.h (enum compiler_param): Include params-list.h.  Move define
14429         DEFPARAM, include params.def and undef DEFPARAM ...
14430         * params-list.h: ... here.  New file.
14431
14432 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
14433
14434         * pretty-print.h (printer_fn): Fix typo in comment.
14435
14436 2015-09-07  Jeff Law  <law@redhat.com>
14437
14438         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
14439
14440 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14441
14442         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
14443         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
14444         (arm_neon_fp16_hw): New.
14445
14446 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14447
14448         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
14449         UNITS_PER_WORD >= 4.
14450
14451 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14452
14453         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
14454         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
14455         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
14456         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
14457         (aarch64_float_extend_lo_v2df): Rename to...
14458         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
14459
14460         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
14461         (float_extend_lo): Add v4sf.
14462
14463         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
14464         * config/aarch64/iterators.md (VQ_HSF): New iterator.
14465         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
14466         (Vwide): New mode_attr.
14467
14468 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14469
14470         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
14471         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
14472         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
14473         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
14474         V4HF and V8HF variants to iterator.
14475
14476         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
14477
14478         * config/aarch64/iterators.md (VDQF_F16): New.
14479         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
14480
14481 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14482
14483         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
14484         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14485         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
14486         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
14487         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
14488         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14489         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
14490         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
14491         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
14492         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
14493         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
14494         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14495         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
14496         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
14497         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
14498         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
14499         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
14500         vld1q_dup_f16): New.
14501
14502 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14503
14504         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
14505         Reparameterize to...
14506         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
14507         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
14508         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
14509
14510         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
14511         v8hf variant.
14512         (float_truncate_lo_): Use BUILTIN_VDF iterator.
14513
14514         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
14515
14516         * config/aarch64/iterators.md (VDF, Vdtype): New.
14517         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
14518
14519 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14520
14521         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
14522         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
14523         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
14524         Add __builtin_aarch64_simd_hf.
14525         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
14526         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
14527         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
14528         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
14529         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
14530         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
14531         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
14532         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
14533         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
14534
14535         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
14536         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
14537         (VDC, Vdbl): Add V4HF.
14538
14539 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14540
14541         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
14542         V4HFmode and V8HFmode.
14543         (aarch64_split_simd_move): Add case for V8HFmode.
14544         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
14545         (aarch64_simd_builtin_std_type): Handle HFmode.
14546         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
14547
14548         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
14549         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
14550         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
14551
14552         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
14553         Float16x8_t.
14554
14555         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
14556         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
14557         New typedefs.
14558         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
14559         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
14560         vst1q_lane_f16): New.
14561         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
14562         (VALLDI_F16, VALL_F16): New.
14563         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
14564         Add cases for V4HF and V8HF.
14565         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
14566
14567 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14568
14569         * config/arm/arm-builtins.c (VAR11, VAR12): New.
14570         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
14571         vld4_dup): Add v4hf variant.
14572         (vget_high, vget_low): Add v8hf variant.
14573         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
14574         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
14575         v4hf and v8hf variants.
14576
14577         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
14578         (VDX): Add V4HF.
14579         (V_DOUBLE): Add case for V4HF.
14580         (VQX): Add V8HF.
14581         (V_HALF): Add case for V8HF.
14582         (VDQX): Add V4HF, V8HF.
14583         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
14584         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
14585
14586         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
14587         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
14588         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
14589         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
14590         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
14591         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
14592         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
14593         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
14594         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
14595
14596         (neon_vcreate, neon_vreinterpretv8qi<mode>,
14597         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14598         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
14599         Change VDX to VD_RE.
14600
14601         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
14602         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
14603         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
14604
14605         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
14606         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
14607         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
14608         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
14609         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
14610         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
14611         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
14612         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
14613         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
14614
14615 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14616
14617         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
14618         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
14619         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
14620         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
14621         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14622         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
14623         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
14624         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
14625         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
14626         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
14627         New.
14628
14629 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14630
14631         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
14632
14633         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
14634
14635         * config/arm/arm-builtins.c (v8hf_UP): New.
14636         (arm_init_simd_builtin_types): Initialise Float16x8_t.
14637
14638         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
14639
14640         * config/arm/arm_neon.h (float16x8_t): New typedef.
14641
14642 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14643
14644         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
14645         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
14646         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
14647         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
14648         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14649         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
14650         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
14651         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
14652         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14653         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
14654
14655 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
14656
14657         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
14658         non-alphanumeric characters in the symbol name.
14659
14660 2015-09-07  Marek Polacek  <polacek@redhat.com>
14661
14662         PR inline-asm/67448
14663         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
14664         a memory input.
14665
14666 2015-09-07  Marek Polacek  <polacek@redhat.com>
14667
14668         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
14669
14670 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
14671
14672         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
14673         not warn.
14674
14675 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
14676
14677         PR middle-end/67452
14678         * tree-ssa-live.c: Include cfgloop.h.
14679         (remove_unused_locals): Clear loop->simduid if simduid is about
14680         to be removed from cfun->local_decls.
14681
14682 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14683
14684         PR target/65210
14685         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
14686         attribute as well.
14687
14688 2015-09-04  Tom de Vries  <tom@codesourcery.com>
14689
14690         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
14691
14692 2015-09-04  Jeff Law  <law@redhat.com>
14693
14694         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
14695         unnecessary constructor.  It's now trivial and implemented inside...
14696         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
14697         constructor.  Add comments to various methods.  Remove unused
14698         private fields.
14699         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
14700         * tree-vrp.c (identify_jump_threads): Likewise.
14701         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
14702         indentation issues.
14703         (thread_across_edge): Similarly.
14704         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
14705         arguments in constructor call.
14706
14707 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
14708
14709         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
14710         temp path contains a '-'.
14711
14712 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14713             Petr Murzin  <petr.murzin@intel.com>
14714             Kirill Yukhin  <kirill.yukhin@intel.com>
14715
14716         * config/i386/i386-builtin-types.def
14717         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
14718         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
14719         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
14720         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
14721         * config/i386/i386.c
14722         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
14723         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14724         IX86_BUILTIN_SCATTERALTDIV16SI.
14725         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
14726         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
14727         __builtin_ia32_scatteraltdiv8si.
14728         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
14729         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14730         IX86_BUILTIN_SCATTERALTDIV16SI.
14731         (ix86_vectorize_builtin_scatter): New.
14732         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
14733         ix86_vectorize_builtin_scatter.
14734
14735 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14736             Petr Murzin  <petr.murzin@intel.com>
14737             Kirill Yukhin  <kirill.yukhin@intel.com>
14738
14739         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
14740         * doc/tm.texi: Regenerate.
14741         * target.def: Add scatter builtin.
14742         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
14743         for loads/stores in case of gather/scatter accordingly.
14744         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14745         STMT_VINFO_GATHER_P(S).
14746         (vect_check_gather): Rename to ...
14747         (vect_check_gather_scatter): this.
14748         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
14749         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
14750         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14751         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
14752         variable and new checkings for it accordingly.
14753         * tree-vect-stmts.c
14754         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14755         STMT_VINFO_GATHER_P(S).
14756         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14757         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
14758
14759 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14760
14761         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
14762         define_insn.
14763         (mulv16qi3): New define_expand.
14764
14765 2015-09-03  Martin Sebor  <msebor@redhat.com>
14766
14767         PR c/66516
14768         * doc/extend.texi (Other Builtins): Document when the address
14769         of a built-in function can be taken.
14770
14771 2015-09-03  Richard Biener  <rguenther@suse.de>
14772
14773         * dwarf2out.c (flush_limbo_die_list): Split out from ...
14774         (dwarf2out_early_finish): ... here.
14775         (dwarf2out_finish): Do not call dwarf2out_early_finish but
14776         flush_limbo_die_list.  Assert we have no deferred asm names.
14777
14778 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14779
14780         * optabs.c (expand_binop): Don't create a broadcast vector with a
14781         source element wider than the inner mode.
14782
14783 2015-09-03  Richard Biener  <rguenther@suse.de>
14784
14785         * varasm.c (output_constant): Use fold_convert instead of
14786         wide_int_to_tree.
14787
14788 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14789
14790         PR tree-optimization/65637
14791         * omp-low.c (expand_omp_for_static_chunk): Handle case that
14792         fin_bb has 2 predecessors.
14793
14794 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14795
14796         PR tree-optimization/65637
14797         * omp-low.c (find_phi_with_arg_on_edge): New function.
14798         (expand_omp_for_static_chunk): Fix inner loop phi.
14799
14800 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14801
14802         PR tree-optimization/65637
14803         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
14804         that head is NULL.
14805
14806 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14807
14808         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
14809
14810 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14811
14812         * doc/invoke.texi (parloops-chunk-size): Add item.
14813         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
14814         * tree-parloops.c: Include params.h.
14815         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
14816         param parloops-chunk-size is used.
14817
14818 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14819
14820         PR middle-end/67351
14821         * fold-const.c (fold_binary_loc) : Move
14822         Transform (x >> c) << c into x & (-1<<c) or
14823         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
14824         types using simplify and match.
14825         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
14826         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
14827
14828 2015-09-03  Richard Biener  <rguenther@suse.de>
14829
14830         PR ipa/66705
14831         * tree-ssa-structalias.c (ctor_for_analysis): New function.
14832         (create_variable_info_for_1): Use ctor_for_analysis instead
14833         of get_constructor.
14834         (create_variable_info_for): Likewise.
14835
14836 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
14837
14838         PR ipa/67280
14839         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
14840         in new callgraph edge.
14841
14842 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
14843
14844         PR target/59810
14845         PR target/63652
14846         PR target/63653
14847         * config/aarch64/aarch64-simd.md
14848         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
14849         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
14850         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
14851         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
14852
14853 2015-09-02  Alan Modra  <amodra@gmail.com>
14854
14855         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
14856         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
14857         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
14858
14859 2015-09-02  Alan Modra  <amodra@gmail.com>
14860
14861         PR target/67417
14862         * config/rs6000/predicates.md (current_file_function_operand): Don't
14863         return true for weak symbols.
14864         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
14865
14866 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
14867             Andrew Bennett  <andrew.bennett@imgtec.com>
14868
14869         * config/mips/mips-opts.h (mips_cb_setting): New enum.
14870         * config/mips/mips-protos.h: Add definitions for
14871         mips_output_jump and mips_output_equal_conditional_branch
14872         * config/mips/mips.c (MIPS_JR): Change to support the
14873         JIC instruction.
14874         (mips_emit_compare): Add support for the MIPS R6 conditional
14875         compact branches.
14876         (mips_process_sync_loop): Likewise.
14877         (mips_output_order_conditional_branch): Likewise.
14878         (mips16_build_call_stub): Change MIPS_CALL to
14879         mips_output_jump.
14880         (mips_print_operand_punctuation): Update 's' case to only
14881         apply to micromips r2.
14882         (mips_adjust_insn_length): Add support for forbidden slot
14883         hazards.
14884         (mips_avoid_hazard): Likewise.
14885         (mips_reorg_process_insns): Likewise.
14886         (mips_output_jump): New function.
14887         (mips_output_equal_conditional_branch): Likewise.
14888         (mips_output_conditional_branch): Use jrc/bc if compact
14889         branch support is enabled.  Ensure the forbidden slots
14890         between the two branch instructions is filled with a nop.
14891         (mips_option_override): Add support to process the compact
14892         branch option and set the correct defaults.  Prevent
14893         non-explict relocs being using for MIPS R6.
14894         (mips_trampoline_init): Add compact branch support.
14895         (mips_mult_zero_zero_cost): Allow zero initialisation of
14896         accumulators with TARGET_DSP.
14897         * config/mips/mips.h (TARGET_CB_NEVER): New define.
14898         (TARGET_CB_MAYBE): New define.
14899         (TARGET_CB_ALWAYS): New define.
14900         (ISA_HAS_DELAY_SLOTS): New define.
14901         (ISA_HAS_COMPACT_BRANCHES): New define.
14902         (ISA_HAS_JRC): New define.
14903         (MIPS_BRANCH_C): New define.
14904         (MIPS_CALL): Removed.
14905         (MICROMIPS_J): Removed.
14906         * config/mips/mips.md (compact_form): New attr.
14907         (hazard): Add support for forbidden slots.
14908         (define_delay): Add support for compact branches.
14909         (*branch_order<mode>): Likewise.
14910         (*branch_order<mode>_inverted): Likewise.
14911         (*branch_equality<mode>): Likewise.
14912         (*branch_equality<mode>_inverted): Likewise.
14913         (*jump_absolute): Likewise.
14914         (*jump_pic): Likewise.
14915         (indirect_jump): Use mips_output_jump to produce assembly output.
14916         (tablejump_<mode>"): Likewise.
14917         (*<optab>"): Likewise.
14918         (<optab>_internal): Likewise.
14919         (sibcall_internal): Likewise.
14920         (sibcall_value_internal): Likewise.
14921         (sibcall_value_multiple_internal): Likewise.
14922         (call_internal): Likewise.
14923         (call_split): Likewise.
14924         (call_internal_direct): Likewise.
14925         (call_direct_split): Likewise.
14926         (call_value_internal): Likewise.
14927         (call_value_split): Likewise.
14928         (call_value_internal_direct): Likewise.
14929         (call_value_direct_split): Likewise.
14930         (call_value_multiple_internal): Likewise.
14931         (call_value_multiple_split): Likewise.
14932         (mips_get_fcsr_mips16_<mode>): Likewise.
14933         (mips_set_fcsr_mips16_<mode>): Likewise.
14934         (tls_get_tp_mips16_<mode>): Likewise.
14935         * config/mips/mips.opt: Add -mcompact-branches option.
14936         * config/mips/predicates.md (order_operator): Ensure the
14937         conditional compact branches are only used if the ISA them.
14938         * doc/invoke.texi: Document -mcompact-branches option.
14939
14940 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
14941
14942         PR target/61578
14943         * lra-lives.c (process_bb_lives): Process move pseudos with the
14944         same value for copies and preferences
14945         * lra-constraints.c (match_reload): Create match reload pseudo
14946         with the same value from single dying input pseudo.
14947
14948 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
14949
14950         PR target/67405
14951         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
14952
14953 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
14954
14955         * trans-mem.c: Add contributed-by.
14956         * trans-mem.h: Same.
14957
14958 2015-09-01  Richard Biener  <rguenther@suse.de>
14959
14960         * expr.c (expand_expr_real_1): For expanding TERed defs
14961         set the current location to that of the def if not UNKNOWN.
14962
14963 2015-09-01  David Sherwood  <david.sherwood@arm.com>
14964
14965         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
14966
14967 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14968
14969         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
14970         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
14971         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
14972         Include rtl-iter.h.
14973         (noce_simple_bbs): New function.
14974         (noce_try_move): Bail if basic blocks are not simple.
14975         (noce_try_store_flag): Likewise.
14976         (noce_try_store_flag_constants): Likewise.
14977         (noce_try_addcc): Likewise.
14978         (noce_try_store_flag_mask): Likewise.
14979         (noce_try_cmove): Likewise.
14980         (noce_try_minmax): Likewise.
14981         (noce_try_abs): Likewise.
14982         (noce_try_sign_mask): Likewise.
14983         (noce_try_bitop): Likewise.
14984         (bbs_ok_for_cmove_arith): New function.
14985         (noce_emit_all_but_last): Likewise.
14986         (noce_emit_insn): Likewise.
14987         (noce_emit_bb): Likewise.
14988         (noce_try_cmove_arith): Handle non-simple basic blocks.
14989         (insn_valid_noce_process_p): New function.
14990         (contains_mem_rtx_p): Likewise.
14991         (bb_valid_for_noce_process_p): Likewise.
14992         (noce_process_if_block): Allow non-simple basic blocks
14993         where appropriate.
14994
14995 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
14996
14997         * tree-ssa-dom.c (record_equivalences_from_phis,
14998         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
14999         (lookup_avail_expr): Likewise, and remove comment and unused temp.
15000
15001 2015-09-01  Nick Clifton  <nickc@redhat.com>
15002
15003         * config/msp430/msp430.opt (mcpu): Fix typo.
15004
15005 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15006
15007         * config/aarch64/aarch64.c (aarch64_set_current_function):
15008         Re-layout any vector parameters have non-simd layout.
15009         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
15010         Delete.
15011         (aarch64_simd_expand_args): Delete call to the above.
15012
15013 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
15014
15015         * doc/invoke.texi (asan-stack): Add space before option.
15016
15017 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
15018
15019         * tree.h (zerop): New function.
15020         * tree.c (zerop): Likewise.
15021         (element_precision): Handle expressions.
15022         * match.pd (define_predicates): Add zerop.
15023         (x <= +Inf): Fix comment.
15024         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
15025         * fold-const.c (fold_binary_loc): ... here. Remove.
15026
15027 2015-08-31  Richard Biener  <rguenther@suse.de>
15028
15029         PR middle-end/67381
15030         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
15031
15032 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
15033
15034         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
15035         (CEXPI): New operator list.
15036         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
15037         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
15038         Converted from ...
15039         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
15040
15041 2015-08-31  Tom de Vries  <tom@codesourcery.com>
15042
15043         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
15044         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
15045         parameter.
15046         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
15047         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
15048         (rewrite_into_loop_closed_ssa): ... here.
15049         (replace_uses_in_dominated_bbs): Remove function.
15050         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
15051         rewrite_into_loop_closed_ssa_1.
15052
15053 2015-08-31  Michael Matz  <matz@suse.de>
15054
15055         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
15056         enter entry and exit blocks for reverse post order.
15057
15058 2015-08-31  Richard Biener  <rguenther@suse.de>
15059
15060         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
15061         (lto_location_cache::current_sysp): Likewise.
15062         (output_block::current_sysp): Likewise.
15063         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
15064         (lto_location_cache::apply_location_cache): Properly record
15065         system header locations.
15066         (lto_location_cache::input_location): Input whether a file
15067         is a system header.
15068         * lto-streamer-out.c (lto_output_location): Stream whether a file
15069         is a system header.
15070
15071 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15072
15073         PR bootstrap/67363
15074         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
15075
15076 2015-08-31  Tom de Vries  <tom@codesourcery.com>
15077
15078         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
15079         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
15080         Improve function header comments.
15081
15082 2015-08-30  Michael Collison  <michael.collison@linaro.org>
15083
15084         PR other/67320
15085         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
15086         standard names
15087
15088 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15089
15090         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
15091         special_handling bitfield.
15092         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
15093         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
15094         that represents a general xxpermdi.
15095         (insn_is_swappable_p): Add handling for vec_concat of two
15096         doublewords, which maps to a specific xxpermdi.
15097         (adjust_xxpermdi): New function.
15098         (adjust_concat): Likewise.
15099         (handle_special_swappables): Call adjust_xxpermdi and
15100         adjust_concat.
15101         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
15102
15103 2015-08-30  Rich Felker <dalias@libc.org>
15104
15105         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
15106         case instead of sh[123456ble]-*-*.
15107
15108 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
15109
15110         * ira.c (print_unform_and_important_classes,
15111         print_translated_classes): Remove reg_class_names static array.
15112         (print_unform_and_important_classes): Rename to ...
15113         (print_uniform_and_important_classes): ... this.
15114         (ira_debug_allocno_classes): Update accordingly.
15115
15116 2015-08-29  Tom de Vries  <tom@codesourcery.com>
15117
15118         PR tree-optimization/46193
15119         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
15120         clause.
15121
15122 2015-08-28  Jeff Law  <law@redhat.com>
15123
15124         PR lto/66752
15125         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
15126         unable to find X NE 0 in the tables, return X as the simplified
15127         condition.
15128         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
15129         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
15130         to VISISTED_BBS.
15131         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
15132         after removing the control flow statement and unnecessary edges.
15133
15134 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
15135
15136         Revert:
15137         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
15138
15139         PR tree-optimization/67283
15140         * tree-sra.c (type_consists_of_records_p): Rename to...
15141         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
15142
15143         (completely_scalarize_record): Rename to...
15144         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
15145         code to:
15146         (scalarize_elem): New.
15147
15148 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
15149
15150         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
15151         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
15152         (aarch64_symbol_type): Likewise.
15153         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15154         Likewise.
15155         (aarch64_expand_mov_immediate): Likewise.
15156         (aarch64_print_operand): Likewise.
15157         (aarch64_classify_tls_symbol): Likewise.
15158
15159 2015-08-28  Richard Biener  <rguenther@suse.de>
15160
15161         * cgraphunit.c (symbol_table::compile): Move early debug generation
15162         and finish...
15163         (symbol_table::finalize_compilation_unit): ... back here and
15164         add a !seen_error () guard.
15165
15166 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
15167
15168         * toplev.c (process_options): Do not use flag_loop_block,
15169         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
15170         flag_loop_optimize_isl.
15171
15172 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
15173
15174         * Makefile.in (OBJS): Remove graphite-blocking.o and
15175         graphite-interchange.o.
15176         * common.opt (floop-strip-mine, floop-interchange, floop-block):
15177         Alias of floop-nest-optimize.
15178         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
15179         Document as alias of -floop-nest-optimize.
15180         * graphite-blocking.c: Remove.
15181         * graphite-interchange.c: Remove.
15182         * graphite-optimize-isl.c: Include dumpfile.h.
15183         (getScheduleForBand): Add dump for tiled loops.  Use
15184         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
15185         * graphite-poly.c (scop_max_loop_depth): Remove.
15186         (print_scattering_function_1): Remove.
15187         (print_scattering_function): Remove.
15188         (print_scattering_functions): Remove.
15189         (debug_scattering_function): Remove.
15190         (debug_scattering_functions): Remove.
15191         (apply_poly_transforms): Remove use of flag_loop_block,
15192         flag_loop_strip_mine, and flag_loop_interchange.
15193         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
15194         PBB_ORIGINAL.
15195         (print_pdr_access_layout): Remove.
15196         (print_pdr): Print ISL representation.
15197         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
15198         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
15199         (free_scop): Same.
15200         (openscop_print_pbb_domain): Remove.
15201         (print_pbb): Remove call to print_scattering_function.
15202         (openscop_print_scop_context): Remove.
15203         (print_scop_context): Do not print matrices anymore.
15204         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
15205         SCOP_TRANSFORMED_SCHEDULE.
15206         (print_isl_set): Add printing of a new line.
15207         (print_isl_map): Same.
15208         (print_isl_aff): Same.
15209         (print_isl_constraint): Same.
15210         (loop_to_lst): Remove.
15211         (scop_to_lst): Remove.
15212         (lst_indent_to): Remove.
15213         (print_lst): Remove.
15214         (debug_lst): Remove.
15215         (dot_lst_1): Remove.
15216         (dot_lst): Remove.
15217         (reverse_loop_at_level): Remove.
15218         (reverse_loop_for_pbbs): Remove.
15219         * graphite-poly.h (pdr_dim_iter_domain): Remove.
15220         (pdr_nb_params): Remove.
15221         (pdr_alias_set_dim): Remove.
15222         (pdr_subscript_dim): Remove.
15223         (pdr_iterator_dim): Remove.
15224         (pdr_parameter_dim): Remove.
15225         (same_pdr_p): Remove.
15226         (struct poly_scattering): Remove.
15227         (struct poly_bb): Remove _original, _transformed, _saved.
15228         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
15229         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
15230         (PBB_NB_LOCAL_VARIABLES): Remove.
15231         (PBB_NB_SCATTERING_TRANSFORM): Remove.
15232         (schedule_to_scattering): Remove.
15233         (number_of_write_pdrs): Remove.
15234         (pbb_dim_iter_domain): Remove.
15235         (pbb_nb_params): Remove.
15236         (pbb_nb_scattering_orig): Remove.
15237         (pbb_nb_scattering_transform): Remove.
15238         (pbb_nb_dynamic_scattering_transform): Remove.
15239         (pbb_nb_local_vars): Remove.
15240         (pbb_iterator_dim): Remove.
15241         (pbb_parameter_dim): Remove.
15242         (psco_scattering_dim): Remove.
15243         (psct_scattering_dim): Remove.
15244         (psct_local_var_dim): Remove.
15245         (psco_iterator_dim): Remove.
15246         (psct_iterator_dim): Remove.
15247         (psco_parameter_dim): Remove.
15248         (psct_parameter_dim): Remove.
15249         (psct_dynamic_dim): Remove.
15250         (psct_static_dim): Remove.
15251         (psct_add_local_variable): Remove.
15252         (new_lst_loop): Remove.
15253         (new_lst_stmt): Remove.
15254         (free_lst): Remove.
15255         (copy_lst): Remove.
15256         (lst_add_loop_under_loop): Remove.
15257         (lst_depth): Remove.
15258         (lst_dewey_number): Remove.
15259         (lst_dewey_number_at_depth): Remove.
15260         (lst_pred): Remove.
15261         (lst_succ): Remove.
15262         (lst_find_pbb): Remove.
15263         (find_lst_loop): Remove.
15264         (lst_find_first_pbb): Remove.
15265         (lst_empty_p): Remove.
15266         (lst_find_last_pbb): Remove.
15267         (lst_contains_p): Remove.
15268         (lst_contains_pbb): Remove.
15269         (lst_create_nest): Remove.
15270         (lst_remove_from_sequence): Remove.
15271         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
15272         (lst_niter_for_loop): Remove.
15273         (pbb_update_scattering): Remove.
15274         (lst_update_scattering_under): Remove.
15275         (lst_update_scattering): Remove.
15276         (lst_insert_in_sequence): Remove.
15277         (lst_replace): Remove.
15278         (lst_substitute_3): Remove.
15279         (lst_distribute_lst): Remove.
15280         (lst_remove_all_before_including_pbb): Remove.
15281         (lst_remove_all_before_excluding_pbb): Remove.
15282         (struct scop): Remove original_schedule, transformed_schedule, and
15283         saved_schedule.
15284         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
15285         (SCOP_SAVED_SCHEDULE): Remove.
15286         (poly_scattering_new): Remove.
15287         (poly_scattering_free): Remove.
15288         (poly_scattering_copy): Remove.
15289         (store_scattering_pbb): Remove.
15290         (store_lst_schedule): Remove.
15291         (restore_lst_schedule): Remove.
15292         (store_scattering): Remove.
15293         (restore_scattering_pbb): Remove.
15294         (restore_scattering): Remove.
15295         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
15296         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
15297         compute the scattering polyhedron dimension from the dimension of
15298         pbb->domain.
15299         (build_scop_scattering): Update call to
15300         build_pbb_scattering_polyhedrons.
15301         (build_poly_scop): Remove call to scop_to_lst.
15302         * graphite.c (graphite_transform_loops): Add call to print_scop.
15303         (gate_graphite_transforms): Remove use of flag_loop_block,
15304         flag_loop_interchange, and flag_loop_strip_mine.
15305
15306 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
15307
15308         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
15309         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
15310         -floop-nest-optimize.
15311         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
15312         (generate_luj_sepclass): Remove.
15313         (generate_luj_options): Remove.
15314         (set_options): Remove opt_luj.
15315         (scop_to_isl_ast): Remove opt_luj.
15316         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
15317         flag_loop_unroll_jam.
15318         (getPrevectorMap_full): Remove.
15319         (getScheduleForBandList): Remove map_sepcl.
15320         (getScheduleMap): Same.
15321         (apply_schedule_map_to_scop): Remove sepcl.
15322         (optimize_isl): Same.
15323         * graphite-poly.c (apply_poly_transforms): Remove check for
15324         flag_loop_unroll_jam.
15325         (new_poly_bb): Remove map_sepclass.
15326         * graphite-poly.h (struct poly_bb): Same.
15327         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
15328         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
15329         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
15330         * toplev.c (process_options): Remove flag_loop_unroll_jam.
15331
15332 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
15333
15334         PR target/67317
15335         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
15336         (addqi3_cc): Ditto.
15337         (UNSPEC_ADD_CARRY): Remove.
15338         (addqi3_cconly_overflow): New expander.
15339         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
15340         Adjust for changed add<mode>3_carry.
15341         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
15342         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
15343         (<plusminus_insn><mode>3_carry): Remove expander.
15344         (*<plusminus_insn><mode>3_carry): Split insn pattern to
15345         add<mode>3_carry and sub<mode>3_carry.
15346         (plusminus_carry_mnemonic): Remove code attribute.
15347         (add<mode>3_carry): Canonicalize insn pattern.
15348         (*addsi3_carry_zext): Ditto.
15349         (sub<mode>3_carry): Ditto.
15350         (*subsi3_carry_zext): Ditto.
15351         (adcx<mode>3): Remove insn pattern.
15352         (addcarry<mode>): New insn pattern.
15353         (subborrow<mode>): Ditto.
15354         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
15355         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
15356         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
15357         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
15358         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
15359         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
15360         Rewrite expander to not clobber carry flag chains.
15361
15362 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
15363
15364         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
15365         instead of a rotate.
15366
15367 2015-08-27  Marek Polacek  <polacek@redhat.com>
15368
15369         PR middle-end/67005
15370         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
15371         an entry into an irreducible region.
15372
15373 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15374
15375         * configure: Regenerate.
15376
15377 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
15378
15379         PR tree-optimization/67283
15380         * tree-sra.c (type_consists_of_records_p): Rename to...
15381         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
15382
15383         (completely_scalarize_record): Rename to...
15384         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
15385         (scalarize_elem): New.
15386
15387 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
15388
15389         * tree-sra.c (completely_scalarize_var): Rename to...
15390         (create_total_scalarization_access): ... Here. Drop call to
15391         completely_scalarize_record.
15392
15393         (analyze_all_variable_accesses): Replace completely_scalarize_var
15394         with create_total_scalarization_access and completely_scalarize_record.
15395
15396 2015-08-27  Alan Modra  <amodra@gmail.com>
15397
15398         PR target/67356
15399         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
15400         for operand 1.
15401
15402 2015-08-27  Richard Biener  <rguenther@suse.de>
15403
15404         * passes.c (rest_of_decl_compilation): Guard early_global_decl
15405         call with !seen_error ().
15406         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
15407         early debug generation and finish...
15408         (symbol_table::compile): ... here to put it after a !seen_error ()
15409         guard.
15410
15411 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15412
15413         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
15414         Solaris 12+.
15415
15416 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15417             Andre Vieira  <andre.simoesdiasvieira@arm.com>
15418
15419         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
15420         (*cb<optab><mode>1): Likewise.
15421         (*tb<optab><mode>1): Likewise.
15422         (*cb<optab><mode>1): Likewise.
15423         * config/aarch64/iterators.md (inv_cb): New code attribute.
15424         (inv_tb): Likewise.
15425         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
15426         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
15427
15428 2015-08-27  Richard Biener  <rguenther@suse.de>
15429
15430         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
15431
15432 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15433
15434         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
15435         trap to fix ICE.
15436
15437 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15438
15439         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
15440         Add declaration.
15441
15442         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
15443         comment.
15444         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
15445         floating point in VSX registers.
15446         (rs6000_output_move_128bit): Always print out the set insn if we
15447         can't generate an appropriate 128-bit move.
15448         (rs6000_generate_compare): Add support for IEEE 128-bit floating
15449         point in VSX registers comparisons.
15450         (rs6000_expand_float128_convert): Likewise.
15451
15452         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
15453         predicate for only GPR hard registers.
15454
15455         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
15456         modes to iterators. Add new iterators for moving 128-bit values in
15457         scalar FPR registers and VSX registers.
15458         (FMOVE128): Likewise.
15459         (FMOVE128_FPR): Likewise.
15460         (FMOVE128_GPR): Likewise.
15461         (FMOVE128_VSX): Likewise.
15462         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
15463         in VSX registers.
15464         (IFKF): Likewise.
15465         (IBM128): Likewise.
15466         (TFIFKF): Likewise.
15467         (RELOAD): Add IEEE 128-bit floating point modes.
15468         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
15469         floating point in VSX registers modes.
15470         (signbit<mode>2, IBM128 iterator): Likewise.
15471         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
15472         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
15473         (negtf2): Likewise.
15474         (neg<mode>2, TFIFKF iterator): Likewise.
15475         (negtf2_internal): Likewise.
15476         (abstf2): Likewise.
15477         (abs<mode>2, TFIFKF iterator): Likewise.
15478         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
15479         VSX insn support for negate, absolute value, and negative absolute
15480         value.
15481         (ieee_128bit_vsx_neg<mode>2): Likewise.
15482         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
15483         (ieee_128bit_vsx_abs<mode>2): Likewise.
15484         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
15485         (ieee_128bit_vsx_nabs<mode>2): Likewise.
15486         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
15487         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
15488         floating point in VSX registers.
15489         (unpack<mode>_dm): Likewise.
15490         (unpack<mode>_nodm): Likewise.
15491         (pack<mode>): Likewise.
15492         (unpackv1ti): Likewise.
15493         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
15494         (packv1ti): Likewise.
15495         (pack<mode>, FMOVE128_VSX iterator): Likewise.
15496         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
15497         registers.
15498         (extenddftf2_internal): Likewise.
15499         (trunctfdf2): Likewise.
15500         (trunctfdf2_internal2): Likewise.
15501         (fix_trunc_helper): Likewise.
15502         (fix_trunctfdi2"): Likewise.
15503         (floatditf2): Likewise.
15504         (floatuns<mode>tf2): Likewise.
15505         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
15506         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
15507         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
15508         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
15509         (float<SDI:mode><IFKF:mode>2): Likewise.
15510         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
15511
15512 2015-08-26  Renlin Li  <renlin.li@arm.com>
15513
15514         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
15515
15516 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15517             Jiong Wang  <jiong.wang@arm.com>
15518
15519         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
15520         (tlsie_tiny_<mode>): New define_insn.
15521         (tlsie_tiny_sidi): Likewise.
15522         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15523         SYMBOL_TINY_TLSIE.
15524         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
15525         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15526         SYMBOL_TINY_TLSIE.
15527         (aarch64_expand_mov_immediate): Likewise.
15528         (aarch64_print_operand): Likewise.
15529         (arch64_classify_tls_symbol): Likewise.
15530
15531 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15532
15533         * config/arm/arm-arches.def: Replace single value flags with
15534         an initializer built from ARM_FSET_MAKE_CPU1.
15535         * config/arm/arm-cores.def: Likewise.
15536         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
15537         derivation from the ARM_CORE macro definition, use the given value
15538         instead.
15539         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
15540         ARM_ARCH macro definition, use the given value instead.
15541
15542 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15543
15544         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
15545         feature set.
15546         (struct builtin_description): Replace field mask with field
15547         features.
15548         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
15549         (IWMMXT2_BUILTIN): Likewise.
15550         (IWMMXT2_BUILTIN2): Likewise.
15551         (FP_BUILTIN): Likewise.
15552         (CRC32_BUILTIN): Likewise.
15553         (CRYPTO_BUILTIN): Likewise.
15554         (iwmmx_mbuiltin): Likewise.
15555         (iwmmx2_mbuiltin): Likewise.
15556         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
15557         struct builtin_description.
15558
15559 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15560
15561         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
15562         (struct builtin_description): Change type of mask to unsigned
15563         long.
15564         * config/arm/arm-protos.h (insn_flags): Declare as type
15565         arm_feature_set.
15566         (tune_flags): Likewise.
15567         * config/arm/arm.c (feature_count): New.
15568         (insn_flags): Define as type arm_feature_set.
15569         (tune_flags): Likewise.
15570         (struct processors): Define field flags as type arm_feature_set.
15571         (all_cores): Update for change to struct processors.
15572         (all_architectures): Likewise.
15573         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
15574         macros.
15575         (arm_option_override_internal): Likewise.
15576         (arm_option_override): Likewise.
15577
15578 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15579             Jiong Wang  <jiong.wang@arm.com>
15580
15581         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
15582         tls size for tiny, small, large memory model.
15583         (aarch64_load_symref_appropriately): Support new symbol types.
15584         (aarch64_expand_mov_immediate): Likewise.
15585         (aarch64_print_operand): Likewise.
15586         (aarch64_classify_tls_symbol): Likewise.
15587         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
15588         (aarch64_symbol_type): Likewise.
15589         * config/aarch64/aarch64.md (tlsle): Deleted.
15590         (tlsle12_<mode>): New define_insn.
15591         (tlsle24_<mode>): Likewise.
15592         (tlsle32_<mode>): Likewise.
15593         (tlsle48_<mode>): Likewise.
15594         * doc/sourcebuild.texi (AArch64-specific attributes): Document
15595         "aarch64_tlsle32".
15596
15597 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15598
15599         * config/arm/arm-protos.h (FL_NONE): New.
15600         (FL_ANY): New.
15601         (arm_feature_set): New.
15602         (ARM_FSET_MAKE): New.
15603         (ARM_FSET_MAKE_CPU1): New.
15604         (ARM_FSET_MAKE_CPU2): New.
15605         (ARM_FSET_CPU1): New.
15606         (ARM_FSET_CPU2): New.
15607         (ARM_FSET_EMPTY): New.
15608         (ARM_FSET_ANY): New.
15609         (ARM_FSET_HAS_CPU1): New.
15610         (ARM_FSET_HAS_CPU2): New.
15611         (ARM_FSET_HAS_CPU): New.
15612         (ARM_FSET_ADD_CPU1): New.
15613         (ARM_FSET_ADD_CPU2): New.
15614         (ARM_FSET_DEL_CPU1): New.
15615         (ARM_FSET_DEL_CPU2): New.
15616         (ARM_FSET_UNION): New.
15617         (ARM_FSET_INTER): New.
15618         (ARM_FSET_XOR): New.
15619         (ARM_FSET_EXCLUDE): New.
15620         (AFM_FSET_IS_EMPTY): New.
15621         (ARM_FSET_CPU_SUBSET): New.
15622
15623 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15624
15625         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15626         SYMBOL_TLSLE to SYMBOL_TLSLE24.
15627         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15628         Likewise.
15629         (aarch64_expand_mov_immediate): Likewise.
15630         (aarch64_print_operand): Likewise.
15631         (aarch64_classify_symbol): Likewise.
15632
15633 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15634
15635         * config/aarch64/aarch64.opt (mtls-size): New entry.
15636         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
15637         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
15638         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
15639
15640 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15641
15642         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
15643         ARM_CORE entry.  Fix some white-space.
15644         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
15645         ARM_CORE definition.
15646
15647 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15648
15649         * fold-const.c (fold_binary_loc) : Move Optimize
15650         root(x)*root(y) as root(x*y) to match.pd.
15651         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
15652         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
15653         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
15654         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
15655         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
15656         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
15657         (mult (exps:s @0) (exps:s @1)) : New simplifier.
15658         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
15659         (rdiv @0 (exps:s @1)) : New simplifier.
15660
15661 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
15662
15663         * gcc.c (driver::finalize): Only assign to extra_specs if
15664         [EXTRA_SPECS].
15665
15666 2015-08-25  Marek Polacek  <polacek@redhat.com>
15667
15668         PR middle-end/67330
15669         * varasm.c (declare_weak): Return after giving an error.
15670
15671 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
15672
15673         * gcc-main.c (main): Add params to driver ctor.
15674         * gcc.c (class env_manager): New.
15675         (env): New global.
15676         (env_manager::init): New.
15677         (env_manager::get): New.
15678         (env_manager::xput): New.
15679         (env_manager::restore): New.
15680         Poison getenv and putenv.
15681         (DEFAULT_TARGET_SYSTEM_ROOT): New.
15682         (target_system_root): Update initialization to use
15683         DEFAULT_TARGET_SYSTEM_ROOT.
15684         (struct spec_list): Add field "default_ptr".
15685         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
15686         (init_spec): Likewise.
15687         (set_spec): Clear field "default_ptr".
15688         (read_specs): Free "spec" and "buffer".
15689         (xputenv): Reimplement in terms of env_manager.
15690         (process_command): Replace ::getenv calls with calls to the
15691         env_manager singleton.
15692         (process_brace_body): Free string in three places.
15693         (driver::driver): New.
15694         (driver::~driver): New.
15695         (used_arg): Convert from a function to...
15696         (class used_arg_t): ...this class, and...
15697         (used_arg): ...this new global instance.
15698         (used_arg_t::finalize): New function.
15699         (getenv_spec_function): Add "const" to local "value".  Replace
15700         ::getenv call with call to the env_manager singleton.
15701         (path_prefix_reset): New function.
15702         (driver::finalize): New function.
15703         * gcc.h (driver::driver): New.
15704         (driver::~driver): New.
15705         (driver::finalize): New.
15706
15707 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15708
15709         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
15710         target doesn't have one.
15711
15712 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15713
15714         PR target/67346
15715         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
15716
15717 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15718
15719         PR target/67344
15720         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
15721         a define_insn, remove second alternative.
15722
15723 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
15724             Joseph Myers  <joseph@codesourcery.com>
15725
15726         * gcc.c (struct switchstr): Expand comment.
15727
15728 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15729
15730         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
15731         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
15732
15733 2015-08-25  Richard Biener  <rguenther@suse.de>
15734
15735         PR middle-end/67306
15736         * genmatch.c (expr::gen_transform): Verify the result of
15737         builtin_decl_implicit.
15738         (dt_simplify::gen_1): Likewise.
15739
15740 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15741
15742         * config/arm/constraints.md: Also list Cs and US ARM-specific
15743         constraints as used.
15744
15745 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15746
15747         PR target/66609
15748         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
15749         UNSPEC_PCREL.
15750         (nonpic_symbol_mentioned_p): Likewise.
15751         (sh_delegitimize_address): Likewise.
15752         (sh_function_ok_for_sibcall): Take into account weak symbols.
15753         (sh_expand_sym_label2reg): New.
15754         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
15755         * config/sh/sh.md (UNSPEC_PCREL): New enum.
15756         (call_pcrel): Use sh_expand_sym_label2reg.
15757         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
15758         (symPCREL_label2reg) New expand.
15759
15760 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15761
15762         * graphite-poly.c: Change type of region from void* to sese.
15763         * graphite-poly.h (struct scop): Changing the type of scop::region
15764         from void* to sese. Change accessor macro accordingly.
15765         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
15766
15767 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15768
15769         * graphite-scop-detection.c (stmt_simple_for_scop_p):
15770         Constrain only on INTEGER_TYPE.
15771
15772 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15773
15774         PR target/67211
15775         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
15776         -mefficient-unaligned-vsx on ISA 2.7.
15777
15778         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
15779         option to a masked option.
15780
15781         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
15782         logic for -mefficient-unaligned-vsx so that it is set via an arch
15783         ISA option, instead of being set if -mtune=power8 is set. Move
15784         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
15785         near other default option handling.
15786
15787 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15788
15789         * genflags.c (gen_macro): Delete.
15790         (gen_proto): Don't create GEN.*CALL.* macros.
15791         * gensupport.h (get_file_location): Declare.
15792         * gensupport.c (rtx_locs): New variable.
15793         (read_md_rtx): Record rtx locations.
15794         (get_file_location): New function.
15795         * target-insns.def (call, call_pop, call_value, call_value_pop)
15796         (sibcall, sibcall_value): New patterns.
15797         * gentarget-def.c (parse_argument): New function.
15798         (def_target_insn): Use it.  Handle optional operands.  Raise an
15799         error if an .md pattern has the wrong number of operands for the
15800         pattern name.  Remove the names of unused operands from the prototype.
15801         * builtins.c (expand_builtin_apply): Use targetm functions
15802         instead of HAVE_call_value and GEN_CALL_VALUE.
15803         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
15804         and sibcall_value_pop.
15805         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
15806         of GEN_CALL.
15807         * config/alpha/alpha.md (untyped_call): Likewise.
15808         * config/iq2000/iq2000.md (untyped_call): Likewise.
15809         * config/m68k/m68k.md (untyped_call): Likewise.
15810         * config/mips/mips.md (untyped_call): Likewise.
15811         * config/pa/pa.md (untyped_call): Likewise.
15812         * config/rs6000/rs6000.md (untyped_call): Likewise.
15813         * config/sparc/sparc.md (untyped_call): Likewise.
15814         * config/tilegx/tilegx.md (untyped_call): Likewise.
15815         * config/tilepro/tilepro.md (untyped_call): Likewise.
15816         * config/visium/visium.md (untyped_call): Likewise.
15817         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
15818         gen_call_value instead of GEN_CALL_VALUE.
15819         * config/arm/arm.md (untyped_call): Likewise.
15820         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
15821         GEN_CALL.
15822
15823 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15824
15825         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
15826         (have_cbranchcc4): New variable.
15827         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
15828         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
15829         (if_convert): Initialize have_cbranchcc4.
15830
15831 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15832
15833         * builtins.c (expand_cmpstrn): Rename to...
15834         (expand_cmpstrn_or_cmpmem): ...this.
15835         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
15836         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
15837         Remove mode argument.
15838         (expand_builtin): Update accordingly.
15839
15840 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15841
15842         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
15843         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
15844         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
15845         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
15846         Add predicates for operands 0 and 3.
15847         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
15848         operand.
15849         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
15850         immediate_operand to nonmemory_operand.
15851
15852 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15853
15854         * df-scan.c (df_insn_info_init_fields): New function, split out
15855         from...
15856         (df_insn_create_insn_record): ...here.
15857         (df_insn_info_free_fields): New function, split out from...
15858         (df_insn_info_delete): ...here.
15859         (df_insn_rescan): Use the new functions instead of freeing and
15860         reallocating the df_insn_info.
15861
15862 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15863
15864         * doc/install.texi (Binaries): Remove links no longer valid.
15865
15866 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15867
15868         * config/nvptx/mkoffload.c (process): Replace
15869         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
15870
15871 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
15872
15873         PR target/67329
15874         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
15875
15876 2015-08-24  Renlin Li  <renlin.li@arm.com>
15877
15878         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
15879         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
15880         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
15881         * config/arm/constraints.md ("j"): Add check for high code.
15882
15883 2015-08-24  Tom de Vries  <tom@codesourcery.com>
15884
15885         PR tree-optimization/65468
15886         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
15887         chunk_size is one.
15888
15889 2015-08-24  Nathan Sidwell  <nathan@acm.org>
15890
15891         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
15892         change to nvptx_type_from_mode call. Use arg_promotion for both
15893         split and non-split args.
15894
15895 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15896
15897         * target-insns.def (movstr): New pattern.
15898         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
15899         (expand_movstr): Use targetm rather than HAVE_movstr/
15900         CODE_FOR_movstr.
15901
15902 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15903
15904         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
15905         cast syntax.
15906
15907 2015-08-24  Andrew Pinski  <apinski@cavium.com>
15908
15909         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
15910         AARCH64_EXTRA_TUNING_OPTION.
15911         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
15912         New enum.
15913         (aarch64_extra_tuning_flags): Base the shifted value on the index
15914         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
15915         * config/aarch64/aarch64.c: Remove the last argument to
15916         AARCH64_EXTRA_TUNING_OPTION.
15917
15918 2015-08-23  Nathan Sidwell  <nathan@acm.org>
15919
15920         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
15921         decls.
15922         (nvptx_declare_function_name): Insert formatting tabs for
15923         consistency.
15924
15925 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15926
15927         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
15928         parm_decl, rather than generating a dummy default def in cfun.
15929         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
15930         ssa_name from cfun and child_fn do not share a stmt as def stmt.
15931         (move_stmt_op): Handle PARM_DECl.
15932         (gather_ssa_name_hash_map_from): New function.
15933         (move_sese_region_to_fn): Add default defs for function params, and add
15934         them to vars_map.  Release copied ssa names.
15935         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
15936
15937 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15938
15939         * doc/sourcebuild.texi: Rename vect_no_int_max with
15940         vect_no_int_min_max.  Update description.
15941
15942 2015-08-22  Andrew Pinski  <apinski@cavium.com>
15943
15944          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
15945         * config/aarch64/aarch64-protos.h
15946         (aarch64_fusion_pairs_index): New enum.
15947         (aarch64_fusion_pairs): Base the shifted value on the index instead
15948         Rewrite AARCH64_FUSE_ALL to be based on the end index.
15949         of the argument to AARCH64_FUSION_PAIR.
15950         * config/aarch64/aarch64.c: Remove the last argument to
15951         AARCH64_FUSION_PAIR.
15952
15953 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
15954
15955         * dominance.c (new_zero_array): Define.
15956         (dom_info): Redefine as class with proper encapsulation.
15957         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
15958         Add new members.
15959         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
15960         allocations/deallocations.  Pass function as parameter (instead of
15961         using cfun).
15962         (dom_info::get_idom): Define accessor method.
15963         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
15964         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
15965         (calculate_dominance_info): Adjust to use dom_info class.
15966         (verify_dominators): Likewise.
15967
15968 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
15969
15970         * print-rtl.c (print_rtx): Check the correct range for
15971         flag_dump_unnumbered_links to behave as documented.
15972
15973         PR rtl-optimization/67227
15974         PR rtl-optimization/64164
15975         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
15976         (nonoverlapping_memrefs_p): Test offsets and sizes when given
15977         identical gimple_reg exprs.
15978
15979 2015-08-21  Nathan Sidwell  <nathan@acm.org>
15980
15981         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
15982         expansion.
15983         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
15984         crtl->stack_alignment_needed to determine alignment.
15985         (nvptx_get_drap_rtx): New.
15986         (TARGET_GET_DRAP_RTX): Override.
15987         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
15988
15989 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15990
15991         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
15992
15993 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15994
15995         * configure.ac: Remove uwin* cases.
15996         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
15997         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
15998         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
15999         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
16000         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
16001         i[34567]86-*-uwin*, powerpc-*-beos*.
16002
16003 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
16004
16005         * gencodes.c (gencodes): Print the comma for the preceding
16006         enum value rather than the current one.  Use aliased enum values
16007         rather than #defines for compiled-out patterns.
16008         (main): Update accordingly.  Replace LAST_INSN_CODE with
16009         NUM_INSN_CODES.
16010         * lra.c (insn_code_data): Update accordingly.
16011         (finish_insn_code_data_once, get_static_insn_data): Likewise.
16012         * recog.h (target_recog): Likewise.
16013         (preprocess_insn_constraints): Change parameter to unsigned int.
16014         * recog.c (preprocess_insn_constraints): Likewise.
16015         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
16016         * tree-vect-stmts.c (vectorizable_operation): Simplify.
16017
16018 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
16019
16020         PR rtl-optimization/61657
16021         * loop-iv.c (iv_number_of_iterations): Declare up and down as
16022         unsigned.  Remove superflous uint64_t cast.
16023
16024 2014-08-21  Felix Yang  <felix.yang@huawei.com>
16025             Jiji Jiang  <jiangjiji@huawei.com>
16026
16027         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
16028         argument and get builtin function code directly from CALL.
16029         (gimple_stringop_fixed_value): Modified accordingly.
16030         (gimple_stringops_transform, gimple_stringops_values_to_profile):
16031         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
16032
16033 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16034
16035         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
16036
16037 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16038
16039         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
16040         to match.pd.
16041         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
16042         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
16043         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
16044         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
16045         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
16046         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
16047         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
16048         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
16049         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
16050         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
16051
16052         * match.pd (SIN ) : New Operator.
16053         (TAN) : New Operator.
16054         (mult (SQRT@1 @0) @1) : New simplifier.
16055         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
16056         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
16057         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
16058         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
16059         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
16060         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
16061         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
16062         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
16063         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
16064         (rdiv @0 (POW:s @1 @2)) : New simplifier.
16065
16066 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
16067
16068         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
16069         loop if EXPR is simplified to const value.
16070
16071 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
16072
16073         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
16074         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
16075
16076 2015-08-21  Richard Biener  <rguenther@suse.de>
16077
16078         PR middle-end/67285
16079         * gimple-fold.c (replace_stmt_with_simplification): Assert
16080         seq is empty when replacing a call with itself but different
16081         arguments.
16082         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
16083         a call require that it is const.
16084
16085 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16086
16087         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
16088         * builtins.c (get_object_alignment_2): Adjust.
16089         * varasm.c (align_variable): Likewise.
16090         (get_variable_align): Likewise.
16091         (build_constant_desc): Likewise.
16092         (force_const_mem): Likewise.
16093         * doc/tm.texi.in: Likewise.
16094         * doc/tm.texi: Regenerate.
16095
16096 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16097
16098         * genconfig.c (main): Always define HAVE_cc0.
16099         * recog.c (rest_of_handle_peephole2): Adjust.
16100
16101 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16102
16103         * reorg.c (relax_delay_slots): Don't use #if to check value of
16104         HAVE_cc0.
16105
16106 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16107
16108         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
16109         * targhooks.c (default_have_conditional_execution): Adjust.
16110
16111 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
16112
16113         * rtl.h (rtvec_all_equal_p): Declare.
16114         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
16115         * rtl.c (rtvec_all_equal_p): New function.
16116         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
16117         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
16118         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
16119         * config/arm/arm.c (neon_vdup_constant): Likewise.
16120         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
16121         * config/tilegx/constraints.md (W, Y): Likewise.
16122         * config/tilepro/constraints.md (W, Y): Likewise.
16123         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
16124         (classify_immediate): Use unwrap_const_vec_duplicate.
16125         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
16126         (reg_or_v2s8bit_operand): Likewise.
16127         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
16128         (reg_or_v4s8bit_operand): Likewise.
16129
16130 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16131
16132         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
16133         (vec_shasigma_be): New #define.
16134         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
16135         (VPMSUMH): Likewise.
16136         (VPMSUMW): Likewise.
16137         (VPMSUMD): Likewise.
16138         (VPMSUM): New BU_P8V_OVERLOAD_2.
16139         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
16140         entries for VEC_MADD and VEC_VPMSUM.
16141
16142 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
16143
16144         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
16145         Multiply argument avr_n_flash by 64 to match unit of "KiB".
16146         (avr_pgm_check_var_decl): Same.
16147
16148 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
16149
16150         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
16151         initialization of HFmode scalar type (float16_t) to...
16152         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
16153         code.
16154
16155         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
16156
16157         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
16158         having an -mfp16-format.
16159
16160 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
16161
16162         * config/i386/predicates.md (vector_all_ones_operand): Use
16163         CONSTM1_RTX to simplify definition.
16164
16165 2015-08-20  Richard Biener  <rguenther@suse.de>
16166
16167         * toplev.c (compile_file): Remove loop calling late_global_decl
16168         on all symbols.
16169         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
16170         on decls we assembled.
16171
16172 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
16173
16174         * common/config/aarch64/aarch64-common.c
16175         (AARCH64_CPU_NAME_LENGTH): Delete.
16176         (aarch64_option_extension): New.
16177         (all_extensions): Likewise.
16178         (processor_name_to_arch): Likewise.
16179         (arch_to_arch_name): Likewise.
16180         (all_cores): New.
16181         (all_architectures): Likewise.
16182         (aarch64_get_extension_string_for_isa_flags): Likewise.
16183         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
16184         architecture names.
16185         * config/aarch64/aarch64-protos.h
16186         (aarch64_get_extension_string_for_isa_flags): New.
16187         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
16188         (aarch64_option_print): Get the string to print from
16189         aarch64_get_extension_string_for_isa_flags.
16190         (aarch64_declare_function_name): Likewise.
16191         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
16192         (MCPU_TO_MARCH_SPEC): This.
16193         (ASM_CPU_SPEC): Use it.
16194         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
16195         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
16196         (EXTRA_SPEC_FUNCTIONS): Use it.
16197
16198 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
16199
16200         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
16201         expansion when !ISA_HAS_LWL_LWR.
16202         (mips_block_move_straight): Update the size of elements copied to
16203         account for alignment when !ISA_HAS_LWL_LWR.
16204         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
16205
16206 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
16207
16208         * expr.c (expand_expr_real_2): Check gimple statement during
16209         LSHIFT_EXPR expand.
16210
16211 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
16212
16213         * common.opt (fstack-protector): Initialize to -1.
16214         (fstack-protector-all): Likewise.
16215         (fstack-protector-strong): Likewise.
16216         (fstack-protector-explicit): Likewise.
16217         * configure.ac: Add --enable-default-ssp.
16218         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
16219         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
16220         -1.
16221         * doc/install.texi: Document --enable-default-ssp.
16222         * config.in: Regenerated.
16223         * configure: Likewise.
16224
16225 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
16226
16227         PR rtl-optimization/64164
16228         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
16229         (parm_in_stack_slot_p): ... this.  Disregard mode, what
16230         matters is whether the parm will live in a pseudo or a stack
16231         slot.
16232         (expand_one_ssa_partition): Deal with params without a default
16233         def.  Disregard mode.
16234         * cfgexpand.h: Renamed function declaration.
16235         * tree-ssa-coalesce.c: Adjust.
16236         * function.c (split_complex_args): Allocate stack slot for
16237         unassigned parms before splitting.
16238         (parm_in_unassigned_mem_p): New.  Use it instead of
16239         parm_maybe_byref_p throughout this file.
16240         (assign_parm_setup_block): Use it.  Accept pseudos in the
16241         expand-assigned rtl.
16242         (assign_parm_setup_reg): Drop BLKmode requirement.
16243         (assign_parm_setup_stack): Allocate and fill in the address of
16244         unassigned MEM parms.
16245
16246 2015-08-19  David Sherwood  <david.sherwood@arm.com>
16247
16248         * genmodes.c (emit_mode_unit_size_inline): New function.
16249         (emit_mode_unit_precision_inline): New function.
16250         (emit_insn_modes_h): Emit new #define.  Emit new functions.
16251         (emit_mode_unit_size): New function.
16252         (emit_mode_unit_precision): New function.
16253         (emit_mode_adjustments): Add mode_unit_size adjustments.
16254         (emit_insn_modes_c): Emit new arrays.
16255         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
16256         use new inline methods.
16257
16258 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16259
16260         * config/aarch64/aarch64.c (bit_count): Delete prototype
16261         and definition.
16262         (aarch64_print_operand): Use popcount_hwi instead of the above.
16263
16264 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16265
16266         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
16267         comment.
16268
16269 2015-08-19  Marek Polacek  <polacek@redhat.com>
16270
16271         PR middle-end/67133
16272         * gimple-ssa-isolate-paths.c
16273         (insert_trap_and_remove_trailing_statements): Rename to ...
16274         (insert_trap): ... this.  Don't remove trailing statements; split
16275         block instead.
16276         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
16277
16278 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
16279
16280         PR other/67042
16281         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
16282         conditionalize the whole on __GNUC__.  Add fallback code
16283         depending neither on undefined nor implementation-defined behaviour.
16284
16285 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
16286
16287         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
16288         whitespaces with tab.
16289
16290 2015-08-19  Florian Weimer  <fweimer@redhat.com>
16291
16292         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
16293         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
16294         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
16295         Move Name_Ids instantiation to the Prj.Proc package, to avoid
16296         trampolines.
16297
16298 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16299
16300         * config/arm/arm.c (bounds_check): Use %wd print format
16301         for HOST_WIDE_INT arguments.
16302
16303 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
16304
16305         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
16306         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
16307         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
16308         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
16309         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
16310         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
16311         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
16312         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
16313         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
16314         typedefs.
16315
16316 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
16317
16318         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
16319         function.c, graphite-scop-detection.c, haifa-sched.c,
16320         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
16321         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
16322         varasm.c: Remove typedefs of structs.
16323
16324 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
16325
16326         * config/rs6000/altivec.h (vec_adde): New define.
16327         (vec_addec): Likewise.
16328         (vec_double): Likewise.
16329         (vec_bperm): Likewise.
16330         (vec_gb): Likewise.
16331         * config/rs6000/rs6000-builtin.def (ADDE): New
16332         BU_ALTIVEC_OVERLOAD_3.
16333         (ADDEC): Likewise.
16334         (DOUBLE): New BU_VSX_OVERLOAD_1.
16335         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
16336         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
16337         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
16338         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
16339         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
16340         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
16341         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
16342         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
16343         and P8V_BUILTIN_VEC_VBPERMQ.
16344
16345 2015-08-18  Jason Merrill  <jason@redhat.com>
16346
16347         * print-tree.c (print_node): Handle TREE_BINFO.
16348
16349 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16350
16351         PR middle-end/36757
16352         * builtins.c (expand_builtin_signbit): Add asserts to make sure
16353         we can expand BUILT_IN_SIGNBIT inline.
16354         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
16355         * doc/extend.texi: Document the type-generic __builtin_signbit.
16356
16357 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
16358
16359         PR rtl-optimization/67218
16360         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
16361         (simplify_unary_operation_1): Use it.
16362
16363 2015-08-18  Marek Polacek  <polacek@redhat.com>
16364
16365         PR middle-end/67222
16366         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
16367         if the call isn't valid.
16368         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
16369         gimple_call_builtin_p.
16370         (call_may_clobber_ref_p_1): Likewise.
16371         (stmt_kills_ref_p): Likewise.
16372
16373 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16374
16375         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
16376         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
16377         (mips_hard_regno_scratch_ok): Likewise.
16378         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
16379         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
16380
16381 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
16382
16383         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
16384         (determine_value_range): Call refine_value_range_using_guard for
16385         each loop initial condition to improve value range.
16386
16387 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
16388
16389         * config/i386/i386.c: Remove include of fibheap.h.
16390
16391 2015-08-17  Richard Biener  <rguenther@suse.de>
16392
16393         PR tree-optimization/67221
16394         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
16395         (sccvn_dom_walker::before_dom_children): Mark backedges of
16396         non-executable blocks as not executable.
16397
16398 2015-08-17  David Sherwood  <david.sherwood@arm.com>
16399
16400         * config/arm/arm.c (neon_element_bits): Replace call to
16401         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
16402         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
16403         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
16404         (neon_vdup_lane<mode>): Likewise.
16405         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
16406         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
16407         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
16408         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
16409         * config/spu/spu.c (arith_immediate_p): Likewise.
16410         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
16411         * expr.c (expand_expr_real_2): Likewise.
16412         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
16413         * simplify-rtx.c (simplify_immed_subreg): Likewise.
16414         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
16415         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
16416         New variable.
16417         * fold-const.c (fold_binary_loc): Replace call to
16418         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
16419         GET_MODE_UNIT_PRECISION (m).
16420
16421 2015-08-17  Mike Stump  <mikestump@comcast.net>
16422
16423         * config/arm/arm.c (arm_block_move_unaligned_straight):
16424         Emit normal move instead of unaligned load when source or destination
16425         are appropriately aligned.
16426
16427 2015-08-17  Richard Biener  <rguenther@suse.de>
16428             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16429
16430         PR middle-end/16107
16431         * match.pd (div (coss (op @0) : New simplifier.
16432
16433 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
16434
16435         PR rtl-optimization/64164
16436         PR bootstrap/66978
16437         PR middle-end/66983
16438         PR rtl-optimization/67000
16439         PR middle-end/67034
16440         PR middle-end/67035
16441         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
16442         * tree-ssa-copyrename.c: Removed.
16443         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
16444         -ftree-coalesce-vars.
16445         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
16446         * common.opt (ftree-copyrename): Ignore.
16447         (ftree-coalesce-inlined-vars): Likewise.
16448         * doc/invoke.texi: Remove the ignored options above.
16449         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
16450         * tree-ssa-coalesce.h: ... here.
16451         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
16452         headers required by it.
16453         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
16454         across variables when flag_tree_coalesce_vars.  Check register
16455         use and promoted modes to allow coalescing.  Do not coalesce
16456         maybe-byref parms with SSA_NAMEs of other variables, or
16457         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
16458         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
16459         with its member functions to tree-ssa-coalesce.c.
16460         (var_map_base_init): Likewise.  Renamed to
16461         compute_samebase_partition_bases.
16462         (partition_view_normal): Drop want_bases parameter.
16463         (partition_view_bitmap): Likewise.
16464         * tree-ssa-live.h: Adjust declarations.
16465         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
16466         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
16467         default defs at the entry point.
16468         (dump_part_var_map): New.
16469         (compute_optimized_partition_bases): New, called by...
16470         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
16471         of compute_samebase_partition_bases.  Adjust.
16472         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
16473         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
16474         (ssa_default_def_partition): New.
16475         (get_rtl_for_parm_ssa_default_def): New.
16476         (align_local_variable, add_stack_var): Support anonymous SSA
16477         names.
16478         (defer_stack_allocation): Likewise.  Declare earlier.
16479         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
16480         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
16481         Do no record deferred-allocation marker in
16482         SA.partition_to_pseudo.
16483         (expand_stack_vars): Adjust check for the marker in it.
16484         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
16485         redundant MEM attr setting.
16486         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
16487         from...
16488         (expand_one_stack_var): ... this.  New wrapper to check and
16489         skip already expanded SSA partitions.
16490         (record_alignment_for_reg_var): New, factored out of...
16491         (expand_one_var): ... this.
16492         (expand_one_ssa_partition): New.
16493         (adjust_one_expanded_partition_var): New.
16494         (expand_one_register_var): Check and skip already expanded SSA
16495         partitions.
16496         (expand_used_vars): Don't create DECLs for anonymous SSA
16497         names.  Expand all SSA partitions, then adjust all SSA names.
16498         (pass::execute): Replace the loops that set
16499         SA.partition_to_pseudo from partition leaders and cleared
16500         DECL_RTL for multi-location variables, and that which used to
16501         rename vars and set attrs, with one that clears DECL_RTL and
16502         checks that PARMs and RESULTs default_defs match DECL_RTL.
16503         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
16504         * emit-rtl.c: Include stor-layout.h.
16505         (set_reg_attrs_for_parm): Handle NULL decl.
16506         (set_reg_attrs_for_decl_rtl): Take mode from expression if
16507         it's not a DECL.
16508         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
16509         rather than its possibly-NULL DECL.
16510         * explow.c (promote_ssa_mode): New.
16511         * explow.h (promote_ssa_mode): Declare.
16512         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16513         (read_complex_part): Export.
16514         * expr.h (read_complex_part): Declare.
16515         * cfgexpand.h (parm_maybe_byref_p): Declare.
16516         * function.c: Include cfgexpand.h.
16517         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16518         (use_register_for_parm_decl): Wrapper for the above to
16519         special-case the result_ptr.
16520         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16521         (split_complex_args): Take assign_parm_data_all argument.
16522         Pass it to rtl_for_parm.  Set up rtl and context for split
16523         args.  Reset complex parm before fetching its default decl
16524         rtl.
16525         (assign_parms_unsplit_complex): Use the default-def complex
16526         parm rtl if it matches the components.
16527         (assign_parms_augmented_arg_list): Adjust.
16528         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16529         multiple locations.  Recognize split complex args.
16530         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16531         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16532         (assign_parm_setup_block): Prefer SSA-assigned location, and
16533         fill in its address if the memory location of a maybe-byref
16534         parm was not assigned by cfgexpand.
16535         (assign_parm_setup_reg): Likewise.  Adjust its mode as
16536         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
16537         sure passed_pointer parms don't need conversion.  Copy address
16538         or value as needed.
16539         (assign_parm_setup_stack): Prefer SSA-assigned location.
16540         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16541         rtl before testing for pointer bounds.  Special-case result_ptr.
16542         (expand_function_start): Maybe reset DECL_RTL of result.
16543         Prefer SSA-assigned location for result and static chain.
16544         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
16545         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
16546         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16547         anonymous SSA names.  Use promote_ssa_mode.
16548         (get_temp_reg): Likewise.
16549         (remove_ssa_form): Adjust.
16550         * stor-layout.c (layout_decl): Don't set mem attributes of
16551         non-MEMs.
16552         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16553         and get its reg_usage for reg invalidation.
16554         (compute_bb_dataflow): Pass it insn.
16555         (emit_notes_in_bb): Likewise.
16556
16557 2015-08-14  Marek Polacek  <polacek@redhat.com>
16558
16559         * tree-core.h (tree_base): Fix typo.
16560
16561 2015-08-14  Marek Polacek  <polacek@redhat.com>
16562
16563         PR middle-end/67133
16564         * gimple.c (infer_nonnull_range_by_attribute): Check that the
16565         nonnull argument position is not outside function arguments.
16566
16567 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
16568
16569         PR target/67143
16570         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
16571         'lconst_atomic' with 'const_atomic'.
16572         (atomic_fetch_<optab><mode>): Likewise.
16573         (atomic_<optab>_fetch<mode>): Likewise.
16574         * config/aarch64/iterators.md (lconst-atomic): Move below
16575         'const_atomic'.
16576         (const_atomic): New.
16577
16578 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
16579             Bernd Schmidt  <bernds@codesourcery.com>
16580
16581         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
16582         debug options.
16583         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
16584         (DWARF2_DEBUGGING_INFO): Don't define.
16585         * debug.h (dwarf2_lineno_debug_hooks): Declare.
16586         * toplev.c (process_options): Add a case for it.
16587         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
16588         (dwarf2out_init): Skip most initializations if
16589         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
16590         case.
16591         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
16592         DWARF2_LINENO_DEBUGGING_INFO.
16593         * opts.c (set_debug_level): Likewise.
16594
16595 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
16596
16597         * config/arm/types.md (is_neon_type): Add missing types.
16598
16599 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
16600
16601         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
16602         for skylake.
16603         * config/i386/i386.c (PTA_SKYLAKE): New macros.
16604         (processor_alias_table): Add skylake description.
16605         (enum processor_model): Add skylake processor.
16606         (arch_names_table): Add skylake record.
16607         * doc/invoke.texi: Add skylake item.
16608
16609 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
16610
16611         * ira-int.h: Include recog.h.
16612         * ira-build.c: Don't include recog.h.
16613         * ira-color.c: Likewise.
16614         * ira-conflicts.c: Likewise.
16615         * ira-costs.c: Likewise.
16616         * ira-emit.c: Likewise.
16617         * ira-lives.c: Likewise.
16618         * ira.c: Likewise.
16619         * sched-deps.c: Likewise.
16620         * sel-sched.c: Likewise.
16621         * target-globals.c: Likewise.
16622
16623 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
16624
16625         PR bootstrap/55035
16626         * reload1.c (elimination_costs_in_insn): Make it obvious to the
16627         compiler that the n_dups and n_operands loop bounds are invariant.
16628
16629 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16630
16631         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
16632         expressions in A and B.
16633
16634 2015-08-13  Richard Biener  <rguenther@suse.de>
16635
16636         * tree.c (nonnull_arg_p): Move from ...
16637         * tree-vrp.c (nonnull_arg_p): ... here.
16638         * tree.h (nonnull_arg_p): Declare.
16639         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
16640         here, register ptr != 0 for nonnull_arg_p pointer arguments.
16641         Properly initialize static chain and by-reference result pointer.
16642         (run_scc_vn): Adjust.
16643
16644 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16645
16646         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
16647         TUNE_I6400.
16648
16649 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16650
16651         * config/aarch64/aarch64-protos.h
16652         (aarch64_gen_atomic_cas): Declare.
16653         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
16654         Choose appropriate instruction pattern for the target.
16655         (aarch64_gen_atomic_cas): New.
16656         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
16657         (atomic_compare_and_swap<mode>_1): Rename to
16658         aarch64_compare_and_swap<mode>.  Fix some indentation.
16659         (aarch64_compare_and_swap<mode>_lse): New.
16660         (aarch64_atomic_cas<mode>): New.
16661
16662 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16663
16664         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
16665         (TARGET_LSE): New.
16666
16667 2015-08-13  Richard Biener  <rguenther@suse.de>
16668
16669         PR tree-optimization/67191
16670         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
16671         assert we value-numbered last stmts operand because it can validly
16672         trigger for unreachable code.
16673
16674 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16675
16676         PR rtl-optimization/67103
16677         * ifcvt.c (noce_try_store_flag_constants): Move
16678         x = (-(test != 0) & (b - a)) + a transformation to...
16679         (noce_try_cmove): ... Here.  Try it if normal conditional
16680         move fails.
16681
16682 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16683
16684         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
16685         pseudo-processors.
16686         * config/mips/mips.md (processor): Remove w32 and w64.
16687
16688 2015-08-13  Richard Biener  <rguenther@suse.de>
16689
16690         PR tree-optimization/66502
16691         PR tree-optimization/67167
16692         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
16693         backedge arguments.
16694         (vn_phi_lookup): Adjust.
16695         (vn_phi_insert): Likewise.
16696         (visit_phi): Prefer to value-number to another PHI node
16697         over value-numbering to a PHI argument.
16698         (init_scc_vn): Mark DFS back edges.
16699
16700 2015-08-13  Richard Biener  <rguenther@suse.de>
16701
16702         * gimple.h (gcall::code_): New constant static member.
16703         (gcond::code_): Likewise.
16704         * gimple.c (gcall::code_): Define.
16705         (gcond::code_): Likewise.
16706         (is_a_helper <const gcond *>): Add.
16707         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
16708         and forward to a new gcall overload with less checking and a
16709         cheaper way to access the operand.
16710         (gimple_call_lhs_ptr): Likewise.
16711         (gimple_call_set_lhs): Likewise.
16712         (gimple_call_internal_p): Likewise.
16713         (gimple_call_with_bounds_p): Likewise.
16714         (gimple_call_set_with_bounds): Likewise.
16715         (gimple_call_internal_fn): Likewise.
16716         (gimple_call_set_ctrl_altering): Likewise.
16717         (gimple_call_ctrl_altering_p): Likewise.
16718         (gimple_call_fntype): Likewise.
16719         (gimple_call_fn): Likewise.
16720         (gimple_call_fn_ptr): Likewise.
16721         (gimple_call_set_fndecl): Likewise.
16722         (gimple_call_fndecl): Likewise.
16723         (gimple_call_chain): Likewise.
16724         (gimple_call_num_args): Likewise.
16725         (gimple_call_arg): Likewise.
16726         (gimple_call_arg_ptr): Likewise.
16727         (gimple_call_set_arg): Likewise.
16728         (gimple_call_noreturn_p): Likewise.
16729         (gimple_cond_code): Likewise.
16730         (gimple_cond_lhs): Likewise.
16731         (gimple_cond_rhs): Likewise.
16732         (gimple_has_lhs): Reduce checking.
16733
16734 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16735
16736         PR middle-end/25529
16737         * match.pd (div (mult @0 @1) @1) : New simplifier.
16738
16739 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
16740
16741         PR target/67071
16742         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
16743         predicate to allow construction of vector constants using the
16744         VSLDOI vector shift instruction.
16745
16746         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
16747         declaration.
16748
16749         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
16750         the number of bytes to be shifted left and filled in with either
16751         all zero or all one bits.
16752         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
16753         methods exist.
16754         (output_vec_const_move): On power8, generate XXLORC to generate
16755         a vector constant with all 1's. Do a split if we need to use a
16756         VSLDOI instruction.
16757
16758         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
16759         properly test for the MSB.
16760
16761         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
16762         vector constants that can be created with VSLDOI.
16763
16764 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16765
16766         revert:
16767         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16768         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16769         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16770         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16771         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16772         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16773         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16774         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16775         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16776
16777 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
16778
16779         * config/xtensa/constraints.md (define_constraint "Y"): New
16780         constraint.
16781         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
16782         * config/xtensa/linux.h (ASM_SPEC): Likewise.
16783         * config/xtensa/predicates.md (move_operand): Match constants
16784         and symbols in the presence of TARGET_AUTO_LITPOOLS.
16785         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
16786         immediate references to TLS data.
16787         (xtensa_emit_move_sequence): Don't force constants to memory in
16788         the presence of TARGET_AUTO_LITPOOLS.
16789         (print_operand): Add 'y' format, same as default, but capable of
16790         printing SF mode constants as well.
16791         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
16792         (movsf_internal): Add movi pattern that loads literal.
16793         (movsf, movdf): Don't force constants to memory in the presence
16794         of TARGET_AUTO_LITPOOLS.
16795         (movdf_internal): Add 'Y' constraint.
16796         * config/xtensa/xtensa.opt (mauto-litpools): New option.
16797         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
16798
16799 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16800
16801         * config/arm/arm-fpus.def: Replace booleans with feature flags.
16802         Update comment.
16803         * config/arm/arm.c (ARM_FPU): Update macro.
16804         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
16805         (TARGET_FP16): Likewise.
16806         (TARGET_CRYPTO): Likewise.
16807         (TARGET_NEON): Likewise.
16808         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
16809         field features.
16810
16811 2015-08-12  Tom de Vries  <tom@codesourcery.com>
16812
16813         PR other/67092
16814         PR other/67098
16815         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
16816         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
16817         accordingly.  Mention default for --with-stage1-ldflags.
16818
16819 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16820
16821         * config/arm/arm.h (arm_fpu_feature_set): New.
16822         (ARM_FPU_FSET_HAS): New.
16823         (FPU_FL_NONE): New.
16824         (FPU_FL_NEON): New.
16825         (FPU_FL_FP16): New.
16826         (FPU_FL_CRYPTO): New.
16827
16828 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16829
16830         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
16831         after -mcmodel=large -fPIC sorry.
16832
16833 2015-08-12  Richard Biener  <rguenther@suse.de>
16834
16835         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
16836         comparison operand order and commutative ternary op operand order.
16837         (sccvn_dom_walker::cond_stack): New state to track temporary
16838         expressions.
16839         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
16840         no longer valid.
16841         (sccvn_dom_walker::record_cond): Add a single temporary conditional
16842         expression.
16843         (sccvn_dom_walker::record_conds): Add a temporary conditional
16844         expressions and all related expressions also true/false.
16845         (sccvn_dom_walker::before_dom_children): Record temporary
16846         expressions based on the controlling condition of a single
16847         predecessor.  When trying to simplify a conditional statement
16848         lookup expressions we might have inserted earlier.
16849
16850 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
16851
16852         PR target/67127
16853         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
16854         to ARM core registers.
16855
16856 2015-08-12  Nathan Sidwell  <nathan@acm.org>
16857
16858         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
16859         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
16860
16861 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
16862
16863         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
16864         line with comments.
16865         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
16866
16867 2015-08-12  Richard Biener  <rguenther@suse.de>
16868
16869         * gimple.h (remove_pointer): New trait.
16870         (GIMPLE_CHECK2): New inline template function.
16871         (gassign::code_): New constant static member.
16872         (is_a_helper<const gassign *>): Add.
16873         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
16874         and forward to a new gassign overload with less checking and a
16875         cheaper way to access the operand.
16876         (gimple_assign_lhs_ptr): Likewise.
16877         (gimple_assign_set_lhs): Likewise.
16878         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
16879         Likewise.
16880         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
16881         Likewise.
16882         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
16883         Likewise.
16884         (gimple_assign_rhs_code): Likewise.
16885         * gimple.c (gassign::code_): Define.
16886
16887 2015-08-12  Richard Biener  <rguenther@suse.de>
16888
16889         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16890         Eliminate edges marked as not executable by SCCVN.
16891         * tree-ssa-sccvn.c: Include gimple-iterator.h.
16892         (cond_dom_walker): Rename to sccvn_dom_walker.
16893         (sccvn_dom_walker::before_dom_children): Value-number defs
16894         of all stmts.
16895         (run_scc_vn): Remove loop value-numbering all SSA names.
16896         Drop not visited SSA names to varying.
16897
16898 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16899
16900         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16901         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16902         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16903         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16904         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16905         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16906         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16907         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16908         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16909
16910 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
16911
16912         PR target/66954
16913         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
16914         to enum feature_priority and feature_list.
16915         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
16916         and isa_names_table.
16917
16918 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16919
16920         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
16921         vect_induction_def.
16922
16923 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16924
16925         PR c/66098
16926         PR c/66711
16927         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
16928         account when deciding what was the command-line status.
16929
16930 2015-08-11  Nathan Sidwell  <nathan@acm.org>
16931
16932         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
16933
16934         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
16935         we're not the only contributor to target phi.
16936
16937 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
16938
16939         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
16940         FIXED_REG0.
16941
16942 2015-08-11  Tom de Vries  <tom@codesourcery.com>
16943
16944         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
16945
16946 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
16947
16948         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
16949         with CPU_SLM.
16950         * config/i386/i386.md (cpu): Remove knl.
16951
16952 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16953
16954         PR libgomp/65742
16955         PR middle-end/66332
16956         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
16957         open-coded sequence.
16958         * omp-low.c (oacc_process_reduction_data): Remove handline of
16959         GOMP_DEVICE_HOST_NONSHM.
16960
16961         * lto-streamer-in.c (lto_input_mode_table): Adjust to
16962         GET_MODE_INNER changes.
16963
16964 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16965             Ilya Verbin  <ilya.verbin@intel.com>
16966
16967         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
16968
16969 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16970
16971         * doc/options.texi (EnabledBy): Document that the argument must be
16972         a Common option.
16973         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
16974         Not enabled by -Wall.
16975         * optc-gen.awk: Give nicer error messages. Detect if the argument
16976         of EnabledBy is not a Common option.
16977         * common.opt (Wnull-dereference): Not enabled by -Wall.
16978         * opt-functions.awk (lang_enabled_by): Nicer error messages.
16979
16980 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16981
16982         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
16983         model == 0x4f as Broadwell.
16984
16985 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
16986
16987         PR rtl-optimization/67028
16988         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
16989         Add test to see if a const_int fits in the new mode.
16990
16991 2015-08-07  DJ Delorie  <dj@redhat.com>
16992
16993         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
16994
16995 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
16996
16997         PR rtl-optimization/67029
16998         * ira-color.c: Include "recog.h" before including "ira-int.h".
16999         * target-globals.c: Likewise.
17000         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
17001         adds an alternative_mask argument and use it instead of
17002         preferred_alternatives.
17003         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
17004         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
17005         * sched-deps.c: Include "ira-int.h" after including "ira.h".
17006         (sched_analyze_insn): Update call to
17007         ira_implicitly_set_insn_hard_regs.
17008         * sel-sched.c: Include "ira-int.h" after including "ira.h".
17009         (implicit_clobber_conflict_p): Update call to
17010         ira_implicitly_set_insn_hard_regs.
17011
17012 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
17013
17014         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
17015
17016 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
17017
17018         PR target/67002
17019         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
17020         currently_expanding_to_rtl is set.
17021
17022 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
17023
17024         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
17025         * configure: Regenerate.
17026
17027 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17028             Jiong Wang  <jiong.wang@arm.com>
17029
17030         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
17031         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
17032         (REG_CLASS_NAMES): Likewise.
17033         (REG_CLASS_CONTENTS): Likewise.
17034         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
17035         (aarch64_register_move_cost): Likewise.
17036         (aarch64_load_symref_appropriately): Invoke the new added pattern if
17037         possible.
17038         * config/aarch64/constraints.md (Uc0): New constraint.
17039
17040 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
17041
17042         * config/aarch64/constraints.md (Usf): Add the test of
17043         aarch64_is_noplt_call_p.
17044
17045 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
17046
17047         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
17048         declaration.
17049         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
17050         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
17051         (call_symbol): Likewise.
17052
17053 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
17054
17055         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
17056         for vectorizing multiplication patterns.
17057         * tree-vectorizer.h: Adjust the number of patterns.
17058
17059 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
17060
17061         * config/i386/sse.md (*vec_concatv2df): Declare added
17062         alternatives as sselog type.
17063
17064 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17065
17066         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
17067         all GPRs.
17068
17069 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17070
17071         * config/s390/s390.c (s390_expand_tbegin): Expand either
17072         tbegin_1_z13 or tbegin_1 depending on VX flag.
17073         * config/s390/s390.md ("tbegin_1_z13"): New expander.
17074
17075 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17076
17077         * config/s390/s390.opt: Clarify description for -mzvector
17078         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
17079         -mzvector.
17080
17081 2015-08-06  Richard Biener  <rguenther@suse.de>
17082
17083         * gimple.h (gimple_call_set_fn): Access op member directly.
17084         (gimple_call_chain_ptr): Likewise.
17085         (gimple_call_set_chain): Likewise.
17086         (gimple_cond_lhs_ptr): Likewise.
17087         (gimple_cond_set_lhs): Likewise.
17088         (gimple_cond_rhs_ptr): Likewise.
17089         (gimple_cond_set_rhs): Likewise.
17090         (gimple_cond_true_label): Likewise.
17091         (gimple_cond_set_true_label): Likewise.
17092         (gimple_cond_set_false_label): Likewise.
17093         (gimple_cond_false_label): Likewise.
17094         (gimple_label_label): Likewise.
17095         (gimple_label_set_label): Likewise.
17096         (gimple_goto_set_dest): Likewise.
17097         (gimple_asm_input_op): Likewise.
17098         (gimple_asm_input_op_ptr): Likewise.
17099         (gimple_asm_set_input_op): Likewise.
17100         (gimple_asm_output_op): Likewise.
17101         (gimple_asm_output_op_ptr): Likewise.
17102         (gimple_asm_set_output_op): Likewise.
17103         (gimple_asm_clobber_op): Likewise.
17104         (gimple_asm_set_clobber_op): Likewise.
17105         (gimple_asm_label_op): Likewise.
17106         (gimple_asm_set_label_op): Likewise.
17107         (gimple_switch_index): Likewise.
17108         (gimple_switch_index_ptr): Likewise.
17109         (gimple_return_retval_ptr): Likewise.
17110         (gimple_return_retval): Likewise.
17111         (gimple_return_set_retval): Likewise.
17112         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
17113         (gimple_switch_label): Likewise.
17114         (gimple_switch_set_label): Likewise.
17115
17116 2015-08-06  Richard Biener  <rguenther@suse.de>
17117
17118         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
17119         bool comparison canonicalization and restrict to integers.
17120
17121 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
17122
17123         * coretypes.h (enum symbol_visibility): Relocate here.
17124         * flag-types.h (enum symbol_visibility): Remove.
17125         * tree-core.h (enum symbol_visibility): Remove.
17126
17127 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
17128
17129         PR target/66870
17130         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
17131         for no_split_stack function attribute along with
17132         flag_split_stack.
17133         (rs6000_expand_split_stack_prologue): Likewise.
17134
17135 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17136             Jeff Law  <law@redhat.com>
17137
17138         PR c/16351
17139         * doc/invoke.texi (Wnull-dereference): New.
17140         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
17141         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
17142         Warn for potential NULL dereferences.
17143         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
17144         * ubsan.c (instrument_nonnull_arg): Call
17145         infer_nonnull_range_by_attribute.
17146         (instrument_nonnull_return): Likewise.
17147         * common.opt (Wnull-dereference); New.
17148         * gimple.c (infer_nonnull_range): Remove bool arguments.
17149         (infer_nonnull_range_by_dereference): New.
17150         (infer_nonnull_range_by_attribute): New.
17151         * gimple.h: Update declarations.
17152
17153 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
17154
17155         * gensupport.c (sequence_num): Replace with...
17156         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
17157         ...these new variables.
17158         (init_rtx_reader_args_cb): Update accordingly.
17159         (get_num_code_insns): Likewise.
17160         (read_md_rtx): Rework to use a while loop and get_c_test.
17161         Use the new counters.  Remove redundant DEFINE_SUBST case.
17162         * genoutput.c (gen_split): Delete.
17163         (main): Don't call it.
17164
17165 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
17166
17167         * gensupport.h (get_c_test): Declare.
17168         * gensupport.c (get_c_test): New function.
17169         * genconditions.c (main): Use it.
17170         * genrecog.c (validate_pattern): Likewise.
17171         (match_pattern_1): Likewise.  Remove c_test argument.
17172         (match_pattern): Update accordingly and remove c_test argument.
17173         (main): Update accordingly.
17174
17175 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
17176
17177         * gensupport.h (get_num_insn_codes): Declare.
17178         * gensupport.c (get_num_insn_codes): New function.
17179         * genattrtab.c (optimize_attrs): Rename max_insn_code to
17180         num_insn_codes.
17181         (main): Likewise.  Use get_num_insn_codes.
17182         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
17183
17184 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
17185
17186         PR middle-end/66311
17187         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
17188         is zero- rather than sign-extended.
17189
17190 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
17191
17192         * target-insns.def (can_extend): Delete.
17193
17194 2015-08-05  Richard Biener  <rguenther@suse.de>
17195
17196         PR tree-optimization/67121
17197         * tree-if-conv.c (combine_blocks): Clear range-info produced
17198         by stmts no longer executed conditionally.
17199
17200 2015-08-05  Nick Clifton  <nickc@redhat.com>
17201
17202         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
17203         to allow identical far pointers to remain.
17204
17205 2015-08-05  Richard Biener  <rguenther@suse.de>
17206
17207         PR middle-end/67120
17208         * match.pd: Compare address bases with == if they are decls
17209         or SSA names, not operand_equal_p.  Otherwise fail.
17210
17211 2015-08-05  Richard Biener  <rguenther@suse.de>
17212
17213         PR tree-optimization/67055
17214         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
17215         NULL gimple_block.
17216
17217         * g++.dg/torture/pr67055.C: New testcase.
17218
17219 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
17220
17221         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
17222         noavx512vl.
17223         (define_attr "enabled"): Handle avx521vl and noavx512vl.
17224         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
17225         AVX-512 alternative out of SSE.
17226         (define_insn "*vec_concatv2df"): Ditto.
17227
17228 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
17229
17230         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
17231         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
17232         CODE_FOR_avx_ptestv4di.
17233         * config/i386/sse.md (define_mode_iterator V_AVX): New.
17234         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
17235         (define_insn "avx_ptest256"): Merge this ...
17236         (define_insn "sse4_1_ptest"): And this ...
17237         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
17238
17239 2015-08-05  Richard Biener  <rguenther@suse.de>
17240
17241         PR tree-optimization/67109
17242         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
17243         against too big groups.  Print whether this is a load or store
17244         group.  Rename from ...
17245         (vect_analyze_group_access): ... this which is now a wrapper
17246         dissolving an invalid group.
17247         (vect_analyze_data_ref_accesses): Print whether this is a load
17248         or store group.
17249
17250 2015-08-05  Richard Biener  <rguenther@suse.de>
17251
17252         PR middle-end/67107
17253         * match.pd: Guard const_binop result checking against NULL_TREE
17254         result.
17255
17256 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
17257
17258         * cse.c (cse_insn): Restoring old behaviour for src_eqv
17259          when dest and value in the REG_EQUAL are same and dest
17260          is STRICT_LOW_PART.
17261
17262 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
17263
17264         * config/moxie/moxie.h (PRINT_OPERAND,
17265           PRINT_OPERAND_ADDRESS): Remove macros.
17266         * config/moxie/moxie-protos.h (moxie_print_operand,
17267           moxie_print_operand_address): Remove declaration.
17268         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
17269           TARGET_PRINT_OPERAND_ADDRESS): Define.
17270           (moxie_print_operand, moxie_print_operand_address): Make static.
17271
17272 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17273
17274         PR target/66731
17275         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
17276         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
17277
17278 2015-08-04  Richard Biener  <rguenther@suse.de>
17279
17280         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
17281         generated code.
17282         (dt_operand::gen_gimple_expr): Adjust.
17283
17284 2015-08-04  Richard Biener  <rguenther@suse.de>
17285
17286         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
17287         bool compares on RHS.
17288         * match.pd: Add X ==/!= !X is false/true pattern.
17289
17290 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
17291
17292         * config/aarch64/aarch64.c: Change inner loop statement cost
17293         to be consistent with other targets.
17294
17295 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
17296
17297         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
17298         targets.
17299
17300 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
17301
17302         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
17303         (machine_function): Remove pseudos field.
17304
17305 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17306
17307         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
17308         Exit early and use target_option_current_node if processing current
17309         pragma.
17310
17311 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17312
17313         * doc/extend.texi (AArch64 Function Attributes): New node.
17314         (AArch64 Pragmas): Likewise.
17315
17316 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17317
17318         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
17319         Initialize simd builtins if TARGET_SIMD.
17320         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17321         Make sure that the builtins are initialized only once no matter how
17322         many times the function is called.
17323         (aarch64_init_builtins): Unconditionally initialize crc builtins.
17324         (aarch64_relayout_simd_param): New function.
17325         (aarch64_simd_expand_args): Use above during argument expansion.
17326         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
17327         simd builtins if TARGET_SIMD.
17328         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
17329         prototype.
17330         (aarch64_relayout_simd_types): Likewise.
17331
17332 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17333
17334         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
17335         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
17336         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
17337         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
17338         static keyword.
17339         (aarch64_reset_previous_fndecl): New function.
17340         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
17341         the string.
17342         * config/aarch64/aarch64-c.c: New file.
17343         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
17344         Push and pop options at beginning and end.  Remove ifdef
17345         __ARM_FEATURE_CRC32.
17346         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
17347         Add pragma +nothing+simd and +nothing+crypto where appropriate.
17348         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
17349         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
17350         Define prototype.
17351         (aarch64_register_pragmas): Likewise.
17352         (aarch64_reset_previous_fndecl): Likewise.
17353         (aarch64_process_target_attr): Likewise.
17354         (aarch64_override_options_internal): Likewise.
17355
17356 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17357
17358         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
17359         New function.
17360         (aarch64_can_inline_p): Likewise.
17361         (TARGET_CAN_INLINE_P): Define.
17362
17363 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17364
17365         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
17366         Remove static.  Handle OPT_mgeneral_regs_only,
17367         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
17368         OPT_momit_leaf_frame_pointer.
17369         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
17370         (aarch64_attr_opt_type): New enum.
17371         (aarch64_attribute_info): New struct.
17372         (aarch64_handle_attr_arch): New function.
17373         (aarch64_handle_attr_cpu): Likewise.
17374         (aarch64_handle_attr_tune): Likewise.
17375         (aarch64_handle_attr_isa_flags): Likewise.
17376         (aarch64_attributes): New table.
17377         (aarch64_process_one_target_attr): New function.
17378         (num_occurences_in_str): Likewise.
17379         (aarch64_process_target_attr): Likewise.
17380         (aarch64_option_valid_attribute_p): Likewise.
17381         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17382         * config/aarch64/aarch64-protos.h: Include input.h
17383         (aarch64_handle_option): Declare prototype.
17384
17385 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17386
17387         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
17388         * config/aarch64/aarch64.c: Include target-globals.h
17389         (aarch64_previous_fndecl): New variable.
17390         (aarch64_set_current_function): New function.
17391         (TARGET_SET_CURRENT_FUNCTION): Define.
17392
17393 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17394
17395         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
17396         (explicit_arch): Likewise.
17397         (x_aarch64_isa_flags): Likewise.
17398         (mgeneral-regs-only): Mark as Save.
17399         (mfix-cortex-a53-835769): Likewise.
17400         (mcmodel=): Likewise.
17401         (mstrict-align): Likewise.
17402         (momit-leaf-frame-pointer): Likewise.
17403         (mtls-dialect): Likewise.
17404         (master=): Likewise.
17405         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
17406         (aarch64_isa_flags): Remove extern declaration.
17407         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
17408         to indicate success or failure.
17409         (aarch64_validate_march): Likewise.
17410         (aarch64_validate_mtune): Likewise.
17411         (aarch64_isa_flags): Delete.
17412         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
17413         instead of aarch64_isa_flags.
17414         (aarch64_get_tune_cpu): New function.
17415         (aarch64_get_arch): Likewise.
17416         (aarch64_override_options): Use above and set up explicit_tune_core
17417         and explicit_arch.
17418         (aarch64_print_extension): Move earlier in file.  Add isa_flags
17419         argument and use that instead of the global aarch64_isa_flags.
17420         (aarch64_option_save): New function.
17421         (aarch64_option_restore): Likewise.
17422         (aarch64_option_print): Likewise.
17423         (aarch64_declare_function_name): Likewise.
17424         (aarch64_start_file): Delete.
17425         (TARGET_ASM_FILE_START): Do not define.
17426         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
17427         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
17428         Declare prototype.
17429
17430 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17431
17432         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
17433         flag_omit_leaf_frame_pointer to 2.
17434
17435 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17436
17437         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
17438         define to 0 or 1.
17439         (TARGET_FIX_ERR_A53_835769): New macro.
17440         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
17441         handling of opts->x_aarch64_fix_a53_err835769.
17442         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
17443         than aarch64_fix_a53_err835769.
17444         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
17445         * config/aarch64/aarch64-linux.h: Likewise.
17446
17447 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
17448
17449         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
17450         ix86_expand_int_movcc as boolean.
17451
17452 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17453
17454         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
17455         (aarch64_cpu_string): Likewise.
17456         (aarch64_tune_string): Likewise.
17457         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
17458         (aarch64_parse_extension): Return aarch64_parse_opt_result.
17459         Add extra argument to put result into.
17460         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
17461         (aarch64_parse_cpu): Add arguments to put results into. Return
17462         aarch64_parse_opt_result.
17463         (aarch64_parse_tune): Likewise.
17464         (aarch64_override_options_after_change_1): New function.
17465         (aarch64_override_options_internal): New function.
17466         (aarch64_validate_mcpu): Likewise.
17467         (aarch64_validate_march): Likewise.
17468         (aarch64_validate_mtune): Likewise.
17469         (aarch64_override_options): Update to reflect above changes.
17470         Move some logic into aarch64_override_options_internal.
17471         Initialize target_option_default_node and target_option_current_node.
17472         (aarch64_override_options_after_change): Move logic into
17473         aarch64_override_options_after_change_1 and call it with global_options.
17474         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
17475         flag values from that.
17476
17477 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17478
17479         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17480         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
17481         * config/aarch64/aarch64.c (struct processor): Add arch field.
17482         (all_architectures): Handle above, move above all_cores.
17483         (all_cores): Handle above.
17484         (aarch64_parse_arch): Handle above changes.
17485         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
17486         above.  Update comments.
17487         (armv8.1-a): Likewise.
17488         * config/aarch64/aarch64-cores.def: Update according to above.
17489         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
17490         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
17491         aarch64_arch_driver_info.
17492
17493 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17494
17495         * config/aarch64/aarch64.c (struct processor): Add ident field.
17496         Rename core sched_core.
17497         (all_cores): Handle above changes.
17498         (all_architectures): Likewise.
17499         (aarch64_parse_arch): Likewise.
17500         (aarch64_override_options): Likewise.
17501
17502 2015-08-04  Richard Biener  <rguenther@suse.de>
17503
17504         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
17505         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
17506         comparisons embedded in [VEC_]COND_EXPRs.
17507
17508 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
17509
17510         * tree-if-conv.c: Fix various typos in comments.
17511         * tree-vect-stmts.c: Likewise.
17512
17513 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17514
17515         PR tree-optimization/67043
17516         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
17517         preheader after hoisting invariant in it.
17518         (find_defs): Force recomputation of all luids.
17519
17520 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
17521
17522         * config/rs6000/htm.md (tabort.): Restrict the source operand to
17523         using a base register.
17524
17525 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
17526
17527         * main.c (main): Pass in NULL for toplev's external_timer.
17528         * timevar.c: Include coretypes.h.
17529         (class timer::named_items): New.
17530         (timer::named_items::named_items): New.
17531         (timer::named_items::~named_items): New.
17532         (timer::named_items::push): New.
17533         (timer::named_items::pop): New.
17534         (timer::named_items::print): New.
17535         (timer::timer): Initialize field "m_jit_client_items".
17536         (timer::~timer): New.
17537         (timer::push): Move bulk of implementation to...
17538         (timer::push_internal): ...here.  New function.
17539         (timer::pop): Move bulk of implementation to...
17540         (timer::pop_internal): ...here.  New function.
17541         (timer::push_client_item): New.
17542         (timer::pop_client_item): New.
17543         (timer::print_row): New function, taken from timer::print.
17544         (timer::print): Print "GCC items" header if we also have client
17545         items.  Move row-printing to timer::print_row.  Print any client
17546         items.
17547         (timer::get_topmost_item_name): New method.
17548         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
17549         (TV_JIT_CLIENT_CODE): New.
17550         * timevar.h (timer::push_client_item): New declaration.
17551         (timer::pop_client_item): New declaration.
17552         (timer::get_topmost_item_name): New method.
17553         (timer::push_internal): New declaration.
17554         (timer::pop_internal): New declaration.
17555         (timer::print_row): New declaration.
17556         (timer::named_items): New declaration.
17557         (timer::m_jit_client_items): New field.
17558         (timer): Add friend class named_items.
17559         (auto_timevar::auto_timevar): Add timer param.
17560         (auto_timevar::~auto_timevar): Use field "m_timer".
17561         (auto_timevar::m_timer): New field.
17562         * toplev.c (initialize_rtl): Add g_timer as param when
17563         constructing auto_timevar instance.
17564         (toplev::toplev): Add "external_timer" param, and use it to
17565         initialize the "g_timer" global if non-NULL.
17566         (toplev::~toplev): If this created "g_timer", delete it.
17567         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
17568         with "external_timer" timer *.
17569
17570 2015-08-03  Alexander Basov <coohpt@gmail.com>
17571
17572         PR middle-end/64744
17573         PR middle-end/48470
17574         PR middle-end/43404
17575         * cfgexpand.c (expand_one_var): Add check if stack is going to
17576         be used in naked function.
17577         * expr.c (expand_expr_addr_expr_1): Remove excess checking
17578         whether expression should not reside in MEM.
17579         * function.c (use_register_for_decl): Do not use registers for
17580         non-register things (volatile, float, BLKMode) in naked functions.
17581
17582 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
17583
17584         PR target/67060
17585         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
17586         Adjust splits to match new pattern.
17587
17588 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
17589
17590         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
17591         (VEC_M): Likewise.
17592         (VEC_N): Likewise.
17593         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
17594         point in VSX registers.
17595
17596         * config/rs6000/constraints.md (wb constraint): Document unused
17597         w<x> constraint.
17598         (we constraint): Likewise.
17599         (wo constraint): Likewise.
17600         (wp constraint): New constraint for IEEE 128-bit floating point in
17601         VSX registers.
17602         (wq constraint): Likewise.
17603
17604         * config/rs6000/predicates.md (easy_fp_constant): Add support for
17605         IEEE 128-bit floating point in VSX registers.
17606         (easy_scalar_constant): Likewise.
17607
17608         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
17609         constraints (wp, wq) for IEEE 128-bit floating point in VSX
17610         registers.
17611         (rs6000_init_hard_regno_mode_ok): Likewise.
17612
17613         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
17614         floating point in VSX registers.
17615         (VSX_L): Likewise.
17616         (VSX_M): Likewise.
17617         (VSX_M2): Likewise.
17618         (VSm): Likewise.
17619         (VSs): Likewise.
17620         (VSr): Likewise.
17621         (VSa): Likewise.
17622         (VSv): Likewise.
17623         (vsx_le_permute_<mode>): Add support to properly swap bytes for
17624         IEEE 128-bit floating point in VSX registers on little endian.
17625         (vsx_le_undo_permute_<mode>): Likewise.
17626         (vsx_le_perm_load_<mode>): Likewise.
17627         (vsx_le_perm_store_<mode>): Likewise.
17628         (splitters for IEEE 128-bit fp moves): Likewise.
17629
17630         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
17631         wq constraints.
17632
17633         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
17634         floating point in VSX registers.
17635         (VM2): Likewise.
17636
17637         * doc/md.text (Machine Constraints): Document wp and wq
17638         constraints on PowerPC.
17639
17640 2015-08-03  Jeff Law  <law@redhat.com>
17641
17642         PR middle-end/66314
17643         PR gcov-profile/66899
17644         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
17645         iterate over the jump threading paths when an element in the
17646         jump threading paths array is eliminated.
17647
17648 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
17649
17650         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
17651
17652 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
17653
17654         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
17655         is_use_properly_guarded the variable def_preds.  Free its
17656         contents before returning.
17657         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
17658         (is_use_properly_guarded): Replace local variable def_preds with
17659         a parameter.  Adjust accordingly.  Only update *def_preds if it's
17660         the empty vector.
17661
17662 2015-08-03  Richard Biener  <rguenther@suse.de>
17663
17664         * genmatch.c (simplify::for_subst_vec): New member.
17665         (binary_ok): New helper for for lowering.
17666         (lower_for): Delay substituting operators into result expressions
17667         if we can merge the results eventually again.
17668         (capture_info::walk_result): Adjust for user_id appearing as
17669         result expression operator.
17670         (expr::gen_transform): Likewise.
17671         (dt_simplify::gen_1): Likewise.
17672         (dt_simplify::gen): Pass not substituted operators to tail
17673         functions or initialize local variable with it.
17674         (decision_tree::gen): Adjust function signature.
17675         * match.pd: Fix tests against global code and add default
17676         cases to switch stmts.
17677
17678 2015-08-03  Richard Biener  <rguenther@suse.de>
17679
17680         * genmatch.c (dt_simplify::gen): Create captures array
17681         with an initializer.
17682
17683 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17684
17685         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
17686         the host compiler is affected by placement new aliasing bug.
17687         * configure: Regenerate.
17688         * Makefile.in (ALIASING_FLAGS): New variable.
17689         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
17690
17691 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17692
17693         PR target/66731
17694         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
17695         (negmulsf3_vfp): Likewise.
17696         (muldf3negdf_vfp): Disable for -frounding-math.
17697         (mulsf3negsf_vfp): Likewise.
17698         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
17699         fix MULT cost with -frounding-math.
17700
17701 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17702
17703         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
17704         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
17705         explicit.  Prefer to add the flag whenever possible.
17706         (noce_process_if_block): Try noce_try_store_flag_constants before
17707         noce_try_cmove.
17708
17709 2015-08-03  Richard Biener  <rguenther@suse.de>
17710
17711         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
17712         New hash-map to record equivalent transforms.
17713         (dt_node::analyze): Populate the equivalent transforms hash-map.
17714         (dt_simplify::info): Add reference to hash-map entry.
17715         (dt_simplify::gen): If we have split out a function for the
17716         transform, generate a call to it.
17717         (sinfo_hashmap_traits::hash): New function.
17718         (compare_op): New helper function for ...
17719         (sinfo_hashmap_traits::equal_keys): ... this new function.
17720         (decision_tree::gen): Split out common equivalent transforms
17721         into functions.
17722
17723 2015-08-03  Richard Biener  <rguenther@suse.de>
17724
17725         * gimple-fold.c (fold_gimple_assign): Remove folding of
17726         the comparison in COND_EXPRs.
17727
17728 2015-08-03  Richard Biener  <rguenther@suse.de>
17729
17730         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
17731         on the rhs of assignments first simplify the embedded
17732         GENERIC condition.
17733
17734 2015-08-03  Richard Biener  <rguenther@suse.de>
17735
17736         PR tree-optimization/66917
17737         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
17738         field.
17739         (DR_VECT_AUX): New macro.
17740         (set_dr_misalignment): Adjust.
17741         (dr_misalignment): Likewise.
17742         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17743         Compute whether the base is at least element aligned.
17744         * tree-vect-stmts.c (ensure_base_align): Adjust.
17745         (vectorizable_store): If the base is not element aligned
17746         preserve alignment of the original access if misalignment is unknown.
17747         (vectorizable_load): Likewise.
17748
17749 2015-08-02  Martin Sebor  <msebor@redhat.com>
17750
17751         * c-family/c.opt (-Wframe-address): New warning option.
17752         * doc/invoke.texi (Wframe-address): Document it.
17753         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
17754         Clarify possible effects of calling the functions with non-zero
17755         arguments and mention -Wframe-address.
17756         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
17757
17758 2015-08-01  Michael Collison  <michael.collison@linaro.org
17759             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17760
17761         * config/arm/arm.md (*arm_smin_cmp): New pattern.
17762         (*arm_umin_cmp): Likewise.
17763
17764 2015-08-01  Caroline Tice  <cmtice@google.com>
17765
17766         PR 66521
17767         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
17768         global variables.
17769         (vtbl_find_mangled_name):  New function.
17770         (vtbl_register_mangled_name):  New function.
17771         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
17772         mangled name in mangled name vectors.
17773         (find_or_create_vtbl_map_node):  Ditto.
17774         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
17775         update recursion_depth on function entry; pass it to every recursive
17776         call; automatically exit if depth > 25 (give up looking at that point).
17777         (verify_bb_vtables):  Initialize recursion_depth and pass it to
17778         var_is_used_for_virtual_call_p.
17779         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
17780         global variable decls.
17781         (vtbl_register_mangled_name): New extern function decl.
17782
17783 2015-08-01  Tom de Vries  <tom@codesourcery.com>
17784
17785         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
17786         function.
17787         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
17788         Declare.
17789         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
17790         operation_no_trapping_overflow.  Allow non-overflow operations.
17791         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
17792         operations.
17793
17794 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
17795
17796         PR target/67049
17797         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
17798
17799 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17800
17801         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
17802         Enable for TARGET_32BIT.
17803         (*if_move_neg): Likewise.
17804
17805 2015-07-31  Nick Clifton  <nickc@redhat.com>
17806
17807         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
17808         Returns true for __model__.
17809         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17810
17811 2015-07-31  Alan Modra  <amodra@gmail.com>
17812
17813         PR target/66870
17814         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
17815         (rs6000_emit_prologue): Set it.
17816         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
17817
17818 2015-07-31  Richard Biener  <rguenther@suse.de>
17819
17820         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
17821         -> X == (C1 ^ C2) which is already implemented in match.pd.
17822         Remove redundant dispatching to fold_relational_const.
17823         Move unordered self and NaN compares ...
17824         * match.pd: ... as patterns here.  Remove some stray captures
17825         and add a comment.
17826
17827 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
17828
17829         * config/i386/i386.c
17830         (bdesc_special_args): Convert mask type from signed to unsigned for
17831         masked builtins.
17832         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
17833         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
17834         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
17835         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
17836         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
17837         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
17838         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
17839         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
17840         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
17841         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
17842         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
17843         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
17844         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
17845         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
17846         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
17847         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
17848         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
17849         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
17850         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
17851         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
17852         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
17853         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
17854         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
17855         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
17856         * config/i386/i386-builtin-types.def
17857         (V16QI_FTYPE_V16SI): Remove.
17858         (V8DF_FTYPE_V8SI): Ditto.
17859         (V8HI_FTYPE_V8DI): Ditto.
17860         (V8SI_FTYPE_V8DI): Ditto.
17861         (V8SF_FTYPE_V8DF): Ditto.
17862         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
17863         (V16HI_FTYPE_V16SI): Ditto.
17864         (V16SF_FTYPE_V16HI): Ditto.
17865         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
17866         (V16SF_FTYPE_V16SI): Ditto.
17867         (V4DI_FTYPE_V4DI): Ditto.
17868         (V16SI_FTYPE_V16SF): Ditto.
17869         (V16SF_FTYPE_FLOAT): Ditto.
17870         (V8DF_FTYPE_DOUBLE): Ditto.
17871         (V8DI_FTYPE_INT64): Ditto.
17872         (V8DI_FTYPE_V4DI): Ditto.
17873         (V16QI_FTYPE_V8DI): Ditto.
17874         (UINT_FTYPE_V4SF): Ditto.
17875         (UINT64_FTYPE_V4SF): Ditto.
17876         (UINT_FTYPE_V2DF): Ditto.
17877         (UINT64_FTYPE_V2DF): Ditto.
17878         (V16SI_FTYPE_V16SI): Ditto.
17879         (V8DI_FTYPE_V8DI): Ditto.
17880         (V16SI_FTYPE_PV4SI): Ditto.
17881         (V16SF_FTYPE_PV4SF): Ditto.
17882         (V8DI_FTYPE_PV2DI): Ditto.
17883         (V8DF_FTYPE_PV2DF): Ditto.
17884         (V4DI_FTYPE_PV2DI): Ditto.
17885         (V4DF_FTYPE_PV2DF): Ditto.
17886         (V16SI_FTYPE_PV2SI): Ditto.
17887         (V16SF_FTYPE_PV2SF): Ditto.
17888         (V8DI_FTYPE_PV4DI): Ditto.
17889         (V8DF_FTYPE_PV4DF): Ditto.
17890         (V8SF_FTYPE_FLOAT): Ditto.
17891         (V4SF_FTYPE_FLOAT): Ditto.
17892         (V4DF_FTYPE_DOUBLE): Ditto.
17893         (V8SF_FTYPE_PV4SF): Ditto.
17894         (V8SI_FTYPE_PV4SI): Ditto.
17895         (V4SI_FTYPE_PV2SI): Ditto.
17896         (V8SF_FTYPE_PV2SF): Ditto.
17897         (V8SI_FTYPE_PV2SI): Ditto.
17898         (V16SF_FTYPE_PV8SF): Ditto.
17899         (V16SI_FTYPE_PV8SI): Ditto.
17900         (V8DI_FTYPE_V8SF): Ditto.
17901         (V4DI_FTYPE_V4SF): Ditto.
17902         (V2DI_FTYPE_V4SF): Ditto.
17903         (V64QI_FTYPE_QI): Ditto.
17904         (V32HI_FTYPE_HI): Ditto.
17905         (V8UHI_FTYPE_V8UHI): Ditto.
17906         (V16UHI_FTYPE_V16UHI): Ditto.
17907         (V32UHI_FTYPE_V32UHI): Ditto.
17908         (V2UDI_FTYPE_V2UDI): Ditto.
17909         (V4UDI_FTYPE_V4UDI): Ditto.
17910         (V8UDI_FTYPE_V8UDI): Ditto.
17911         (V4USI_FTYPE_V4USI): Ditto.
17912         (V8USI_FTYPE_V8USI): Ditto.
17913         (V16USI_FTYPE_V16USI): Ditto.
17914         (V2DF_FTYPE_V2DF_UINT64): Ditto.
17915         (V2DI_FTYPE_V2DF_V2DF): Ditto.
17916         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
17917         (V8DF_FTYPE_V8DF_V8DI): Ditto.
17918         (V4SF_FTYPE_V4SF_UINT64): Ditto.
17919         (V4SI_FTYPE_V4SF_V4SF): Ditto.
17920         (V16SF_FTYPE_V16SF_V16SI): Ditto.
17921         (V64QI_FTYPE_V32HI_V32HI): Ditto.
17922         (V32HI_FTYPE_V16SI_V16SI): Ditto.
17923         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
17924         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
17925         (V32HI_FTYPE_V64QI_V64QI): Ditto.
17926         (V32HI_FTYPE_V32HI_V32HI): Ditto.
17927         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
17928         (V16SI_FTYPE_V16SI_V4SI): Ditto.
17929         (V16SI_FTYPE_V16SI_V16SI): Ditto.
17930         (V16SI_FTYPE_V32HI_V32HI): Ditto.
17931         (V16SI_FTYPE_V16SI_SI): Ditto.
17932         (V8DI_FTYPE_V8DI_V8DI): Ditto.
17933         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
17934         (V8DI_FTYPE_V16SI_V16SI): Ditto.
17935         (V8DI_FTYPE_V8DI_V2DI): Ditto.
17936         (QI_FTYPE_QI): Ditto.
17937         (SI_FTYPE_SI): Ditto.
17938         (DI_FTYPE_DI): Ditto.
17939         (QI_FTYPE_QI_QI): Ditto.
17940         (QI_FTYPE_QI_INT): Ditto.
17941         (HI_FTYPE_HI_INT): Ditto.
17942         (SI_FTYPE_SI_INT): Ditto.
17943         (DI_FTYPE_DI_INT): Ditto.
17944         (HI_FTYPE_V16QI_V16QI): Ditto.
17945         (SI_FTYPE_V32QI_V32QI): Ditto.
17946         (DI_FTYPE_V64QI_V64QI): Ditto.
17947         (QI_FTYPE_V8HI_V8HI): Ditto.
17948         (HI_FTYPE_V16HI_V16HI): Ditto.
17949         (SI_FTYPE_V32HI_V32HI): Ditto.
17950         (QI_FTYPE_V4SI_V4SI): Ditto.
17951         (QI_FTYPE_V8SI_V8SI): Ditto.
17952         (QI_FTYPE_V2DI_V2DI): Ditto.
17953         (QI_FTYPE_V4DI_V4DI): Ditto.
17954         (QI_FTYPE_V8DI_V8DI): Ditto.
17955         (HI_FTYPE_V16SI_V16SI): Ditto.
17956         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
17957         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
17958         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
17959         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
17960         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
17961         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
17962         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
17963         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
17964         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
17965         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
17966         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
17967         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
17968         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
17969         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
17970         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
17971         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
17972         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
17973         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
17974         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
17975         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
17976         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
17977         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
17978         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
17979         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
17980         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
17981         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
17982         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
17983         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
17984         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
17985         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
17986         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
17987         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
17988         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
17989         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
17990         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
17991         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
17992         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
17993         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
17994         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
17995         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
17996         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
17997         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
17998         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
17999         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
18000         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
18001         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
18002         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
18003         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
18004         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
18005         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
18006         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
18007         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
18008         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
18009         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
18010         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
18011         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
18012         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
18013         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
18014         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
18015         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
18016         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
18017         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
18018         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
18019         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
18020         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
18021         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
18022         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
18023         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
18024         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
18025         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
18026         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
18027         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
18028         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
18029         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
18030         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
18031         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
18032         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
18033         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
18034         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
18035         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
18036         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
18037         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
18038         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
18039         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
18040         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
18041         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
18042         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
18043         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
18044         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
18045         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
18046         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
18047         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
18048         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
18049         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
18050         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
18051         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
18052         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
18053         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
18054         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
18055         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
18056         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
18057         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
18058         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
18059         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
18060         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
18061         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
18062         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
18063         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
18064         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
18065         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
18066         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
18067         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
18068         (HI_FTYPE_HI): Ditto.
18069         (HI_FTYPE_V16QI): Ditto.
18070         (SI_FTYPE_V32QI): Ditto.
18071         (DI_FTYPE_V64QI): Ditto.
18072         (QI_FTYPE_V8HI): Ditto.
18073         (HI_FTYPE_V16HI): Ditto.
18074         (SI_FTYPE_V32HI): Ditto.
18075         (QI_FTYPE_V4SI): Ditto.
18076         (QI_FTYPE_V8SI): Ditto.
18077         (HI_FTYPE_V16SI): Ditto.
18078         (QI_FTYPE_V2DI): Ditto.
18079         (QI_FTYPE_V4DI): Ditto.
18080         (QI_FTYPE_V8DI): Ditto.
18081         (V16QI_FTYPE_HI): Ditto.
18082         (V32QI_FTYPE_SI): Ditto.
18083         (V64QI_FTYPE_DI): Ditto.
18084         (V8HI_FTYPE_QI): Ditto.
18085         (V16HI_FTYPE_HI): Ditto.
18086         (V32HI_FTYPE_SI): Ditto.
18087         (V4SI_FTYPE_QI): Ditto.
18088         (V4SI_FTYPE_HI): Ditto.
18089         (V8SI_FTYPE_QI): Ditto.
18090         (V8SI_FTYPE_HI): Ditto.
18091         (V2DI_FTYPE_QI): Ditto.
18092         (V4DI_FTYPE_QI): Ditto.
18093         (HI_FTYPE_HI_HI): Ditto.
18094         (SI_FTYPE_SI_SI): Ditto.
18095         (DI_FTYPE_DI_DI): Ditto.
18096         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
18097         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
18098         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
18099         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
18100         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
18101         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
18102         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
18103         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
18104         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
18105         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
18106         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
18107         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
18108         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
18109         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
18110         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
18111         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
18112         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
18113         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
18114         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
18115         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
18116         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
18117         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
18118         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
18119         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
18120         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
18121         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
18122         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
18123         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
18124         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
18125         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
18126         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
18127         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
18128         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
18129         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
18130         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
18131         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
18132         (V16SI_FTYPE_HI): Ditto.
18133         (V8DI_FTYPE_QI): Ditto.
18134         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
18135         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
18136         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
18137         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
18138         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
18139         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
18140         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
18141         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
18142         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
18143         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
18144         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
18145         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
18146         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
18147         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
18148         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
18149         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
18150         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
18151         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
18152         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
18153         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
18154         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
18155         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
18156         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
18157         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
18158         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
18159         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
18160         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
18161         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
18162         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
18163         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
18164         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
18165         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
18166         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
18167         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
18168         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
18169         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
18170         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
18171         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
18172         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
18173         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
18174         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
18175         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
18176         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
18177         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
18178         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
18179         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
18180         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
18181         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
18182         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
18183         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
18184         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
18185         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
18186         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
18187         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
18188         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
18189         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
18190         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
18191         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
18192         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
18193         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
18194         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
18195         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
18196         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
18197         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
18198         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
18199         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
18200         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
18201         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
18202         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
18203         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
18204         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
18205         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
18206         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
18207         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
18208         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
18209         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
18210         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
18211         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
18212         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
18213         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
18214         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
18215         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
18216         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
18217         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
18218         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
18219         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
18220         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
18221         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
18222         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
18223         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
18224         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
18225         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
18226         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
18227         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
18228         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
18229         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
18230         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
18231         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
18232         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
18233         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
18234         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
18235         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
18236         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
18237         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
18238         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
18239         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
18240         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
18241         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
18242         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
18243         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
18244         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
18245         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
18246         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
18247         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
18248         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
18249         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
18250         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
18251         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
18252         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
18253         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
18254         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
18255         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
18256         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
18257         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
18258         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
18259         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
18260         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
18261         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
18262         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
18263         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
18264         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
18265         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
18266         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
18267         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
18268         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
18269         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
18270         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
18271         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
18272         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
18273         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
18274         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
18275         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
18276         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
18277         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
18278         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
18279         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
18280         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
18281         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
18282         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
18283         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
18284         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
18285         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
18286         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
18287         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
18288         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
18289         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
18290         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
18291         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
18292         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
18293         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
18294         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
18295         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
18296         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
18297         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
18298         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
18299         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
18300         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
18301         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
18302         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
18303         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
18304         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
18305         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
18306         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
18307         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
18308         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
18309         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
18310         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
18311         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
18312         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
18313         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
18314         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
18315         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
18316         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
18317         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
18318         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
18319         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
18320         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
18321         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
18322         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
18323         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
18324         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
18325         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
18326         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
18327         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
18328         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
18329         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
18330         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
18331         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
18332         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
18333         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
18334         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
18335         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
18336         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
18337         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
18338         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
18339         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
18340         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
18341         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
18342         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
18343         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
18344         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
18345         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
18346         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
18347         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
18348         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
18349         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
18350         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
18351         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
18352         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
18353         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
18354         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
18355         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
18356         (QI_FTYPE_V8DF_INT_QI): Ditto.
18357         (QI_FTYPE_V4DF_INT_QI): Ditto.
18358         (QI_FTYPE_V2DF_INT_QI): Ditto.
18359         (HI_FTYPE_V16SF_INT_HI): Ditto.
18360         (QI_FTYPE_V8SF_INT_QI): Ditto.
18361         (QI_FTYPE_V4SF_INT_QI): Ditto.
18362         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
18363
18364 2015-07-31  Richard Biener  <rguenther@suse.de>
18365
18366         * gimple-fold.c (fold_gimple_assign): Remove folding of
18367         GIMPLE_BINARY_RHS.
18368
18369 2015-07-31  Tom de Vries  <tom@codesourcery.com>
18370
18371         PR tree-optimization/66846
18372         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
18373         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
18374         (expand_omp_target) [ENABLE_CHECKING]: Same.
18375         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
18376         cfun if !LOOPS_NEED_FIXUP.
18377         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
18378         that omp_for already has its own loop struct.
18379         * tree-parloops.c (create_phi_for_local_result)
18380         (create_call_for_reduction): Handle simple latch bb.
18381         (create_parallel_loop): Add simple latch bb to preserve
18382         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
18383         (gen_parallel_loop): Remove call to cancel_loop_tree.
18384         (parallelize_loops): Skip loops that are inner loops of parallelized
18385         loops.
18386         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
18387         verify_loop_structure.
18388
18389 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
18390
18391         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
18392         * config/v850/v850.md (RV_REGNUM): New constants.
18393         * config/v850/v850.c (v850_libcall_value): New functions.
18394         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
18395         (TARGET_LIBCALL_VALUE): Define.
18396
18397 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
18398
18399         * rtl.h (lowpart_subreg): Move in file.
18400         * loop-iv.c (lowpart_subreg): Move to...
18401         * simplify-rtx.c (lowpart_subreg): ...here.
18402           (simplify_binary_operation_1): Use lowpart_subreg instead of
18403           simplify_gen_subreg.
18404         * expr.c (expand_expr_real_2): Ditto.
18405         * emit-rtl.c (gen_lowpart_common): Ditto.
18406         * combine.c (gen_lowpart_for_combine): Ditto.
18407         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
18408           expand_debug_source_expr): Ditto.
18409
18410 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
18411
18412         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
18413         (expand_builtin_atomic_clear): Remove support for atomic_clear
18414         pattern.
18415
18416 2015-07-30  Richard Biener  <rguenther@suse.de>
18417
18418         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
18419         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
18420         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
18421         redundant operand canonicalization.
18422
18423 2015-07-30  David Sherwood  <david.sherwood@arm.com>
18424
18425         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
18426         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
18427         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
18428         * config/arm/arm.c (neon_valid_immediate): Likewise.
18429         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
18430         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
18431         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
18432         (expand_vec_perm_vpshufb2_vpermq): Likewise.
18433         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
18434         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
18435         * config/i386/sse.md
18436         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
18437         (*ssse3_palignr<mode>_perm): Likewise.
18438         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
18439         * config/spu/spu.c (arith_immediate_p): Likewise.
18440         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18441         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
18442
18443 2015-07-30  Richard Biener  <rguenther@suse.de>
18444
18445         * genmatch.c (decision_tree::gen_gimple): Merge with ...
18446         (decision_tree::gen_generic): ... this into ...
18447         (decision_tree::gen): ... this.
18448         (main): Adjust callers.
18449
18450 2015-07-30  Richard Biener  <rguenther@suse.de>
18451
18452         * genmatch.c (verbose): New global.
18453         (warning_at): Add overload with source_location.
18454         (capture_info::capture_info): Add bool whether generating gimple
18455         or generic.  Add gimple member.
18456         (capture_info::cinfo): Add capture member.
18457         (capture_info::walk_match): Record capture.  Warn on
18458         non-captured leafs.
18459         (capture_info::walk_c_expr): Add more fragments captures cannot
18460         escape through.  Warn on escaped captures.
18461         (dt_simplify::gen_1): Warn on operands we force to have no
18462         side-effects.
18463         (main): Initialize verbose.
18464         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
18465
18466 2015-07-30  Richard Biener  <rguenther@suse.de>
18467
18468         PR middle-end/67053
18469         * match.pd: Allow both operands to independently have conversion
18470         when simplifying compares of addresses.
18471
18472 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
18473
18474         PR target/66217
18475         PR target/67045
18476         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
18477         around those cases that need one.
18478
18479 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
18480
18481         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
18482
18483 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
18484
18485         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
18486         New.  Copied from config/i386/gnu-user.h.
18487         (ASM_COMMENT_START): Likewise.
18488         (DBX_REGISTER_NUMBER): Likewise.
18489
18490 2015-07-29  Richard Biener  <rguenther@suse.de>
18491
18492         * gimple-fold.c (fold_gimple_cond): Remove.
18493         (fold_stmt_1): Do not call it.
18494
18495 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
18496
18497         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
18498         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
18499
18500         * config/aarch64/aarch64-modes.def: Add HFmode.
18501
18502         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
18503         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
18504
18505         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
18506         aarch64_promoted_type): New.
18507
18508         (aarch64_float_const_representable_p): Disable HFmode.
18509         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
18510         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
18511         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
18512
18513         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
18514         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
18515
18516         * config/aarch64/iterators.md (GPF_F16): New.
18517
18518 2015-07-29  Richard Biener  <rguenther@suse.de>
18519
18520         * match.pd: Merge address comparison patterns and make them
18521         handle some more cases.
18522
18523 2015-07-29  Richard Biener  <rguenther@suse.de>
18524
18525         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
18526         (parser::parse_capture): Add bool argument on whether to reject
18527         unknown captures.
18528         (parser::parse_expr): Adjust.
18529         (parser::parse_op): Likewise.
18530         (parser::parse_pattern): Likewise.
18531
18532 2015-07-29  Richard Biener  <rguenther@suse.de>
18533
18534         * gimple-fold.c (has_use_on_stmt): New function.
18535         (replace_stmt_with_simplification): Use it to allow
18536         abnormals originally referenced in the stmt.
18537         (fold_stmt_1): Canonicalize operand order.
18538
18539 2015-07-28  David Sherwood  <david.sherwood@arm.com>
18540
18541         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
18542         GET_MODE_INNER unconditionally.
18543         * config/spu/spu.c (arith_immediate_p): Likewise.
18544         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
18545         * expmed.c (synth_mult): Remove check for VOIDmode result from
18546         GET_MODE_INNER.
18547         (expand_mult_const): Likewise.
18548         * fold-const.c (fold_binary_loc): Replace call to element_precision
18549         with call to GET_MODE_PRECISION.
18550         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
18551         m->name.
18552         (emit_mode_inner): Likewise.
18553         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
18554         result check.
18555         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
18556         (GET_MODE_UNIT_PRECISION): Likewise.
18557         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
18558         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18559         * stor-layout.c (bitwise_type_for_mode): Update assert.
18560         (element_precision): Remove.
18561
18562 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18563
18564         * target-insns.def (reload_load_address): New targetm instruction
18565         pattern.
18566         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
18567
18568 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18569
18570         * target-insns.def (atomic_test_and_set): New targetm instruction
18571         pattern.
18572         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
18573         HAVE_*/gen_* interface.
18574
18575 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18576
18577         * target-insns.def (can_extend, ptr_extend): New targetm instruction
18578         patterns.
18579         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
18580         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18581         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
18582         * rtlanal.c (nonzero_bits1): Likewise.
18583         (num_sign_bit_copies1): Likewise.
18584
18585 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18586
18587         * target-insns.def (eh_return): New targetm instruction pattern.
18588         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
18589         interface.
18590         * function.c (thread_prologue_and_epilogue_insns): Remove
18591         preprocessor condition.
18592
18593 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18594
18595         * target-insns.def (indirect_jump): New targetm instruction pattern.
18596         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
18597         interface.
18598
18599 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18600
18601         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
18602         instead of nonimmediate_operand.  Remove C condiition.
18603
18604 2015-07-28  Richard Biener  <rguenther@suse.de>
18605
18606         * match.pd: Add more simplification of address comparisons.
18607
18608 2015-07-28  Richard Biener  <rguenther@suse.de>
18609
18610         * match.pd: Re-order two cases in comparison with max/min
18611         value simplification to make it apply for bools.
18612
18613 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18614
18615         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
18616         Handle simple SIGN_EXTEND or ZERO_EXTEND.
18617         (aarch64_rtx_costs): Properly strip extend or extract before
18618         passing down to rtx costs again.
18619
18620 2015-07-28  Nick Clifton  <nickc@redhat.com>
18621
18622         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
18623         Optimizes the case where -mes0 is active and a constant symbolic
18624         address is used.
18625         * config/rl78/rl78-protos.h: Prototype the new function.
18626         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
18627
18628 2015-07-28  Tom de Vries  <tom@codesourcery.com>
18629
18630         * tree-parloops.c (reduc_stmt_res): New function.
18631         (initialize_reductions, add_field_for_reduction)
18632         (create_phi_for_local_result, create_loads_for_reductions)
18633         (create_stores_for_reduction, build_new_reduction): Handle case that
18634         reduc_stmt is a phi.
18635         (gather_scalar_reductions): Allow double_reduc reductions.
18636
18637 2015-07-28  Richard Biener  <rguenther@suse.de>
18638
18639         * fold-const.c (fold_comparison): Remove equality folding
18640         of decl addresses ...
18641         * match.pd: ... here and merge with existing pattern.
18642
18643 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18644
18645         PR tree-optimization/66828
18646         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
18647         from int64_t to uint64_t.
18648
18649 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18650
18651         * opts-common.c (read_cmdline_option): List DriverOnly enum values
18652         as valid only in the error message of the driver, not in the
18653         messages of the language compilers.
18654
18655 2015-07-27  Tom de Vries  <tom@codesourcery.com>
18656
18657         * tree-parloops.c (gather_scalar_reductions): Simplify function
18658         structure.
18659
18660 2015-07-27  Marek Polacek  <polacek@redhat.com>
18661
18662         * ipa-devirt.c (types_same_for_odr): Fix typo.
18663
18664 2015-07-27  Jason Merrill  <jason@redhat.com>
18665
18666         PR debug/66468
18667         * dwarf2out.c (gen_inlined_subroutine_die): Check
18668         cgraph_function_possibly_inlined_p.
18669
18670 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18671
18672         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
18673         Place integer variant first.
18674         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
18675
18676 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18677
18678         PR/63870
18679         * config/arm/arm-builtins.c (enum arm_builtins):
18680         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
18681         (ARM_BUILTIN_NEON_BASE): Rename macro to....
18682         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
18683         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
18684         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
18685
18686 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18687
18688         PR/63870
18689         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
18690         Add qualifier_lane_index.
18691         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
18692         (arm_getlane_qualifiers): Use qualifier_lane_index.
18693         (arm_lanemac_qualifiers): Rename to...
18694         (arm_mac_n_qualifiers): ...this.
18695         (LANEMAC_QUALIFIERS): Rename to...
18696         (MAC_N_QUALIFIERS): ...this.
18697         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
18698         (arm_setlane_qualifiers): Use qualifier_lane_index.
18699         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
18700         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
18701         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
18702         (arm_expand_neon_builtin): Handle qualifier_lane_index.
18703
18704         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
18705         * config/arm/arm.c (bounds_check): Likewise, improve error message.
18706         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
18707         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
18708         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
18709         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
18710         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
18711         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
18712         qualifiers to TERNOP_IMM.
18713         (vdup_lane): Change qualifiers to GETLANE.
18714         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
18715         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
18716         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
18717         vqdmlsl_n): Change qualifiers to MAC_N.
18718
18719         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
18720         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
18721         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
18722         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
18723         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
18724         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
18725         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
18726         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
18727         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
18728         Remove call to neon_lane_bounds.
18729
18730 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18731
18732         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
18733         Place integer variant first.
18734
18735 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
18736
18737         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
18738         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
18739         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
18740         for armv6kz targets.
18741         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
18742         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
18743         (FL_FOR_ARCH6ZK): Remove.
18744         (FL_FOR_ARCH6KZ): New.
18745         (arm_arch6zk): New declaration.
18746         * config/arm/arm-tables.opt: Regenerate.
18747         * config/arm/arm.c (arm_arch6kz): New.
18748         (arm_option_override): Set arm_arch6kz.
18749         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
18750         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
18751         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
18752
18753 2015-07-27  Marek Polacek  <polacek@redhat.com>
18754
18755         PR c++/66555
18756         PR c/54979
18757         * doc/invoke.texi: Document -Wtautological-compare.
18758
18759 2015-07-27  Richard Biener  <rguenther@suse.de>
18760
18761         * genmatch.c (decision_tree::gen_gimple): Split out large
18762         subtrees into separate functions.
18763         (decision_tree::gen_generic): Likewise.
18764
18765 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
18766
18767         * config/alpha/alpha.c: Use SUBREG_P predicate.
18768         * config/alpha/predicates.md: Ditto.
18769
18770 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18771
18772         * config.host (s390*-*-*): Include driver-native.c only when
18773         building with s390* as host *and* target.
18774
18775 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
18776
18777         PR target/66930
18778         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
18779         T bit register modified_between_p check.
18780
18781 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18782
18783         * config/i386/i386.c: Use SUBREG_P predicate.
18784         * config/i386/i386.md: Ditto.
18785         * config/i386/sse.md: Ditto.
18786         * config/i386/predicates.md: Ditto.
18787
18788 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18789
18790         PR target/67004
18791         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
18792         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
18793
18794 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18795
18796         * Makefile.in: Remove use of TREEBROWSER.
18797         * config.in: Regenerated.
18798         * configure: Regenerated.
18799         * configure.ac: Remove definition of TREEBROWSER.
18800         * tree-browser.c: Removed.
18801         * tree-browser.def: Removed.
18802
18803 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18804
18805         * graphite-scop-detection.c: Include gimple-pretty-print.h.
18806         (stmt_simple_for_scop_p): Print when a stmt is not handled in
18807         Graphite.
18808         (scopdet_basic_block_info): Print when a loop or bb cannot be
18809         represented in Graphite.
18810
18811 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18812
18813         PR target/66648
18814         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
18815         execution guard when min_size is less than size_needed.
18816
18817 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18818
18819         * doc/install.texi: Document supported versions of ISL.
18820
18821 2015-07-25  Jeff Law  <law@redhat.com>
18822
18823         Revert:
18824         PR lto/66752
18825         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18826         unable to find X NE 0 in the tables, return X as the simplified
18827         condition.
18828         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18829         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18830         to VISISTED_BBS.  */
18831         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18832         after removing the control flow statement and unnecessary edges.
18833
18834 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
18835
18836         Revert:
18837         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18838
18839         PR rtl-optimization/64164
18840         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18841         * tree-ssa-copyrename.c: Removed.
18842         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18843         -ftree-coalesce-vars.
18844         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18845         * common.opt (ftree-copyrename): Ignore.
18846         (ftree-coalesce-inlined-vars): Likewise.
18847         * doc/invoke.texi: Remove the ignored options above.
18848         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18849         * tree-ssa-coalesce.h: ... here.
18850         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18851         headers required by it.
18852         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18853         across variables when flag_tree_coalesce_vars.  Check register
18854         use and promoted modes to allow coalescing.  Moved to
18855         tree-ssa-coalesce.c.
18856         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18857         with its member functions to tree-ssa-coalesce.c.
18858         (var_map_base_init): Likewise.  Renamed to
18859         compute_samebase_partition_bases.
18860         (partition_view_normal): Drop want_bases parameter.
18861         (partition_view_bitmap): Likewise.
18862         * tree-ssa-live.h: Adjust declarations.
18863         * tree-ssa-coalesce.c: Include explow.h.
18864         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18865         default defs at the entry point.
18866         (dump_part_var_map): New.
18867         (compute_optimized_partition_bases): New, called by...
18868         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18869         of compute_samebase_partition_bases.  Adjust.
18870         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18871         * cfgexpand.c (leader_merge): New.
18872         (get_rtl_for_parm_ssa_default_def): New.
18873         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18874         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18875         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18876         redundant MEM attr setting.
18877         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18878         from...
18879         (expand_one_stack_var): ... this.  New wrapper to check and
18880         skip already expanded SSA partitions.
18881         (record_alignment_for_reg_var): New, factored out of...
18882         (expand_one_var): ... this.
18883         (expand_one_ssa_partition): New.
18884         (adjust_one_expanded_partition_var): New.
18885         (expand_one_register_var): Check and skip already expanded SSA
18886         partitions.
18887         (expand_used_vars): Don't create DECLs for anonymous SSA
18888         names.  Expand all SSA partitions, then adjust all SSA names.
18889         (pass::execute): Replace the loops that set
18890         SA.partition_to_pseudo from partition leaders and cleared
18891         DECL_RTL for multi-location variables, and that which used to
18892         rename vars and set attrs, with one that clears DECL_RTL and
18893         checks that PARMs and RESULTs default_defs match DECL_RTL.
18894         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18895         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18896         * explow.c (promote_ssa_mode): New.
18897         * explow.h (promote_ssa_mode): Declare.
18898         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18899         * function.c: Include cfgexpand.h.
18900         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18901         (use_register_for_parm_decl): Wrapper for the above to
18902         special-case the result_ptr.
18903         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18904         (split_complex_args): Take assign_parm_data_all argument.
18905         Pass it to rtl_for_parm.  Set up rtl and context for split
18906         args.
18907         (assign_parms_augmented_arg_list): Adjust.
18908         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18909         multiple locations.  Recognize split complex args.
18910         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18911         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18912         (assign_parm_setup_block): Prefer SSA-assigned location.
18913         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18914         if stack_parm is NULL.
18915         (assign_parm_setup_stack): Prefer SSA-assigned location.
18916         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18917         rtl before testing for pointer bounds.  Special-case result_ptr.
18918         (expand_function_start): Maybe reset DECL_RTL of result.
18919         Prefer SSA-assigned location for result and static chain.
18920         Factor out DECL_RESULT and SET_DECL_RTL.
18921         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18922         anonymous SSA names.  Use promote_ssa_mode.
18923         (get_temp_reg): Likewise.
18924         (remove_ssa_form): Adjust.
18925         * stor-layout.c (layout_decl): Don't set mem attributes of
18926         non-MEMs.
18927         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18928         and get its reg_usage for reg invalidation.
18929         (compute_bb_dataflow): Pass it insn.
18930         (emit_notes_in_bb): Likewise.
18931
18932 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18933
18934         * config/i386/i386.c (ix86_va_start): Remove
18935         unneeded !TARGET_64BIT check.
18936         (ix86_gimplify_va_arg): Ditto.
18937
18938 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18939
18940         * graphite-sese-to-poly.c (build_poly_scop): Always call
18941         rewrite_commutative_reductions_out_of_ssa.
18942
18943 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18944
18945         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
18946         flag_associative_math to FLOAT_TYPE_P.  Honour
18947         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
18948
18949 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18950
18951         PR c++/64079
18952         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
18953         and "%qD" in warning_at instead of "%q+D" in warning.
18954
18955 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18956
18957         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
18958         (ix86_function_abi): Cleanup.
18959
18960 2015-07-24  Michael Darling  <darlingm@gmail.com>
18961
18962         PR other/66259
18963         * acinclude.m4: Reflects renaming of configure.in to configure.ac
18964         * configure: Likewise
18965         * configure.ac: Likewise
18966         * doc/install.texi: Likewise
18967         * doc/tm.texi: Likewise
18968         * doc/tm.texi.in: Likewise
18969
18970 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18971
18972         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
18973         manually swapping values.
18974         * cse.c (fold_rtx): Likewise.
18975         * lra-eliminations.c (form_sum): Likewise.
18976
18977 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18978
18979         PR target/64003
18980         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
18981         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
18982         (*jcc_1, *jcc_2, jump, simple_return_internal)
18983         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
18984         Set length_nobnd attribute instead of length attribute.
18985         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
18986         (length_nobnd): Remove attribute.
18987         (length): Remove length_nobnd processing.
18988
18989 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
18990
18991         * gimplify.c (omp_default_clause): New function.  Reorganize flow
18992         for clarity. Broken out of ...
18993         (omp_notice_variable): ... here.
18994
18995 2015-07-24  Gary Funck  <gary@intrepid.com>
18996
18997         PR middle-end/66984
18998         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
18999         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
19000
19001 2015-07-24  Tom de Vries  <tom@codesourcery.com>
19002
19003         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
19004         exit-first loop transform.
19005
19006 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
19007
19008         PR 66714
19009         * tree-cfg.c (struct replace_decls_d): New struct.
19010         (replace_block_vars_by_duplicates_1): New function.
19011         (replace_block_vars_by_duplicates): Use it to replace the decls
19012         in the value exprs by duplicates.
19013
19014 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19015
19016         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
19017         -shared, -symbolic, -rdynamic.
19018
19019 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19020
19021         PR target/65711
19022         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
19023         -dynamic-linker within %{!static %{!shared, and -rdynamic within
19024         %{!static.
19025
19026 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
19027
19028         PR ipa/66566
19029         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
19030         edge summary is available.
19031
19032 2015-07-24  Richard Biener  <rguenther@suse.de>
19033
19034         * genmatch.c (struct dt_node): Add statistic fields.
19035         (dt_node::analyze): New method.
19036         (decision_tree::gen_gimple): Call analyze on the root node
19037         and print statistics to stderr.
19038         (decision_tree::gen_generic): Likewise.
19039
19040 2015-07-24  Richard Biener  <rguenther@suse.de>
19041
19042         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
19043         against the highest or lowest possible integer ...
19044         * match.pd: ... as patterns here.
19045
19046 2015-07-24  Richard Biener  <rguenther@suse.de>
19047
19048         * genmatch.c (struct capture_info): Add same_as field.
19049         (capture_info::capture_info): Initialize same_as.
19050         (capture_info::walk_match): Compute same_as.
19051         (capture_info::walk_result): Compute stuff for the leader.
19052         (capture_info::walk_c_expr): Likewise.
19053         (dt_simplify::gen_1): Only look at leaders when deciding
19054         to force no side-effects or emit side-effects of omitted operands.
19055
19056 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19057
19058         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
19059         reg note to the GPR -> FPR save instructions.
19060
19061 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19062
19063         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
19064         cheaper.
19065         (s390_expand_insv): Don't generate risbg pattern for constant zero
19066         sources.
19067         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
19068         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
19069         splitters.
19070
19071 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19072
19073         * config/s390/s390.c (s390_reorg): Clean up handling of processors
19074         with
19075         -mtune=
19076         (s390_issue_rate): Likewise.
19077         (s390_sched_reorder): Likewise.
19078         (s390_sched_variable_issue): Likewise.
19079         (s390_loop_unroll_adjust): Likewise.
19080         (s390_option_override):  Likewise.
19081
19082 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19083
19084         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
19085         processor capabilities with -march=native.
19086         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
19087         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
19088         (S390_TARGET_BITS_STRING): Macro to simplify specs.
19089
19090 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19091
19092         * config/s390/s390.c (s390_issue_rate): Handle
19093         PROCESSOR_2094_Z9_EC.
19094         (s390_option_override): Likewise.
19095         (s390_adjust_priority): Likewise.
19096
19097 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19098
19099         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
19100         when cross compiling.
19101
19102 2015-07-24  Richard Biener  <rguenther@suse.de>
19103
19104         * fold-const.c (maybe_canonicalize_comparison_1): Move
19105         A code CST canonicalization ...
19106         * match.pd: ... to a pattern here.
19107
19108 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
19109
19110         Revert:
19111         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
19112         PR target/63521
19113         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
19114         (HONOR_REG_ALLOC_ORDER): Define.
19115
19116 2015-07-24  Richard Biener  <rguenther@suse.de>
19117
19118         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
19119         * fold-const.c (fold_comparison): Move parameter does not
19120         alias &local simplification ...
19121         * match.pd: ... as a pattern here.
19122
19123 2015-07-24  Richard Biener  <rguenther@suse.de>
19124
19125         * gimple-fold.c (replace_stmt_with_simplification): Special-case
19126         valueizing call operands.
19127         * gimple-match-head.c (maybe_push_res_to_seq): Take
19128         number of call arguments from ops array.
19129         (do_valueize): New function.
19130         (gimple_simplify): Return true if valueization changed
19131         any operand even if the result didn't simplify further.
19132
19133 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
19134
19135         PR middle-end/25530
19136         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
19137
19138 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
19139
19140         PR middle-end/25529
19141         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
19142
19143 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19144
19145         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
19146         instruction.
19147
19148 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19149
19150         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
19151         clean up.
19152
19153 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
19154
19155         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
19156         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
19157         targets here.
19158         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
19159         ms_va_list_type_node initialization.
19160
19161 2015-07-23  Jeff Law  <law@redhat.com>
19162
19163         PR lto/66752
19164         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
19165         unable to find X NE 0 in the tables, return X as the simplified
19166         condition.
19167         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
19168         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
19169         to VISISTED_BBS.  */
19170         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
19171         after removing the control flow statement and unnecessary edges.
19172
19173 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19174
19175         * tree-pass.h (get_current_pass_name): Removed.
19176
19177 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
19178
19179         PR rtl-optimization/64164
19180         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19181         * tree-ssa-copyrename.c: Removed.
19182         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
19183         -ftree-coalesce-vars.
19184         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19185         * common.opt (ftree-copyrename): Ignore.
19186         (ftree-coalesce-inlined-vars): Likewise.
19187         * doc/invoke.texi: Remove the ignored options above.
19188         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19189         * tree-ssa-coalesce.h: ... here.
19190         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19191         headers required by it.
19192         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19193         across variables when flag_tree_coalesce_vars.  Check register
19194         use and promoted modes to allow coalescing.  Moved to
19195         tree-ssa-coalesce.c.
19196         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
19197         with its member functions to tree-ssa-coalesce.c.
19198         (var_map_base_init): Likewise.  Renamed to
19199         compute_samebase_partition_bases.
19200         (partition_view_normal): Drop want_bases parameter.
19201         (partition_view_bitmap): Likewise.
19202         * tree-ssa-live.h: Adjust declarations.
19203         * tree-ssa-coalesce.c: Include explow.h.
19204         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
19205         default defs at the entry point.
19206         (dump_part_var_map): New.
19207         (compute_optimized_partition_bases): New, called by...
19208         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
19209         of compute_samebase_partition_bases.  Adjust.
19210         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
19211         * cfgexpand.c (leader_merge): New.
19212         (get_rtl_for_parm_ssa_default_def): New.
19213         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
19214         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
19215         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
19216         redundant MEM attr setting.
19217         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
19218         from...
19219         (expand_one_stack_var): ... this.  New wrapper to check and
19220         skip already expanded SSA partitions.
19221         (record_alignment_for_reg_var): New, factored out of...
19222         (expand_one_var): ... this.
19223         (expand_one_ssa_partition): New.
19224         (adjust_one_expanded_partition_var): New.
19225         (expand_one_register_var): Check and skip already expanded SSA
19226         partitions.
19227         (expand_used_vars): Don't create DECLs for anonymous SSA
19228         names.  Expand all SSA partitions, then adjust all SSA names.
19229         (pass::execute): Replace the loops that set
19230         SA.partition_to_pseudo from partition leaders and cleared
19231         DECL_RTL for multi-location variables, and that which used to
19232         rename vars and set attrs, with one that clears DECL_RTL and
19233         checks that PARMs and RESULTs default_defs match DECL_RTL.
19234         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
19235         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
19236         * explow.c (promote_ssa_mode): New.
19237         * explow.h (promote_ssa_mode): Declare.
19238         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
19239         * function.c: Include cfgexpand.h.
19240         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
19241         (use_register_for_parm_decl): Wrapper for the above to
19242         special-case the result_ptr.
19243         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
19244         (split_complex_args): Take assign_parm_data_all argument.
19245         Pass it to rtl_for_parm.  Set up rtl and context for split
19246         args.
19247         (assign_parms_augmented_arg_list): Adjust.
19248         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
19249         multiple locations.  Recognize split complex args.
19250         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
19251         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
19252         (assign_parm_setup_block): Prefer SSA-assigned location.
19253         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
19254         if stack_parm is NULL.
19255         (assign_parm_setup_stack): Prefer SSA-assigned location.
19256         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
19257         rtl before testing for pointer bounds.  Special-case result_ptr.
19258         (expand_function_start): Maybe reset DECL_RTL of result.
19259         Prefer SSA-assigned location for result and static chain.
19260         Factor out DECL_RESULT and SET_DECL_RTL.
19261         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
19262         anonymous SSA names.  Use promote_ssa_mode.
19263         (get_temp_reg): Likewise.
19264         (remove_ssa_form): Adjust.
19265         * stor-layout.c (layout_decl): Don't set mem attributes of
19266         non-MEMs.
19267         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
19268         and get its reg_usage for reg invalidation.
19269         (compute_bb_dataflow): Pass it insn.
19270         (emit_notes_in_bb): Likewise.
19271
19272 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
19273
19274         PR target/66217
19275         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
19276         prototype.
19277         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
19278         (rs6000_emit_2insn_and): Handle dot forms.
19279         * config/rs6000/rs6000.md (and<mode>3): Adjust.
19280         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
19281         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
19282
19283 2015-07-23  Richard Biener  <rguenther@suse.de>
19284
19285         * generic-match-head.c: Include cgraph.h.
19286         * gimple-match-head.c: Likewise.
19287         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
19288         SSA names.
19289         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
19290         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
19291         pattern.
19292
19293 2015-07-23  Richard Biener  <rguenther@suse.de>
19294
19295         * gimple-fold.c (fold_gimple_cond): Do not require folding
19296         results to pass valid_gimple_rhs_p.
19297         * tree-cfg.h (fold_cond_expr_cond): Remove.
19298         * tree-cfg.c (fold_cond_expr_cond): Likewise.
19299         (make_edges): Do not call it.
19300         * tree-inline.c (tree_function_versioning): Likewise.
19301
19302 2015-07-23  Tom de Vries  <tom@codesourcery.com>
19303
19304         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
19305         vect_force_simple_reduction.
19306         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
19307         (vect_is_simple_reduction_1): Add and handle
19308         need_wrapping_integral_overflow parameter.
19309         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
19310         need_wrapping_integral_overflow parameter.
19311         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
19312         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
19313         decl.
19314
19315 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
19316
19317         PR tree-optimization/66926,66951
19318         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
19319         INNER_LOOP and fix up condition for renaming virtual operands.
19320
19321 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19322
19323         * combine.c (try_combine): Use std::swap instead of manually
19324         swapping.
19325
19326 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
19327
19328         * config/mips/i6400.md: New file.
19329         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
19330         (mips64r6): Likewise.
19331         (i6400): Define.
19332         * config/mips/mips-tables.opt: Regenerate.
19333         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
19334         (mips_issue_rate): Add support for i6400.
19335         (mips_multipass_dfa_lookahead): Likewise.
19336         * config/mips/mips.h (TUNE_I6400): Define.
19337         * config/mips/mips.md: Include i6400.md.
19338         (processor): Add i6400.
19339         * doc/invoke.texi (-march=@var{arch}): Add i6400.
19340
19341 2015-07-23  Richard Biener  <rguenther@suse.de>
19342
19343         PR middle-end/66916
19344         * match.pd: Guard widen and sign-change comparison simplification
19345         with single_use.
19346
19347 2015-07-23  Richard Biener  <rguenther@suse.de>
19348
19349         PR tree-optimization/66945
19350         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
19351         ::before_dom_children): Force the propagators idea of
19352         non-executable edges to materialize, not what the folder
19353         chooses.
19354
19355 2015-07-23  Richard Biener  <rguenther@suse.de>
19356
19357         * gimple.h (gimple_cond_make_false): Use 0 != 0.
19358         (gimple_cond_make_true): Use 1 != 0.
19359
19360 2015-07-22  DJ Delorie  <dj@redhat.com>
19361
19362         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
19363         slashes.
19364
19365         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
19366         (ashrhi3): Likewise.
19367         (lshrhi3): Likewise.
19368         (movhi): Take advantage of zero-extend to load small constants.
19369         (movpsi): Likewise.
19370         (and<mode>3): Likewise.
19371         (zero_extendqihi2): Likewise.
19372         (zero_extendqisi2): New.
19373         * config/msp430/constraints.md (N,O): New.
19374         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
19375
19376 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
19377
19378         PR target/66954
19379         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
19380         to enum feature_priority and feature_list.
19381         (fold_builtin_cpu): Add F_AES to enum processor_features
19382         and isa_names_table.
19383
19384 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
19385
19386         PR driver/66737
19387         * config/i386/linux-common.h (MPX_SPEC): Use linker option
19388         for 64bit target only.
19389
19390 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19391
19392         * config/nvptx/nvptx.c: Expand some comments.
19393
19394 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
19395
19396         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
19397         (cortex_a53_advsimd): ...This.
19398
19399 2015-07-22  Richard Biener  <rguenther@suse.de>
19400
19401         * genmatch.c (expr::gen_transform): Clarify error message
19402         and display location.
19403
19404 2015-07-22  Richard Biener  <rguenther@suse.de>
19405
19406         * genmatch.c (struct operand): Add location member.
19407         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
19408         constructors.
19409         (struct simplify): Remove match_location and result_location
19410         members.
19411         (elsehwere): Adjust.
19412
19413 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
19414
19415         * config/mips/m5100.md: New file.
19416         * config/mips/mips-cpus.def (m5100, m5101): Define.
19417         * config/mips/mips-tables.opt: Regenerate.
19418         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
19419         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
19420         -march=m5101 to -mips32r5.
19421         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
19422         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
19423         !-msoft-float.
19424         * config/mips/mips.md: Include m5100.md.
19425         (processor): Add m5100.
19426         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
19427
19428 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
19429
19430         * config/mips/mips-cpus.def (interaptiv): Define.
19431         * config/mips/mips-tables.opt: Regenerate.
19432         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
19433         -mips32r2.
19434         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
19435         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
19436
19437 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
19438
19439         PR target/63521
19440         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
19441         (HONOR_REG_ALLOC_ORDER): Define.
19442
19443 2015-07-22  Richard Biener  <rguenther@suse.de>
19444
19445         PR tree-optimization/66952
19446         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
19447         blocks we end up executing unconditionally reset all SSA
19448         info such as range and alignment.
19449         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
19450         * tree-ssanames.c (reset_flow_sensitive_info): New function.
19451
19452 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
19453
19454         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
19455         typo in attribute.
19456
19457 2015-07-22  Richard Biener  <rguenther@suse.de>
19458
19459         * genmatch.c (parser::parse_result): Properly handle
19460         match with result operands and conditions.
19461
19462 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
19463
19464         PR target/63870
19465         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19466         Add qualifier_struct_load_store_lane_index.
19467         (aarch64_types_loadstruct_lane_qualifiers): Use
19468         qualifier_struct_load_store_lane_index for lane index argument for
19469         last argument.
19470         (aarch64_types_storestruct_lane_qualifiers): Ditto.
19471         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19472         (aarch64_simd_expand_args): Add new argument describing mode of
19473         builtin. Check lane bounds for arguments with
19474         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19475         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
19476         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19477         (aarch64_simd_expand_builtin): Handle arguments with
19478         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
19479         aarch64_simd_expand_args.
19480         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
19481         vst[234]_lane with BUILTIN_VALLDIF.
19482         * config/aarch64/aarch64-simd.md:
19483         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
19484         endianness reversal on lane index.
19485         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
19486         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
19487         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
19488         (vec_store_lanesci_lane<mode>): Ditto.
19489         (vec_store_lanesxi_lane<mode>): Ditto.
19490         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
19491         reversal of lane index.
19492         (aarch64_ld3_lane<mode>): Ditto.
19493         (aarch64_ld4_lane<mode>): Ditto.
19494         (aarch64_st2_lane<mode>): Ditto.
19495         (aarch64_st3_lane<mode>): Ditto.
19496         (aarch64_st4_lane<mode>): Ditto.
19497         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
19498         to qmode. Add new mode parameter. Update uses.
19499         (__LD3_LANE_FUNC): Ditto.
19500         (__LD4_LANE_FUNC): Ditto.
19501         (__ST2_LANE_FUNC): Ditto.
19502         (__ST3_LANE_FUNC): Ditto.
19503         (__ST4_LANE_FUNC): Ditto.
19504
19505 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
19506
19507         * doc/invoke.texi (Language Independent Options): Rename node to
19508         Diagnostic Message Formatting Options.
19509
19510 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
19511
19512         PR ipa/66424.
19513         * lra-remat.c (operand_to_remat): Prevent using insns with input
19514         subregs processed separately by IRA.
19515
19516 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
19517
19518         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
19519         straight loops.
19520         (single_imm_use): Check for iterator node.
19521         (num_imm_uses): Likewise.
19522         * tree-ssa-operands.c (has_zero_uses_1): Delete.
19523         (single_imm_use_1): Check for iterator node.
19524
19525 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
19526             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19527
19528         * configure.ac: Add check for new options in isl-0.15.
19529         * config.in, configure: Rebuilt.
19530         * graphite-blocking.c: Include <isl/constraint.h>
19531         * graphite-interchange.c,  graphite-poly.c: Likewise.
19532         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
19533         * graphite.c: Likewise.
19534         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
19535         <isl/union_set.h>.
19536         * graphite-dependences.c: Include <isl/constraint.h>.
19537         (max_number_of_out_dimensions): Returns isl_stat.
19538         (extend_schedule_1): Likewise
19539         (extend_schedule): Corresponding changes.
19540         * graphite-optimize-isl.c: Include <isl/constraint.h> and
19541         <isl/union_set.h>.
19542         (getSingleMap): Change return type of isl_stat.
19543         (optimize_isl): Conditionally use
19544         isl_options_set_schedule_serialize_sccs.
19545         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
19546         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
19547
19548 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
19549
19550         PR target/66956
19551         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
19552         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
19553
19554 2015-07-21  Richard Biener  <rguenther@suse.de>
19555
19556         PR tree-optimization/66948
19557         * genmatch.c (capture_info::walk_match): Also recurse to
19558         captures.  Properly compute expr state from captures of
19559         captures.
19560         * match.pd: Add single-use guards to
19561         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
19562
19563 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
19564
19565         * config/nvptx/mkoffload.c (process): Add static destructor call.
19566
19567 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19568
19569         PR middle-end/66915
19570         * match.pd (A - B -> A + (-B)): Don't allow folding
19571         when type if a fixed-point type.
19572
19573 2015-07-20  DJ Delorie  <dj@redhat.com>
19574
19575         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
19576         (iorqi3_real): Likewise for set1.
19577
19578 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
19579
19580         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
19581         for !TARGET_64BIT.
19582
19583 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
19584
19585         * graphite-isl-ast-to-gimple.c:
19586         Refactor so that each function can access 'region'. This will help
19587         maintain a parameter rename_map within a region.
19588
19589 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19590
19591         * config/rs6000/rs6000.md (*lt0_disi): New.
19592
19593 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19594
19595         PR target/66217
19596         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
19597         "available letters" comment.
19598         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
19599         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
19600         and_2rld_operand):  Delete.
19601         (and_operand): Adjust.
19602         (rotate_mask_operator): New.
19603         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
19604         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
19605         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
19606         extract_ME): Delete.
19607         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19608         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
19609         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
19610         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19611         rs6000_emit_2insn_and): New.
19612         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
19613         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
19614         includes_rldic_lshift_p, includes_rldicr_lshift_p,
19615         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
19616         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19617         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
19618         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
19619         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19620         rs6000_emit_2insn_and): New.
19621         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
19622         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
19623         handling.
19624         <NOT>: Don't fall through to next case.
19625         <AND>: Handle the various rotate-and-mask cases directly.
19626         <IOR>: Always cost as one insn.
19627         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
19628         (and<mode>3): Adjust expander for the new patterns.
19629         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
19630         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
19631         (*and<mode>3_imm_dot_shifted): New.
19632         (*and<mode>3_mask): Delete, rewrite as ...
19633         (and<mode>3_mask): ... New.
19634         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
19635         (andsi3_internal0_nomc): Delete.
19636         (*andsi3_internal6): Delete.
19637         (*and<mode>3_2insn): New.
19638         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19639         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19640         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
19641         *insvdi_internal3): Delete.
19642         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
19643         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
19644         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
19645         *ior<mode>_mask): New.
19646         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
19647         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
19648         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
19649         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
19650         Delete.
19651         (ashr<mode>3): Delete expander.
19652         (*ashr<mode>3): Rename to ...
19653         (ashr<mode>3): ... This.
19654         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
19655         (*rotldi3_internal4, *rotldi3_internal5 and split,
19656         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
19657         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
19658         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
19659         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
19660         (splitter for loading a mask): Adjust.
19661         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
19662
19663 2015-07-20  Marek Polacek  <polacek@redhat.com>
19664
19665         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
19666         output_add_clobbers, output_added_clobbers_hard_reg_p,
19667         gen_rtx_scratch): Remove declarations.
19668
19669 2015-07-20  Marek Polacek  <polacek@redhat.com>
19670
19671         PR c++/55095
19672         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
19673
19674 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19675
19676         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
19677         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
19678
19679 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19680
19681         * combine.c (combine_simplify_rtx): Move simplification step
19682         before various transformations/substitutions.
19683
19684 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
19685
19686         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
19687         (struct int_traits): Likewise.
19688
19689 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19690
19691         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
19692         function to vmsdbgout_function_decl.
19693
19694 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19695
19696         PR target/66922
19697         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
19698         from misaligned positions.
19699         (ix86_expand_pinsr): Reject insertions to misaligned positions.
19700
19701 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
19702
19703         PR middle-end/46851
19704         PR middle-end/60340
19705         * Makefile.in: Removed omega.o.
19706         * common.opt: Document flag fcheck-data-deps as deprecated.
19707         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
19708         its associated params: omega-max-vars, omega-max-geqs,
19709         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
19710         omega-max-keys, omega-eliminate-redundant-constraints.
19711         * doc/loop.texi: Remove all the section on Omega.
19712         * graphite-blocking.c: Include missing params.h: it used to be
19713         included through tree-data-ref.h and omega.h.
19714         * graphite-isl-ast-to-gimple.c: Same.
19715         * graphite-optimize-isl.c: Same.
19716         * graphite-sese-to-poly.c: Same.
19717         * graphite.c: Same.
19718         * omega.c: Remove.
19719         * omega.h: Remove.
19720         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
19721         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
19722         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
19723         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
19724         * passes.def: Remove pass_check_data_deps.
19725         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
19726         (dump_conflict_function): Same.
19727         (dump_subscript): Same.
19728         (print_direction_vector): Same.
19729         (print_dir_vectors): Same.
19730         (print_lambda_vector): Same.
19731         (print_dist_vectors): Same.
19732         (dump_data_dependence_relation): Same.
19733         (dump_data_dependence_relations): Same.
19734         (dump_dist_dir_vectors): Same.
19735         (dump_ddrs): Same.
19736         (init_omega_eq_with_af): Removed.
19737         (omega_extract_distance_vectors): Removed.
19738         (omega_setup_subscript): Removed.
19739         (init_omega_for_ddr_1): Removed.
19740         (init_omega_for_ddr): Removed.
19741         (ddr_consistent_p): Removed.
19742         (compute_affine_dependence): Do not use omega to check data
19743         dependences.
19744         (compute_data_dependences_for_bb): Removed.
19745         (analyze_all_data_dependences): Removed.
19746         (tree_check_data_deps): Removed.
19747         * tree-data-ref.h: Do not include omega.h.
19748         (compute_data_dependences_for_bb): Removed.
19749         (tree_check_data_deps): Removed.
19750         * tree-ssa-loop.c (pass_check_data_deps): Removed.
19751         (make_pass_check_data_deps): Removed.
19752         * tree-ssa-phiopt.c: Include params.h.
19753         * tree-vect-data-refs.c: Same.
19754         * tree-vect-slp.c: Same.
19755
19756 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19757
19758         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
19759         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
19760         (mem->fpreg splitters): Ditto.
19761         (general_operand->nonimmediate_operand splitter): Use explicit modes.
19762         Disable DFmode for TARGET_64BIT.
19763
19764 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
19765
19766         PR target/66906
19767         * config/i386/i386.c (ix86_expand_prologue): Replicate static
19768         chain on the stack.
19769
19770 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19771
19772         * config/nvptx/mkoffload.c (process): Constify host data.
19773         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19774         Constify host data.
19775         (generate_host_descr_file): Likewise.
19776
19777 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
19778             Sebastian Pop  <s.pop@samsung.com>
19779
19780         PR middle-end/61929
19781         * graphite-dependences.c (add_pdr_constraints): Renamed
19782         pdr->extent to pdr->subscript_sizes.
19783         * graphite-interchange.c (build_linearized_memory_access): Add
19784         back all gcc_assert's that the "isl_int to isl_val conversion"
19785         patch has removed.  Refactored.
19786         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
19787         * graphite-poly.c (new_poly_dr): Same.
19788         (free_poly_dr): Same.
19789         * graphite-poly.h (struct poly_dr): Same.
19790         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
19791         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
19792         * graphite-scop-detection.h: Fix space.
19793         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
19794         back all gcc_assert's removed by a previous patch.
19795         (wrap): Remove the_isl_ctx global variable that the same patch has
19796         added.
19797         (build_loop_iteration_domains): Same.
19798         (add_param_constraints): Same.
19799         (pdr_add_data_dimensions): Same.  Refactored.
19800         (build_poly_dr): Renamed extent to subscript_sizes.
19801
19802 2015-07-17  Marek Polacek  <polacek@redhat.com>
19803
19804         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
19805         * match.pd: ... here.
19806
19807 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19808
19809         * config/nvptx/mkoffload.c (process): Constify target data.
19810         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19811         Constify target data.
19812         (generate_target_offloadend_file): Likewise.
19813
19814 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
19815
19816         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
19817         to allow renaming of PHI arguments on edges incoming from outer
19818         loop header, add corresponding check before start PHI iterator.
19819         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
19820         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
19821         with true force_vectorize.  Set-up dominator for outer loop too.
19822         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
19823         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
19824         was marked with force_vectorize and has restricted cfg.
19825         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
19826         inner loop.
19827         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
19828         do peeling for outer loops.
19829
19830 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
19831             Matthias Klose  <doko@ubuntu.com>
19832
19833         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
19834         build-sysroot, sysroot from the `Miscenalleous configure options' to
19835         the `Directories' section and strip trailing `/' from with_sysroot.
19836         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
19837         * configure: Regenerated.
19838
19839 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19840
19841         PR target/66824
19842         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
19843         (TARGET_HARD_DF_REGS): Ditto.
19844         (TARGET_HARD_XF_REGS): Ditto.
19845         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
19846         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
19847         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
19848         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
19849         (*movsf_internal): Add alternatives 16 and 17. Enable
19850         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
19851
19852 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19853
19854         PR rtl-optimization/66891
19855         * calls.c (expand_call): Wrap precompute_register_parameters with
19856         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
19857
19858 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
19859
19860         * config/nvptx/mkoffload.c (process): Constify mapping variables.
19861         Define target data struct and initialize it.
19862
19863 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
19864
19865         PR rtl-optimization/66626
19866         * ira.h (emit-rtl.h): Include.
19867         (non_spilled_static_chain_regno_p): New.
19868         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
19869         unless it is non spilled static chain pseudo.
19870         (assign_hard_rego): Spill memory profitable allocno unless it is
19871         non spilled static chain pseudo.
19872         (allocno_spill_priority_compare): Put non spilled static chain
19873         pseudo at the end of sorted array.
19874         (improve_allocation): Do nothing if we have static chain and
19875         non-local goto.
19876         (allocno__priority_compare_func): Put non spilled static chain
19877         pseudo at the beginning of sorted array.
19878         (move_spill_restore): Ignore non spilled static chain pseudo.
19879         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
19880         to non spilled static chain pseudo.
19881         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
19882         pseudo at the beginning of sorted array.
19883         (spill_for): Spill non spilled static chain pseudo last.
19884         * lra-constraints.c (lra_constraints): Remove static chain pseudo
19885         check for equivalence.
19886
19887 2015-07-16  Martin Liska  <mliska@suse.cz>
19888
19889         PR ipa/66896.
19890         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
19891         dst_ctx if it does not exist.
19892
19893 2015-07-16  Martin Liska  <mliska@suse.cz>
19894
19895         * hash-set.h (remove): New function.
19896         (iterator): New iteration class for hash_set.
19897
19898 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19899
19900         * genattrtab.c (make_canonical): Add a file_location parameter.
19901         Use fatal_at rather than fatal.
19902         (get_attr_value): Likewise.  Update call to make_canonical.
19903         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
19904         (make_internal_attr): Update calls accordingly.
19905
19906 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19907
19908         * read-md.h (message_with_line, error_with_line): Delete.
19909         * read-md.c (message_with_line, error_with_line): Delete.
19910         * gensupport.h: Include read-md.h.
19911         (md_rtx_info): New structure.
19912         (read_md_rtx): Use it.  Return a bool success value.
19913         * gensupport.c (read_md_rtx): Likewise.
19914         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
19915         (main): Update after interface changes.
19916         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
19917         (main): Update after interface changes.
19918         * genattrtab.c (insn_code_number): Delete.
19919         (optimize_attrs): Add a max_insn_code parameter and use it instead
19920         of insn_code_number.
19921         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
19922         Use *_at rather than *_with_line functions.
19923         (gen_insn): Likewise.
19924         (gen_delay): Likewise.
19925         (gen_insn_reserv): Likewise.
19926         (gen_bypass): Take an md_rtx_info rather than an rtx.
19927         (main): Update after interface changes.  Use a local max_insn_code
19928         variable instead of insn_code_number.
19929         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
19930         an rtx.  Use fatal_at rather than fatal.
19931         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
19932         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
19933         (gen_absence_set, gen_final_absence_set, gen_automaton)
19934         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
19935         (main): Update after interface changes.
19936         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
19937         and code number.
19938         (main): Update after interface changes.
19939         * genconditions.c (main): Use new read_md_rtx interface.
19940         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
19941         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
19942         (main): Update after interface changes.
19943         * genemit.c (insn_code_number, insn_index_number): Delete.
19944         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19945         Use fatal_at rather than fatal.
19946         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
19947         rather than fatal.
19948         (gen_split): Likewise.
19949         (main): Update after interface changes.
19950         * genextract.c (line_no): Delete.
19951         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19952         Update call to walk_rtx.
19953         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
19954         rather than message_with_line.
19955         (walk_rtx): Add an md_rtx_info argument.  Update call to
19956         VEC_safe_set_locstr.
19957         (main): Update after interface changes.
19958         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
19959         and lineno.  Use error_at rather than separate message_with_line
19960         calls and have_error assignments.
19961         (main): Update after interface changes.
19962         * genmddump.c (main): Use new read_md_rtx interface.
19963         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
19964         (main): Update after interface changes.
19965         * genoutput.c (next_code_number): Delete.
19966         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19967         (gen_peephole, gen_expand, gen_split): Likewise.
19968         (note_constraint): Likewise.  Use *_at rather than *_with_line
19969         functions.
19970         (main): Update after interface changes.
19971         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
19972         rtx and lineno.
19973         (main): Update after interface changes.
19974         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
19975         than an rtx and lineno.
19976         (process_define_constraint): Likewise.
19977         (process_define_register_constraint): Likewise.
19978         (main): Update after interface changes.
19979         * genrecog.c (next_insn_code, pattern_lineno): Delete.
19980         (validate_pattern): Replace top-level rtx with an md_rtx_info.
19981         Use *_at rather than *_with_line functions.
19982         (match_pattern_2): Likewise.
19983         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
19984         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
19985         Use *_at rather than *_with_line functions.
19986         * gentarget-def.c (add_insn): New function.
19987         (main): Use it.  Use new read_md_rtx interface.
19988
19989 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19990
19991         * gensupport.h (compute_test_codes): Take a file_location rather
19992         than a line number.
19993         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
19994         rather than *_with_line functions.
19995         (process_define_predicate): Update call to compute_test_codes.
19996         * genpreds.c (validate_exp): Take a file_location rather than a
19997         line number.  Use *_at functions rather than *_with_line functions.
19998         (process_define_predicate): Update call to validate_exp.
19999         (constraint_data): Replace lineno field with a file_location.
20000         (add_constraint): Take a file_location rather than a line number.
20001         Use *_at functions rather than *_with_line functions.  Fix error
20002         message for address constraints.  Update after changes to
20003         validate_exp, constraint_data and compute_test_codes.
20004         (process_define_constraint): Update accordingly.
20005         (process_define_register_constraint): Likewise.
20006
20007 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
20008
20009         * genoutput.c (data): Use a file_location to record the source
20010         position.
20011         (nothing): Delete.
20012         (idata, idata_end): Remove initialization.
20013         (constraint_data): Replace lineno with a file_location.
20014         (output_insn_data): Update after changes to data.
20015         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
20016         (scan_operands): Likewise, using *_at rather than *_with_line
20017         functions.
20018         (process_template): Likewise.
20019         (validate_insn_alternatives): Likewise.
20020         (validate_insn_operands): Likewise.
20021         (validate_optab_operands): Likewise.
20022         (init_insn_for_nothing): Initialize idata and idata_end.
20023         (note_constraint): Update after changes to constraint_data,
20024         using at rather than with_line functions.
20025         (mdep_constraint_len): Take a file_location rather than a
20026         line number.  Use at rather than with_line functions.
20027
20028 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
20029
20030         * read-md.h (fatal_at): Declare.
20031         * read-md.c (fatal_at): New function.
20032         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
20033         to record the source position.
20034         (check_attr_test): Take a file_location instead of a line number.
20035         Use fatal_at instead of fatal.
20036         (check_attr_value): Update after above changes, using "at"
20037         rather than "with_line" reporting functions.
20038         (convert_set_attr_alternative): Likewise.
20039         (gen_attr): Likewise.
20040         (check_defs): Likewise.  Don't assign to read_md_filename.
20041         (gen_insn): Update initialization after above changes.
20042         (gen_delay): Likewise.
20043         (write_insn_cases): Print the filename for a define_peephole.
20044         (gen_insn_reserv): Take a line number as argument and update
20045         the call to check_attr_test.
20046         (main): Pass a line number to gen_insn_reserv.
20047
20048 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
20049
20050         * read-md.h (file_location): New structure.
20051         (directive_handler_t): Take a file_location rather than a line number.
20052         (message_at, error_at): Declare.
20053         (read_skip_construct): Delete.
20054         * read-md.c (message_with_line_1): Replace with...
20055         (message_at_1): ...this new function.
20056         (message_at, error_at): New functions.
20057         (message_with_line, error_with_line): Update to use message_at_1.
20058         (handle_enum): Take a file_location rather than a line number
20059         and use error_at for error reporting.
20060         (handle_include): Likewise.
20061         (read_skip_construct): Likewise.  Make static.
20062         (handle_file): Update after above changes.  Pass a file_location
20063         rather than a line number to handle_directive.
20064         * gensupport.c (queue_elem): Replace separate filename and lineno
20065         with a file_location.
20066         (queue_pattern): Replace filename and lineno arguments with a
20067         file_location.  Update after change to queue_elem.
20068         (process_define_predicate): Replace lineno argument with a
20069         file_location and use error_at for error reporting.  Update
20070         after above changes.
20071         (process_rtx): Likewise.
20072         (subst_pattern_match): Likewise.
20073         (get_alternatives_number): Likewise.
20074         (alter_predicate_for_insn): Likewise.
20075         (rtx_handle_directive): Likewise.
20076         (is_predicable): Update after above changes, using error_at rather
20077         than error_with_line.
20078         (has_subst_attribute): Likewise.
20079         (identify_predicable_attribute): Likewise.
20080         (alter_attrs_for_subst_insn): Likewise.
20081         (process_one_cond_exec): Likewise.
20082         (process_substs_on_one_elem): Likewise.
20083         (process_define_subst): Likewise.
20084         (check_define_attr_duplicates): Likewise.
20085         (read_md_rtx): Update after change to queue_elem.
20086
20087 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
20088
20089         * genoutput.c (next_index_number): Delete.
20090         (data): Remove index_number.
20091         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
20092         (main): Remove manipulation of next_index_number.
20093
20094 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
20095
20096         * genattrtab.c (check_attr_value): Remove handling of null attrs.
20097         (make_canonical): Likewise.
20098
20099 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
20100
20101         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
20102         instead of adjust_address_nv.
20103         (restore_stack_nonlocal): Likewise.
20104         (nonlocal_goto): Likewise.
20105
20106 2015-07-16  Tom de Vries  <tom@codesourcery.com>
20107
20108         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
20109         not have a corresponding loop header phi.
20110
20111 2015-07-16  Tom de Vries  <tom@codesourcery.com>
20112
20113         * tree-parloops.c (create_loads_for_reductions): Handle case that
20114         reduction is unused.
20115
20116 2015-07-16  Richard Biener  <rguenther@suse.de>
20117
20118         PR tree-optimization/66894
20119         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
20120         about deriving NE_EXPR from truncated values.
20121
20122 2015-07-16  Martin Liska  <mliska@suse.cz>
20123
20124         * alloc-pool.h
20125         (object_allocator): Add new class.
20126         (pool_allocator::initialize): Use the underlying class.
20127         (pool_allocator::allocate): Likewise.
20128         (pool_allocator::remove): Likewise.
20129         (operator new): A new generic allocator.
20130         * asan.c (struct asan_mem_ref): Remove unused members.
20131         (asan_mem_ref_new): Replace new operator with
20132         object_allocator::allocate.
20133         (free_mem_ref_resources): Change deallocation.
20134         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
20135         with object_allocator.
20136         * config/sh/sh.c (add_constant): Replace new operator with
20137         object_allocator::allocate.
20138         (sh_reorg): Change call to a release method.
20139         * cselib.c (struct elt_list): Remove unused members.
20140         (new_elt_list): Replace new operator with
20141         object_allocator::allocate.
20142         (new_elt_loc_list): Likewise.
20143         (new_cselib_val): Likewise.
20144         (unchain_one_elt_list): Change delete operator with remove method.
20145         (unchain_one_elt_loc_list): Likewise.
20146         (unchain_one_value): Likewise.
20147         (cselib_finish): Release newly added static allocators.
20148         * cselib.h (struct cselib_val): Remove unused members.
20149         (struct elt_loc_list): Likewise.
20150         * df-problems.c (df_chain_alloc): Replace pool_allocator with
20151         object_allocator.
20152         * df-scan.c (struct df_scan_problem_data): Likewise.
20153         (df_scan_alloc): Likewise.
20154         * df.h (struct dataflow): Likewise.
20155         * dse.c (struct read_info_type): Likewise.
20156         (struct insn_info_type): Likewise.
20157         (struct dse_bb_info_type): Likewise.
20158         (struct group_info): Likewise.
20159         (struct deferred_change): Likewise.
20160         (get_group_info): Likewise.
20161         (delete_dead_store_insn): Likewise.
20162         (free_read_records): Likewise.
20163         (replace_read): Likewise.
20164         (check_mem_read_rtx): Likewise.
20165         (scan_insn): Likewise.
20166         (dse_step1): Likewise.
20167         (dse_step7): Likewise.
20168         * et-forest.c (struct et_occ): Remove unused members.
20169         (et_new_occ): Use allocate instead of new operator.
20170         (et_new_tree): Likewise.
20171         (et_free_tree): Call release method explicitly.
20172         (et_free_tree_force): Likewise.
20173         (et_free_pools): Likewise.
20174         (et_split): Use remove instead of delete operator.
20175         * et-forest.h (struct et_node): Remove unused members.
20176         * ipa-cp.c: Change pool_allocator to object_allocator.
20177         * ipa-inline-analysis.c: Likewise.
20178         * ipa-profile.c: Likewise.
20179         * ipa-prop.c: Likewise.
20180         * ipa-prop.h: Likewise.
20181         * ira-build.c (initiate_cost_vectors): Cast return value.
20182         (ira_allocate_cost_vector): Likewise.
20183         * ira-color.c (struct update_cost_record): Remove unused members.
20184         * lra-int.h (struct lra_live_range): Likewise.
20185         (struct lra_copy): Likewise.
20186         (struct lra_insn_reg): Likewise.
20187         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
20188         * lra.c (new_insn_reg): Replace new operator with allocate method.
20189         (free_insn_regs): Same for operator delete.
20190         (finish_insn_regs): Release new static allocator.
20191         (finish_insn_recog_data): Likewise.
20192         (lra_free_copies): Replace delete operator with remove method.
20193         (lra_create_copy): Replace operator new with allocate method.
20194         (invalidate_insn_data_regno_info): Same for remove method.
20195         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
20196         (free_debug_insn_changes): Replace delete operator with remove method.
20197         (replace_oldest_value_reg): Replace operator new with allocate method.
20198         (pass_cprop_hardreg::execute): Release new static variable.
20199         * sched-deps.c (sched_deps_init): Change pool_allocator to
20200         object_allocator.
20201         * sel-sched-ir.c: Likewise.
20202         * sel-sched-ir.h: Likewise.
20203         * stmt.c (expand_case): Likewise.
20204         (expand_sjlj_dispatch_table): Likewise.
20205         * tree-sra.c (struct access): Remove unused members.
20206         (struct assign_link): Likewise.
20207         (sra_deinitialize): Release newly added static pools.
20208         (create_access_1):Replace operator new with allocate method.
20209         (build_accesses_from_assign): Likewise.
20210         (create_artificial_child_access): Likewise.
20211         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
20212         pool_allocator to object_allocator.
20213         * tree-ssa-pre.c: Likewise.
20214         * tree-ssa-reassoc.c: Likewise.
20215         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
20216         * tree-ssa-strlen.c: Likewise.
20217         * tree-ssa-structalias.c: Likewise.
20218         * var-tracking.c (onepart_pool_allocate): New function.
20219         (unshare_variable): Use the newly added function.
20220         (variable_merge_over_cur): Likewise.
20221         (variable_from_dropped): Likewise.
20222         (variable_was_changed): Likewise.
20223         (set_slot_part): Likewise.
20224         (emit_notes_for_differences_1): Likewise.
20225         (vt_finalize): Release newly added static pools.
20226
20227 2015-07-16  Martin Jambor  <mjambor@suse.cz>
20228
20229         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
20230         all uses.  Fix two typos in its general comment.
20231         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
20232
20233 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
20234
20235         * config/i386/linux-common.h (LINK_MPX): New.
20236         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
20237         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
20238         indicating '-z bndplt' support by linker.
20239         * configure: Regenerate.
20240         * config.in: Regenerate.
20241
20242 2015-07-16  Richard Biener  <rguenther@suse.de>
20243
20244         * fold-const.c (fold_widened_comparison): Remove.
20245         (fold_sign_changed_comparison): Likewise.
20246         (fold_comparison): Move widened and sign-changed comparison
20247         simplification ...
20248         * match.pd: ... to patterns here.
20249         * generic-match-head.c: Include target.h.
20250         * gimple-match-head.c: Likewise.
20251
20252 2015-07-16  Richard Biener  <rguenther@suse.de>
20253
20254         * tree-ssa-dom.c (dom_valueize): New function.
20255         (record_temporary_equivalences): Also record equivalences
20256         for dominating stmts that have uses of equivalences we are
20257         about to record.
20258
20259 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
20260
20261         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
20262         add_autoinc_candidates.
20263         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
20264         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
20265         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
20266         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
20267         Call new function.
20268         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
20269         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
20270         Remove parameter struct iv*.  Call add_autoinc_candidates here.
20271         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
20272         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
20273         Call new function.
20274         (find_iv_candidates): Call new functions.
20275
20276 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
20277
20278         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
20279         uninitialized-variable warning.
20280
20281 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
20282
20283         PR target/65249
20284         * config/sh/sh.md (movdi): Split simple reg move to two movsi
20285         when the destination is R0.
20286
20287 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
20288
20289         PR target/66866
20290         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
20291         * config/i386/i386.c (ix86_expand_pextr): New function.
20292         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
20293         for non-lowpart subregs.
20294         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
20295         (insv<mode>): Use SWI248 mode iterator.
20296         (insv<mode>_1): Ditto.
20297
20298 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
20299             Sebastian Pop  <s.pop@samsung.com>
20300
20301         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
20302         iterator to use_stmt.
20303
20304 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
20305             Sebastian Pop <s.pop@samsung.com>
20306
20307         * graphite-scop-detection.c (build_scops_1): Discard scops for
20308         which entry==exit.
20309
20310 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
20311             Sebastian Pop <s.pop@samsung.com>
20312
20313         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
20314         case of a return statement in scop.
20315
20316 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
20317             Sebastian Pop <s.pop@samsung.com>
20318
20319         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
20320         INTEGER_TYPE parameters.
20321         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
20322         VECTOR_CST in scan_tree_for_params.
20323         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
20324
20325 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
20326
20327         * gimple-pretty-print.h: Don't include pretty-print.h.
20328         * tree-streamer.h: Don't include lto-streamer.h.
20329         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
20330         * gimple-streamer-in.c: Remove redundant includes.
20331         * gimple-streamer-out.c: Likewise.
20332         * ipa-devirt.c: Likewise.
20333         * ipa-icf.c: Likewise.
20334         * ipa-inline-analysis.c: Likewise.
20335         * ipa-polymorphic-call.c: Likewise.
20336         * ipa-profile.c: Likewise.
20337         * ipa-prop.c: Likewise.
20338         * ipa-pure-const.c: Likewise.
20339         * lto-cgraph.c: Likewise.
20340         * lto-streamer-in.c: Likewise.
20341         * lto-streamer-out.c: Likewise.
20342         * lto-streamer.c: Likewise.
20343         * tree-streamer-in.c: Likewise.
20344         * tree-streamer-out.c: Likewise.
20345         * tree-streamer.c: Likewise.
20346
20347 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
20348
20349         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
20350         include input.h.
20351         * opts.c: Remove multiline #include comment.
20352
20353 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
20354
20355         * config/nvptx/mkoffload.c (process): Add C++ protection to
20356         emitted code.
20357
20358 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20359
20360         PR target/66854
20361         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
20362         null before IEEE 128-bit floating point support patch.
20363
20364 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20365
20366         * simplify-rtx.c (simplify_ternary_operation): Add simplification
20367         for (!c) != {0,...,0} ? a : b for vector modes.
20368
20369 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
20370             Martin Jambor  <mjambor@suse.cz>
20371
20372         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
20373         struct func_body_info* instead of struct ipa_node_params*, expecting
20374         fbi->info to be filled in.  Replace throughout.  Adjust call to
20375         ipa_load_from_parm_agg.
20376         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
20377         instead of struct ipa_node_params*.  Adjust calls to other functions
20378         so that they pass either fbi or fbi->info.
20379         (set_switch_stmt_execution_predicate): Likewise.
20380         (will_be_nonconstant_predicate): Likewise.
20381         (compute_bb_predicates): Likewise.
20382         (estimate_function_body_sizes): Move asserts earlier.  Fill in
20383         struct func_body_info, replace parms_info with fbi.info.  Adjust
20384         calls to functions that now accept struct func_body_info.
20385         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
20386         (struct func_body_info): Likewise.
20387         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
20388         remove static.  Adjust callers.
20389         (ipa_load_from_parm_agg): Remove.
20390         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
20391         (func_body_info): Likewise.
20392         (ipa_load_from_parm_agg): Adjust prototype.
20393
20394 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20395
20396         * gensupport.c (rtx_handle_directive): Adjust.
20397         * read-rtl.c (apply_iterators): Take vector to add rtxs to
20398         instead of expr list rtx.
20399         (add_define_attr_for_define_subst): Likewise.
20400         (add_define_subst_attr): Likewise.
20401         (read_subst_mapping): Likewise.
20402         (read_rtx): Likewise.
20403         * rtl.h (read_rtx): Adjust.
20404
20405 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20406
20407         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
20408
20409 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20410
20411         PR target/58066
20412         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
20413         (*tls_local_dynamic_base_64_<mode>): Ditto.
20414         (*tls_local_dynamic_base_64_largepic): Ditto.
20415         (tls_global_dynamic_64_<mode>): Update expander pattern.
20416         (tls_local_dynamic_base_64_<mode>): Ditto.
20417
20418 2015-07-15  Richard Biener  <rguenther@suse.de>
20419
20420         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
20421         and bool_var == 1 -> bool_var simplifications ...
20422         * match.pd: ... to patterns here.  Factor out negate_expr_p
20423         cases from the A - B -> A + (-B) patterns as negate_expr_p
20424         predicate and add a -(A + B) -> (-B) - A pattern.
20425
20426 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
20427
20428         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
20429
20430 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
20431             Robert Suchanek  <robert.suchanek@imgtec.com>
20432
20433         * config/mips/mips.c (mips_int_mask): New enum.
20434         (mips_shadow_set): Likewise.
20435         (int_mask): New variable.
20436         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
20437         (machine_function): Add int_mask and use_shadow_register_set.
20438         (mips_attribute_table): Add attribute handlers for interrupt and
20439         use_shadow_register_set.
20440         (mips_interrupt_mask): New static function.
20441         (mips_handle_interrupt_attr): Likewise.
20442         (mips_handle_use_shadow_register_set_attr): Likewise.
20443         (mips_use_shadow_register_set): Change return type to enum
20444         mips_shadow_set.  Add argument handling for use_shadow_register_set
20445         attribute.
20446         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
20447         compare with mips_shadow_set enum.
20448         (mips_compute_frame_info): Add interrupt mask and
20449         use_shadow_register_set to per-function information structure.
20450         Add a stack slot for EPC unconditionally.
20451         (mips_expand_prologue): Compare use_shadow_register_set value
20452         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
20453         masked interrupt register but in EIC mode use K0 and save Cause in K0.
20454         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
20455         copying the stack pointer from the shadow register set.
20456         * config/mips/mips.h (SR_IM0): New define.
20457         * config/mips/mips.md (mips_rdpgpr): Rename to...
20458         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
20459         * doc/extend.texi (Declaring Attributes of Functions): Document
20460         optional arguments for interrupt and use_shadow_register_set
20461         attributes.
20462
20463 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
20464
20465         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
20466         interrupt attribute.
20467         (mips_expand_prologue): Disable the floating point unit in an ISR.
20468         * config/mips/mips.h (SR_COP1): New define.
20469
20470 2015-07-15  Richard Biener  <rguenther@suse.de>
20471
20472         * genmatch.c (parser::peek, parser::peek_ident): Add argument
20473         to tell how many tokens to peek ahead (default 1).
20474         (parser::eat_token, parser::eat_ident): Return token consumed.
20475         (parser::parse_result): Parse new switch statement.
20476         * match.pd: Use case statements where appropriate.
20477
20478 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20479
20480         PR rtl-optimization/58066
20481         * calls.c (expand_call): Precompute register parameters before stack
20482         alignment is performed.
20483
20484 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20485
20486         PR rtl-optimization/66838
20487         * postreload.c (reload_cse_move2add): Also process
20488         CALL_INSN_FUNCTION_USAGE when resetting information of
20489         call-clobbered registers.
20490
20491 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20492             Cesar Philippidis  <cesar@codesourcery.com>
20493             Chung-Lin Tang  <cltang@codesourcery.com>
20494
20495         * config/nios2/constraints.md (U, v): New constraints.
20496         * config/nios2/predicates.md (rdprs_dcache_operand): New.
20497         (ldstex_memory_operand): New.
20498         * config/nios2/sync.md: New file.
20499         * config/nios2/nios2.md (unspecv): Add new builtin function
20500         UNSPECV codes.
20501         (rdprs, flushd, flushda, wrpie, eni): New patterns.
20502         (top-level): Include sync.md.
20503         * config/nios2/nios2.c (N2_FTYPES): Add function types for
20504         new builtins.
20505         (N2_BUILTINS): Add arch field setting, add new builtins.
20506         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
20507         for arch field.
20508         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
20509         Also handle ldex/stex/ldsex/stsex builtins.
20510         (nios2_expand_rdprs_builtin): New function.
20511         (nios2_expand_cache_builtin): New function.
20512         (nios2_expand_wrpie_builtin): New function.
20513         (nios2_expand_eni_builtin): New function.
20514         (nios2_expand_builtin): Add arch field handling and new builtin
20515         cases.
20516         * doc/extend.texi (Altera Nios II Built-in Functions): Document
20517         new builtins.
20518         * doc/md.texi (Machine Constraints): Document U and v constraints.
20519
20520 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20521             Cesar Philippidis  <cesar@codesourcery.com>
20522             Chung-Lin Tang  <cltang@codesourcery.com>
20523
20524         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
20525         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
20526         callee_save_reg_size and uses_anonymous_args fields.
20527         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
20528         (nios2_create_cfa_notes): New function.
20529         (nios2_adjust_stack): New function for adjusting stack.
20530         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
20531         Use nios2_adjust_stack.
20532         (nios2_expand_epilogue): Likewise.
20533         (nios2_expand_return): New function.
20534         (nios2_can_use_return_insn): Update for CDX pop.n usage.
20535         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
20536         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
20537         * config/nios2/nios2.md (return): Use nios2_expand_return.
20538
20539 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20540             Cesar Philippidis  <cesar@codesourcery.com>
20541             Chung-Lin Tang  <cltang@codesourcery.com>
20542
20543         * config/nios2/predicates.md (pop_operation): New.
20544         (ldwm_operation, stwm_operation): New.
20545         (nios2_hard_register_operand): New.
20546         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
20547         (ldstwm_operation_p): Declare.
20548         (gen_ldstwm_peep): Declare.
20549         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
20550         (base_reg_adjustment_p): New.
20551         (pop_operation_p): New.
20552         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
20553         (nios2_ldstwm_regset_p): New.
20554         (ldstwm_operation_p): New.
20555         (gen_ldst): New.
20556         (nios2_ldst_parallel): New.
20557         (struct ldswm_operand): Declare.
20558         (compare_ldstwm_operands): New.
20559         (can_use_cdx_ldstw): New.
20560         (gen_ldstwm_peep): New.
20561         * config/nios2/nios2-ldstwm.sml: New.
20562         * config/nios2/nios2.md: Include ldstwm.md.
20563         * config/nios2/ldstwm.md: Generated.
20564
20565 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20566             Cesar Philippidis  <cesar@codesourcery.com>
20567             Chung-Lin Tang  <cltang@codesourcery.com>
20568
20569         * config/nios2/nios2.h (LABEL_ALIGN): Define.
20570         (REG_ALLOC_ORDER): Define.
20571         (ADJUST_REG_ALLOC_ORDER): Define.
20572         (HONOR_REG_ALLOC_ORDER): Define.
20573         (CDX_REG_P): Define.
20574         (ANDCLEAR_INT): Define.
20575         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
20576         (nios2_label_align): Declare.
20577         (nios2_cdx_narrow_form_p): Declare.
20578         (nios2_adjust_reg_alloc_order): Declare.
20579         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
20580         operation.
20581         (nios2_large_unspec_reloc_p): New function, split from...
20582         (nios2_legitimate_pic_operand_p): ...here.
20583         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
20584         (nios2_print_operand_punct_valid_p): New.
20585         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
20586         (split_mem_address): New.
20587         (split_alu_insn): New.
20588         (cdxreg): New.
20589         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
20590         (enum nios2_add_insn_kind): New.
20591         (nios2_add_insn_names, nios2_add_insn_narrow): New.
20592         (nios2_add_insn_classify): New.
20593         (nios2_add_insn_asm): New.
20594         (nios2_cdx_narrow_form_p): New.
20595         (label_align, min_labelno, max_labelno): New.
20596         (nios2_reorg): New.
20597         (nios2_label_align): New.
20598         (nios2_adjust_reg_alloc_order): New.
20599         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20600         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20601         * config/nios2/constraints.md (P): New constraint.
20602         * config/nios2/predicates.md (const_and_operand): New.
20603         (and_operand): New.
20604         (stack_memory_operand): New.
20605         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
20606         (length): Update to use nios2_cdx_narrow_form_p().
20607         (type): Add new insn type values.
20608         (control, alu, st, ld, shift): Update insn reservations with
20609         new insn type values.
20610         (*high, *lo_sum): Define new insn patterns for constant generation.
20611         (movqi_internal, movhi_internal, movsi_internal): Reduce
20612         alternatives, update asm template to handle CDX variants, update
20613         type attributes.
20614         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
20615         template, update type attributes.
20616         (extendhisi2, extendqi<mode>2): Likewise.
20617         (addsi3): Change to use function for asm string.
20618         (subsi3): Add CDX notation to asm template, update type attributes.
20619         (negsi3, one_cmplsi3): Likewise.
20620         (andsi3): New pattern, specialized from logical patterns.
20621         (<code>si3): Remove and case, combine alternatives, update asm
20622         template.
20623         (<shift_op>si3): Add CDX notation, update type attributes.
20624         (rotrsi3): Update type attribute.
20625         (*merge, extzv, insv): New insn patterns.
20626         (return): Change to define_expand.
20627         (simple_return): Add CDX notation, update type attributes.
20628         (indirect_jump): Add CDX notation.
20629         (jump): Update asm cases, update length attribute expression.
20630         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
20631         (nios2_cbranch): Update asm cases and length attribute expression
20632         to handle CDX variants.
20633         (nios2_cmp<code>): Update asm template.
20634         (nop): Add CDX notation, update type attributes.
20635         (trap): Add CDX notation.
20636         (ctrapsi4): Update asm cases and length attribute expression to
20637         handle CDX variant.
20638         * doc/md.texi (Machine Constraints): Document P constraint.
20639
20640 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20641             Cesar Philippidis  <cesar@codesourcery.com>
20642             Chung-Lin Tang  <cltang@codesourcery.com>
20643
20644         * config/nios2/nios2.h (SMALL_INT12): New macro.
20645         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
20646         (nios2_valid_addr_expr_p): Use it.
20647         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
20648         with implicit "io" instructions on R2.
20649         * config/nios2/constraints.md (w): New constraint.
20650         * config/nios2/predicates.md (ldstio_memory_operand): New.
20651         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
20652         operand predicate and constraint.
20653         (ld<bh>io_signed, st<bhw>io>): Likewise.
20654         * doc/md.texi (Machine Constraints): Document w constraint.
20655
20656 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20657             Cesar Philippidis  <cesar@codesourcery.com>
20658             Chung-Lin Tang  <cltang@codesourcery.com>
20659
20660         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
20661         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
20662         Nios II architecture level.
20663         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
20664         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
20665         (OPTION_DEFAULT_SPECS): Define.
20666         (ASM_SPEC): Add -march= spec strings.
20667         * config/nios2/nios2.c (nios2_option_override): Check for
20668         conflicts involving new options.
20669         * config.gcc (nios2*-*-*): Support --with-arch=.
20670         * doc/invoke.texi (Option Summary, Nios II Options): Document
20671         -march=, -mbmx, and -mcdx.
20672
20673 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
20674
20675         PR rtl-optimization/66626
20676         * lra-constraints.c (lra_constraints): Prevent equivalence
20677         substitution for static chain pseudo in functions with nonlocal
20678         goto.
20679
20680 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20681
20682         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
20683         (nios2_emit_stack_limit_check): Add size parameter.  Handle
20684         -fstack-limit-symbol as well as -fstack-limit-register.
20685         (nios2_expand_prologue): Emit only a single stack limit check,
20686         even if multiple stack adjustments are required.
20687         (nios2_option_override): Diagnose unsupported combination of -fpic
20688         and -stack-limit-symbol.
20689
20690 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
20691
20692         * Makefile.in (top_srcdir): New.
20693         * configure.ac: Use AM_ZLIB.
20694         * configure: Regeneated.
20695
20696 2015-07-14  Matthias Klose  <doko@ubuntu.com>
20697
20698         PR target/66840
20699         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
20700
20701 2015-07-14  Richard Biener  <rguenther@suse.de>
20702
20703         PR tree-optimization/66863
20704         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
20705         what we record for conversion use stmt lhs inequalities.
20706
20707 2015-07-14  Richard Biener  <rguenther@suse.de>
20708
20709         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
20710         (decision_tree::gen_gimple): Likewise.
20711
20712 2015-07-14  Tom de Vries  <tom@codesourcery.com>
20713
20714         * gcc.c (greater_than_spec_func): Declare forward.
20715         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
20716         -ftree-parallelize-loops={0,1}.
20717         (static_spec_functions): Add greater_than_spec_func function with name
20718         "gt".
20719         (greater_than_spec_func): New function.
20720
20721 2015-07-14  Richard Biener  <rguenther@suse.de>
20722
20723         * tree-ssa-dom.c (record_temporary_equivalences): Merge
20724         wideing type conversion case from record_equivalences_from_incoming_edge
20725         and use record_equality to record equivalences.
20726         (record_equivalences_from_incoming_edge): Call
20727         record_temporary_equivalences.
20728
20729 2015-07-14  Richard Biener  <rguenther@suse.de>
20730
20731         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
20732         (struct if_expr): New.
20733         (struct with_expr): Likewise.
20734         (is_a_helper): Add helpers for if_expr and with_expr.
20735         (struct simplify): Add simplify_kind enum and member.  Remove
20736         ifexpr_vec member.
20737         (simplify::simplify): Adjust.
20738         (lower_commutative): Adjust.
20739         (lower_opt_convert): Likewise.
20740         (lower_cond): Likewise.
20741         (replace_id): Handle with_expr and if_expr.
20742         (lower_for): Adjust.
20743         (dt_simplify::gen_1): New recursive worker, split out from ...
20744         (dt_simplify::gen): ... here.  Deal with if and with expansion
20745         recursively.
20746         (capture_info::capture_info): Take context argument
20747         (capture_info::walk_result): Only analyze specific result.
20748         (parser::parse_result): New function.
20749         (parser::parse_simplify): Adjust to parse ifs with then end
20750         else case.
20751         (parser::parse_if): Simplify.
20752         (parser::parse_pattern): Pass down simplify kind.
20753         * match.pd: Convert if structure to new syntax.
20754
20755 2015-07-13  Marek Polacek  <polacek@redhat.com>
20756
20757         * rtl.c (rtx_equal_p_cb): Fix typo.
20758
20759 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
20760
20761         * omega.h: Don't include config.h, don't include params.h again if
20762         omega.h has already been included.
20763         * graphite-poly.h: Include sese.h.
20764         * graphite.c: Don't include sese.h, remove needless includes and
20765         minimize includes outside #ifdef HAVE_isl block.
20766         * graphite-blocking.c: Don't include sese.h, remove needless includes,
20767         and wrap entire file in #ifdef HAVE_isl
20768         * graphite-dependences.c: Likewise.
20769         * graphite-interchange.c: Likewise.
20770         * graphite-isl-ast-to-gimple.c: Likewise.
20771         * graphite-optimize-isl.c: Likewise.
20772         * graphite-poly.c: Likewise.
20773         * graphite-scop-detection.c: Likewise.
20774         * graphite-sese-to-poly.c: Likewise.
20775
20776 2015-07-13  Tom de Vries  <tom@codesourcery.com>
20777
20778         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
20779
20780 2015-07-13  Renlin Li  <renlin.li@arm.com>
20781
20782         PR rtl/66556
20783         * simplify-rtx.c (simplify_const_relational_operation): Add
20784         side_effects_p checks.
20785
20786 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
20787
20788         * bitmap.h: Fix double word typos.
20789         * builtins.c: Same.
20790         * calls.c: Same.
20791         * cfgloopmanip.c: Same.
20792         * cgraph.c: Same.
20793         * cgraph.h: Same.
20794         * cgraphclones.c: Same.
20795         * combine.c: Same.
20796         * config/aarch64/aarch64-protos.h: Same.
20797         * config/aarch64/aarch64.c: Same.
20798         * config/aarch64/aarch64.md: Same.
20799         * config/arm/arm.md: Same.
20800         * config/arm/arm1020e.md: Same.
20801         * config/arm/arm1026ejs.md: Same.
20802         * config/arm/arm926ejs.md: Same.
20803         * config/arm/fa526.md: Same.
20804         * config/arm/fa606te.md: Same.
20805         * config/arm/fa626te.md: Same.
20806         * config/arm/fa726te.md: Same.
20807         * config/arm/fmp626.md: Same.
20808         * config/darwin.c: Same.
20809         * config/epiphany/epiphany.c: Same.
20810         * config/frv/frv.c: Same.
20811         * config/ft32/ft32.c: Same.
20812         * config/gnu-user.h: Same.
20813         * config/h8300/constraints.md: Same.
20814         * config/i386/i386.c: Same.
20815         * config/i386/i386.md: Same.
20816         * config/iq2000/iq2000.md: Same.
20817         * config/mips/mips.c: Same.
20818         * config/mmix/mmix.md: Same.
20819         * config/moxie/moxie.c: Same.
20820         * config/nds32/nds32.md: Same.
20821         * config/pa/pa.h: Same.
20822         * config/rs6000/aix.h: Same.
20823         * config/rs6000/rs6000.h: Same.
20824         * config/sh/sh.c: Same.
20825         * config/tilegx/tilegx.md: Same.
20826         * config/tilepro/gen-mul-tables.cc: Same.
20827         * cse.c: Same.
20828         * dbxout.c: Same.
20829         * doc/invoke.texi: Same.
20830         * dse.c: Same.
20831         * dwarf2out.c: Same.
20832         * final.c: Same.
20833         * gcc.c: Same.
20834         * genmatch.c: Same.
20835         * gimplify.c: Same.
20836         * hash-table.h: Same.
20837         * internal-fn.c: Same.
20838         * ipa-cp.c: Same.
20839         * ipa-devirt.c: Same.
20840         * ipa-icf.c: Same.
20841         * ipa-icf.h: Same.
20842         * ipa-profile.c: Same.
20843         * ipa-prop.c: Same.
20844         * ipa-prop.h: Same.
20845         * ira.c: Same.
20846         * omp-low.c: Same.
20847         * reg-stack.c: Same.
20848         * regcprop.c: Same.
20849         * reorg.c: Same.
20850         * rtl.h: Same.
20851         * sbitmap.h: Same.
20852         * tree-eh.c: Same.
20853         * tree-inline.c: Same.
20854         * tree-sra.c: Same.
20855         * tree-ssa-dom.c: Same.
20856         * tree-ssa-loop-ivopts.c: Same.
20857         * tree-ssa-structalias.c: Same.
20858         * tree-ssa-tail-merge.c: Same.
20859         * tree-ssa-ter.c: Same.
20860         * tree-ssa-threadupdate.c: Same.
20861         * tree-ssa-uninit.c: Same.
20862         * tree-ssanames.c: Same.
20863         * tree-vect-loop-manip.c: Same.
20864         * tree-vrp.c: Same.
20865         * tree.c: Same.
20866         * valtrack.c: Same.
20867         * vec.h: Same.
20868
20869 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20870
20871         PR middle-end/66726
20872         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
20873         tree_ssa_phiopt_worker): Call it.
20874
20875 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20876
20877         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
20878         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
20879         REG_EQUAL note.
20880
20881 2015-07-11  Marek Polacek  <polacek@redhat.com>
20882
20883         PR middle-end/66353
20884         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
20885         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
20886         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
20887         rather than bb_has_abnormal_call_pred.
20888         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
20889         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
20890         rather than bb_has_abnormal_call_pred.
20891
20892 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
20893
20894         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20895         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
20896         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20897         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
20898         v850_legitimate_address_p): New functions.
20899         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
20900
20901 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
20902
20903         PR target/66819
20904         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
20905         indirect sibcall with register arguments if register available
20906         for argument passing.
20907         (init_cumulative_args): Set cfun->machine->arg_reg_available
20908         to (cum->nregs > 0) or to true if function has a variable
20909         argument list.
20910         (function_arg_advance_32): Set cfun->machine->arg_reg_available
20911         to false if cum->nregs <= 0.
20912         * config/i386/i386.h (machine_function): Add arg_reg_available.
20913
20914 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20915
20916         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
20917         and gen_higpart instead of gen_rtx_SUBREG.
20918         * config/i386/i386.md
20919         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
20920         (read-modify peephole2): Use gen_lowpart instead of
20921         gen_rtx_SUBREG for operand 5.
20922
20923 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20924
20925         * config/tilepro/gen-mul-tables.cc (main): Change include list for
20926         generated files.
20927         * config/tilepro/mul-tables.c: Regenerate.
20928         * config/tilegx/mul-tables.c: Regenerate.
20929
20930 2015-07-10  Richard Biener  <rguenther@suse.de>
20931
20932         * fold-const.c (distribute_bit_expr): Remove.
20933         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
20934         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
20935         to A & (B | C) and simplifying A << C1 << C2 to ...
20936         * match.pd: ... patterns here.
20937
20938 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
20939
20940         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
20941         Mark mem as READONLY and NOTRAP for PIC symbol.
20942
20943 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20944
20945         * gimple-predict.h: New file.
20946         (gimple_predict_predictor, gimple_predict_set_predictor,
20947         gimple_predict_outcome, gimple_predict_set_outcome,
20948         gimple_build_predict): Relocate here.
20949         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
20950         gimple_predict_outcome, gimple_predict_set_outcome): Move to
20951         gimple-predict.h.
20952         * gimple.c (gimple_build_predict): Move to gimple-predict.h
20953         * basic-block.h: Don't include cfghooks.h.
20954         * backend.h: Don't include predict.h.
20955         * cfghooks.h: Include predict.h.
20956         * gimple-pretty-print.c: Include gimple-predict.h.
20957         * gimplify.c: Likwise.
20958         * predict.c: Adjust includes.
20959         * tree-inline.c: Likewise.
20960         * asan.c: Likewise.
20961         * auto-inc-dec.c: Likewise.
20962         * auto-profile.c: Likewise.
20963         * bb-reorder.c: Likewise.
20964         * builtins.c: Likewise.
20965         * caller-save.c: Likewise.
20966         * calls.c: Likewise.
20967         * cfganal.c: Likewise.
20968         * cfgbuild.c: Likewise.
20969         * cfg.c: Likewise.
20970         * cfgcleanup.c: Likewise.
20971         * cfgexpand.c: Likewise.
20972         * cfghooks.c: Likewise.
20973         * cfgloopanal.c: Likewise.
20974         * cfgloop.c: Likewise.
20975         * cfgloopmanip.c: Likewise.
20976         * cfgrtl.c: Likewise.
20977         * cgraph.c: Likewise.
20978         * cgraphunit.c: Likewise.
20979         * combine.c: Likewise.
20980         * cprop.c: Likewise.
20981         * cse.c: Likewise.
20982         * dce.c: Likewise.
20983         * dojump.c: Likewise.
20984         * dse.c: Likewise.
20985         * except.c: Likewise.
20986         * expmed.c: Likewise.
20987         * expr.c: Likewise.
20988         * final.c: Likewise.
20989         * fold-const.c: Likewise.
20990         * function.c: Likewise.
20991         * fwprop.c: Likewise.
20992         * gcc-plugin.h: Likewise.
20993         * gcse.c: Likewise.
20994         * genattrtab.c: Likewise.
20995         * genemit.c: Likewise.
20996         * gengtype.c: Likewise.
20997         * genopinit.c: Likewise.
20998         * genoutput.c: Likewise.
20999         * genpreds.c: Likewise.
21000         * genrecog.c: Likewise.
21001         * gimple-fold.c: Likewise.
21002         * gimple-iterator.c: Likewise.
21003         * gimple-ssa-isolate-paths.c: Likewise.
21004         * gimple-ssa-strength-reduction.c: Likewise.
21005         * graph.c: Likewise.
21006         * graphite-blocking.c: Likewise.
21007         * graphite.c: Likewise.
21008         * graphite-dependences.c: Likewise.
21009         * graphite-interchange.c: Likewise.
21010         * graphite-isl-ast-to-gimple.c: Likewise.
21011         * graphite-optimize-isl.c: Likewise.
21012         * graphite-poly.c: Likewise.
21013         * graphite-scop-detection.c: Likewise.
21014         * graphite-sese-to-poly.c: Likewise.
21015         * haifa-sched.c: Likewise.
21016         * ifcvt.c: Likewise.
21017         * internal-fn.c: Likewise.
21018         * ipa-cp.c: Likewise.
21019         * ipa-profile.c: Likewise.
21020         * ipa-split.c: Likewise.
21021         * ipa-utils.c: Likewise.
21022         * ira-build.c: Likewise.
21023         * ira-color.c: Likewise.
21024         * ira-conflicts.c: Likewise.
21025         * ira-costs.c: Likewise.
21026         * ira-emit.c: Likewise.
21027         * ira-lives.c: Likewise.
21028         * jump.c: Likewise.
21029         * loop-doloop.c: Likewise.
21030         * loop-init.c: Likewise.
21031         * loop-invariant.c: Likewise.
21032         * loop-unroll.c: Likewise.
21033         * lower-subreg.c: Likewise.
21034         * lra-assigns.c: Likewise.
21035         * lra.c: Likewise.
21036         * lra-coalesce.c: Likewise.
21037         * lra-constraints.c: Likewise.
21038         * lra-lives.c: Likewise.
21039         * lto-cgraph.c: Likewise.
21040         * lto-streamer-in.c: Likewise.
21041         * mode-switching.c: Likewise.
21042         * modulo-sched.c: Likewise.
21043         * omp-low.c: Likewise.
21044         * optabs.c: Likewise.
21045         * passes.c: Likewise.
21046         * postreload.c: Likewise.
21047         * postreload-gcse.c: Likewise.
21048         * profile.c: Likewise.
21049         * recog.c: Likewise.
21050         * regstat.c: Likewise.
21051         * reload1.c: Likewise.
21052         * reorg.c: Likewise.
21053         * rtlanal.c: Likewise.
21054         * sched-ebb.c: Likewise.
21055         * sel-sched-ir.c: Likewise.
21056         * sese.c: Likewise.
21057         * shrink-wrap.c: Likewise.
21058         * simplify-rtx.c: Likewise.
21059         * stmt.c: Likewise.
21060         * store-motion.c: Likewise.
21061         * tracer.c: Likewise.
21062         * trans-mem.c: Likewise.
21063         * tree-call-cdce.c: Likewise.
21064         * tree-cfg.c: Likewise.
21065         * tree-cfgcleanup.c: Likewise.
21066         * tree-chkp.c: Likewise.
21067         * tree-complex.c: Likewise.
21068         * tree-eh.c: Likewise.
21069         * tree-if-conv.c: Likewise.
21070         * tree-loop-distribution.c: Likewise.
21071         * tree-outof-ssa.c: Likewise.
21072         * tree-parloops.c: Likewise.
21073         * tree-predcom.c: Likewise.
21074         * tree-pretty-print.c: Likewise.
21075         * tree-profile.c: Likewise.
21076         * tree-sra.c: Likewise.
21077         * tree-ssa.c: Likewise.
21078         * tree-ssa-coalesce.c: Likewise.
21079         * tree-ssa-dce.c: Likewise.
21080         * tree-ssa-dom.c: Likewise.
21081         * tree-ssa-forwprop.c: Likewise.
21082         * tree-ssa-ifcombine.c: Likewise.
21083         * tree-ssa-loop-ch.c: Likewise.
21084         * tree-ssa-loop-im.c: Likewise.
21085         * tree-ssa-loop-ivcanon.c: Likewise.
21086         * tree-ssa-loop-ivopts.c: Likewise.
21087         * tree-ssa-loop-manip.c: Likewise.
21088         * tree-ssa-loop-prefetch.c: Likewise.
21089         * tree-ssa-loop-unswitch.c: Likewise.
21090         * tree-ssa-math-opts.c: Likewise.
21091         * tree-ssa-phiopt.c: Likewise.
21092         * tree-ssa-pre.c: Likewise.
21093         * tree-ssa-reassoc.c: Likewise.
21094         * tree-ssa-sink.c: Likewise.
21095         * tree-ssa-tail-merge.c: Likewise.
21096         * tree-ssa-threadedge.c: Likewise.
21097         * tree-ssa-threadupdate.c: Likewise.
21098         * tree-switch-conversion.c: Likewise.
21099         * tree-tailcall.c: Likewise.
21100         * tree-vect-data-refs.c: Likewise.
21101         * tree-vect-loop.c: Likewise.
21102         * tree-vect-loop-manip.c: Likewise.
21103         * tree-vectorizer.c: Likewise.
21104         * tree-vrp.c: Likewise.
21105         * ubsan.c: Likewise.
21106         * value-prof.c: Likewise.
21107         * varasm.c: Likewise.
21108         * var-tracking.c: Likewise.
21109         * config/aarch64/aarch64-builtins.c: Likewise.
21110         * config/aarch64/aarch64.c: Likewise.
21111         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21112         * config/alpha/alpha.c: Likewise.
21113         * config/arc/arc.c: Likewise.
21114         * config/arm/arm.c: Likewise.
21115         * config/avr/avr.c: Likewise.
21116         * config/bfin/bfin.c: Likewise.
21117         * config/c6x/c6x.c: Likewise.
21118         * config/cr16/cr16.c: Likewise.
21119         * config/cris/cris.c: Likewise.
21120         * config/darwin.c: Likewise.
21121         * config/darwin-c.c: Likewise.
21122         * config/epiphany/epiphany.c: Likewise.
21123         * config/epiphany/mode-switch-use.c: Likewise.
21124         * config/epiphany/resolve-sw-modes.c: Likewise.
21125         * config/fr30/fr30.c: Likewise.
21126         * config/frv/frv.c: Likewise.
21127         * config/ft32/ft32.c: Likewise.
21128         * config/h8300/h8300.c: Likewise.
21129         * config/i386/i386.c: Likewise.
21130         * config/i386/winnt.c: Likewise.
21131         * config/ia64/ia64.c: Likewise.
21132         * config/iq2000/iq2000.c: Likewise.
21133         * config/lm32/lm32.c: Likewise.
21134         * config/m32c/m32c.c: Likewise.
21135         * config/m32r/m32r.c: Likewise.
21136         * config/m68k/m68k.c: Likewise.
21137         * config/mcore/mcore.c: Likewise.
21138         * config/mep/mep.c: Likewise.
21139         * config/microblaze/microblaze.c: Likewise.
21140         * config/mips/mips.c: Likewise.
21141         * config/mmix/mmix.c: Likewise.
21142         * config/mn10300/mn10300.c: Likewise.
21143         * config/moxie/moxie.c: Likewise.
21144         * config/msp430/msp430.c: Likewise.
21145         * config/nds32/nds32.c: Likewise.
21146         * config/nds32/nds32-cost.c: Likewise.
21147         * config/nds32/nds32-fp-as-gp.c: Likewise.
21148         * config/nds32/nds32-intrinsic.c: Likewise.
21149         * config/nds32/nds32-isr.c: Likewise.
21150         * config/nds32/nds32-md-auxiliary.c: Likewise.
21151         * config/nds32/nds32-memory-manipulation.c: Likewise.
21152         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21153         * config/nds32/nds32-predicates.c: Likewise.
21154         * config/nios2/nios2.c: Likewise.
21155         * config/nvptx/nvptx.c: Likewise.
21156         * config/pa/pa.c: Likewise.
21157         * config/pdp11/pdp11.c: Likewise.
21158         * config/rl78/rl78.c: Likewise.
21159         * config/rs6000/rs6000.c: Likewise.
21160         * config/rx/rx.c: Likewise.
21161         * config/s390/s390.c: Likewise.
21162         * config/sh/sh.c: Likewise.
21163         * config/sh/sh-mem.cc: Likewise.
21164         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21165         * config/sh/sh_treg_combine.cc: Likewise.
21166         * config/sparc/sparc.c: Likewise.
21167         * config/spu/spu.c: Likewise.
21168         * config/stormy16/stormy16.c: Likewise.
21169         * config/tilegx/tilegx.c: Likewise.
21170         * config/tilepro/tilepro.c: Likewise.
21171         * config/v850/v850.c: Likewise.
21172         * config/vax/vax.c: Likewise.
21173         * config/visium/visium.c: Likewise.
21174         * config/xtensa/xtensa.c: Likewise.
21175
21176 2015-07-10  Richard Biener  <rguenther@suse.de>
21177
21178         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
21179         (decision_tree::gen_gimple): Likewise.
21180         (decision_tree::gen_generic): Likewise.
21181
21182 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
21183
21184         PR target/66813
21185         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
21186         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
21187
21188 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
21189
21190         PR middle-end/66820
21191         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
21192         or ORT_TASK contexts.
21193         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
21194         is non-zero.
21195
21196 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21197
21198         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
21199         above function.
21200
21201 2015-07-10  Tom de Vries  <tom@codesourcery.com>
21202
21203         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
21204         insert nit + 1 bound.
21205
21206 2015-07-10  Richard Biener  <rguenther@suse.de>
21207
21208         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
21209         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
21210         (if_convertible_loop_p_1): For this always compute bb predicates.
21211         (if_convertible_loop_p): And free them.
21212
21213 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21214
21215         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
21216         in dump message.
21217
21218 2015-07-10  Richard Biener  <rguenther@suse.de>
21219
21220         PR tree-optimization/66823
21221         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
21222         inverted predicate.
21223
21224 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
21225
21226         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
21227         to handle mips[32|64]r3 and mips[32|64]r5.
21228
21229 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
21230
21231         PR middle-end/66633
21232         * tree-nested.c (get_static_chain): Or in a flag into
21233         info->static_chain_added.
21234         (get_frame_field, get_nonlocal_debug_decl): Likewise.
21235         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
21236         2015-07-01 changes.
21237         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
21238         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
21239         add it to clauses.
21240
21241         PR tree-optimization/66718
21242         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
21243         field.
21244         (vect_simd_lane_linear): New function.
21245         (vectorizable_simd_clone_call): Support using linear arguments for
21246         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
21247
21248 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21249
21250         PR target/66821
21251         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
21252
21253 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
21254
21255         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
21256         Use machine mode, not enum machine_mode in the prototype.
21257
21258         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
21259         classify 128-bit floating point support.
21260         (FLOAT128_IBM_P): Likewise.
21261         (FLOAT128_VECTOR_P): Likewise.
21262         (FLOAT128_2REG_P): Likewise.
21263         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
21264         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
21265         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
21266         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
21267
21268         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
21269         tests against TFmode/TDmode, since those modes do not use VSX
21270         addresses.
21271         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
21272         support.
21273         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
21274         tests against TFmode, etc.
21275         (invalid_e500_subreg): Add tests against IFmode/KFmode.
21276         (reg_offset_addressing_ok_p): Likewise.
21277         (rs6000_legitimate_offset_address_p): Likewise.
21278         (rs6000_legitimize_address): Likewise.
21279         (rs6000_legitimize_reload_address): Likewise.
21280         (rs6000_legitimate_address_p): Clean up tests against TFmode and
21281         TDmode to use the new helper macros, which will include IFmode and
21282         KFmode.
21283         (rs6000_emit_move): Likewise.
21284         (rs6000_darwin64_record_arg_recurse): Likewise.
21285         (print_operand): Likewise.
21286         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
21287         that uses a single vector register as a vector and not as a
21288         floating point register in terms of the calling sequence.
21289         (rs6000_discover_homogeneous_aggregate): Likewise.
21290         (rs6000_return_in_memory): Likewise.
21291         (init_cumulative_args): Likewise.
21292         (rs6000_function_arg_boundary): Likewise.
21293         (rs6000_function_arg_advance_1): Likewise.
21294         (rs6000_function_arg): Likewise.
21295         (rs6000_pass_by_reference): Likewise.
21296         (rs6000_gimplify_va_arg): Likewise.
21297         (rs6000_secondary_reload_memory): Use machine_mode not enum
21298         machine mode.
21299         (rs6000_split_multireg_move): Use new helper macros.
21300         (spe_func_has_64bit_regs_p): Likewise.
21301         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
21302         (output_toc): Use new helper macros.
21303         (rs6000_register_move_cost): Likewise.
21304         (rs6000_function_value): Add IEEE 128-bit floating point calling
21305         sequence support.
21306         (rs6000_libcall_value): Likewise.
21307         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
21308         floating point support.
21309         (rs6000_vector_mode_supported_p): Likewise.
21310
21311 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
21312
21313         PR rtl-optimization/66782
21314         * lra-int.h (struct lra_insn_recog_data): Add comment about
21315         clobbered hard regs for arg_hard_regs.
21316         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
21317         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
21318         Add condition for processing used hard regs.
21319         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
21320         Process clobbered hard regs.
21321
21322 2015-07-09  Michael Matz  <matz@suse.de>
21323
21324         * genmatch.c (fprintf_indent): New function.
21325         (operand::gen_transform): Add indent parameter.
21326         (expr::gen_transform, c_expr::gen_transform,
21327         capture::gen_transform): Ditto and use fprintf_indent.
21328         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
21329         (dt_operand::gen, dt_operand::gen_predicate,
21330         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
21331         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
21332         (decision_tree::gen_gimple): Adjust calls and indent generated
21333         code.
21334         (decision_tree::gen_generic): Ditto.
21335         (write_predicate): Ditto.
21336
21337 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21338
21339         PR target/66814
21340         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
21341         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
21342         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
21343         {GENERAL,SSE,MMX}_REG_P where appropriate.
21344
21345 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
21346
21347         * lto-streamer.h: Don't include target.h and alloc-pool.h.
21348         * builtins.c: Adjust includes.
21349         * gimple.c: Likewise.
21350         * ipa-icf.c: Likewise.
21351         * lto-opts.c: Likewise.
21352         * ipa-reference.c: Likewise.
21353         * lto-section-out.c: Likewise.
21354         * lto-streamer-in.c: Likewise.
21355         * lto-streamer-out.c: Likewise.
21356         * opts-global.c: Likewise.
21357         * symtab.c: Likewise.
21358         * tree-chkp.c: Likewise.
21359         * tree-ssa-live.c: Likewise.
21360         * tree-streamer-in.c: Likewise.
21361         * tree-streamer-out.c: Likewise.
21362         * config/darwin.c: Likewise.
21363         * config/i386/winnt.c: Likewise.
21364
21365 2015-07-09  Richard Biener  <rguenther@suse.de>
21366
21367         * genmatch.c (struct expr): Add force_single_use flag.
21368         (expr::expr): Add copy constructor.
21369         (capture_info::walk_match): Gather force_single_use captures.
21370         (expr::gen_transform): Use possibly NULLified sequence.
21371         (dt_simplify::gen): Apply single-use restrictions by NULLifying
21372         seq if any constrained expr is not single-use.
21373         (parser::parse_expr): Refactor to allow multiple flags.  Handle
21374         's' flag to force an expression have a single-use if the pattern
21375         simplifies to more than one statement.
21376         * match.pd: Convert most single_use conditionals to :s flags.
21377
21378 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21379
21380         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
21381         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
21382         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
21383
21384 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
21385
21386         * flags.h: Don't include flag-types.h or options.h.
21387         * opts-common.c: Adjust includes.
21388         * opts-global.c: Likewise.
21389         * common/config/epiphany/epiphany-common.c: Likewise.
21390
21391 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21392
21393         PR target/66818
21394         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
21395         for IA MCU.
21396
21397 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21398
21399         PR target/66817
21400         * config/i386/i386.c (ix86_return_in_memory): Return true
21401         if int_size_in_bytes returns negative for IA MCU.
21402
21403 2015-07-09  Marek Polacek  <polacek@redhat.com>
21404
21405         PR tree-optimization/66718
21406         * Makefile.in (OBJS): Add gimple-laddress.o.
21407         * passes.def: Schedule pass_laddress.
21408         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
21409         * tree-pass.h (make_pass_laddress): Declare.
21410         * gimple-laddress.c: New file.
21411
21412 2015-07-09  Richard Biener  <rguenther@suse.de>
21413
21414         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
21415
21416 2015-07-09  Richard Biener  <rguenther@suse.de>
21417
21418         PR tree-optimization/66807
21419         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
21420
21421 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
21422
21423         * function.c (stack_protect_epilogue): Use if rather than switch for
21424         check targetm.have_stack_protect_test.
21425
21426 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21427
21428         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
21429         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
21430         * config/arc/arc.h: Likewise.
21431         * config/arm/arm.h: Likewise.
21432         * config/bfin/bfin.h: Likewise.
21433         * config/epiphany/epiphany.h: Likewise.
21434         * config/frv/frv.h: Likewise.
21435         * config/ia64/ia64.h: Likewise.
21436         * config/iq2000/iq2000.h: Likewise.
21437         * config/lm32/lm32.h: Likewise.
21438         * config/m32r/m32r.h: Likewise.
21439         * config/mcore/mcore.h: Likewise.
21440         * config/mep/mep.h: Likewise.
21441         * config/microblaze/microblaze.h: Likewise.
21442         * config/mips/mips.h: Likewise.
21443         * config/mmix/mmix.h: Likewise.
21444         * config/mn10300/mn10300.h: Likewise.
21445         * config/nds32/nds32.h: Likewise.
21446         * config/nios2/nios2.h: Likewise.
21447         * config/pa/pa.h: Likewise.
21448         * config/rl78/rl78.h: Likewise.
21449         * config/sh/sh.h: Likewise.
21450         * config/sparc/sparc.h: Likewise.
21451         * config/stormy16/stormy16.h: Likewise.
21452         * config/tilegx/tilegx.h: Likewise.
21453         * config/tilepro/tilepro.h: Likewise.
21454         * config/v850/v850.h: Likewise.
21455         * config/xtensa/xtensa.h: Likewise.
21456         * doc/tm.texi: Regenerate.
21457         * doc/tm.texi.in: Adjust.
21458         * combine.c (simplify_set): Likewise.
21459         (simplify_comparison): Likewise.
21460         * expr.c (store_constructor): Likewise.
21461         * internal-fn.c (expand_arith_overflow): Likewise.
21462         * reload.c (push_reload): Likewise.
21463         (find_reloads): Likewise.
21464         (find_reloads_subreg_address): Likewise.
21465         * reload1.c (eliminate_regs_1): Likewise.
21466         * rtlanal.c (nonzero_bits1): Likewise.
21467         (num_sign_bit_copies1): Likewise.
21468         * simplify-rtx.c (simplify_truncation): Likewise.
21469
21470 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21471
21472         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
21473         of AUTO_INC_DEC with the preprocessor.
21474         * combine.c (combine_instructions): Likewise.
21475         (can_combine_p): Likewise.
21476         (try_combine): Likewise.
21477         * emit-rtl.c (try_split): Likewise.
21478         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
21479         * lower-subreg.c (resolve_simple_move): Likewise.
21480         * lra.c (update_inc_notes): Likewise.
21481         * recog.c (asm_operand_ok): Likewise.
21482         (constrain_operands): Likewise.
21483         * regrename.c (scan_rtx_address): Likewise.
21484         * reload.c (update_auto_inc_notes): Likewise.
21485         (reg_inc_found_and_valid_p): Likewise.
21486         * reload1.c (reload): Likewise.
21487         (emit_input_reload_insns): Likewise.
21488         (delete_output_reload): Likewise.
21489         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21490         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21491
21492 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21493
21494         * rtl.h: Always define AUTO_INC_DEC.
21495         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
21496         * combine.c (combine_instructions): Likewise.
21497         (can_combine_p): Likewise.
21498         (try_combine): Likewise.
21499         * emit-rtl.c (try_split): Likewise.
21500         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
21501         * lower-subreg.c (resolve_simple_move): Likewise.
21502         * lra.c (update_inc_notes): Likewise.
21503         * recog.c (asm_operand_ok): Likewise.
21504         (constrain_operands): Likewise.
21505         * regrename.c (scan_rtx_address): Likewise.
21506         * reload.c (update_auto_inc_notes): Likewise.
21507         (find_equiv_reg): Likewise.
21508         * reload1.c (reload): Likewise.
21509         (reload_as_needed): Likewise.
21510         (choose_reload_regs): Likewise.
21511         (emit_input_reload_insns): Likewise.
21512         (delete_output_reload): Likewise.
21513         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21514         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21515
21516 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21517
21518         * combine.c (can_combine_def_p): Don't check the value of
21519         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
21520         (combinable_i3pat): Likewise.
21521         (mark_used_regs_combine): Likewise.
21522         * regrename.c (rename_chains): Likewise.
21523         * reload.c (find_reloads_address): Likewise.
21524         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21525
21526 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21527
21528         * combine.c (update_rsp_from_reg_equal): Don't check if
21529         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
21530         (reg_nonzero_bits_for_combine): Likewise.
21531         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
21532         1.
21533         * config/frv/frv.h: Likewise.
21534         * config/lm32/lm32.h: Likewise.
21535         * config/mep/mep.h: Likewise.
21536         * config/mips/mips.h: Likewise.
21537         * config/rs6000/rs6000.h: Likewise.
21538         * config/sh/sh.h: Likewise.
21539         * config/tilegx/tilegx.h (enum reg_class): Likewise.
21540         * config/tilepro/tilepro.h: Likewise.
21541         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
21542         * doc/tm.texi: Regenerate.
21543         * doc/tm.texi.in: Adjust.
21544         * rtlanal.c (nonzero_bits1): Likewise.
21545
21546 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21547
21548         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
21549         with the preprocessor.
21550         (combine_instructions): Likewise.
21551         (try_combine): Likewise.
21552         (subst): Likewise.
21553         (distribute_notes): Likewise.
21554
21555 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21556
21557         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
21558         defined.
21559         (simplify_set): Likewise.
21560         * cse.c (cse_insn): Likewise.
21561         * fold-const.c (fold_single_bit_test): Likewise.
21562         (fold_unary_loc): Likewise.
21563         * postreload.c (reload_cse_simplify_set): Likewise.
21564         (reload_cse_simplify_operands): Likewise.
21565
21566 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
21567
21568         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
21569         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
21570
21571 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21572
21573         PR target/66746
21574         * config/i386/x86intrin.h: Include <adxintrin.h> even if
21575         __iamcu__ is defined.
21576
21577 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21578
21579         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
21580
21581 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
21582
21583         PR target/66523
21584         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
21585         names from preservation.
21586
21587 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21588
21589         PR target/66806
21590         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
21591         change for IAMCU.
21592         (function_arg_advance_32): Don't pass vectors in registers for
21593         IAMCU.
21594         (function_arg_32): Likewise.
21595         (ix86_return_in_memory): Don't return vectors in registers for
21596         IAMCU.
21597
21598 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
21599
21600         PR middle-end/66334
21601         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
21602         hard regno live at the start of BB with incoming abnormal edges.
21603         * lra-lives.c (process_bb_lives): Ditto.
21604
21605 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
21606
21607         PR libgomp/65099
21608         * config/nvptx/mkoffload.c (main): Create an offload image only in
21609         64-bit configurations.
21610
21611 2015-07-08  Martin Liska  <mliska@suse.cz>
21612
21613         PR bootstrap/66744
21614         * tree-sra.c (create_access_1): Call ctor without brackets.
21615         (create_artificial_child_access): Likewise.
21616
21617 2015-07-08  Richard Biener  <rguenther@suse.de>
21618
21619         PR tree-optimization/66793
21620         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
21621         Properly split the block after stmts ending it.
21622
21623 2015-07-08  Richard Biener  <rguenther@suse.de>
21624
21625         PR tree-optimization/66794
21626         * passes.c (execute_function_todo): Assert that post-dominators
21627         are not computed.
21628         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
21629         Free post-dominators.
21630
21631 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21632
21633         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
21634         with early exit.
21635
21636 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21637
21638         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
21639         more than or equal 8 and less than 32 when optimizing for size.
21640
21641 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21642
21643         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
21644         COSTS_N_INSNS (1) and increment it appropriately throughout the
21645         function.
21646
21647 2015-07-08  Richard Biener  <rguenther@suse.de>
21648
21649         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
21650
21651 2015-07-08  Alan Modra  <amodra@gmail.com>
21652
21653         * target.def (rtx_costs): Remove "code" param, add "mode".
21654         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
21655         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
21656         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
21657         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
21658         call.  Track mode when given in rtx.
21659         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
21660         (default_address_cost): Pass Pmode to rtx_cost.
21661         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
21662         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
21663         with NULL set.
21664         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
21665         (notreg_cost): Add mode param.  Use it.
21666         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
21667         mode param and pass to set_src_cost.  Update all calls.
21668         (hash_scan_set): Formatting.
21669         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
21670         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
21671         * hooks.h: Ditto.
21672         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
21673         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
21674         emit_store_flag): Update set_src_cost and rtx_cost calls.
21675         * auto-inc-dec.c (attempt_change): Likewise.
21676         * calls.c (precompute_register_parameters): Likewise.
21677         * combine.c (expand_compound_operation, make_extraction,
21678         force_to_mode, distribute_and_simplify_rtx): Likewise.
21679         * dojump.c (prefer_and_bit_test): Likewise.
21680         * dse.c (find_shift_sequence): Likewise.
21681         * expr.c (compress_float_constant): Likewise.
21682         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
21683         * ifcvt.c (noce_try_sign_mask): Likewise.
21684         * loop-doloop.c (doloop_optimize): Likewise.
21685         * loop-invariant.c (create_new_invariant): Likewise.
21686         * lower-subreg.c (shift_cost, compute_costs): Likewise.
21687         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
21688         lshift_cheap_p): Likewise.
21689         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21690         try_replace_in_use, reload_cse_move2add): Likewise.
21691         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
21692         Likewise.
21693         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
21694         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21695         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
21696         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
21697         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
21698         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
21699         to rtx_cost calls.
21700         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
21701         * config/arc/arc.c (arc_rtx_costs): Likewise.
21702         * config/arm/arm.c (arm_rtx_costs): Likewise.
21703         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
21704         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
21705         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
21706         * config/cris/cris.c (cris_rtx_costs): Likewise.
21707         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
21708         * config/frv/frv.c (frv_rtx_costs): Likewise.
21709         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
21710         * config/i386/i386.c (ix86_rtx_costs): Likewise.
21711         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
21712         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
21713         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
21714         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
21715         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
21716         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
21717         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
21718         * config/mep/mep.c (mep_rtx_cost): Likewise.
21719         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
21720         * config/mips/mips.c (mips_rtx_costs): Likewise.
21721         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
21722         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
21723         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
21724         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
21725         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
21726         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
21727         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
21728         * config/pa/pa.c (hppa_rtx_costs): Likewise.
21729         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
21730         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
21731         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
21732         * config/s390/s390.c (s390_rtx_costs): Likewise.
21733         * config/sh/sh.c (sh_rtx_costs): Likewise.
21734         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
21735         * config/spu/spu.c (spu_rtx_costs): Likewise.
21736         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
21737         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
21738         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
21739         * config/v850/v850.c (v850_rtx_costs): Likewise.
21740         * config/vax/vax.c (vax_rtx_costs): Likewise.
21741         * config/visium/visium.c (visium_rtx_costs): Likewise.
21742         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
21743         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
21744         "code" param, and pass as outer_code to first rtx_cost call.  Pass
21745         mode to rtx_cost calls.
21746         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
21747         calls.
21748         (aarch64_rtx_costs_wrapper): Update.
21749         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
21750         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
21751         rtx_cost calls.
21752         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
21753         and rtx_cost calls.
21754         (avr_operand_rtx_cost): Similarly.
21755         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
21756         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
21757         * config/mips/mips.c (mips_stack_address_p): Comment typo.
21758         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
21759         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
21760         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
21761         rtx_cost.
21762         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
21763         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
21764         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
21765         * doc/tm.texi: Regenerate.
21766
21767 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
21768
21769         * tree-core.h: Include symtab.h.
21770         * rtl.h: Include hard-reg-set.h but not flags.h.
21771         (HARD_CONST): Remove condition compilation involving HARD_CONST since
21772         hard-reg-set.h is always included.
21773         * regs.h: Don't include hard-reg-set.h or rtl.h.
21774         * cfg.h: Include dominance.h.
21775         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
21776         * backend.h: New.  Aggregate commonly used backend header files.
21777         * gimple-ssa.h: Don't include tree-hasher.h.
21778         * ssa.h: New.  Aggregate commonly used SSA header files.
21779         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
21780         * sel-sched-ir.h: Flatten includes.
21781         * lra-int.h: Flatten completely.
21782         * sel-sched-dump.h: Flatten includes.
21783         * ira-int.h: Flatten includes.
21784         * gimple-streamer.h: Remove all includes.
21785         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
21786         * resource.h: Flatten hard-reg-set.h and df.h.
21787         * sched-int.h: Flatten insn-arrt.h and df.h.
21788         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
21789         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
21790         * genattrtab.c (write_header): Adjust generated includes.
21791         * genautomata.c (main): Likewise.
21792         * genconditions.c (write-header): Likewise.
21793         * genemit.c (main): Likewise.
21794         * gengtype.c (open_base_files): Likewise.
21795         * genopinit.c (main): Likewise.
21796         * genoutput.c (output_prologue): Likewise.
21797         * genpeep.c (main): Likewise.
21798         * genpreds.c (write_insn_preds_c): Likewise.
21799         * genrecog.c (write_header): Likewise.
21800         * alias.c: Adjust includes.
21801         * asan.c: Likewise.
21802         * attribs.c: Likewise.
21803         * auto-inc-dec.c: Likewise.
21804         * auto-profile.c: Likewise.
21805         * bb-reorder.c: Likewise.
21806         * bt-load.c: Likewise.
21807         * builtins.c: Likewise.
21808         * caller-save.c: Likewise.
21809         * calls.c: Likewise.
21810         * ccmp.c: Likewise.
21811         * cfg.c: Likewise.
21812         * cfganal.c: Likewise.
21813         * cfgbuild.c: Likewise.
21814         * cfgcleanup.c: Likewise.
21815         * cfgexpand.c: Likewise.
21816         * cfghooks.c: Likewise.
21817         * cfgloop.c: Likewise.
21818         * cfgloopanal.c: Likewise.
21819         * cfgloopmanip.c: Likewise.
21820         * cfgrtl.c: Likewise.
21821         * cgraph.c: Likewise.
21822         * cgraphbuild.c: Likewise.
21823         * cgraphclones.c: Likewise.
21824         * cgraphunit.c: Likewise.
21825         * cilk-common.c: Likewise.
21826         * combine-stack-adj.c: Likewise.
21827         * combine.c: Likewise.
21828         * compare-elim.c: Likewise.
21829         * convert.c: Likewise.
21830         * coverage.c: Likewise.
21831         * cppbuiltin.c: Likewise.
21832         * cprop.c: Likewise.
21833         * cse.c: Likewise.
21834         * cselib.c: Likewise.
21835         * data-streamer-in.c: Likewise.
21836         * data-streamer-out.c: Likewise.
21837         * data-streamer.c: Likewise.
21838         * dbxout.c: Likewise.
21839         * dce.c: Likewise.
21840         * ddg.c: Likewise.
21841         * debug.c: Likewise.
21842         * df-core.c: Likewise.
21843         * df-problems.c: Likewise.
21844         * df-scan.c: Likewise.
21845         * dfp.c: Likewise.
21846         * dojump.c: Likewise.
21847         * dominance.c: Likewise.
21848         * domwalk.c: Likewise.
21849         * double-int.c: Likewise.
21850         * dse.c: Likewise.
21851         * dumpfile.c: Likewise.
21852         * dwarf2asm.c: Likewise.
21853         * dwarf2cfi.c: Likewise.
21854         * dwarf2out.c: Likewise.
21855         * emit-rtl.c: Likewise.
21856         * et-forest.c: Likewise.
21857         * except.c: Likewise.
21858         * explow.c: Likewise.
21859         * expmed.c: Likewise.
21860         * expr.c: Likewise.
21861         * final.c: Likewise.
21862         * fixed-value.c: Likewise.
21863         * fold-const.c: Likewise.
21864         * function.c: Likewise.
21865         * fwprop.c: Likewise.
21866         * gcc-plugin.h: Likewise.
21867         * gcse-common.c: Likewise.
21868         * gcse.c: Likewise.
21869         * generic-match-head.c: Likewise.
21870         * ggc-page.c: Likewise.
21871         * gimple-builder.c: Likewise.
21872         * gimple-expr.c: Likewise.
21873         * gimple-fold.c: Likewise.
21874         * gimple-iterator.c: Likewise.
21875         * gimple-low.c: Likewise.
21876         * gimple-match-head.c: Likewise.
21877         * gimple-pretty-print.c: Likewise.
21878         * gimple-ssa-isolate-paths.c: Likewise.
21879         * gimple-ssa-strength-reduction.c: Likewise.
21880         * gimple-streamer-in.c: Likewise.
21881         * gimple-streamer-out.c: Likewise.
21882         * gimple-walk.c: Likewise.
21883         * gimple.c: Likewise.
21884         * gimplify-me.c: Likewise.
21885         * gimplify.c: Likewise.
21886         * godump.c: Likewise.
21887         * graph.c: Likewise.
21888         * graphite-blocking.c: Likewise.
21889         * graphite-dependences.c: Likewise.
21890         * graphite-interchange.c: Likewise.
21891         * graphite-isl-ast-to-gimple.c: Likewise.
21892         * graphite-optimize-isl.c: Likewise.
21893         * graphite-poly.c: Likewise.
21894         * graphite-scop-detection.c: Likewise.
21895         * graphite-sese-to-poly.c: Likewise.
21896         * graphite.c: Likewise.
21897         * haifa-sched.c: Likewise.
21898         * hw-doloop.c: Likewise.
21899         * ifcvt.c: Likewise.
21900         * init-regs.c: Likewise.
21901         * internal-fn.c: Likewise.
21902         * ipa-chkp.c: Likewise.
21903         * ipa-comdats.c: Likewise.
21904         * ipa-cp.c: Likewise.
21905         * ipa-devirt.c: Likewise.
21906         * ipa-icf-gimple.c: Likewise.
21907         * ipa-icf.c: Likewise.
21908         * ipa-inline-analysis.c: Likewise.
21909         * ipa-inline-transform.c: Likewise.
21910         * ipa-inline.c: Likewise.
21911         * ipa-polymorphic-call.c: Likewise.
21912         * ipa-profile.c: Likewise.
21913         * ipa-prop.c: Likewise.
21914         * ipa-pure-const.c: Likewise.
21915         * ipa-ref.c: Likewise.
21916         * ipa-reference.c: Likewise.
21917         * ipa-split.c: Likewise.
21918         * ipa-utils.c: Likewise.
21919         * ipa-visibility.c: Likewise.
21920         * ipa.c: Likewise.
21921         * ira-build.c: Likewise.
21922         * ira-color.c: Likewise.
21923         * ira-conflicts.c: Likewise.
21924         * ira-costs.c: Likewise.
21925         * ira-emit.c: Likewise.
21926         * ira-lives.c: Likewise.
21927         * ira.c: Likewise.
21928         * jump.c: Likewise.
21929         * langhooks.c: Likewise.
21930         * lcm.c: Likewise.
21931         * loop-doloop.c: Likewise.
21932         * loop-init.c: Likewise.
21933         * loop-invariant.c: Likewise.
21934         * loop-iv.c: Likewise.
21935         * loop-unroll.c: Likewise.
21936         * lower-subreg.c: Likewise.
21937         * lra-assigns.c: Likewise.
21938         * lra-coalesce.c: Likewise.
21939         * lra-constraints.c: Likewise.
21940         * lra-eliminations.c: Likewise.
21941         * lra-lives.c: Likewise.
21942         * lra-remat.c: Likewise.
21943         * lra-spills.c: Likewise.
21944         * lra.c: Likewise.
21945         * lto-cgraph.c: Likewise.
21946         * lto-compress.c: Likewise.
21947         * lto-opts.c: Likewise.
21948         * lto-section-in.c: Likewise.
21949         * lto-section-out.c: Likewise.
21950         * lto-streamer-in.c: Likewise.
21951         * lto-streamer-out.c: Likewise.
21952         * lto-streamer.c: Likewise.
21953         * mcf.c: Likewise.
21954         * mode-switching.c: Likewise.
21955         * modulo-sched.c: Likewise.
21956         * omega.c: Likewise.
21957         * omp-low.c: Likewise.
21958         * optabs.c: Likewise.
21959         * opts-global.c: Likewise.
21960         * passes.c: Likewise.
21961         * plugin.c: Likewise.
21962         * postreload-gcse.c: Likewise.
21963         * postreload.c: Likewise.
21964         * predict.c: Likewise.
21965         * print-rtl.c: Likewise.
21966         * print-tree.c: Likewise.
21967         * profile.c: Likewise.
21968         * real.c: Likewise.
21969         * realmpfr.c: Likewise.
21970         * recog.c: Likewise.
21971         * ree.c: Likewise.
21972         * reg-stack.c: Likewise.
21973         * regcprop.c: Likewise.
21974         * reginfo.c: Likewise.
21975         * regrename.c: Likewise.
21976         * regstat.c: Likewise.
21977         * reload.c: Likewise.
21978         * reload1.c: Likewise.
21979         * reorg.c: Likewise.
21980         * resource.c: Likewise.
21981         * rtl-chkp.c: Likewise.
21982         * rtlanal.c: Likewise.
21983         * rtlhooks.c: Likewise.
21984         * sanopt.c: Likewise.
21985         * sched-deps.c: Likewise.
21986         * sched-ebb.c: Likewise.
21987         * sched-rgn.c: Likewise.
21988         * sched-vis.c: Likewise.
21989         * sdbout.c: Likewise.
21990         * sel-sched-dump.c: Likewise.
21991         * sel-sched-ir.c: Likewise.
21992         * sel-sched.c: Likewise.
21993         * sese.c: Likewise.
21994         * shrink-wrap.c: Likewise.
21995         * simplify-rtx.c: Likewise.
21996         * stack-ptr-mod.c: Likewise.
21997         * stmt.c: Likewise.
21998         * stor-layout.c: Likewise.
21999         * store-motion.c: Likewise.
22000         * stringpool.c: Likewise.
22001         * symtab.c: Likewise.
22002         * target-globals.c: Likewise.
22003         * targhooks.c: Likewise.
22004         * toplev.c: Likewise.
22005         * tracer.c: Likewise.
22006         * trans-mem.c: Likewise.
22007         * tree-affine.c: Likewise.
22008         * tree-browser.c: Likewise.
22009         * tree-call-cdce.c: Likewise.
22010         * tree-cfg.c: Likewise.
22011         * tree-cfgcleanup.c: Likewise.
22012         * tree-chkp-opt.c: Likewise.
22013         * tree-chkp.c: Likewise.
22014         * tree-chrec.c: Likewise.
22015         * tree-complex.c: Likewise.
22016         * tree-data-ref.c: Likewise.
22017         * tree-dfa.c: Likewise.
22018         * tree-diagnostic.c: Likewise.
22019         * tree-dump.c: Likewise.
22020         * tree-eh.c: Likewise.
22021         * tree-emutls.c: Likewise.
22022         * tree-if-conv.c: Likewise.
22023         * tree-inline.c: Likewise.
22024         * tree-into-ssa.c: Likewise.
22025         * tree-iterator.c: Likewise.
22026         * tree-loop-distribution.c: Likewise.
22027         * tree-nested.c: Likewise.
22028         * tree-nrv.c: Likewise.
22029         * tree-object-size.c: Likewise.
22030         * tree-outof-ssa.c: Likewise.
22031         * tree-parloops.c: Likewise.
22032         * tree-phinodes.c: Likewise.
22033         * tree-predcom.c: Likewise.
22034         * tree-pretty-print.c: Likewise.
22035         * tree-profile.c: Likewise.
22036         * tree-scalar-evolution.c: Likewise.
22037         * tree-sra.c: Likewise.
22038         * tree-ssa-address.c: Likewise.
22039         * tree-ssa-alias.c: Likewise.
22040         * tree-ssa-ccp.c: Likewise.
22041         * tree-ssa-coalesce.c: Likewise.
22042         * tree-ssa-copy.c: Likewise.
22043         * tree-ssa-copyrename.c: Likewise.
22044         * tree-ssa-dce.c: Likewise.
22045         * tree-ssa-dom.c: Likewise.
22046         * tree-ssa-dse.c: Likewise.
22047         * tree-ssa-forwprop.c: Likewise.
22048         * tree-ssa-ifcombine.c: Likewise.
22049         * tree-ssa-live.c: Likewise.
22050         * tree-ssa-loop-ch.c: Likewise.
22051         * tree-ssa-loop-im.c: Likewise.
22052         * tree-ssa-loop-ivcanon.c: Likewise.
22053         * tree-ssa-loop-ivopts.c: Likewise.
22054         * tree-ssa-loop-manip.c: Likewise.
22055         * tree-ssa-loop-niter.c: Likewise.
22056         * tree-ssa-loop-prefetch.c: Likewise.
22057         * tree-ssa-loop-unswitch.c: Likewise.
22058         * tree-ssa-loop.c: Likewise.
22059         * tree-ssa-math-opts.c: Likewise.
22060         * tree-ssa-operands.c: Likewise.
22061         * tree-ssa-phiopt.c: Likewise.
22062         * tree-ssa-phiprop.c: Likewise.
22063         * tree-ssa-pre.c: Likewise.
22064         * tree-ssa-propagate.c: Likewise.
22065         * tree-ssa-reassoc.c: Likewise.
22066         * tree-ssa-sccvn.c: Likewise.
22067         * tree-ssa-scopedtables.c: Likewise.
22068         * tree-ssa-sink.c: Likewise.
22069         * tree-ssa-strlen.c: Likewise.
22070         * tree-ssa-structalias.c: Likewise.
22071         * tree-ssa-tail-merge.c: Likewise.
22072         * tree-ssa-ter.c: Likewise.
22073         * tree-ssa-threadedge.c: Likewise.
22074         * tree-ssa-threadupdate.c: Likewise.
22075         * tree-ssa-uncprop.c: Likewise.
22076         * tree-ssa-uninit.c: Likewise.
22077         * tree-ssa.c: Likewise.
22078         * tree-ssanames.c: Likewise.
22079         * tree-stdarg.c: Likewise.
22080         * tree-streamer-in.c: Likewise.
22081         * tree-streamer-out.c: Likewise.
22082         * tree-streamer.c: Likewise.
22083         * tree-switch-conversion.c: Likewise.
22084         * tree-tailcall.c: Likewise.
22085         * tree-vect-data-refs.c: Likewise.
22086         * tree-vect-generic.c: Likewise.
22087         * tree-vect-loop-manip.c: Likewise.
22088         * tree-vect-loop.c: Likewise.
22089         * tree-vect-patterns.c: Likewise.
22090         * tree-vect-slp.c: Likewise.
22091         * tree-vect-stmts.c: Likewise.
22092         * tree-vectorizer.c: Likewise.
22093         * tree-vrp.c: Likewise.
22094         * tree.c: Likewise.
22095         * tsan.c: Likewise.
22096         * ubsan.c: Likewise.
22097         * valtrack.c: Likewise.
22098         * value-prof.c: Likewise.
22099         * var-tracking.c: Likewise.
22100         * varasm.c: Likewise.
22101         * varpool.c: Likewise.
22102         * vmsdbgout.c: Likewise.
22103         * vtable-verify.c: Likewise.
22104         * web.c: Likewise.
22105         * wide-int.cc: Likewise.
22106         * xcoffout.c: Likewise.
22107         * config/aarch64/aarch64-builtins.c: Likewise.
22108         * config/aarch64/aarch64.c: Likewise.
22109         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
22110         * config/alpha/alpha.c: Likewise.
22111         * config/arc/arc.c: Likewise.
22112         * config/arm/aarch-common.c: Likewise.
22113         * config/arm/arm-builtins.c: Likewise.
22114         * config/arm/arm-c.c: Likewise.
22115         * config/arm/arm.c: Likewise.
22116         * config/avr/avr-c.c: Likewise.
22117         * config/avr/avr-log.c: Likewise.
22118         * config/avr/avr.c: Likewise.
22119         * config/bfin/bfin.c: Likewise.
22120         * config/c6x/c6x.c: Likewise.
22121         * config/cr16/cr16.c: Likewise.
22122         * config/cris/cris.c: Likewise.
22123         * config/darwin-c.c: Likewise.
22124         * config/darwin.c: Likewise.
22125         * config/epiphany/epiphany.c: Likewise.
22126         * config/epiphany/mode-switch-use.c: Likewise.
22127         * config/epiphany/resolve-sw-modes.c: Likewise.
22128         * config/fr30/fr30.c: Likewise.
22129         * config/frv/frv.c: Likewise.
22130         * config/ft32/ft32.c: Likewise.
22131         * config/h8300/h8300.c: Likewise.
22132         * config/i386/i386-c.c: Likewise.
22133         * config/i386/i386.c: Likewise.
22134         * config/i386/msformat-c.c: Likewise.
22135         * config/i386/winnt-cxx.c: Likewise.
22136         * config/i386/winnt-stubs.c: Likewise.
22137         * config/i386/winnt.c: Likewise.
22138         * config/ia64/ia64-c.c: Likewise.
22139         * config/ia64/ia64.c: Likewise.
22140         * config/iq2000/iq2000.c: Likewise.
22141         * config/lm32/lm32.c: Likewise.
22142         * config/m32c/m32c-pragma.c: Likewise.
22143         * config/m32c/m32c.c: Likewise.
22144         * config/m32r/m32r.c: Likewise.
22145         * config/m68k/m68k.c: Likewise.
22146         * config/mcore/mcore.c: Likewise.
22147         * config/mep/mep-pragma.c: Likewise.
22148         * config/mep/mep.c: Likewise.
22149         * config/microblaze/microblaze-c.c: Likewise.
22150         * config/microblaze/microblaze.c: Likewise.
22151         * config/mips/mips.c: Likewise.
22152         * config/mmix/mmix.c: Likewise.
22153         * config/mn10300/mn10300.c: Likewise.
22154         * config/moxie/moxie.c: Likewise.
22155         * config/msp430/msp430-c.c: Likewise.
22156         * config/msp430/msp430.c: Likewise.
22157         * config/nds32/nds32-cost.c: Likewise.
22158         * config/nds32/nds32-fp-as-gp.c: Likewise.
22159         * config/nds32/nds32-intrinsic.c: Likewise.
22160         * config/nds32/nds32-isr.c: Likewise.
22161         * config/nds32/nds32-md-auxiliary.c: Likewise.
22162         * config/nds32/nds32-memory-manipulation.c: Likewise.
22163         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
22164         * config/nds32/nds32-predicates.c: Likewise.
22165         * config/nds32/nds32.c: Likewise.
22166         * config/nios2/nios2.c: Likewise.
22167         * config/nvptx/nvptx.c: Likewise.
22168         * config/pa/pa.c: Likewise.
22169         * config/pdp11/pdp11.c: Likewise.
22170         * config/rl78/rl78-c.c: Likewise.
22171         * config/rl78/rl78.c: Likewise.
22172         * config/rs6000/rs6000-c.c: Likewise.
22173         * config/rs6000/rs6000.c: Likewise.
22174         * config/rx/rx.c: Likewise.
22175         * config/s390/s390-c.c: Likewise.
22176         * config/s390/s390.c: Likewise.
22177         * config/sh/sh-c.c: Likewise.
22178         * config/sh/sh-mem.cc: Likewise.
22179         * config/sh/sh.c: Likewise.
22180         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
22181         * config/sh/sh_treg_combine.cc: Likewise.
22182         * config/sol2-c.c: Likewise.
22183         * config/sol2-cxx.c: Likewise.
22184         * config/sol2-stubs.c: Likewise.
22185         * config/sol2.c: Likewise.
22186         * config/sparc/sparc-c.c: Likewise.
22187         * config/sparc/sparc.c: Likewise.
22188         * config/spu/spu-c.c: Likewise.
22189         * config/spu/spu.c: Likewise.
22190         * config/stormy16/stormy16.c: Likewise.
22191         * config/tilegx/mul-tables.c: Likewise.
22192         * config/tilegx/tilegx-c.c: Likewise.
22193         * config/tilegx/tilegx.c: Likewise.
22194         * config/tilepro/mul-tables.c: Likewise.
22195         * config/tilepro/tilepro-c.c: Likewise.
22196         * config/tilepro/tilepro.c: Likewise.
22197         * config/v850/v850-c.c: Likewise.
22198         * config/v850/v850.c: Likewise.
22199         * config/vax/vax.c: Likewise.
22200         * config/visium/visium.c: Likewise.
22201         * config/vms/vms-c.c: Likewise.
22202         * config/vms/vms.c: Likewise.
22203         * config/vxworks.c: Likewise.
22204         * config/xtensa/xtensa.c: Likewise.
22205
22206 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
22207
22208         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
22209         Remove operand constraints.  Change operand 2 predicate to
22210         nonmemory operand.  Limit const_int values to mode bitsize.  Only
22211         allow const_int values less than 32 when optimizing for size.
22212         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
22213         Remove operand constraints.
22214         (*bt<mode>): Use SImode for const_int values less than 32.
22215         (regmode): Remove mode attribute.
22216
22217 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
22218
22219         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
22220         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
22221           moxie_legitimate_address_p): New functions.
22222           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
22223
22224 2015-07-07  Tom de Vries  <tom@codesourcery.com>
22225
22226         PR tree-optimization/66642
22227         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
22228         header comment.  Rename split_edge variable to edge_at_split.  Split
22229         exit edge to create new loop exit bb.  Insert loop exit phis in new
22230         loop exit bb.
22231
22232 2015-07-07  Tom de Vries  <tom@codesourcery.com>
22233
22234         * tree-cfg.c (get_virtual_phi): New function.
22235         * tree-cfg.h (get_virtual_phi): Declare.
22236         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
22237         (rewrite_virtuals_into_loop_closed_ssa): New function.
22238         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
22239         Declare.
22240         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
22241         (transform_to_exit_first_loop_alt): Use
22242         rewrite_virtuals_into_loop_closed_ssa.
22243
22244 2015-07-07  Richard Biener  <rguenther@suse.de>
22245
22246         * fold-const.c (fold_binary_loc): Move
22247         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
22248         * match.pd: ... here.
22249         Add (X * C1) % C2 -> 0 simplification pattern derived from
22250         extract_muldiv_1.
22251
22252 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
22253
22254         PR target/66780
22255         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
22256         change for target/65249.
22257
22258 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
22259
22260         * symtab.c (address_matters_1): Fix typo in comment above.
22261         (can_increase_alignment_p): Likewise.
22262
22263 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22264
22265         * function.c (free_after_compilation): Clear PROP_cfg in
22266         f->curr_properties.
22267
22268 2015-07-07  Richard Biener  <rguenther@suse.de>
22269
22270         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
22271         add which use to.
22272         (add_control_edge): Remove excessive vertical space in dumping.
22273         (process_ssa_edge_worklist): Simulate at most one statement and
22274         return whether we did.  Do not simulate PHIs if they are in a
22275         BB not yet simulated.
22276         (ssa_propagate): Adjust to always drain the BB worklist whenever
22277         a BB is available there, likewise the VARYING edges list before
22278         the interesting edge list.
22279
22280 2015-07-07  Christian Bruel  <christian.bruel@st.com>
22281
22282         PR target/52144
22283         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
22284
22285 2015-07-07  Richard Biener  <rguenther@suse.de>
22286
22287         PR middle-end/66739
22288         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
22289         A - B.
22290
22291 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
22292
22293         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
22294         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
22295         Copy operand 0 to a temporary if !ext_register_operand.  Remove
22296         ancient extract_bit_field workaround.
22297         (insv<mode>_1): Rename from mov<mode>_insv_1.
22298         (*insvqi): Rename from *movqi_insv_2.
22299         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
22300         for renamed insvsi_1.
22301         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
22302
22303 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
22304
22305         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
22306         call to nvptx_reorg_subreg.
22307
22308 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
22309
22310         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
22311         * graphite-dependencies.c, graphite-interchange.c,
22312         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
22313         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
22314         Likewise.
22315
22316 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
22317
22318         * match.pd: Remove element_mode inside HONOR_*.
22319         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
22320         (~X | X -> -1, ~X ^ X -> -1): Merge.
22321         * tree.c (build_each_one_cst): New function.
22322         * tree.h (build_each_one_cst): Likewise.
22323
22324 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
22325
22326         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
22327         PROCESSOR_IAMCU.
22328
22329 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
22330
22331         * config.gcc <mips*-*-*>: Add fused-madd.opt.
22332         * config/mips/mips.opt (mfused-madd): Remove.
22333         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
22334         * config/mips/mips.h (TARGET_MIPS8000): New.
22335         (ISA_HAS_FP_MADD4_MSUB4): Remove.
22336         (ISA_HAS_FP_MADDF_MSUBF): Remove.
22337         (ISA_HAS_FP_MADD3_MSUB3): Remove.
22338         (ISA_HAS_NMADD4_NMSUB4): Remove.
22339         (ISA_HAS_NMADD3_NMSUB3): Remove.
22340         (ISA_HAS_FUSED_MADD4): New.
22341         (ISA_HAS_UNFUSED_MADD4): New.
22342         (ISA_HAS_FUSED_MADDF): New.
22343         (ISA_HAS_FUSED_MADD3): New.
22344         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
22345         (*fma<mode>4_madd3) New.
22346         (*fma<mode>4_madd4) New.
22347         (*fma<mode>4_maddf) New.
22348         (fms<mode>4) New.
22349         (*fms<mode>4_msub3) New.
22350         (*fms<mode>4_msub4) New.
22351         (fnma<mode>4) New.
22352         (*fnma<mode>4_nmadd3) New.
22353         (*fnma<mode>4_nmadd4) New.
22354         (fnms<mode>4) New.
22355         (*fnms<mode>4_nmsub3) New.
22356         (*fnms<mode>4_nmsub4) New.
22357         (*madd4<mode>) Modify to be unfused only.
22358         (*msub4<mode>) Modify to be unfused only.
22359         (*nmadd4<mode>) Modify to be unfused only.
22360         (*nmsub4<mode>) Modify to be unfused only.
22361         (*madd3<mode>) Remove.
22362         (*msub3<mode>) Remove.
22363         (*nmadd3<mode>) Remove.
22364         (*nmsub3<mode>) Remove.
22365         (*nmadd3<mode>_fastmath) Remove.
22366         (*nmsub3<mode>_fastmath) Remove.
22367         (*nmadd4<mode>_fastmath) Update condition.
22368         (*nmsub4<mode>_fastmath) Update condition.
22369
22370 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
22371
22372         PR target/65956
22373         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
22374         alignment attribute, exploring one level down for records and arrays.
22375
22376 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
22377
22378         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
22379         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
22380         Copy operand 1 to a temporary if !ext_register_operand.  Remove
22381         ancient extract_bit_field workaround.
22382         (*extv<mode>): Rename from *mov<mode>_extv_1.
22383         (*extvqi): Rename from *movqi_extv_1.
22384         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
22385         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
22386         to a temporary if !ext_register_operand.  Remove ancient
22387         extract_bit_field workaround.
22388         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
22389         (*extzvqi): Rename from *movqi_extzv_2.
22390         (*testqi_ext_3): Remove modes from const_int_operand predicated
22391         operands.  Add "n" constraint.
22392         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
22393         operand.  Add "J" constraint.
22394         (*btsq, *btrq, *btcq peephole2s): Remove mode from
22395         const_0_to_63 predicated operand.
22396         (regmode): New insn attribute.
22397         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
22398         to nonmemory_operand.  Use regmode insn attribute.
22399         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
22400         (*jcc_bt<mode>_mask): Remove mode from operand 3.
22401         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
22402         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
22403         operands.  Use "N" constraint instead of "n".
22404
22405 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
22406
22407         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
22408
22409 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
22410
22411         PR target/66749
22412         * config/i386/i386.c (iamcu_cost): New.
22413         (m_IAMCU): Likewise.
22414         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
22415         (processor_target_table): Add an entry for "iamcu".
22416         (processor_alias_table): Likewise.
22417         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
22418         (ix86_adjust_cost): Likewise.
22419         (ia32_multipass_dfa_lookahead): Likewise.
22420         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
22421         * config/i386/x86-tune.def: Updated for m_IAMCU.
22422
22423 2015-07-06  Richard Biener  <rguenther@suse.de>
22424
22425         PR tree-optimization/66772
22426         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
22427         values are available in the PHI node BB when there are
22428         still unexecutable edges.
22429
22430 2015-07-06  Richard Biener  <rguenther@suse.de>
22431
22432         PR tree-optimization/66767
22433         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
22434         Make sure to build the alignment test on a SSA name without
22435         final alignment info valid only if the alignment test
22436         evaluates to true.
22437
22438 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
22439
22440         PR target/66620
22441         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
22442         loop start when inserting LSETUP.
22443
22444 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
22445
22446         PR target/53383
22447         * config/i386/i386.c (ix86_option_override_internal): Allow
22448         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
22449
22450 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22451
22452         * read-md.c (decimal_string): Rename to ...
22453         (md_decimal_string): ... this.
22454         (handle_enum): Reflect this.
22455
22456 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22457
22458         PR target/66731
22459         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
22460
22461 2015-07-06  Richard Biener  <rguenther@suse.de>
22462
22463         PR middle-end/66759
22464         * match.pd: Add missing constraint of y to REAL_CST in
22465         REAL_CST - x CMP y to y - CST CMP x simplification.
22466
22467 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
22468
22469         PR tree-optimization/66757
22470         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
22471
22472 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
22473             Sandra Loosemore <sandra@codesourcery.com>
22474
22475         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
22476         Delete extern declaration.
22477         (gprel_constant_p): Add extern declaration.
22478         * config/nios2/constraints.md ("S"): Use gprel_constant_p
22479         instead of nios2_symbol_ref_in_small_data_p.
22480         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
22481         (nios2_symbol_ref_in_small_data_p): Make static.
22482         (gprel_constant_p): Make non-static.
22483
22484 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
22485
22486         * doc/fragments.texi (Target Fragment): Convert debian.org
22487         link to use https.
22488         * doc/install.texi (Configuration): Ditto.
22489
22490 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
22491
22492         PR tree-optimization/66718
22493         * tree-vect-stmts.c (vectorizable_call): Replace uses of
22494         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
22495
22496         PR tree-optimization/66718
22497         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
22498         vectorizable_load, vectorizable_condition): Move vectype,
22499         nunits, ncopies computation after checking what kind of statement
22500         stmt is.
22501
22502 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22503
22504         * target-insns.def (extv, extzv, insv): New targetm instruction
22505         patterns.
22506         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
22507         interface.
22508         * recog.c (simplify_while_replacing): Likewise.
22509
22510 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22511
22512         * target-insns.def (doloop_begin, doloop_end): New targetm
22513         instruction patterns.
22514         * loop-init.c: Include target.h.
22515         (pass_loop2::gate): Use the new targetm patterns instead of
22516         HAVE_*/gen_* interface.
22517         (pass_rtl_doloop::gate): Likewise.
22518         (pass_rtl_doloop::execute): Remove preprocessor condition.
22519         * hw-doloop.c: Build unconditionally.
22520         * loop-doloop.c: Likewise.
22521         (doloop_optimize): Use the new targetm patterns instead of
22522         HAVE_*/gen_* interface.
22523         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
22524         * modulo-sched.c (doloop_register_get): Likewise.
22525
22526 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22527
22528         * target-insns.def (clear_cache): New targetm instruction pattern.
22529         * builtins.c (expand_builtin___clear_cache): Use it instead of
22530         HAVE_*/gen_* interface.
22531
22532 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22533
22534         * target-insns.def (allocate_stack, check_stack, probe_stack)
22535         (probe_stack_address, split_stack_prologue, split_stack_space_check):
22536         New targetm instruction patterns.
22537         * explow.c (allocate_dynamic_stack_space): Use them instead of
22538         HAVE_*/gen_* interface.
22539         (emit_stack_probe): Likewise.
22540         (probe_stack_range): Likewise.
22541         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22542
22543 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22544
22545         * target-insns.def (stack_protect_set, stack_protect_test): New
22546         targetm instruction patterns.
22547         * cfgexpand.c (stack_protect_prologue): Use them instead of
22548         HAVE_*/gen_* interface.
22549         * function.c (stack_protect_epilogue): Likewise.
22550
22551 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22552
22553         * expr.h (gen_move_insn_uncast): Delete.
22554         * expr.c (gen_move_insn_uncast): Delete.
22555
22556 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22557
22558         * target-insns.def (restore_stack_block, restore_stack_function)
22559         (restore_stack_nonlocal, save_stack_block, save_stack_function)
22560         (save_stack_nonlocal): New targetm instruction patterns.
22561         * builtins.c (expand_builtin_apply): Use them instead of
22562         HAVE_*/gen_* interface.
22563         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
22564
22565 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22566
22567         * target-insns.def (trap): New targetm instruction pattern.
22568         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
22569         interface.
22570         * explow.c (allocate_dynamic_stack_space): Likewise.
22571         * ifcvt.c (find_if_header): Likewise.
22572
22573 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22574
22575         * target-insns.def (prefetch): New targetm instruction pattern.
22576         * tree-ssa-loop-prefetch.c: Include targeth.
22577         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
22578         of HAVE_*/gen_* interface.
22579         * builtins.c (expand_builtin_prefetch): Likewise.
22580         * toplev.c (process_options): Likewise.
22581
22582 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22583
22584         * target-insns.def (untyped_call, untyped_return): New targetm
22585         instruction patterns.
22586         * builtins.c (expand_builtin_apply): Use them instead of
22587         HAVE_*/gen_* interface.
22588         (result_vector): Define unconditionally.
22589
22590 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22591
22592         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
22593         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
22594         (nonlocal_goto_receiver): New targetm instruction patterns.
22595         * builtins.c (expand_builtin_setjmp_setup): Use them instead
22596         of HAVE_*/gen_* interface.
22597         (expand_builtin_setjmp_receiver): Likewise.
22598         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
22599         * except.c (expand_dw2_landing_pad_for_region): Likewise.
22600
22601 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22602
22603         * target.def: Add code_for_* hooks.
22604         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
22605         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
22606         * target-insns.def (casesi, tablejump): New targetm instruction
22607         patterns.
22608         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
22609         (do_tablejump): Likewise.
22610         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
22611         (expand_sjlj_dispatch_table): Likewise.
22612         * targhooks.c (default_case_values_threshold): Likewise.
22613
22614 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
22615
22616         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
22617         Use rtx_insn * instead of rtx.
22618         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
22619         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
22620         (nios2_call_tls_get_addr): Likewise.
22621         (nios2_emit_expensive_div): Likewise.
22622         (nios2_emit_move_sequence): Change return type to bool.
22623         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
22624         Change return type to bool.
22625
22626 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22627
22628         PR target/66747
22629         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
22630
22631 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
22632
22633         PR target/66114
22634         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
22635         of register_operand.  Remove constraint.
22636
22637 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
22638
22639         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
22640         the first argument.
22641
22642 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
22643
22644         * attribs.c (decl_attributes): Guard inform with the return value
22645         of the preceding warning.
22646
22647 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22648
22649         * doc/invoke.texi (moverride): Move to correct section.
22650
22651 2015-07-03  Richard Biener  <rguenther@suse.de>
22652
22653         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
22654         Copy from tree.c
22655         (dt_operand::gen_gimple_expr): After valueizing operands
22656         re-canonicalize operand order for commutative tree codes.
22657
22658 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
22659
22660         PR target/66746.
22661         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
22662         is defined.
22663         (__crc32w): Likewise.
22664         (__crc32d): Likewise.
22665         (__rdpmc): Likewise.
22666         (__rdtscp): Likewise.
22667         (_rdpmc): Likewise.
22668         (_rdtscp): Likewise.
22669         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
22670         is defined.
22671
22672 2015-07-03  Richard Biener  <rguenther@suse.de>
22673
22674         * fold-const.c (fold_mathfn_compare): Remove.
22675         (fold_inf_compare): Likewise.
22676         (fold_comparison): Move floating point comparison simplifications...
22677         * match.pd: ... to patterns here.  Introduce simple_comparisons
22678         operator list and use it for patterns formerly in fold_comparison.
22679
22680 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22681
22682         PR tree-optimization/66119
22683         * toplev.c (process_options): Don't set up default values for
22684         the sra_max_scalarization_size_{speed,size} parameters.
22685         * tree-sra (analyze_all_variable_accesses): If no values
22686         have been set for the sra_max_scalarization_size_{speed,size}
22687         parameters, call get_move_ratio to get target defaults.
22688
22689 2015-07-03  Richard Biener  <rguenther@suse.de>
22690
22691         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
22692         * match.pd: ... here.
22693
22694 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
22695
22696         PR target/37072
22697         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
22698         is not actually the default on FreeBSD.
22699
22700 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22701
22702         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
22703         definition.
22704         (CMPGE_8HI): Likewise.
22705         (CMPGE_4SI): Likewise.
22706         (CMPGE_2DI): Likewise.
22707         (CMPGE_U16QI): Likewise.
22708         (CMPGE_U8HI): Likewise.
22709         (CMPGE_U4SI): Likewise.
22710         (CMPGE_U2DI): Likewise.
22711         (CMPLE_16QI): Likewise.
22712         (CMPLE_8HI): Likewise.
22713         (CMPLE_4SI): Likewise.
22714         (CMPLE_2DI): Likewise.
22715         (CMPLE_U16QI): Likewise.
22716         (CMPLE_U8HI): Likewise.
22717         (CMPLE_U4SI): Likewise.
22718         (CMPLE_U2DI): Likewise.
22719         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22720         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
22721         ALTIVEC_BUILTIN_VEC_CMPLE.
22722         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
22723         floating-point vector modes.
22724         (vector_nlt<mode>): New define_expand.
22725         (vector_nltu<mode>): Likewise.
22726         (vector_ngt<mode>): Likewise.
22727         (vector_ngtu<mode>): Likewise.
22728
22729 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
22730
22731         PR rtl-optimization/66706
22732         * combine.c (make_compound_operation): If an AND of SUBREG of
22733         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
22734
22735 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
22736
22737         * tree-pass.h (make_pass_ch_vect): New.
22738         * passes.def: Add pass_ch_vect just before pass_if_conversion.
22739
22740         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
22741         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
22742         make_pass_ch_vect): New.
22743         (pass_ch): Extend ch_base.
22744
22745         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
22746         (ch_base::copy_headers): ...here.
22747
22748 2015-07-02  Richard Biener  <rguenther@suse.de>
22749
22750         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
22751         * fold-const.c (get_pointer_modulus_and_residue): Remove.
22752         (fold_binary_loc): Implement (T)ptr & CST in terms of
22753         get_pointer_alignment_1.
22754         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
22755         Make sure to build the alignment test on a SSA name without
22756         final alignment info valid only after the prologue.
22757
22758 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
22759
22760         * config/cris/cris.md ("epilogue"): Remove condition.
22761         ("prologue"): Ditto.
22762
22763 2015-07-02  Richard Biener  <rguenther@suse.de>
22764
22765         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
22766         parameter to record a condition that is false.
22767         (record_conditions): When recording an extra NE_EXPR that is
22768         true also record a EQ_EXPR that is false.
22769
22770 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
22771
22772         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
22773         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
22774         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
22775         (set_iv, find_interesting_uses_address, add_candidate_1): New
22776         argument to alloc_iv.
22777         (find_interesting_uses_op, find_interesting_uses_cond): Don't
22778         duplicate struct iv.
22779         (free_loop_data): Don't free struct iv explicitly.
22780         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
22781
22782 2015-07-01  DJ Delorie  <dj@redhat.com>
22783
22784         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
22785         (LIB_SPEC): Add.
22786         (SUPPORTS_DISCRIMINATOR): Define.
22787
22788 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22789
22790         PR bootstrap/66685
22791         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
22792         there are no CALLs in the same pattern.
22793
22794 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22795
22796         PR rtl-optimization/61047
22797         * rtlanal.c (get_initial_register_offset): New function.
22798         (rtx_addr_can_trap_p_1): Check offsets of stack references.
22799
22800 2015-07-01  Richard Biener  <rguenther@suse.de>
22801
22802         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
22803         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
22804         ~X CMP C -> X CMP' ~C to ...
22805         * match.pd: ... patterns here.
22806
22807 2015-07-01  Nick Clifton  <nickc@redhat.com>
22808
22809         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
22810         a 16-bit value into a 20-bit memory slot.
22811
22812 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22813
22814         * doc/sourcebuild.texi (AArch64-specific attributes): Document
22815         "aarch64_tiny", "aarch64_small", "aarch64_large",
22816         "aarch64_little_endian", "aarch64_big_endian".
22817
22818 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22819
22820         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
22821         Document "aarch64_small_fpic".
22822
22823 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22824
22825         * configure.ac: Add check for aarch64 assembler -fpic relocation
22826         modifier support.
22827         * configure: Regenerate.
22828         * config.in: Regenerate.
22829         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
22830         to -fPIC if not support of -fpic relocation modifier in assembler.
22831
22832 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22833
22834         PR bootstrap/66685
22835         * rtl.c (classify_insn): Handle returns in PARALLELs.
22836
22837 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
22838
22839         PR middle-end/66633
22840         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
22841         to true if the function is nested and if not optimizing.
22842         (convert_local_omp_clauses): Initialize need_frame to true if the
22843         function contains nested functions and if not optimizing.
22844
22845 2015-07-01  Richard Biener  <rguenther@suse.de>
22846
22847         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
22848         (X & Y) ^ Y -> ~X & Y transforms to ...
22849         * match.pd: ... here.
22850
22851 2015-07-01  Richard Biener <rguenther@suse.de>
22852
22853         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
22854         of converts to avoid uninteresting noise from the conversion
22855         simplifying patterns.
22856
22857 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
22858
22859         * config/c6x/c6x.c (try_rename_operands): Do not depend on
22860         gcc_assert evaluating its argument for side-effect.
22861
22862 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
22863
22864         PR target/64833
22865         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
22866         flag_pic is set.
22867
22868 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22869
22870         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
22871         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
22872         (hash_scc): Add this_ref_p and ref_p parameters and pass them
22873         to the inner DFS walk.
22874
22875 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22876
22877         * target-insns.def (jump): New targetm instruction pattern.
22878         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
22879         instead of gen_jump.
22880         (fix_up_crossing_landing_pad): Likewise.
22881         (add_labels_and_missing_jumps): Likewise.
22882         (fix_crossing_conditional_branches): Likewise.
22883         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
22884         (force_nonfallthru_and_redirect): Likewise.
22885         * cse.c (cse_insn): Likewise.
22886         * expmed.c (expand_divmod): Likewise.
22887         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
22888         * haifa-sched.c (init_before_recovery): Likewise.
22889         (sched_create_recovery_edges): Likewise.
22890         * ifcvt.c (find_cond_trap): Likewise.
22891         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
22892         (expand_float, expand_fix): Likewise.
22893         * stmt.c (emit_jump): Likewise.
22894
22895 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22896
22897         * defaults.h (HAVE_load_multiple, gen_load_multiple)
22898         (HAVE_store_multiple, gen_store_multiple): Delete.
22899         * target-insns.def (load_multiple, store_multiple): New targetm
22900         instruction patterns.
22901         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
22902         of HAVE_*/gen_* interface.
22903
22904 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22905
22906         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
22907         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
22908         (gen_mem_signal_fence): Delete.
22909         * target-insns.def (mem_signal_fence, mem_thread_fence)
22910         (memory_barrier): New targetm instruction patterns.
22911         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
22912         interface.
22913         (expand_mem_signal_fence): Likewise.
22914
22915 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22916
22917         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
22918         * target-insns.def (epilogue, prologue, sibcall_prologue): New
22919         targetm instruction patterns.
22920         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
22921         interface.
22922         * calls.c (expand_call): Likewise.
22923         * cfgrtl.c (cfg_layout_finalize): Likewise.
22924         * df-scan.c (df_get_entry_block_def_set): Likewise.
22925         (df_get_exit_block_use_set): Likewise.
22926         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
22927         * final.c (final_start_function): Likewise.
22928         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22929         (reposition_prologue_and_epilogue_notes): Likewise.
22930         * reorg.c (find_end_label): Likewise.
22931         * toplev.c (process_options): Likewise.
22932
22933 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
22934
22935         * typed-splay-tree.h: New file.
22936
22937 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
22938
22939         PR debug/66691
22940         * lra-int.h (lra_substitute_pseudo): Add a parameter.
22941         (lra_substitute_pseudo_within_insn): Ditto.
22942         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
22943         of constant.
22944         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
22945         to lra_substitute_pseudo.
22946         * lra-lives.c (process_bb_lives): Add an argument to
22947         lra_substitute_pseudo_within_insn call.
22948         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
22949         argument to lra_substitute_pseudo and
22950         lra_substitute_pseudo_within_insn calls.
22951         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
22952
22953 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22954
22955         * configure: Regenerated.
22956
22957 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22958
22959         * config.gcc: Support i[34567]86-*-elfiamcu target.
22960         * config/i386/iamcu.h: New.
22961         * config/i386/i386.opt: Add -miamcu.
22962         * doc/invoke.texi: Document -miamcu.
22963         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
22964         off x87/MMX/SSE/AVX codegen for -miamcu.
22965         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22966         __iamcu/__iamcu__ for -miamcu.
22967         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
22968         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
22969         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
22970         * config/i386/i386.c (ix86_option_override_internal): Ignore and
22971         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
22972         MCU by default.  Default long double to 64-bit for Intel MCU.
22973         Turn on -freg-struct-return for Intel MCU.  Issue an error when
22974         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
22975         AVX is turned on.
22976         (function_arg_advance_32): Pass value whose size is no larger
22977         than 8 bytes in registers for Intel MCU.
22978         (function_arg_32): Likewise.
22979         (ix86_return_in_memory): Return value whose size is no larger
22980         than 8 bytes in registers for Intel MCU.
22981         (iamcu_alignment): New function.
22982         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
22983         true.
22984         (ix86_local_alignment): Don't increase alignment for Intel MCU.
22985         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
22986         true.
22987
22988 2015-06-30  Marek Polacek  <polacek@redhat.com>
22989
22990         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
22991         both operands of the resulting expression.
22992
22993         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
22994         the final expression with the operand's type and then convert
22995         it to the type of the expression.
22996
22997 2015-06-30  Richard Biener  <rguenther@suse.de>
22998
22999         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
23000         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
23001         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
23002         * match.pd: ... to patterns here.
23003
23004 2015-06-30  Richard Biener  <rguenther@suse.de>
23005
23006         PR tree-optimization/66704
23007         * tree-vect-data-refs.c (vect_setup_realignment): Use
23008         make_ssa_name for non-SSA name source.
23009
23010 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
23011
23012         PR middle-end/66702
23013         * omp-low.c (simd_clone_adjust): Handle addressable linear
23014         or uniform parameters or non-gimple type uniform parameters.
23015
23016 2015-06-30  Richard Biener  <rguenther@suse.de>
23017
23018         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
23019         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
23020         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
23021         * match.pd: ... here.
23022         Add a few cases of A - B -> A + (-B) when B "easily" negates.
23023         Move (x & y) | x -> x and friends before
23024         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
23025
23026 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
23027
23028         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
23029         -mfix-ut699 is not specified.
23030         (leon3_load): Rename into...
23031         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
23032         is specified.
23033
23034 2015-06-30  Marek Polacek  <polacek@redhat.com>
23035
23036         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
23037         * match.pd: ... here.
23038
23039 2015-06-30  Richard Biener  <rguenther@suse.de>
23040
23041         * target-insns.def (canonicalize_funcptr_for_compare): Add.
23042         * fold-const.c (build_range_check): Replace uses of
23043         HAVE_canonicalize_funcptr_for_compare.
23044         (fold_widened_comparison): Likewise.
23045         (fold_sign_changed_comparison): Likewise.
23046         * dojump.c: Include "target.h".
23047         (do_compare_and_jump): Replace uses of
23048         HAVE_canonicalize_funcptr_for_compare and
23049         gen_canonicalize_funcptr_for_compare.
23050         * expr.c (do_store_flag): Likewise.
23051
23052 2015-06-30  Tom de Vries  <tom@codesourcery.com>
23053
23054         PR tree-optimization/66652
23055         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
23056         max_loop_iterations to determine if nit + 1 overflows.
23057
23058 2015-06-30  Richard Biener  <rguenther@suse.de>
23059
23060         * tree-vrp.c (register_edge_assert_for_2): Also register
23061         asserts for dominating conversion results.
23062
23063 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
23064
23065         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
23066         field in struct iv.
23067
23068 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
23069
23070         PR target/66509
23071         * configure.ac: Fix filds and fildq test for 64-bit.
23072         * configure: Regenerated.
23073
23074 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
23075
23076         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
23077         (nvptx_reorg): Here.  Keep the non-subreg pieces.
23078
23079 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
23080
23081         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
23082         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
23083
23084 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
23085
23086         * config/i386/i386.md (*jcc_1): Use %! in asm template.
23087         Set attribute "length_nobnd" instead of "length".
23088         (*jcc_2): Ditto.
23089         (jump): Ditto.
23090         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
23091
23092 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
23093
23094         * config/nios2/nios2.c (nios2_delegitimize_address): Make
23095         assert less restrictive.
23096
23097 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23098
23099         PR fortran/66605
23100         * cgraphunit.c (cgraph_node::finalize_function): Do not call
23101         do_warn_unused_parameter.
23102         * function.c (do_warn_unused_parameter): Move from here.
23103         * function.h (do_warn_unused_parameter): Do not declare.
23104
23105 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
23106
23107         PR target/65697
23108         * gcc.target/arm/armv-sync-comp-swap.c: New.
23109         * gcc.target/arm/armv-sync-op-acquire.c: New.
23110         * gcc.target/arm/armv-sync-op-full.c: New.
23111         * gcc.target/arm/armv-sync-op-release.c: New.
23112
23113 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
23114
23115         PR target/65697
23116         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
23117         initial acquire barrier with final barrier.
23118
23119 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
23120
23121         PR target/65697
23122         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
23123         initial acquire barrier with final barrier.
23124
23125 2015-06-29  Richard Henderson  <rth@redhat.com>
23126
23127         * config/i386/constraints.md (Bf): New constraint.
23128         * config/i386/i386-c.c (ix86_target_macros): Define
23129         __GCC_ASM_FLAG_OUTPUTS__.
23130         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
23131         as flags outputs.
23132         * doc/extend.texi (FlagOutputOperands): Document them.
23133
23134 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
23135
23136         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
23137         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
23138         unspec name.
23139         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
23140         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
23141         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
23142         (aarch64_symbol_context): Ditto.
23143         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
23144         and use new pattern name.
23145         (aarch64_expand_mov_immediate): Ditto.
23146         (aarch64_print_operand): Ditto.
23147         (aarch64_classify_tls_symbol): Ditto.
23148
23149 2015-06-29  Marek Polacek  <polacek@redhat.com>
23150             Marc Glisse  <marc.glisse@inria.fr>
23151
23152         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
23153         * match.pd: ... pattern here.
23154
23155 2015-06-29  Tom de Vries  <tom@codesourcery.com>
23156
23157         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
23158         function structure.
23159
23160 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
23161
23162         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
23163         feature description, split out the native option, add a link to
23164         the feature documentation, rearrange and slightly rewrite text.
23165         (Aarch64 options, -mcpu): Likewise.
23166         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
23167         +rdma implies Adv. SIMD.
23168
23169 2015-06-29  Marek Polacek  <polacek@redhat.com>
23170
23171         PR c/66322
23172         * function.c (stack_protect_epilogue): Remove a cast to int.
23173         * doc/invoke.texi: Update -Wswitch-bool description.
23174
23175 2015-06-29  Richard Biener  <rguenther@suse.de>
23176
23177         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
23178         * fold-const.c (fold_binary_loc): Move &A - &B simplification
23179         via ptr_difference_const ...
23180         * match.pd: ... here.
23181         When matching (X ^ Y) == Y also match with swapped operands.
23182
23183 2015-06-29  Richard Biener  <rguenther@suse.de>
23184
23185         * lto-streamer.h (LTO_major_version): Bump to 5.
23186
23187 2015-06-29  Richard Biener  <rguenther@suse.de>
23188
23189         PR tree-optimization/66677
23190         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
23191         STMT_VINFO_VEC_STMT clobbering less strict.
23192
23193 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
23194
23195         PR middle-end/64130
23196         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
23197         division, compute max and min when value ranges for dividend and
23198         divisor are available.
23199
23200 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
23201             Sandra Loosemore <sandra@codesourcery.com>
23202
23203         * regrename.h (regrename_do_replace): Change to return bool.
23204         * regrename.c (rename_chains): Check return value of
23205         regname_do_replace.
23206         (regrename_do_replace): Re-validate the modified insns and
23207         return bool status.
23208         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
23209         Update to match rename_chains changes.
23210         * config/c6x/c6x.c (try_rename_operands): Assert that
23211         regrename_do_replace returns true.
23212
23213 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
23214
23215         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
23216         operand 2 here.  Use copy_addr_to_reg to copy non-index
23217         register operand 2 to a temporary.
23218         (<mode>_stx): Ditto for operand 1.
23219         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
23220         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
23221         (ix86_store_bounds): Ditto.
23222
23223 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
23224
23225         * print-tree.c (print_node) [TREE_VEC]: Print its length.
23226
23227 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
23228
23229         * gimple.c (gimple_call_set_fndecl): Remove.
23230         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
23231         build1_loc directly instead of build_fold_addr_expr_loc.
23232
23233 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
23234
23235         * hash-map.h (hash_map::traverse): Use the definition of the
23236         Key typedef rather than the typedef itself.
23237
23238 2015-06-26  Martin Jambor  <mjambor@suse.cz>
23239
23240         PR debug/66301
23241         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
23242         NULL instead of calling dump_enabled_p.
23243
23244 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
23245
23246         * config/aarch64/aarch64.opt: (override): New.
23247         * doc/invoke.texi (override): Document.
23248         * config/aarch64/aarch64.c (aarch64_flag_desc): New
23249         (aarch64_fusible_pairs): Likewise.
23250         (aarch64_tuning_flags): Likewise.
23251         (aarch64_tuning_override_function): Likewise.
23252         (aarch64_tuning_override_functions): Likewise.
23253         (aarch64_parse_one_option_token): Likewise.
23254         (aarch64_parse_boolean_options): Likewise.
23255         (aarch64_parse_fuse_string): Likewise.
23256         (aarch64_parse_tune_string): Likewise.
23257         (aarch64_parse_one_override_token): Likewise.
23258         (aarch64_parse_override_string): Likewise.
23259         (aarch64_override_options): Parse the -override string if it
23260         is present.
23261
23262 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
23263
23264         * config/aarch64/aarch64-protos.h (tune_params): Remove
23265         const from members.
23266         (aarch64_tune_params): Remove const, change to no longer be
23267         a pointer.
23268         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
23269         change to no longer be a pointer, initialize to generic_tunings.
23270         (aarch64_min_divisions_for_recip_mul): Change dereference of
23271         aarch64_tune_params to member access.
23272         (aarch64_reassociation_width): Likewise.
23273         (aarch64_rtx_mult_cost): Likewise.
23274         (aarch64_address_cost): Likewise.
23275         (aarch64_branch_cost): Likewise.
23276         (aarch64_rtx_costs): Likewise.
23277         (aarch64_register_move_cost): Likewise.
23278         (aarch64_memory_move_cost): Likewise.
23279         (aarch64_sched_issue_rate): Likewise.
23280         (aarch64_builtin_vectorization_cost): Likewise.
23281         (aarch64_override_options): Take a copy of the selected tuning
23282         struct in to aarch64_tune_params, rather than just setting
23283         a pointer, change dereferences of aarch64_tune_params to member
23284         accesses.
23285         (aarch64_override_options_after_change): Change dereferences of
23286         aarch64_tune_params to member access.
23287         (aarch64_macro_fusion_p): Likewise.
23288         (aarch_macro_fusion_pair_p): Likewise.
23289         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
23290
23291 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
23292
23293         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
23294         (aarch64_tune_flags): Likewise.
23295         (AARCH64_TUNE_FMA_STEERING): Likewise.
23296         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
23297         to AARCH64_FL_USE_FMA_STEERING_PASS.
23298         (cortex-a57.cortex-a53): Likewise.
23299         (cortex-a72): Use cortexa72_tunings.
23300         (cortex-a72.cortex-a53): Likewise.
23301         (exynos-m1): Likewise.
23302         * config/aarch64/aarch64-protos.h (tune_params): Add
23303         a field: extra_tuning_flags.
23304         * config/aarch64/aarch64-tuning-flags.def: New.
23305         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
23306         (aarch64_extra_tuning_flags): Likewise.
23307         (aarch64_tune_params): Declare here.
23308         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
23309         (cortexa53_tunings): Likewise.
23310         (cortexa57_tunings): Likewise.
23311         (thunderx_tunings): Likewise.
23312         (xgene1_tunings): Likewise.
23313         (cortexa72_tunings): New.
23314         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
23315          (gate): Check against aarch64_tune_params.
23316         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
23317         aarch64-protos.h.
23318
23319 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
23320
23321         * config/aarch64/aarch64-fusion-pairs.def: New.
23322         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
23323         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
23324         aarch64_fusion_pairs.
23325         (AARCH64_FUSE_MOV_MOVK): Likewise.
23326         (AARCH64_FUSE_ADRP_ADD): Likewise.
23327         (AARCH64_FUSE_MOVK_MOVK): Likewise.
23328         (AARCH64_FUSE_ADRP_LDR): Likewise.
23329         (AARCH64_FUSE_CMP_BRANCH): Likewise.
23330
23331 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
23332
23333         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
23334         SYMBOL_SMALL_GOT_28K.
23335         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
23336         relocation modifiers.
23337         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
23338         (ldr_got_small_28k_<mode>): New.
23339         (ldr_got_small_28k_sidi): New.
23340         * config/aarch64/iterators.md (got_modifier): New mode iterator.
23341         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
23342         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
23343         SYMBOL_SMALL_GOT_28K.
23344         (aarch64_rtx_costs): Add costs for new instruction sequences.
23345         (initialize_aarch64_code_model): Initialize new model.
23346         (aarch64_classify_symbol): Recognize new model and new symbol classification.
23347         (aarch64_asm_preferred_eh_data_format): Support new model.
23348         (aarch64_load_symref_appropriately): Generate new instruction
23349         sequences for -fpic.
23350         (TARGET_USE_PSEUDO_PIC_REG): New definition.
23351         (aarch64_use_pseudo_pic_reg): New function.
23352
23353 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
23354
23355         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
23356         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
23357         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
23358         (aarch64_expand_mov_immediate): Ditto.
23359         (aarch64_print_operand): Ditto.
23360         (aarch64_classify_symbol): Ditto.
23361
23362 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
23363
23364         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
23365
23366 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
23367
23368         PR bootstrap/66638
23369         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
23370         assertion failed.  Remove assertion itself.
23371
23372 2015-06-26  Richard Biener  <rguenther@suse.de>
23373
23374         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
23375         and -A CMP CST -> A CMP -CST which is redundant with a pattern
23376         in match.pd.
23377         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
23378         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
23379         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
23380         * match.pd: ... patterns here.
23381
23382 2015-06-26  Marek Polacek  <polacek@redhat.com>
23383
23384         * match.pd ((x | y) & ~(x & y) -> x ^ y,
23385         (x | y) & (~x ^ y) -> x & y): New patterns.
23386
23387 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
23388
23389         * rtl.h (emit): Add an optional boolean parameter to control
23390         whether barriers are emitted.
23391         * emit-rtl.c (emit): Likewise.
23392         * gensupport.c (get_emit_function): Return null rather than "emit".
23393         * genemit.c (gen_emit_seq): Handle the null return value.
23394         Don't emit barriers after the final instruction in the sequence.
23395         * gentarget-def.c (main): Don't emit barriers after the instruction.
23396
23397 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23398
23399         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
23400         TARGET_UNIFIED_ASM.
23401
23402 2015-06-26  Richard Biener  <rguenther@suse.de>
23403
23404         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
23405
23406 2015-06-26  Richard Biener  <rguenther@suse.de>
23407
23408         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
23409         irrespective on whether the inner operation has a single use
23410         of both off are constant.
23411
23412 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
23413             Segher Boessenkool  <segher@kernel.crashing.org>
23414
23415         PR target/66412
23416         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
23417         before doing PUT_MODE or PUT_CODE on operands to avoid
23418         in-place RTX modification.
23419
23420 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23421
23422         * gentarget-def.c (def_target_insn): Cast return of strtol to
23423         unsigned int.
23424
23425 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23426
23427         * gimple.h (gimple_call_set_fn): Move inline function.
23428         * gimple.c (gimple_call_set_fn): Relocate here.
23429
23430 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
23431
23432         PR target/65979
23433         PR target/66611
23434         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
23435         the replacement insn will work.
23436
23437 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23438
23439         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
23440         by default.
23441
23442 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23443
23444         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
23445         * cgraph.h: Include ipa-ref.h and plugin-api.h.
23446         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
23447         (symtab_node::address_can_be_compared_p): Move function.
23448         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
23449         definition here.
23450         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
23451         * auto-profile.c: Likewise.
23452         * bb-reorder.c: Likewise.
23453         * builtins.c: Likewise.
23454         * calls.c: Likewise.
23455         * cfgexpand.c: Likewise.
23456         * cgraphbuild.c: Likewise.
23457         * cgraphclones.c: Likewise.
23458         * cgraphunit.c: Likewise.
23459         * combine.c: Likewise.
23460         * coverage.c: Likewise.
23461         * data-streamer-in.c: Likewise.
23462         * data-streamer-out.c: Likewise.
23463         * data-streamer.c: Likewise.
23464         * dbxout.c: Likewise.
23465         * dwarf2out.c: Likewise.
23466         * except.c: Likewise.
23467         * expr.c: Likewise.
23468         * final.c: Likewise.
23469         * fold-const.c: Likewise.
23470         * ggc-page.c: Likewise.
23471         * gimple-fold.c: Likewise.
23472         * gimple-iterator.c: Likewise.
23473         * gimple-pretty-print.c: Likewise.
23474         * gimple-streamer-in.c: Likewise.
23475         * gimple-streamer-out.c: Likewise.
23476         * gimple.c: Likewise.
23477         * gimplify.c: Likewise.
23478         * ipa-chkp.c: Likewise.
23479         * ipa-comdats.c: Likewise.
23480         * ipa-cp.c: Likewise.
23481         * ipa-devirt.c: Likewise.
23482         * ipa-icf-gimple.c: Likewise.
23483         * ipa-icf.c: Likewise.
23484         * ipa-inline-analysis.c: Likewise.
23485         * ipa-inline-transform.c: Likewise.
23486         * ipa-inline.c: Likewise.
23487         * ipa-polymorphic-call.c: Likewise.
23488         * ipa-profile.c: Likewise.
23489         * ipa-prop.c: Likewise.
23490         * ipa-pure-const.c: Likewise.
23491         * ipa-ref.c: Likewise.
23492         * ipa-reference.c: Likewise.
23493         * ipa-split.c: Likewise.
23494         * ipa-utils.c: Likewise.
23495         * ipa-visibility.c: Likewise.
23496         * ipa.c: Likewise.
23497         * langhooks.c: Likewise.
23498         * lto-cgraph.c: Likewise.
23499         * lto-compress.c: Likewise.
23500         * lto-opts.c: Likewise.
23501         * lto-section-in.c: Likewise.
23502         * lto-section-out.c: Likewise.
23503         * lto-streamer-in.c: Likewise.
23504         * lto-streamer-out.c: Likewise.
23505         * lto-streamer.c: Likewise.
23506         * omp-low.c: Likewise.
23507         * opts-global.c: Likewise.
23508         * passes.c: Likewise.
23509         * predict.c: Likewise.
23510         * print-tree.c: Likewise.
23511         * profile.c: Likewise.
23512         * ree.c: Likewise.
23513         * sanopt.c: Likewise.
23514         * stor-layout.c: Likewise.
23515         * symtab.c: Likewise.
23516         * toplev.c: Likewise.
23517         * trans-mem.c: Likewise.
23518         * tree-cfg.c: Likewise.
23519         * tree-chkp.c: Likewise.
23520         * tree-eh.c: Likewise.
23521         * tree-emutls.c: Likewise.
23522         * tree-inline.c: Likewise.
23523         * tree-nested.c: Likewise.
23524         * tree-parloops.c: Likewise.
23525         * tree-pretty-print.c: Likewise.
23526         * tree-profile.c: Likewise.
23527         * tree-sra.c: Likewise.
23528         * tree-ssa-alias.c: Likewise.
23529         * tree-ssa-live.c: Likewise.
23530         * tree-ssa-loop-ivcanon.c: Likewise.
23531         * tree-ssa-loop-ivopts.c: Likewise.
23532         * tree-ssa-pre.c: Likewise.
23533         * tree-ssa-sccvn.c: Likewise.
23534         * tree-ssa-strlen.c: Likewise.
23535         * tree-ssa-structalias.c: Likewise.
23536         * tree-streamer-in.c: Likewise.
23537         * tree-streamer-out.c: Likewise.
23538         * tree-streamer.c: Likewise.
23539         * tree-switch-conversion.c: Likewise.
23540         * tree-tailcall.c: Likewise.
23541         * tree-vect-data-refs.c: Likewise.
23542         * tree-vect-stmts.c: Likewise.
23543         * tree-vectorizer.c: Likewise.
23544         * tree.c: Likewise.
23545         * tsan.c: Likewise.
23546         * ubsan.c: Likewise.
23547         * value-prof.c: Likewise.
23548         * varasm.c: Likewise.
23549         * varpool.c: Likewise.
23550         * config/arm/arm.c: Likewise.
23551         * config/bfin/bfin.c: Likewise.
23552         * config/c6x/c6x.c: Likewise.
23553         * config/cris/cris.c: Likewise.
23554         * config/darwin-c.c: Likewise.
23555         * config/darwin.c: Likewise.
23556         * config/i386/i386.c: Likewise.
23557         * config/i386/winnt.c: Likewise.
23558         * config/microblaze/microblaze.c: Likewise.
23559         * config/mips/mips.c: Likewise.
23560         * config/rs6000/rs6000.c: Likewise.
23561         * config/rx/rx.c: Likewise.
23562         * config/s390/s390.c: Likewise.
23563         * config/tilegx/mul-tables.c: Likewise.
23564
23565 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23566
23567         * config/aarch64/aarch64.c, config/alpha/alpha.c,
23568         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
23569         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
23570         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
23571         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23572         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23573         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23574         config/microblaze/microblaze.c, config/mips/mips.c,
23575         config/mmix/mmix.c, config/mn10300/mn10300.c,
23576         config/moxie/moxie.c, config/msp430/msp430.c,
23577         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23578         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23579         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23580         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23581         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23582         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23583         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
23584         target-def.h include.
23585         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
23586
23587 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23588
23589         * Makefile.in (TARGET_DEF): Add target-insns.def.
23590         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
23591         (build/gentarget-def.o): New rule.
23592         (genprogrtl): Add target-def.
23593         * target-insns.def, gentarget-def.c: New files.
23594         * target.def: Add targetm.have_* and targetm.gen_* hooks,
23595         based on the contents of target-insns.def.
23596         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
23597         (HAVE_return, gen_return): Delete.
23598         * target-def.h: Include insn-target-def.h.
23599         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
23600         instead of direct calls.  Rely on them to do the appropriate assertions.
23601         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
23602         (convert_jumps_to_returns): Use targetm interface instead of
23603         direct calls.
23604         (thread_prologue_and_epilogue_insns): Likewise.
23605         * reorg.c (find_end_label, dbr_schedule): Likewise.
23606         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
23607         * shrink-wrap.c (convert_to_simple_return): Likewise.
23608         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
23609
23610 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23611
23612         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
23613         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23614         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
23615         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
23616         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23617         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23618         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23619         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
23620         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
23621         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23622         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23623         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23624         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23625         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23626         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23627         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
23628         includes to end.
23629
23630 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23631
23632         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
23633         (unbounded_int_hashmap_traits::key_type): Likewise.
23634         * hash-map.h (hash_map): Get the key type from the traits.
23635         * hash-traits.h (default_hash_traits): By default, inherit from the
23636         template parameter.
23637         * alias.c (alias_set_traits): Delete.
23638         (alias_set_entry_d::children): Use alias_set_hash as the first
23639         template parameter.
23640         (record_alias_subset): Update accordingly.
23641         * except.c (tree_hash_traits): Delete.
23642         (type_to_runtime_map): Use tree_hash as the first template parameter.
23643         (init_eh): Update accordingly.
23644         * genmatch.c (capture_id_map_hasher): Delete.
23645         (cid_map_t): Use nofree_string_hash as first template parameter.
23646         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
23647         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
23648         Use symbol_compare_hash as the first template parameter in
23649         subdivide_hash_map.
23650         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
23651         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
23652         template parameter.
23653         * passes.c (pass_registry_hasher): Delete.
23654         (name_to_pass_map): Use nofree_string_hash as the first template
23655         parameter.
23656         (register_pass_name): Update accordingly.
23657         * sanopt.c (sanopt_tree_map_traits): Delete.
23658         (sanopt_tree_triplet_map_traits): Delete.
23659         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
23660         template parameter.
23661         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
23662         the first template parameter.
23663         * sese.c (rename_map_hasher): Delete.
23664         (rename_map_type): Use tree_ssa_name_hash as the first template
23665         parameter.
23666         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
23667         (function_summary::m_map): Use map_hash as the first template
23668         parameter.
23669         (function_summary::release): Update accordingly.
23670         * tree-if-conv.c (phi_args_hash_traits): Delete.
23671         (predicate_scalar_phi): Use tree_operand_hash as the first template
23672         parameter to phi_arg_map.
23673         * tree-inline.h (dependence_hasher): Delete.
23674         (copy_body_data::dependence_map): Use dependence_hash as the first
23675         template parameter.
23676         * tree-inline.c (remap_dependence_clique): Update accordingly.
23677         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
23678         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
23679         parameter.
23680         (addr_stridxptr): Update accordingly.
23681         * value-prof.c (profile_id_traits): Delete.
23682         (cgraph_node_map): Use profile_id_hash as the first template
23683         parameter.
23684         (init_node_map): Update accordingly.
23685         * config/alpha/alpha.c (string_traits): Delete.
23686         (machine_function::links): Use nofree_string_hash as the first
23687         template parameter.
23688         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
23689         * config/m32c/m32c.c (pragma_traits): Delete.
23690         (pragma_htab): Use nofree_string_hash as the first template parameter.
23691         (m32c_note_pragma_address): Update accordingly.
23692         * config/mep/mep.c (pragma_traits): Delete.
23693         (pragma_htab): Use nofree_string_hash as the first template parameter.
23694         (mep_note_pragma_flag): Update accordingly.
23695         * config/mips/mips.c (mips16_flip_traits): Delete.
23696         (mflip_mips16_htab): Use nofree_string_hash as the first template
23697         parameter.
23698         (mflip_mips16_use_mips16_p): Update accordingly.
23699         (local_alias_traits): Delete.
23700         (mips16_local_aliases): Use nofree_string_hash as the first template
23701         parameter.
23702         (mips16_local_alias): Update accordingly.
23703
23704 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23705
23706         * hash-map-traits.h (default_hashmap_traits): Delete.
23707
23708 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23709
23710         * hash-map-traits.h (unbounded_hashmap_traits): New class.
23711         (unbounded_int_hashmap_traits): Likewise.
23712         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
23713
23714 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23715
23716         * ipa-icf.h (symbol_compare_hash): New class.
23717         (symbol_compare_hashmap_traits): Use it.
23718         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
23719         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
23720         (mem_alloc_description::reverse_mem_map_t): Remove redundant
23721         default_hashmap_traits.
23722         * sanopt.c (sanopt_tree_triplet_hash): New class.
23723         (sanopt_tree_triplet_map_traits): Use it.
23724
23725 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23726
23727         * gengtype-parse.c (require_template_declaration): Allow '+' in
23728         template parameters.  Consolidate cases.
23729         * hash-traits.h (int_hash): New class.
23730         * alias.c (alias_set_hash): New structure.
23731         (alias_set_traits): Use it.
23732         * symbol-summary.h (function_summary::map_hash): New class.
23733         (function_summary::summary_hashmap_traits): Use it.
23734         * tree-inline.h (dependence_hash): New class.
23735         (dependence_hasher): Use it.
23736         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
23737         * value-prof.c (profile_id_hash): New class.
23738         (profile_id_traits): Use it.
23739
23740 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23741
23742         * config/mips/mips.c (mips16_flip_traits): Use it.
23743         (local_alias_traits, mips16_local_aliases): Convert from a map of
23744         rtxes to a map of symbol names.
23745         (mips16_local_alias): Update accordingly.
23746
23747 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23748
23749         * hash-traits.h (string_hash, nofree_string_hash): New classes.
23750         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
23751         * passes.c (pass_registry_hasher): Likewise.
23752         * config/alpha/alpha.c (string_traits): Likewise.
23753         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
23754         * config/m32c/m32c.c (pragma_traits): Likewise.
23755         * config/mep/mep.c (pragma_traits): Likewise.
23756
23757 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23758
23759         * tree-hash-traits.h (tree_hash): New class.
23760         * except.c: Include tree-hash-traits.h.
23761         (tree_hash_traits): Use tree_hash.
23762
23763 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23764
23765         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
23766         * sese.c: Include tree-hash-traits.h.
23767         (rename_map_hasher): Use tree_ssa_name_hasher.
23768
23769 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23770
23771         * tree-hash-traits.h (tree_decl_hash): New class.
23772         * tree-ssa-strlen.c: Include tree-hash-traits.h.
23773         (stridxlist_hash_traits): Use tree_decl_hash.
23774
23775 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23776
23777         * tree-hash-traits.h: New file.
23778         (tree_operand_hash): New class.
23779         * sanopt.c: Include tree-hash-traits.h.
23780         (sanopt_tree_map_traits): Use tree_operand_hash.
23781         * tree-if-conv.c: Include tree-hash-traits.h.
23782         (phi_args_hash_traits): Use tree_operand_hash.
23783         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
23784         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
23785
23786 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23787
23788         * hash-map-traits.h: Include hash-traits.h.
23789         (simple_hashmap_traits): New class.
23790         * mem-stats.h (hash_map): Change the default traits to
23791         simple_hashmap_traits<default_hash_traits<Key> >.
23792
23793 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23794
23795         * hash-table.h: Update comments.
23796
23797 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23798
23799         * hash-traits.h (default_hash_traits): New structure.
23800         * hash-set.h (default_hashset_traits): Delete.
23801         (hash_set): Use default_hash_traits<Key> instead of
23802         default_hashset_traits.  Delete hash_entry type and use Key directly.
23803         * ipa-devirt.c (pair_traits): Delete.
23804         (default_hash_traits <type_pair>): Override.
23805         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
23806         (odr_types_equivalent_p, add_type_duplicate): Likewise.
23807
23808 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23809
23810         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
23811
23812 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23813
23814         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
23815         (has_is_empty, is_empty_helper): Delete.
23816         (has_mark_deleted, mark_deleted_helper): Delete.
23817         (has_mark_empty, mark_empty_helper): Delete.
23818         (hash_table::is_deleted): Call the Descriptor unconditionally.
23819         (hash_table::is_empty): Likewise.
23820         (hash_table::mark_deleted): Likewise.
23821         (hash_table::mark_empty): Likewise.
23822
23823 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23824
23825         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
23826         redundant typedefs and members.
23827         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
23828         redundant typedefs.
23829         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
23830         * ipa-devirt.c (odr_name_hasher): Likewise.
23831         (polymorphic_call_target_hasher): Likewise.
23832         * ira-costs.c (cost_classes_hasher): Likewise.
23833         * statistics.c (stats_counter_hasher): Likewise.
23834         * trans-mem.c (log_entry_hasher): Likewise.
23835         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
23836         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
23837         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
23838         * var-tracking.c (variable_hasher): Likewise.
23839         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
23840         Remove redundant typedefs and members.
23841
23842 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23843
23844         * hash-traits.h (ggc_cache_hasher): Rename to...
23845         (ggc_cache_remove): ...this and remove typedefs.
23846         (ggc_cache_ptr_hash): New class.
23847         * hash-table.h: Update commentary.
23848         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
23849         rather than ggc_cache_hasher.
23850         (const_wide_int_hasher, reg_attr_hasher): Likewise.
23851         (const_double_hasher, const_fixed_hasher): Likewise.
23852         * function.c (insn_cache_hasher): Likewise.
23853         * trans-mem.c (tm_wrapper_hasher): Likewise.
23854         * tree.h (tree_decl_map_cache_hasher): Likewise.
23855         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
23856         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
23857         * ubsan.c (tree_type_map_cache_hasher): Likewise.
23858         * varasm.c (tm_clone_hasher): Likewise.
23859         * config/i386/i386.c (dllimport_hasher): Likewise.
23860         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
23861         (tree_hasher): Likewise.
23862
23863 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23864
23865         * hash-traits.h (ggc_hasher): Rename to...
23866         (ggc_remover): ...this and remove typedefs.
23867         (ggc_cache_hasher): Update accordingly.  Add typedefs.
23868         (ggc_ptr_hash): New class.
23869         * hash-table.h: Update comment.
23870         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
23871         ggc_hasher.
23872         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
23873         (tree_descriptor_hasher): Likewise.
23874         * cgraph.c (function_version_hasher): Likewise.
23875         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
23876         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
23877         (dw_loc_list_hasher, addr_hasher): Likewise.
23878         * function.h (used_type_hasher): Likewise.
23879         * function.c (temp_address_hasher): Likewise.
23880         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
23881         * libfuncs.h (libfunc_hasher): Likewise.
23882         * lto-streamer.h (decl_state_hasher): Likewise.
23883         * optabs.c (libfunc_decl_hasher): Likewise.
23884         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
23885         * varasm.c (section_hasher, object_block_hasher): Likewise.
23886         (const_rtx_desc_hasher): Likewise.
23887         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
23888         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
23889
23890 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23891
23892         * hash-traits.h (free_ptr_hash): New class.
23893         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
23894         rather than typed_free_remove.  Remove redudant typedefs.
23895         (external_ref_hasher): Likewise.
23896         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
23897         (ehspec_hasher): Likewise.
23898         * ggc-common.c (saving_hasher): Likewise.
23899         * gimplify.c (gimplify_hasher): Likewise.
23900         * haifa-sched.c (delay_i2_hasher): Likewise.
23901         * loop-invariant.c (invariant_expr_hasher): Likewise.
23902         * loop-iv.c (biv_entry_hasher): Likewise.
23903         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
23904         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
23905         * tree-cfg.c (locus_discrim_hasher): Likewise.
23906         * tree-eh.c (finally_tree_hasher): Likewise.
23907         * tree-into-ssa.c (var_info_hasher): Likewise.
23908         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
23909         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
23910         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
23911         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
23912         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
23913         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
23914         (shared_bitmap_hasher): Likewise.
23915         * tree-ssa-threadupdate.c (redirection_data): Likewise.
23916         * tree-vectorizer.h (peel_info_hasher): Likewise.
23917         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
23918         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
23919
23920 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23921
23922         * hash-table.h: Update comments.
23923         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
23924         (nofree_ptr_hash): New class.
23925         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
23926         than typed_noop_remove.  Remove redudant typedefs.
23927         * attribs.c (attribute_hasher): Likewise.
23928         * cfg.c (bb_copy_hasher): Likewise.
23929         * cselib.c (cselib_hasher): Likewise.
23930         * dse.c (invariant_group_base_hasher): Likewise.
23931         * dwarf2cfi.c (trace_info_hasher): Likewise.
23932         * dwarf2out.c (macinfo_entry_hasher): Likewise.
23933         (comdat_type_hasher, loc_list_hasher): Likewise.
23934         * gcse.c (pre_ldst_expr_hasher): Likewise.
23935         * genmatch.c (id_base): Likewise.
23936         * genrecog.c (test_pattern_hasher): Likewise.
23937         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
23938         * haifa-sched.c (delay_i1_hasher): Likewise.
23939         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
23940         * ipa-icf.h (congruence_class_group_hash): Likewise.
23941         * ipa-profile.c (histogram_hash): Likewise.
23942         * ira-color.c (allocno_hard_regs_hasher): Likewise.
23943         * lto-streamer.h (string_slot_hasher): Likewise.
23944         * lto-streamer.c (tree_entry_hasher): Likewise.
23945         * plugin.c (event_hasher): Likewise.
23946         * postreload-gcse.c (expr_hasher): Likewise.
23947         * store-motion.c (st_expr_hasher): Likewise.
23948         * tree-sra.c (uid_decl_hasher): Likewise.
23949         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
23950         (ssa_name_var_hash): Likewise.
23951         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
23952         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
23953         * tree-ssa-pre.c (pre_expr_d): Likewise.
23954         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
23955         * vtable-verify.h (registration_hasher): Likewise.
23956         * vtable-verify.c (vtbl_map_hasher): Likewise.
23957         * config/arm/arm.c (libcall_hasher): Likewise.
23958         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
23959         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
23960         * config/sol2.c (comdat_entry_hasher): Likewise.
23961         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
23962         (print_fold_checksum, fold_checksum_tree): Likewise.
23963         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
23964         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
23965         (fold_build_call_array_loc): Likewise.
23966         * tree-ssa-ccp.c (gimple_htab): Likewise.
23967         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
23968         rather than pointer_type.
23969
23970 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23971
23972         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
23973         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
23974
23975 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23976
23977         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
23978         (ggc_hasher::ggc_mx): Likewise.
23979         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
23980         that duplicate ggc_hasher ones.
23981
23982 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23983
23984         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
23985         (gt_cleare_cache): Check here for deleted and empty entries.
23986         Replace handle_cache_entry with a call to keep_cache_entry.
23987         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
23988         (ggc_cache_hasher::keep_cache_entry): New function.
23989         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
23990         (tm_wrapper_hasher::keep_cache_entry): New function.
23991         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
23992         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23993         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
23994         (type_cache_hasher::keep_cache_entry): New function.
23995         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
23996         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23997         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
23998         (tree_type_map_cache_hasher::keep_cache_entry): New function.
23999         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
24000         (tm_clone_hasher::keep_cache_entry): New function.
24001         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
24002         (dllimport_hasher::keep_cache_entry): New function.
24003
24004 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
24005
24006         * hash-table.h: Include hash-traits.h.
24007         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
24008         (ggc_cache_hasher): Move to...
24009         * hash-traits.h: ...this new file.
24010
24011 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
24012
24013         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
24014         struct cl_optimization.
24015         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
24016         * tree.c (make_node_stat): Allocate cl_optimization struct.
24017         (copy_node_stat): Allocate and copy cl_optimization struct.
24018
24019 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
24020
24021         * function.h (struct incoming_args): Move struct.
24022         (pass_by_reference, reference_callee_copied): Remove prototypes.
24023         * emit-rtl.h (struct incoming_args): Relocate struct here.
24024         * calls.h (pass_by_reference, reference_callee_copied): Relocate
24025         prototypes here.
24026         * function.c (pass_by_reference, reference_callee_copied): Move.
24027         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
24028         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
24029         * ipa-chkp.c: Include calls.h.
24030
24031 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
24032
24033         * alias.h (alias_set_type): Move typedef.
24034         * coretypes.h (alias_set_type): Relocate typedef here.
24035         * rtl.h: Don't include alias.h.
24036
24037 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
24038
24039         * cgraph.h (cgraph_rtl_info): Move to rtl.h
24040         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
24041         and instance.
24042         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
24043         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
24044         doesn't exist.
24045         * calls.c: Include hard-reg-set.h before rtl.h.
24046         * ira.c: Likewise.
24047
24048 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
24049             Vladimir Makarov  <vmakarov@redhat.com>
24050
24051         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
24052         Add assert.
24053
24054 2015-06-25  Richard Biener  <rguenther@suse.de>
24055
24056         * fold-const.c (fold_binary_loc): Move simplification of
24057         (X <<>> C1) & C2 ...
24058         * match.pd: ... here.
24059
24060 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
24061
24062         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
24063
24064 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
24065
24066         * match.pd: Add patterns for vec_conds between 1 and 0.
24067
24068 2015-06-25  Richard Biener  <rguenther@suse.de>
24069
24070         * tree-vect-stmts.c (vectorizable_conversion): Do not set
24071         STMT_VINFO_VEC_STMT for SLP.
24072         (vectorizable_store): Likewise.
24073         (vectorizable_load): Likewise.
24074         (vect_transform_stmt): Catch SLP vectorization clobbering
24075         STMT_VINFO_VEC_STMT.
24076
24077 2015-06-25  Richard Biener  <rguenther@suse.de>
24078
24079         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
24080         dumping.
24081         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
24082         cleanup resulting dead code and parameters.
24083         (vect_transform_slp_perm_load): Adjust.
24084
24085 2015-06-25  Nick Clifton  <nickc@redhat.com>
24086
24087         * config/bfin/bfin.c (bfin_expand_prologue): Set
24088         current_function_static_stack_size if flag_stack_usage_info is set.
24089         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
24090         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
24091         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
24092         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
24093
24094 2015-06-25  Tom de Vries  <tom@codesourcery.com>
24095
24096         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
24097         comment that the generated IV is unsigned.
24098
24099 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24100
24101         PR target/29693
24102         * config/arm/arm.c (arm_dbx_register_number): Return
24103         DWARF_FRAME_REGISTERS by default.
24104
24105 2015-06-25  Tom de Vries  <tom@codesourcery.com>
24106
24107         * dominance.c (calculate_dominance_info): Fix verify_dominators call
24108         argument.  Call verify_dominator when reusing dominator info.
24109
24110 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
24111
24112         PR target/66563
24113         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
24114         an additional element of the unspec vector.  Modify indices
24115         of operands.
24116         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
24117         * config/sh/sh.c (prepare_move_operands): Pass incremented
24118         const_int to gen_GOTaddr2picreg.
24119         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
24120
24121 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
24122
24123         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
24124         Condition on TARGET_FLOAT.
24125
24126 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
24127
24128         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
24129         and (no)crypto.
24130
24131 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
24132
24133         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
24134
24135         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
24136         aarch64_err_no_fpadvsimd.
24137
24138         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
24139         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
24140         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
24141         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
24142         Turn error into assert, test TARGET_FLOAT.
24143         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
24144         TARGET_FLOAT.
24145
24146 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
24147
24148         PR debug/66482
24149         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
24150
24151 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
24152
24153         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
24154
24155 2015-06-24  Renlin Li <renlin.li@arm.com>
24156
24157         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
24158         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
24159
24160 2015-06-24  Richard Biener  <rguenther@suse.de>
24161
24162         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
24163         (main): Likewise.
24164         (lower_opt_convert): Support lowering of conditional view_convert.
24165         (parser::parse_operation): Likewise.
24166         (parser::parse_for): Likewise.
24167
24168 2015-06-24  Renlin Li  <renlin.li@arm.com>
24169
24170         * varasm.c (emit_local): Use unsigned int for align variable.
24171
24172 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24173
24174         PR target/63408
24175         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
24176         for negative numbers.
24177
24178 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24179
24180         PR rtl-optimization/66306
24181         * reload.c (find_reloads): Swap the match_dup info for
24182         commutative operands.
24183
24184 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24185
24186         * config/s390/vx-builtins.md
24187         ("vec_scatter_element<mode>_<non_vec_int>")
24188         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
24189         attribute with bhfgq.
24190
24191 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24192
24193         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
24194
24195 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24196
24197         * config/s390/s390-builtin-types.def: Add flag to indicate the
24198         options under which the function type is needed.
24199         * config/s390/s390-builtins.def: Add flag to indicate the options
24200         under which the builtin is enabled.
24201         * config/s390/s390-builtins.h: Add flags parameter to macro
24202         definitions.
24203         (bflags_for_builtin): New function.
24204         (flags_for_builtin): Renamed to ...
24205         (opflags_for_builtin): ... this.
24206         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
24207         flags_for_builtin to bflags_for_builtin and
24208         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
24209         * config/s390/s390.c: Add initialization of bflags_builtin and
24210         opflags_builtin arrays.
24211         Remove code for flags_builtin.
24212         (s390_init_builtins): Only create builtin function types if one of
24213         their flags is active.
24214         Only create builtins if all of their flags are active.
24215         (s390_expand_builtin): Rename flags_for_builtin to
24216         opflags_for_builtin.
24217
24218 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24219
24220         * config/s390/vecintrin.h: Remove internal builtins.
24221
24222 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24223
24224         * config/s390/s390.c (s390_secondary_reload): Fix check for
24225         GENERAL_REGS register class.
24226
24227 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24228
24229         * config/s390/s390.c (s390_support_vector_misalignment): Call
24230         default implementation for !TARGET_VX.
24231
24232 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24233
24234         * config/s390/s390.c (s390_legitimate_constant_p): Add
24235         TARGET_VX check.
24236
24237 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24238
24239         * config/s390/s390.c (s390_vector_abi): New variable definition.
24240         (s390_check_type_for_vector_abi): New function.
24241         (TARGET_ASM_FILE_END): New macro definition.
24242         (s390_asm_file_end): New function.
24243         (s390_function_arg): Call s390_check_type_for_vector_abi.
24244         (s390_gimplify_va_arg): Likewise.
24245         * configure: Regenerate.
24246         * configure.ac: Check for .gnu_attribute Binutils feature.
24247
24248 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
24249
24250         PR target/65803
24251         * config/bfin/bfin.c (hwloop_optimize): Initialize
24252         JUMP_LABEL for newly created jump.
24253
24254 2015-06-23  Tristan Gingold  <gingold@adacore.com>
24255
24256         * collect-utils.c (collect_wait): Unlink the response file here
24257         instead of...
24258         (do_wait): ...here.
24259         (utils_cleanup): ...and here.
24260
24261 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
24262
24263         * df-scan.c: Don't include target-def.h.
24264         * targhooks.c: Likewise.
24265         * config/arm/arm-c.c: Likewise.
24266         * config/i386/i386-c.c: Likewise.
24267         * config/nds32/nds32-cost.c: Likewise.
24268         * config/nds32/nds32-fp-as-gp.c: Likewise.
24269         * config/nds32/nds32-intrinsic.c: Likewise.
24270         * config/nds32/nds32-isr.c: Likewise.
24271         * config/nds32/nds32-md-auxiliary.c: Likewise.
24272         * config/nds32/nds32-memory-manipulation.c: Likewise.
24273         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24274         * config/nds32/nds32-predicates.c: Likewise.
24275
24276 2015-06-23  Richard Biener  <rguenther@suse.de>
24277
24278         PR tree-optimization/66636
24279         * tree-vect-stmts.c (vectorizable_store): Properly compute the
24280         def type for further defs for strided stores.
24281
24282 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
24283
24284         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
24285         conditional selects.
24286         (setcc_int<mode>, setcc_float<mode>): Reformat.
24287
24288 2015-06-23  Marek Polacek  <polacek@redhat.com>
24289
24290         * match.pd ((x + y) - (x | y) -> x & y,
24291         (x + y) - (x & y) -> x | y): New patterns.
24292
24293 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
24294
24295         PR 65711
24296         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
24297         '-dynamic-linker' within %{!shared: ...}.
24298
24299 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
24300
24301         PR target/66560
24302         * config/i386/predicates.md (addsub_vm_operator): New predicate.
24303         (addsub_vs_operator): Ditto.
24304         (addsub_vs_parallel): Ditto.
24305         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
24306         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
24307         Put minus RTX before plus and adjust vec_merge selector.
24308         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
24309         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
24310         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
24311         (addsub vec_merge splitters): New combiner splitters.
24312         (addsub vec_select/vec_concat splitters): Ditto.
24313
24314 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
24315
24316         PR tree-optimization/66449
24317         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
24318         POINTER_PLUS_EXPR for pointers.
24319
24320 2015-06-23  Alan Modra  <amodra@gmail.com>
24321
24322         * rtlanal.c (commutative_operand_precedence): Correct comments.
24323         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
24324         declaration.  Return an int.  Distinguish REG,REG return from
24325         others.
24326         (struct simplify_plus_minus_op_data): Make local to function.
24327         (simplify_plus_minus): Don't set canonicalized if merely sorting
24328         registers.  Avoid packing ops if nothing changes.  White space fixes.
24329
24330 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
24331
24332         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
24333         -fdump-ada-spec is passed but not if -fsyntax-only is.
24334
24335 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
24336
24337         PR bootstrap/63740
24338         * lra-lives.c (process_bb_lives): Check insn copying the same
24339         reload pseudo and don't create a copy for it.
24340
24341 2015-06-22  Tom de Vries  <tom@codesourcery.com>
24342
24343         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
24344         for cond_stmt.
24345
24346 2015-06-22  Tom de Vries  <tom@codesourcery.com>
24347
24348         * builtins.def (DEF_GOMP_BUILTIN): Test
24349         'flag_tree_parallelize_loops > 1' instead of
24350         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
24351
24352 2015-06-22  Tom de Vries  <tom@codesourcery.com>
24353
24354         * dominance.c (calculate_dominance_info): Verify dominators if
24355         early-out.
24356
24357 2015-06-22  Marek Polacek  <polacek@redhat.com>
24358
24359         * match.pd ((x ^ y) ^ (x | y) -> x & y,
24360         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
24361         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
24362         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
24363
24364 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
24365
24366         PR target/65871
24367         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
24368         cost of embedded comparison.
24369
24370 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24371
24372         PR target/65914
24373         * config/rs6000/predicates.md (altivec_register_operand): Permit
24374         virtual stack registers.
24375         (vsx_register_operand): Likewise.
24376         (vfloat_operand): Likewise.
24377         (vint_operand): Likewise.
24378         (vlogical_operand): Likewise.
24379
24380 2015-06-22  Richard Biener  <rguenther@suse.de>
24381
24382         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
24383         and single_scalar_iteration_cost members.
24384         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
24385         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
24386         (vect_get_single_scalar_iteration_cost): Remove.
24387         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
24388         Use LOOP_VINFO_SCALAR_ITERATION_COST.
24389         * tree-vect-loop.c (destroy_loop_vec_info): Free
24390         scalar_cost_vec.
24391         (vect_get_single_scalar_iteration_cost): Compute result into
24392         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
24393         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
24394         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
24395         (vect_estimate_min_profitable_iters): Use them.
24396
24397 2015-06-22  Christian Bruel  <christian.bruel@st.com>
24398
24399         PR target/52144
24400         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
24401         (TARGET_INSERT_ATTRIBUTES): Define.
24402         (thumb_flipper): New var.
24403         * config/arm/arm.opt (-mflip-thumb): New switch.
24404
24405 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
24406             Martin Liska  <mliska@suse.cz>
24407
24408         PR ipa/65908
24409         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
24410         construction of arg_types.
24411         (sem_function::sem_function): Likewise.
24412         (sem_function::~sem_function): Remove destruction of arg_types.
24413         (sem_function::compatible_parm_types_p): New function.
24414         (sem_function::equals_wpa): Reorg matching of return values
24415         and parameter types.
24416         (sem_function::equals_private): Reorg mathcing of argument types.
24417         (sem_function::parse_tree_args): Remove.
24418         * ipa-icf.h (init_wpa): Do not call it.
24419         (parse_tree_args): Remove.
24420         (compatible_parm_types_p): Declare.
24421         (result_type): Remove.
24422         (arg_types): Remove.
24423
24424 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
24425
24426         PR ipa/66351
24427         * ipa-polymorphic-call.c
24428         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
24429         initializing alias oracle; fix formating; set base_alias_set if it
24430         is known.
24431
24432 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
24433
24434         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
24435         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
24436         (find_inc): Likewise.
24437         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
24438         swapping.
24439         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
24440         * df-scan.c (df_swap_refs): Remove.
24441         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
24442         * dominance.c (link_roots): Use std::swap instead of manually swapping.
24443         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
24444         * fold-const.c (fold_relational_const): Likewise.
24445         * genattrtab.c (simplify_test_exp): Likewise.
24446         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
24447         gimple_simplify): Likewise.
24448         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
24449         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
24450         * ipa-devirt.c (add_type_duplicate): Likewise.
24451         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
24452         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
24453         * lra.c (lra_create_copy): Likewise.
24454         * lto-streamer-out.c (DFS::DFS): Likewise.
24455         * modulo-sched.c (get_sched_window): Likewise.
24456         * omega.c (omega_pretty_print_problem): Likewise.
24457         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
24458         * reload1.c (reloads_unique_chain_p): Likewise.
24459         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
24460         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
24461         use std::swap.
24462         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
24463         manually swapping.
24464         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
24465         predicate_mem_writes): Likewise.
24466         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
24467         * tree-predcom.c (combine_chains): Likewise.
24468         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
24469         refs_may_alias_p_1): Likewise.
24470         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
24471         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
24472         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
24473         number_of_iterations_cond): Likewise.
24474         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
24475         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
24476         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
24477         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
24478         * tree-vrp.c (extract_range_from_binary_expr_1,
24479         extract_range_from_unary_expr_1): Likewise.
24480
24481 2015-06-20  Marek Polacek  <polacek@redhat.com>
24482
24483         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
24484
24485 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
24486
24487         PR target/66591
24488         * config/sh/sh.c (prepare_move_operands): Replace subreg
24489         index term with R0 for base and index addressing.
24490
24491 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
24492
24493         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
24494         op1 is an fp zero.
24495         (movsf_aarch64): Change condition from register_operand to
24496         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
24497         load1.  Change type for alternative 7 to store1.
24498         (movdf_aarch64): Likewise.
24499
24500 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
24501
24502         * config/vax/vax.md: Adjust sign/zero extend patterns to
24503         handle SUBREGs in operands[1].
24504
24505 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24506
24507         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
24508         of manually swapping.
24509         (expand_vec_perm_interleave2): Likewise.
24510
24511 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
24512
24513         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
24514         reuse bounds created for abnormal ssa names.
24515
24516 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
24517
24518         * config/nvptx/nvptx.md (allocate_stack): Rename to...
24519         (allocate_stack_<mode>): ... this, and add :P on both
24520         match_operand and unspec.
24521         (allocate_stack): New expander.
24522
24523 2015-06-19  Christian Bruel  <christian.bruel@st.com>
24524
24525         PR target/66541
24526         PR target/52144
24527         * config/arm/arm.c (arm_set_current_function): Handle
24528         explicit default options.
24529
24530 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24531
24532         * config/i386/i386.md (*movsicc_noc_zext): New insn.
24533         (zero-extended cmove with mem peephole2): New pattern.
24534         (cmove with mem peephole2): Merge patterns.
24535
24536 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
24537
24538         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
24539
24540 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
24541
24542         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
24543         * config/mips/mips.md (*madd4<mode>): Ditto.
24544         (*nmadd3<mode>) Ditto.
24545         (*nmadd4<mode>_fastmath): Ditto.
24546         (*nmadd3<mode>_fastmath): Ditto.
24547         (*nmsub4<mode>): Ditto.
24548         (*nmsub3<mode>): Ditto.
24549         (*nmsub4<mode>_fastmath): Ditto.
24550         (*nmsub3<mode>_fastmath): Ditto.
24551
24552 2015-06-18  Michael Matz  <matz@suse.de>
24553
24554         PR middle-end/66253
24555         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
24556         grouped strided stores.
24557         (vectorizable_load): Don't use the DR from first_stmt in
24558         the non-SLP grouped strided case.
24559
24560 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24561
24562         PR target/66569
24563         * function.c (assign_bounds): Add arguments assign_regs,
24564         assign_special, assign_bt.
24565         (assign_parms): For vararg functions handle bounds in BT
24566         and special slots after incoming vararg bounds.
24567
24568 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24569
24570         PR middle-end/66568
24571         * cfgexpand.c (expand_return): Handle missing bounds.
24572         (expand_gimple_stmt_1): Likewise.
24573         * tree-chkp.c (chkp_expand_zero_bounds): New.
24574         * tree-chkp.h (chkp_expand_zero_bounds): New.
24575
24576 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24577
24578         PR middle-end/66567
24579         * ipa-chkp.c (chkp_maybe_create_clone): Require
24580         functions to be instrumentable.
24581         * tree-chkp.c (chkp_replace_function_pointer): Use
24582         chkp_instrumentable_p instead of attribute check.
24583
24584 2015-06-18  Richard Biener  <rguenther@suse.de>
24585
24586         PR tree-optimization/66510
24587         * tree-vect-stmts.c (vectorizable_load): Properly compute the
24588         number of vector loads for SLP permuted loads.
24589         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
24590         check the stride for loop vectorization.
24591         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
24592         vectorization factor.
24593         (vect_analyze_group_access): If the group size is not a power
24594         of two require a epilogue loop.
24595         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
24596         compute and optimizing and alias test pruning after final
24597         vectorization factor computation.
24598         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
24599         vector alignment.
24600         (vect_transform_slp_perm_load): Properly compute the original
24601         number of vector load stmts.
24602
24603 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24604
24605         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
24606         "unlikely character , in @var" warning.
24607
24608 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
24609
24610         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
24611         (ix86_function_arg_advance): Ditto.
24612         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
24613
24614 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24615
24616         * function.h (struct rtl_data): Remove struct and accessor macros.
24617         * emit-rtl.h (struct rtl_data): Relocate to here.
24618         * Makefile.in (GTFILES): Add emit-rtl.h.
24619         * df-core.c: Include emit-rtl.h.
24620         * genattrtab.c: Likewise.
24621         * genconditions.c: Likewise.
24622         * genpreds.c: Likewise.
24623         * genrecog.c: Likewise.
24624         * regcprop.c: Likewise.
24625         * resource.c: Likewise.
24626         * sched-rgn.c: Likewise.
24627         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24628         * config/i386/winnt.c: Likewise.
24629
24630 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
24631
24632         PR middle-end/66429
24633         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
24634         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
24635         and has_force_vectorize_loops flags from cfun into
24636         child_cfun.
24637         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
24638         if simduid is non-NULL.
24639         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
24640         * passes.def (pass_simduid_cleanup): Add new pass after loop
24641         passes.
24642         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
24643         indirection from htab argument's type.
24644         (shrink_simd_arrays): New function.
24645         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
24646         Don't call adjust_simduid_builtins if there are no loops.
24647         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
24648         (pass_simduid_cleanup::execute): New method.
24649         (make_pass_simduid_cleanup): New function.
24650
24651 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
24652
24653         * tree-core.h (tree_target_option): Make opts field a pointer to a
24654         cl_target_option instead of an instance of the struct.
24655         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
24656         the structure.
24657         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
24658         TARGET_OPTION_NODE.
24659         (copy_node_stat): Allocate and copy struct cl_target_option.
24660
24661 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24662
24663         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
24664         Remove conditional exposure of prototypes.
24665         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
24666         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
24667         definitions in tree.h with functions.
24668         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
24669         anon_aggrname_p.
24670         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
24671
24672 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
24673
24674         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
24675         (*cmp<mode>_signed): ... this.
24676         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
24677         (*cmp<mode>_unsigned): ... this.  Remove %b.
24678
24679 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24680
24681         * coretypes.h: Include input.h and as-a.h.
24682         * rtl.h: Include input.h and as-a.h for generator files.
24683         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
24684         * vec.c: Don't include diagnostic-core.h.
24685         * alias.c: Do not include input.h, line-map.h or is-a.h.
24686         * asan.c: Likewise.
24687         * attribs.c: Likewise.
24688         * auto-inc-dec.c: Likewise.
24689         * auto-profile.c: Likewise.
24690         * bb-reorder.c: Likewise.
24691         * bt-load.c: Likewise.
24692         * builtins.c: Likewise.
24693         * caller-save.c: Likewise.
24694         * calls.c: Likewise.
24695         * ccmp.c: Likewise.
24696         * cfg.c: Likewise.
24697         * cfganal.c: Likewise.
24698         * cfgbuild.c: Likewise.
24699         * cfgcleanup.c: Likewise.
24700         * cfgexpand.c: Likewise.
24701         * cfghooks.c: Likewise.
24702         * cfgloop.c: Likewise.
24703         * cfgloop.h: Likewise.
24704         * cfgloopanal.c: Likewise.
24705         * cfgloopmanip.c: Likewise.
24706         * cfgrtl.c: Likewise.
24707         * cgraph.c: Likewise.
24708         * cgraphbuild.c: Likewise.
24709         * cgraphclones.c: Likewise.
24710         * cgraphunit.c: Likewise.
24711         * cilk-common.c: Likewise.
24712         * combine-stack-adj.c: Likewise.
24713         * combine.c: Likewise.
24714         * compare-elim.c: Likewise.
24715         * convert.c: Likewise.
24716         * coverage.c: Likewise.
24717         * cppbuiltin.c: Likewise.
24718         * cprop.c: Likewise.
24719         * cse.c: Likewise.
24720         * cselib.c: Likewise.
24721         * data-streamer-in.c: Likewise.
24722         * data-streamer-out.c: Likewise.
24723         * data-streamer.c: Likewise.
24724         * dbxout.c: Likewise.
24725         * dce.c: Likewise.
24726         * ddg.c: Likewise.
24727         * debug.c: Likewise.
24728         * df-core.c: Likewise.
24729         * df-problems.c: Likewise.
24730         * df-scan.c: Likewise.
24731         * df.h: Likewise.
24732         * dfp.c: Likewise.
24733         * diagnostic-core.h: Likewise.
24734         * diagnostic.c: Likewise.
24735         * dojump.c: Likewise.
24736         * dominance.c: Likewise.
24737         * domwalk.c: Likewise.
24738         * double-int.c: Likewise.
24739         * dse.c: Likewise.
24740         * dumpfile.c: Likewise.
24741         * dumpfile.h: Likewise.
24742         * dwarf2asm.c: Likewise.
24743         * dwarf2cfi.c: Likewise.
24744         * dwarf2out.c: Likewise.
24745         * emit-rtl.c: Likewise.
24746         * et-forest.c: Likewise.
24747         * except.c: Likewise.
24748         * explow.c: Likewise.
24749         * expmed.c: Likewise.
24750         * expr.c: Likewise.
24751         * final.c: Likewise.
24752         * fixed-value.c: Likewise.
24753         * fold-const.c: Likewise.
24754         * function.c: Likewise.
24755         * fwprop.c: Likewise.
24756         * gcc-plugin.h: Likewise.
24757         * gcse.c: Likewise.
24758         * generic-match-head.c: Likewise.
24759         * ggc-page.c: Likewise.
24760         * gimple-builder.c: Likewise.
24761         * gimple-expr.c: Likewise.
24762         * gimple-fold.c: Likewise.
24763         * gimple-iterator.c: Likewise.
24764         * gimple-low.c: Likewise.
24765         * gimple-match-head.c: Likewise.
24766         * gimple-pretty-print.c: Likewise.
24767         * gimple-ssa-isolate-paths.c: Likewise.
24768         * gimple-ssa-strength-reduction.c: Likewise.
24769         * gimple-streamer-in.c: Likewise.
24770         * gimple-streamer-out.c: Likewise.
24771         * gimple-streamer.h: Likewise.
24772         * gimple-walk.c: Likewise.
24773         * gimple.c: Likewise.
24774         * gimplify-me.c: Likewise.
24775         * gimplify.c: Likewise.
24776         * godump.c: Likewise.
24777         * graph.c: Likewise.
24778         * graphite-blocking.c: Likewise.
24779         * graphite-dependences.c: Likewise.
24780         * graphite-interchange.c: Likewise.
24781         * graphite-isl-ast-to-gimple.c: Likewise.
24782         * graphite-optimize-isl.c: Likewise.
24783         * graphite-poly.c: Likewise.
24784         * graphite-scop-detection.c: Likewise.
24785         * graphite-sese-to-poly.c: Likewise.
24786         * graphite.c: Likewise.
24787         * haifa-sched.c: Likewise.
24788         * hw-doloop.c: Likewise.
24789         * ifcvt.c: Likewise.
24790         * init-regs.c: Likewise.
24791         * input.c: Likewise.
24792         * internal-fn.c: Likewise.
24793         * ipa-chkp.c: Likewise.
24794         * ipa-comdats.c: Likewise.
24795         * ipa-cp.c: Likewise.
24796         * ipa-devirt.c: Likewise.
24797         * ipa-icf-gimple.c: Likewise.
24798         * ipa-icf.c: Likewise.
24799         * ipa-inline-analysis.c: Likewise.
24800         * ipa-inline-transform.c: Likewise.
24801         * ipa-inline.c: Likewise.
24802         * ipa-polymorphic-call.c: Likewise.
24803         * ipa-profile.c: Likewise.
24804         * ipa-prop.c: Likewise.
24805         * ipa-pure-const.c: Likewise.
24806         * ipa-ref.c: Likewise.
24807         * ipa-reference.c: Likewise.
24808         * ipa-split.c: Likewise.
24809         * ipa-utils.c: Likewise.
24810         * ipa-visibility.c: Likewise.
24811         * ipa.c: Likewise.
24812         * ira-build.c: Likewise.
24813         * ira-color.c: Likewise.
24814         * ira-conflicts.c: Likewise.
24815         * ira-costs.c: Likewise.
24816         * ira-emit.c: Likewise.
24817         * ira-lives.c: Likewise.
24818         * ira.c: Likewise.
24819         * jump.c: Likewise.
24820         * langhooks.c: Likewise.
24821         * lcm.c: Likewise.
24822         * loop-doloop.c: Likewise.
24823         * loop-init.c: Likewise.
24824         * loop-invariant.c: Likewise.
24825         * loop-iv.c: Likewise.
24826         * loop-unroll.c: Likewise.
24827         * lower-subreg.c: Likewise.
24828         * lra-assigns.c: Likewise.
24829         * lra-coalesce.c: Likewise.
24830         * lra-constraints.c: Likewise.
24831         * lra-eliminations.c: Likewise.
24832         * lra-lives.c: Likewise.
24833         * lra-remat.c: Likewise.
24834         * lra-spills.c: Likewise.
24835         * lra.c: Likewise.
24836         * lto-cgraph.c: Likewise.
24837         * lto-compress.c: Likewise.
24838         * lto-opts.c: Likewise.
24839         * lto-section-in.c: Likewise.
24840         * lto-section-out.c: Likewise.
24841         * lto-streamer-in.c: Likewise.
24842         * lto-streamer-out.c: Likewise.
24843         * lto-streamer.c: Likewise.
24844         * mcf.c: Likewise.
24845         * mode-switching.c: Likewise.
24846         * modulo-sched.c: Likewise.
24847         * omega.c: Likewise.
24848         * omp-low.c: Likewise.
24849         * optabs.c: Likewise.
24850         * opts-global.c: Likewise.
24851         * opts.h: Likewise.
24852         * passes.c: Likewise.
24853         * plugin.c: Likewise.
24854         * postreload-gcse.c: Likewise.
24855         * postreload.c: Likewise.
24856         * predict.c: Likewise.
24857         * pretty-print.h: Likewise.
24858         * print-rtl.c: Likewise.
24859         * print-tree.c: Likewise.
24860         * profile.c: Likewise.
24861         * real.c: Likewise.
24862         * realmpfr.c: Likewise.
24863         * recog.c: Likewise.
24864         * ree.c: Likewise.
24865         * reg-stack.c: Likewise.
24866         * regcprop.c: Likewise.
24867         * reginfo.c: Likewise.
24868         * regrename.c: Likewise.
24869         * regstat.c: Likewise.
24870         * reload.c: Likewise.
24871         * reload1.c: Likewise.
24872         * reorg.c: Likewise.
24873         * resource.c: Likewise.
24874         * rtl-chkp.c: Likewise.
24875         * rtl-error.c: Likewise.
24876         * rtlanal.c: Likewise.
24877         * rtlhooks.c: Likewise.
24878         * sanopt.c: Likewise.
24879         * sched-deps.c: Likewise.
24880         * sched-ebb.c: Likewise.
24881         * sched-rgn.c: Likewise.
24882         * sched-vis.c: Likewise.
24883         * sdbout.c: Likewise.
24884         * sel-sched-dump.c: Likewise.
24885         * sel-sched-ir.c: Likewise.
24886         * sel-sched.c: Likewise.
24887         * sese.c: Likewise.
24888         * shrink-wrap.c: Likewise.
24889         * simplify-rtx.c: Likewise.
24890         * stack-ptr-mod.c: Likewise.
24891         * statistics.c: Likewise.
24892         * stmt.c: Likewise.
24893         * stor-layout.c: Likewise.
24894         * store-motion.c: Likewise.
24895         * streamer-hooks.c: Likewise.
24896         * stringpool.c: Likewise.
24897         * symtab.c: Likewise.
24898         * target-globals.c: Likewise.
24899         * targhooks.c: Likewise.
24900         * toplev.c: Likewise.
24901         * tracer.c: Likewise.
24902         * trans-mem.c: Likewise.
24903         * tree-affine.c: Likewise.
24904         * tree-browser.c: Likewise.
24905         * tree-call-cdce.c: Likewise.
24906         * tree-cfg.c: Likewise.
24907         * tree-cfgcleanup.c: Likewise.
24908         * tree-chkp-opt.c: Likewise.
24909         * tree-chkp.c: Likewise.
24910         * tree-chrec.c: Likewise.
24911         * tree-complex.c: Likewise.
24912         * tree-data-ref.c: Likewise.
24913         * tree-dfa.c: Likewise.
24914         * tree-diagnostic.c: Likewise.
24915         * tree-dump.c: Likewise.
24916         * tree-eh.c: Likewise.
24917         * tree-emutls.c: Likewise.
24918         * tree-if-conv.c: Likewise.
24919         * tree-inline.c: Likewise.
24920         * tree-into-ssa.c: Likewise.
24921         * tree-iterator.c: Likewise.
24922         * tree-loop-distribution.c: Likewise.
24923         * tree-nested.c: Likewise.
24924         * tree-nrv.c: Likewise.
24925         * tree-object-size.c: Likewise.
24926         * tree-outof-ssa.c: Likewise.
24927         * tree-parloops.c: Likewise.
24928         * tree-phinodes.c: Likewise.
24929         * tree-predcom.c: Likewise.
24930         * tree-pretty-print.c: Likewise.
24931         * tree-profile.c: Likewise.
24932         * tree-scalar-evolution.c: Likewise.
24933         * tree-sra.c: Likewise.
24934         * tree-ssa-address.c: Likewise.
24935         * tree-ssa-alias.c: Likewise.
24936         * tree-ssa-ccp.c: Likewise.
24937         * tree-ssa-coalesce.c: Likewise.
24938         * tree-ssa-copy.c: Likewise.
24939         * tree-ssa-copyrename.c: Likewise.
24940         * tree-ssa-dce.c: Likewise.
24941         * tree-ssa-dom.c: Likewise.
24942         * tree-ssa-dse.c: Likewise.
24943         * tree-ssa-forwprop.c: Likewise.
24944         * tree-ssa-ifcombine.c: Likewise.
24945         * tree-ssa-live.c: Likewise.
24946         * tree-ssa-loop-ch.c: Likewise.
24947         * tree-ssa-loop-im.c: Likewise.
24948         * tree-ssa-loop-ivcanon.c: Likewise.
24949         * tree-ssa-loop-ivopts.c: Likewise.
24950         * tree-ssa-loop-manip.c: Likewise.
24951         * tree-ssa-loop-niter.c: Likewise.
24952         * tree-ssa-loop-prefetch.c: Likewise.
24953         * tree-ssa-loop-unswitch.c: Likewise.
24954         * tree-ssa-loop.c: Likewise.
24955         * tree-ssa-math-opts.c: Likewise.
24956         * tree-ssa-operands.c: Likewise.
24957         * tree-ssa-phiopt.c: Likewise.
24958         * tree-ssa-phiprop.c: Likewise.
24959         * tree-ssa-pre.c: Likewise.
24960         * tree-ssa-propagate.c: Likewise.
24961         * tree-ssa-reassoc.c: Likewise.
24962         * tree-ssa-sccvn.c: Likewise.
24963         * tree-ssa-scopedtables.c: Likewise.
24964         * tree-ssa-sink.c: Likewise.
24965         * tree-ssa-strlen.c: Likewise.
24966         * tree-ssa-structalias.c: Likewise.
24967         * tree-ssa-tail-merge.c: Likewise.
24968         * tree-ssa-ter.c: Likewise.
24969         * tree-ssa-threadedge.c: Likewise.
24970         * tree-ssa-threadupdate.c: Likewise.
24971         * tree-ssa-uncprop.c: Likewise.
24972         * tree-ssa-uninit.c: Likewise.
24973         * tree-ssa.c: Likewise.
24974         * tree-ssanames.c: Likewise.
24975         * tree-stdarg.c: Likewise.
24976         * tree-streamer-in.c: Likewise.
24977         * tree-streamer-out.c: Likewise.
24978         * tree-streamer.c: Likewise.
24979         * tree-switch-conversion.c: Likewise.
24980         * tree-tailcall.c: Likewise.
24981         * tree-vect-data-refs.c: Likewise.
24982         * tree-vect-generic.c: Likewise.
24983         * tree-vect-loop-manip.c: Likewise.
24984         * tree-vect-loop.c: Likewise.
24985         * tree-vect-patterns.c: Likewise.
24986         * tree-vect-slp.c: Likewise.
24987         * tree-vect-stmts.c: Likewise.
24988         * tree-vectorizer.c: Likewise.
24989         * tree-vrp.c: Likewise.
24990         * tree.c: Likewise.
24991         * tsan.c: Likewise.
24992         * ubsan.c: Likewise.
24993         * valtrack.c: Likewise.
24994         * value-prof.c: Likewise.
24995         * var-tracking.c: Likewise.
24996         * varasm.c: Likewise.
24997         * varpool.c: Likewise.
24998         * vmsdbgout.c: Likewise.
24999         * vtable-verify.c: Likewise.
25000         * web.c: Likewise.
25001         * wide-int.cc: Likewise.
25002         * xcoffout.c: Likewise.
25003         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
25004         * common/common-targhooks.c: Likewise.
25005         * config/aarch64/aarch64-builtins.c: Likewise.
25006         * config/aarch64/aarch64.c: Likewise.
25007         * config/alpha/alpha.c: Likewise.
25008         * config/arc/arc.c: Likewise.
25009         * config/arm/aarch-common.c: Likewise.
25010         * config/arm/arm-builtins.c: Likewise.
25011         * config/arm/arm-c.c: Likewise.
25012         * config/arm/arm.c: Likewise.
25013         * config/avr/avr-c.c: Likewise.
25014         * config/avr/avr-log.c: Likewise.
25015         * config/avr/avr.c: Likewise.
25016         * config/bfin/bfin.c: Likewise.
25017         * config/c6x/c6x.c: Likewise.
25018         * config/cr16/cr16.c: Likewise.
25019         * config/cris/cris.c: Likewise.
25020         * config/darwin-c.c: Likewise.
25021         * config/darwin.c: Likewise.
25022         * config/default-c.c: Likewise.
25023         * config/epiphany/epiphany.c: Likewise.
25024         * config/epiphany/mode-switch-use.c: Likewise.
25025         * config/epiphany/resolve-sw-modes.c: Likewise.
25026         * config/fr30/fr30.c: Likewise.
25027         * config/frv/frv.c: Likewise.
25028         * config/ft32/ft32.c: Likewise.
25029         * config/glibc-c.c: Likewise.
25030         * config/h8300/h8300.c: Likewise.
25031         * config/i386/i386-c.c: Likewise.
25032         * config/i386/i386.c: Likewise.
25033         * config/i386/msformat-c.c: Likewise.
25034         * config/i386/winnt-cxx.c: Likewise.
25035         * config/i386/winnt-stubs.c: Likewise.
25036         * config/i386/winnt.c: Likewise.
25037         * config/ia64/ia64-c.c: Likewise.
25038         * config/ia64/ia64.c: Likewise.
25039         * config/iq2000/iq2000.c: Likewise.
25040         * config/lm32/lm32.c: Likewise.
25041         * config/m32c/m32c-pragma.c: Likewise.
25042         * config/m32c/m32c.c: Likewise.
25043         * config/m32r/m32r.c: Likewise.
25044         * config/m68k/m68k.c: Likewise.
25045         * config/mcore/mcore.c: Likewise.
25046         * config/mep/mep-pragma.c: Likewise.
25047         * config/mep/mep.c: Likewise.
25048         * config/microblaze/microblaze-c.c: Likewise.
25049         * config/microblaze/microblaze.c: Likewise.
25050         * config/mips/mips.c: Likewise.
25051         * config/mmix/mmix.c: Likewise.
25052         * config/mn10300/mn10300.c: Likewise.
25053         * config/moxie/moxie.c: Likewise.
25054         * config/msp430/msp430-c.c: Likewise.
25055         * config/msp430/msp430.c: Likewise.
25056         * config/nds32/nds32-cost.c: Likewise.
25057         * config/nds32/nds32-fp-as-gp.c: Likewise.
25058         * config/nds32/nds32-intrinsic.c: Likewise.
25059         * config/nds32/nds32-isr.c: Likewise.
25060         * config/nds32/nds32-md-auxiliary.c: Likewise.
25061         * config/nds32/nds32-memory-manipulation.c: Likewise.
25062         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
25063         * config/nds32/nds32-predicates.c: Likewise.
25064         * config/nds32/nds32.c: Likewise.
25065         * config/nios2/nios2.c: Likewise.
25066         * config/nvptx/nvptx.c: Likewise.
25067         * config/pa/pa.c: Likewise.
25068         * config/pdp11/pdp11.c: Likewise.
25069         * config/rl78/rl78-c.c: Likewise.
25070         * config/rl78/rl78.c: Likewise.
25071         * config/rs6000/rs6000-c.c: Likewise.
25072         * config/rs6000/rs6000.c: Likewise.
25073         * config/rx/rx.c: Likewise.
25074         * config/s390/s390-c.c: Likewise.
25075         * config/s390/s390.c: Likewise.
25076         * config/sh/sh-c.c: Likewise.
25077         * config/sh/sh-mem.cc: Likewise.
25078         * config/sh/sh.c: Likewise.
25079         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
25080         * config/sh/sh_treg_combine.cc: Likewise.
25081         * config/sol2-c.c: Likewise.
25082         * config/sol2-cxx.c: Likewise.
25083         * config/sol2-stubs.c: Likewise.
25084         * config/sol2.c: Likewise.
25085         * config/sparc/sparc-c.c: Likewise.
25086         * config/sparc/sparc.c: Likewise.
25087         * config/spu/spu-c.c: Likewise.
25088         * config/spu/spu.c: Likewise.
25089         * config/stormy16/stormy16.c: Likewise.
25090         * config/tilegx/mul-tables.c: Likewise.
25091         * config/tilegx/tilegx-c.c: Likewise.
25092         * config/tilegx/tilegx.c: Likewise.
25093         * config/tilepro/mul-tables.c: Likewise.
25094         * config/tilepro/tilepro-c.c: Likewise.
25095         * config/tilepro/tilepro.c: Likewise.
25096         * config/v850/v850-c.c: Likewise.
25097         * config/v850/v850.c: Likewise.
25098         * config/vax/vax.c: Likewise.
25099         * config/visium/visium.c: Likewise.
25100         * config/vms/vms-c.c: Likewise.
25101         * config/vms/vms.c: Likewise.
25102         * config/vxworks.c: Likewise.
25103         * config/winnt-c.c: Likewise.
25104         * config/xtensa/xtensa.c: Likewise.
25105
25106 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
25107
25108         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
25109         function.
25110         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
25111
25112 2015-06-17  Richard Biener  <rguenther@suse.de>
25113
25114         PR tree-optimization/66251
25115         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
25116         stmts for SLP strided stores.
25117
25118         Revert
25119         2015-05-22  Richard Biener  <rguenther@suse.de>
25120
25121         PR tree-optimization/66251
25122         * tree-vect-stmts.c (vectorizable_conversion): Properly
25123         set STMT_VINFO_VEC_STMT even for the SLP case.
25124
25125         2015-05-26  Michael Matz  <matz@suse.de>
25126
25127         PR middle-end/66251
25128         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
25129         STMT_VINFO_VEC_STMT, also with SLP.
25130
25131 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
25132
25133         PR target/56766
25134         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
25135         (*avx_addsubv4df3_1s): Ditto.
25136         (*sse3_addsubv2df3_1): Ditto.
25137         (*sse3_addsubv2df3_1s): Ditto.
25138         (*avx_addsubv8sf3_1): Ditto.
25139         (*avx_addsubv8sf3_1s): Ditto.
25140         (*sse3_addsubv4sf3_1): Ditto.
25141         (*sse3_addsubv4sf3_1s): Ditto.
25142
25143 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
25144
25145         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
25146         (SYSROOT_SUFFIX_SPEC): Update.
25147         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
25148         (STARTFILE_PREFIX_SPEC): Update.
25149         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
25150         (MULTILIB_REQUIRED): New.
25151         (MULTILIB_OSDIRNAMES): New.
25152         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
25153         (MULTILIB_REQUIRED): New.
25154         (MULTILIB_OSDIRNAMES): New.
25155
25156 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
25157
25158         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
25159         * config/aarch64/aarch64-options-extensions.def: Update "fP",
25160         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
25161         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
25162         (AARCH64_FL_PAN): New.
25163         (AARCH64_FL_LOR): New.
25164         (AARCH64_FL_RDMA): New.
25165         (AARCH64_FL_FOR_ARCH8_1): New.
25166         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
25167         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
25168
25169 2015-06-16  Martin Liska  <mliska@suse.cz>
25170
25171         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
25172         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
25173         guard.
25174
25175 2015-06-16  Richard Biener  <rguenther@suse.de>
25176
25177         * tree-vect-stmts.c (vectorizable_store): Adjust.
25178         (vectorizable_load): Likewise.
25179         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25180         Simplify.
25181         (vect_create_data_ref_ptr): Likewise.
25182         (bump_vector_ptr): Adjust.
25183
25184 2015-06-16  Richard Biener  <rguenther@suse.de>
25185
25186         * tree-vect-stmts.c (vectorizable_load): Properly start loads
25187         with the first element if this is grouped loads.
25188
25189 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
25190
25191         * config/arm/arm-protos.h (struct tune_params): Rename
25192         log_op_non_sc to log_op_non_short_circuit, and rename enum
25193         values to expand SC to SHORT_CIRCUIT.
25194         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
25195         to LOG_OP_NON_SHORT_CIRCUIT.
25196         (arm_fastmul_tune):Likewise
25197         (arm_strongarm_tune): Likewise.
25198         (arm_xscale_tune): Likewise.
25199         (arm_9e_tune): Likewise.
25200         (arm_marvell_pj4_tune): Likewise.
25201         (arm_v6t2_tune): Likewise.
25202         (arm_cortex_tune): Likewise.
25203         (arm_cortex_a8_tune): Likewise.
25204         (arm_cortex_a7_tune): Likewise.
25205         (arm_cortex_a15_tune): Likewise.
25206         (arm_cortex_a53_tune): Likewise.
25207         (arm_cortex_a57_tune): Likewise.
25208         (arm_xgene1_tune): Likewise.
25209         (arm_cortex_a5_tune): Likewise.
25210         (arm_cortex_a9_tune): Likewise.
25211         (arm_cortex_a12_tune): Likewise.
25212         (arm_v7m_tune): Likewise.
25213         (arm_cortex_m7_tune): Likewise.
25214         (arm_v6m_tune): Likewise.
25215         (arm_fa726te_tune): Likewise.
25216
25217 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
25218
25219         * altivec.md: Delete UNSPEC_VMLADDUHM.
25220         (mulv4si3_p8): New pattern.
25221         (mulv4si3): Use it for POWER8.
25222         (mulv8hi3): Use vmladduhm with zero addend.
25223         (altivec_vmladduhm): Descriptive RTL.
25224
25225 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
25226
25227         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
25228         to use neon_move instead of mov_imm.
25229         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
25230         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
25231
25232         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
25233         aarch64_float_const_zero_rtx_p check before TFmode check.
25234         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
25235         an fp zero.
25236         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
25237         code and attributes to match.  Change condition from register_operand
25238         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
25239         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
25240         to store2.
25241
25242 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
25243
25244         PR debug/66535
25245         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
25246         there is no parent.
25247
25248 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
25249
25250         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
25251         HOST_WIDE_INT parameter.
25252
25253 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
25254
25255         PR ipa/66181
25256         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
25257         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
25258         TYPE_NO_FORCE_BLK.
25259         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
25260
25261 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
25262
25263         * rtl.h (classify_insn): Declare.
25264         * emit-rtl.c (classify_insn): Move to...
25265         * rtl.c: ...here and add generator support.
25266         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
25267         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
25268         * genemit.c (gen_emit_seq): New function.
25269         (gen_expand, gen_split): Use it.
25270
25271 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
25272
25273         * tree.c (make_vector_stat): Fix comment to state that the
25274         function returns a VECTOR_CST.
25275
25276 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
25277
25278         * gensupport.h (add_implicit_parallel): Declare.
25279         * genrecog.c (add_implicit_parallel): Move to...
25280         * gensupport.c (add_implicit_parallel): ...here.
25281         (process_one_cond_exec): Use it.
25282         * genemit.c (gen_insn): Likewise.
25283
25284 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
25285
25286         PR bootstrap/66448
25287         * passes.c (rest_of_decl_compilation): Do not register globals for
25288         early debug if they are declared in built-ins.
25289
25290 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
25291
25292         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
25293
25294 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25295
25296         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
25297         manually swapping.
25298         (noce_try_cmove_arith): Likewise.
25299         (noce_get_alt_condition): Likewise.
25300
25301 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
25302
25303         * common/config/i386/i386-common.c
25304         (OPTION_MASK_ISA_MWAITX_SET): New.
25305         (ix86_handle_option): Handle mwaitx.
25306         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
25307         (x86_64-*-*): Likewise.
25308         * config/i386/mwaitxintrin.h: New header.
25309         * config/i386/cpuid.h (bit_MWAITX):  Define.
25310         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
25311         MWAITX support.
25312         * config/i386/i386.opt (mwaitx): New.
25313         * config/i386/i386-builtin-types.def
25314         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
25315         * config/i386/i386-c.c: Define __MWAITX__ if needed.
25316         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
25317         (PTA_MWAITX): New.
25318         (ix86_option_override_internal): Handle new option.
25319         (processor_alias_table): Added PTA_MWAITX.
25320         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
25321         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
25322         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
25323         IX86_BUILTIN_MONITORX  built-ins.
25324         * config/i386/i386.h (TARGET_MWAITX): New.
25325         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
25326         UNSPEC_MONITORX.
25327         (mwaitx):  New pattern.
25328         (monitorx_<mode>): New pattern.
25329         * config/i386/x86intrin.h: Include mwaitxintrin.h.
25330         * doc/extend.texi: Document monitorx and mwaitx builtins.
25331         * doc/invoke.texi: Document -mmwaitx option.
25332
25333 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
25334
25335         * emit-rtl.c (need_atomic_barrier_p): Mask model with
25336         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
25337
25338 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
25339
25340         * dbxout.c (xcoff_debug_hooks): Provide a function for
25341         register_main_translation_unit hook.
25342
25343 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
25344
25345         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
25346         variants cases from switch.
25347         (rs6000_post_atomic_barrier): Same.
25348         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
25349         (rs6000_expand_atomic_exchange): Same.
25350         (rs6000_expand_atomic_op): Same.
25351         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
25352         SYNC variants cases from switch.
25353         (atomic_load): Same.
25354         (atomic_store): Same.
25355
25356 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
25357
25358         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
25359         CONST_INT for goto.
25360
25361 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
25362
25363         PR bootstrap/66448
25364         * dwarf2out.c (check_die): Check for common duplicate attributes.
25365         (add_location_or_const_value_attribute): Do not add duplicate
25366         attributes.
25367         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
25368         time around.
25369         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
25370         (gen_type_die_with_usage): Call check_die.
25371         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
25372
25373 2015-06-11  Jason Merrill  <jason@redhat.com>
25374
25375         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
25376         dies.
25377
25378 2015-06-11  Marek Polacek  <polacek@redhat.com>
25379
25380         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
25381
25382 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
25383
25384         PR bootstrap/66252
25385         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
25386         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
25387         (*addx_extend_sp32): Fix pasto.
25388         (*subx_extend): Rename into...
25389         (*subx_extend_sp32): ...this.
25390         (*adddi3_extend_sp32): Add earlyclobber.
25391         (*subdi3_insn_sp32): Likewise.
25392         (*subdi3_extend_sp32): Likewise.
25393         (*and_not_di_sp32): Likewise.
25394         (*or_not_di_sp32): Likewise.
25395         (*xor_not_di_sp32): Likewise.
25396         (*negdi2_sp32): Likewise.
25397         (*one_cmpldi2_sp32): Likewise.
25398
25399 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
25400
25401         * debug.h (struct gcc_debug_hooks): Add a
25402         register_main_translation_unit hook.
25403         * debug.c (do_nothing_debug_hooks): Provide a function for this
25404         new hook.
25405         * dbxout.c (dbx_debug_hooks): Likewise.
25406         * sdbout.c (sdb_debug_hooks): Likewise.
25407         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
25408         * dwarf2out.c (main_translation_unit): New global variable.
25409         (dwarf2out_register_main_translation_unit): New function
25410         implementing the new hook.
25411         (dwarf2_debug_hooks): Assign
25412         dwarf2out_register_main_translation_unit to this new hook.
25413         (dwarf2out_init): Associate any main translation unit to
25414         comp_unit_die ().
25415
25416 2015-06-11  Marek Polacek  <polacek@redhat.com>
25417
25418         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
25419
25420 2015-06-11  Marek Polacek  <polacek@redhat.com>
25421
25422         * match.pd: Use single_use throughout.
25423
25424 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25425
25426         * config/arm/arm.c (arm_option_params_internal): When optimising
25427         for speed set max_insns_skipped when arm_restrict_it.
25428
25429 2015-06-11  Christian Bruel  <christian.bruel@st.com>
25430
25431         PR target/52144
25432         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
25433          macros in ...
25434         (arm_cpu_builtins): New function.
25435         (arm_pragma_target_parse): Call arm_cpu_builtins.
25436         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
25437         (arm_register_target_pragmas): Likewise.
25438         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
25439          Call arm_register_target_pragmas.
25440         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
25441         (arm_pragma_target_parse): Likewise.
25442
25443 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25444
25445         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
25446         of the second operand.
25447
25448 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
25449
25450         PR target/66473
25451         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
25452         to prepare mask operand for AVX512 modes.
25453
25454 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
25455
25456         PR target/66474
25457         * doc/md.texi (Machine Constraints): Document that on the PowerPC
25458         if you use a constraint that targets a VSX register, you must use
25459         %x<n> in the template.
25460
25461 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
25462
25463         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
25464         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
25465         (define_insn "trap"): New definition.
25466
25467 2015-06-10  Richard Biener  <rguenther@suse.de>
25468
25469         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
25470         out from ...
25471         (vect_supported_load_permutation_p): ... here.  Handle
25472         supportable permutations in reductions.
25473         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
25474         for vectorizing strided group loads.
25475
25476 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
25477
25478         PR target/66470
25479         * config/i386/i386.c (ix86_split_long_move): For collisions
25480         involving direct tls segment refs, move the UNSPEC_TP possibly
25481         wrapped in ZERO_EXTEND out of the address for lea, to each of
25482         the memory loads.
25483
25484 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25485
25486         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
25487         dmb sy. Adjust tabs.
25488
25489 2015-06-10  Tom de Vries  <tom@codesourcery.com>
25490
25491         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
25492
25493 2015-06-10  Martin Liska  <mliska@suse.cz>
25494
25495         PR bootstrap/66471
25496         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
25497         all enum values in mem_alloc_origin.
25498         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
25499         name.
25500         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
25501         * bitmap.c (bitmap_register): Likewise.
25502         (dump_bitmap_statistics): Likewise.
25503         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
25504         (ggc_record_overhead): Likewise.
25505         * hash-map.h: Likewise.
25506         * hash-set.h: Likewise.
25507         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
25508         * hash-table.h: Likewise.
25509         * vec.c (vec_prefix::register_overhead): Likewise.
25510         (vec_prefix::release_overhead): Likewise.
25511         (dump_vec_loc_statistics): Likewise.
25512
25513 2015-06-09  Christian Bruel  <christian.bruel@st.com>
25514
25515         PR target/52144
25516         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
25517         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
25518         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
25519         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
25520         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
25521         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
25522         (arm_valid_target_attribute_p): Likewise.
25523         (arm_set_current_function, arm_can_inline_p): Likewise.
25524         (arm_valid_target_attribute_rec): Likewise.
25525         (arm_previous_fndecl): New variable.
25526         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
25527         (TARGET_CAN_INLINE_P): Define.
25528         (arm_asm_trampoline_template): Emit mode.
25529         (arm_file_start): Don't set unified syntax.
25530         (arm_declare_function_name): Set unified syntax and mode.
25531         (arm_option_override): Init target_option_default_node.
25532         and target_option_current_node.
25533         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
25534         (*call_symbol): Likewise.
25535         * doc/extend.texi: Document ARM/Thumb target attribute.
25536         * doc/invoke.texi: Likewise.
25537
25538 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25539
25540         Revert:
25541         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25542         PR rtl-optimization/64164
25543         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25544         * tree-ssa-copyrename.c: Removed.
25545         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25546         -ftree-coalesce-vars.
25547         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25548         * common.opt (ftree-copyrename): Ignore.
25549         (ftree-coalesce-inlined-vars): Likewise.
25550         * doc/invoke.texi: Remove the ignored options above.
25551         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25552         * tree-ssa-coalesce.h: ... here.
25553         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25554         headers required by it.
25555         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25556         across variables when flag_tree_coalesce_vars.  Check register
25557         use and promoted modes to allow coalescing.  Moved to
25558         tree-ssa-coalesce.c.
25559         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25560         with its member functions to tree-ssa-coalesce.c.
25561         (var_map_base_init): Likewise.  Renamed to
25562         compute_samebase_partition_bases.
25563         (partition_view_normal): Drop want_bases parameter.
25564         (partition_view_bitmap): Likewise.
25565         * tree-ssa-live.h: Adjust declarations.
25566         * tree-ssa-coalesce.c: Include explow.h.
25567         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25568         default defs at the entry point.
25569         (dump_part_var_map): New.
25570         (compute_optimized_partition_bases): New, called by...
25571         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25572         of compute_samebase_partition_bases.  Adjust.
25573         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25574         * cfgexpand.c (leader_merge): New.
25575         (get_rtl_for_parm_ssa_default_def): New.
25576         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25577         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25578         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25579         redundant MEM attr setting.
25580         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25581         from...
25582         (expand_one_stack_var): ... this.  New wrapper to check and
25583         skip already expanded SSA partitions.
25584         (record_alignment_for_reg_var): New, factored out of...
25585         (expand_one_var): ... this.
25586         (expand_one_ssa_partition): New.
25587         (adjust_one_expanded_partition_var): New.
25588         (expand_one_register_var): Check and skip already expanded SSA
25589         partitions.
25590         (expand_used_vars): Don't create DECLs for anonymous SSA
25591         names.  Expand all SSA partitions, then adjust all SSA names.
25592         (pass::execute): Replace the loops that set
25593         SA.partition_to_pseudo from partition leaders and cleared
25594         DECL_RTL for multi-location variables, and that which used to
25595         rename vars and set attrs, with one that clears DECL_RTL and
25596         checks that PARMs and RESULTs default_defs match DECL_RTL.
25597         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25598         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25599         * explow.c (promote_ssa_mode): New.
25600         * explow.h (promote_ssa_mode): Declare.
25601         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25602         * function.c: Include cfgexpand.h.
25603         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25604         (use_register_for_parm_decl): Wrapper for the above to
25605         special-case the result_ptr.
25606         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25607         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25608         multiple locations.
25609         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25610         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25611         (assign_parm_setup_block): Prefer SSA-assigned location.
25612         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25613         if stack_parm is NULL.
25614         (assign_parm_setup_stack): Prefer SSA-assigned location.
25615         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25616         rtl before testing for pointer bounds.  Special-case result_ptr.
25617         (expand_function_start): Maybe reset DECL_RTL of result.
25618         Prefer SSA-assigned location for result and static chain.
25619         Factor out DECL_RESULT and SET_DECL_RTL.
25620         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25621         anonymous SSA names.  Use promote_ssa_mode.
25622         (get_temp_reg): Likewise.
25623         (remove_ssa_form): Adjust.
25624         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25625         and get its reg_usage for reg invalidation.
25626         (compute_bb_dataflow): Pass it insn.
25627         (emit_notes_in_bb): Likewise.
25628         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25629         fail assert on conversion between unsigned types.
25630
25631 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25632
25633         PR tree-optimization/65460
25634         * omp-low.c (expand_omp_target): Set parallelized_function on
25635         cgraph_node for child_fn.
25636
25637 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25638
25639         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
25640         parallelized_function before add_new_function.
25641
25642 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
25643
25644         * gcc-plugin.h: Move decls to plugin.h and include it.
25645         * plugin.h: Relocate decls from gcc-plugin.h
25646         * ggc-page.c: Include required header files.
25647         * passes.c: Likewise.
25648         * cgraphunit.c: Likewise.
25649
25650 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25651
25652         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
25653
25654 2015-06-09  Jason Merrill  <jason@redhat.com>
25655
25656         PR bootstrap/66448
25657         * toplev.c (check_global_declaration): Don't warn about a clone.
25658
25659 2015-06-09  Marek Polacek  <polacek@redhat.com>
25660
25661         PR tree-optimization/66299
25662         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
25663         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
25664         patterns.
25665
25666 2015-06-09  Richard Biener  <rguenther@suse.de>
25667
25668         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
25669         (vect_analyze_slp_instance): Instead do not falsely drop
25670         load permutations.
25671
25672 2015-06-09  Richard Biener  <rguenther@suse.de>
25673
25674         PR middle-end/66423
25675         * match.pd: Handle A % (unsigned)(1 << B).
25676
25677 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
25678
25679         * varasm.c (output_object_block_htab): Remove.
25680         (output_object_block_compare): New.
25681         (output_object_blocks): Sort named object_blocks before outputting
25682         them.
25683
25684 2015-06-09  Richard Biener  <rguenther@suse.de>
25685
25686         PR tree-optimization/66419
25687         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
25688         consider GROUP_GAP when detecting a perfect subchain.
25689
25690 2015-06-09  Nick Clifton  <nickc@redhat.com>
25691
25692         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
25693         place read only data in the .frodata section.
25694
25695 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
25696
25697         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
25698         (atomic_store<mode>): Likewise.
25699
25700 2015-06-09  Richard Biener  <rguenther@suse.de>
25701
25702         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
25703
25704 2015-06-09  Richard Biener  <rguenther@suse.de>
25705
25706         PR middle-end/66413
25707         * tree-inline.c (insert_init_debug_bind): Unshare value.
25708
25709 2015-06-09  Richard Biener  <rguenther@suse.de>
25710
25711         PR tree-optimization/66396
25712         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
25713         Rename virtual operands.
25714
25715 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25716
25717         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
25718         always return false.
25719
25720 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25721
25722         PR rtl-optimization/64164
25723         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25724         * tree-ssa-copyrename.c: Removed.
25725         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25726         -ftree-coalesce-vars.
25727         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25728         * common.opt (ftree-copyrename): Ignore.
25729         (ftree-coalesce-inlined-vars): Likewise.
25730         * doc/invoke.texi: Remove the ignored options above.
25731         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25732         * tree-ssa-coalesce.h: ... here.
25733         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25734         headers required by it.
25735         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25736         across variables when flag_tree_coalesce_vars.  Check register
25737         use and promoted modes to allow coalescing.  Moved to
25738         tree-ssa-coalesce.c.
25739         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25740         with its member functions to tree-ssa-coalesce.c.
25741         (var_map_base_init): Likewise.  Renamed to
25742         compute_samebase_partition_bases.
25743         (partition_view_normal): Drop want_bases parameter.
25744         (partition_view_bitmap): Likewise.
25745         * tree-ssa-live.h: Adjust declarations.
25746         * tree-ssa-coalesce.c: Include explow.h.
25747         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25748         default defs at the entry point.
25749         (dump_part_var_map): New.
25750         (compute_optimized_partition_bases): New, called by...
25751         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25752         of compute_samebase_partition_bases.  Adjust.
25753         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25754         * cfgexpand.c (leader_merge): New.
25755         (get_rtl_for_parm_ssa_default_def): New.
25756         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25757         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25758         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25759         redundant MEM attr setting.
25760         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25761         from...
25762         (expand_one_stack_var): ... this.  New wrapper to check and
25763         skip already expanded SSA partitions.
25764         (record_alignment_for_reg_var): New, factored out of...
25765         (expand_one_var): ... this.
25766         (expand_one_ssa_partition): New.
25767         (adjust_one_expanded_partition_var): New.
25768         (expand_one_register_var): Check and skip already expanded SSA
25769         partitions.
25770         (expand_used_vars): Don't create DECLs for anonymous SSA
25771         names.  Expand all SSA partitions, then adjust all SSA names.
25772         (pass::execute): Replace the loops that set
25773         SA.partition_to_pseudo from partition leaders and cleared
25774         DECL_RTL for multi-location variables, and that which used to
25775         rename vars and set attrs, with one that clears DECL_RTL and
25776         checks that PARMs and RESULTs default_defs match DECL_RTL.
25777         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25778         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25779         * explow.c (promote_ssa_mode): New.
25780         * explow.h (promote_ssa_mode): Declare.
25781         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25782         * function.c: Include cfgexpand.h.
25783         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25784         (use_register_for_parm_decl): Wrapper for the above to
25785         special-case the result_ptr.
25786         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25787         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25788         multiple locations.
25789         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25790         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25791         (assign_parm_setup_block): Prefer SSA-assigned location.
25792         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25793         if stack_parm is NULL.
25794         (assign_parm_setup_stack): Prefer SSA-assigned location.
25795         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25796         rtl before testing for pointer bounds.  Special-case result_ptr.
25797         (expand_function_start): Maybe reset DECL_RTL of result.
25798         Prefer SSA-assigned location for result and static chain.
25799         Factor out DECL_RESULT and SET_DECL_RTL.
25800         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25801         anonymous SSA names.  Use promote_ssa_mode.
25802         (get_temp_reg): Likewise.
25803         (remove_ssa_form): Adjust.
25804         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25805         and get its reg_usage for reg invalidation.
25806         (compute_bb_dataflow): Pass it insn.
25807         (emit_notes_in_bb): Likewise.
25808         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25809         fail assert on conversion between unsigned types.
25810
25811 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25812
25813         PR debug/58315
25814         * tree-inline.c (reset_debug_binding): New.
25815         (reset_debug_bindings): Likewise.
25816         (expand_call_inline): Call it.
25817
25818 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25819
25820         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
25821         TYPE_STRING_FLAG.
25822
25823 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25824
25825         * lto-streamer-out.c (lto_output_location): Stream
25826         reserved locations correctly.
25827         * lto-streamer-in.c (lto_output_location): Likewise.
25828
25829 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
25830
25831         * coretypes.h: Include hash-table.h and hash-set.h for host files.
25832         * ggc.h: Don't include statistics.h>
25833         * hash-map.h: Remove all includes.
25834         * hash-set.h: Likewise.
25835         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
25836         the include list. Remove <new>.
25837         * inchash.h: Remove all includes.
25838         * mem-stats.h: Likewise.
25839         * vec.h: No special processing for generators or ggc.
25840         * alias.c : Adjust include files.
25841         * alloc-pool.c : Likewise.
25842         * alloc-pool.h : Likewise.
25843         * asan.c : Likewise.
25844         * attribs.c : Likewise.
25845         * auto-inc-dec.c : Likewise.
25846         * auto-profile.c : Likewise.
25847         * bb-reorder.c : Likewise.
25848         * bitmap.c : Likewise.
25849         * bitmap.h : Likewise.
25850         * bt-load.c : Likewise.
25851         * builtins.c : Likewise.
25852         * caller-save.c : Likewise.
25853         * calls.c : Likewise.
25854         * ccmp.c : Likewise.
25855         * cfg.c : Likewise.
25856         * cfganal.c : Likewise.
25857         * cfgbuild.c : Likewise.
25858         * cfgcleanup.c : Likewise.
25859         * cfgexpand.c : Likewise.
25860         * cfghooks.c : Likewise.
25861         * cfgloop.c : Likewise.
25862         * cfgloop.h : Likewise.
25863         * cfgloopanal.c : Likewise.
25864         * cfgloopmanip.c : Likewise.
25865         * cfgrtl.c : Likewise.
25866         * cgraph.c : Likewise.
25867         * cgraphbuild.c : Likewise.
25868         * cgraphclones.c : Likewise.
25869         * cgraphunit.c : Likewise.
25870         * cilk-common.c : Likewise.
25871         * combine-stack-adj.c : Likewise.
25872         * combine.c : Likewise.
25873         * compare-elim.c : Likewise.
25874         * context.c : Likewise.
25875         * convert.c : Likewise.
25876         * coverage.c : Likewise.
25877         * cppbuiltin.c : Likewise.
25878         * cprop.c : Likewise.
25879         * cse.c : Likewise.
25880         * cselib.c : Likewise.
25881         * data-streamer-in.c : Likewise.
25882         * data-streamer-out.c : Likewise.
25883         * data-streamer.c : Likewise.
25884         * data-streamer.h : Likewise.
25885         * dbxout.c : Likewise.
25886         * dce.c : Likewise.
25887         * ddg.c : Likewise.
25888         * debug.c : Likewise.
25889         * df-core.c : Likewise.
25890         * df-problems.c : Likewise.
25891         * df-scan.c : Likewise.
25892         * df.h : Likewise.
25893         * dfp.c : Likewise.
25894         * dojump.c : Likewise.
25895         * dominance.c : Likewise.
25896         * domwalk.c : Likewise.
25897         * double-int.c : Likewise.
25898         * dse.c : Likewise.
25899         * dumpfile.c : Likewise.
25900         * dwarf2asm.c : Likewise.
25901         * dwarf2cfi.c : Likewise.
25902         * dwarf2out.c : Likewise.
25903         * emit-rtl.c : Likewise.
25904         * et-forest.c : Likewise.
25905         * except.c : Likewise.
25906         * except.h : Likewise.
25907         * explow.c : Likewise.
25908         * expmed.c : Likewise.
25909         * expr.c : Likewise.
25910         * final.c : Likewise.
25911         * fixed-value.c : Likewise.
25912         * fold-const.c : Likewise.
25913         * function.c : Likewise.
25914         * fwprop.c : Likewise.
25915         * gcc-plugin.h : Likewise.
25916         * gcc.c : Likewise.
25917         * gcse-common.c : Likewise.
25918         * gcse.c : Likewise.
25919         * genattrtab.c : Likewise.
25920         * genautomata.c : Likewise.
25921         * genconditions.c : Likewise.
25922         * genemit.c : Likewise.
25923         * generic-match-head.c : Likewise.
25924         * genextract.c : Likewise.
25925         * gengtype-state.c : Likewise.
25926         * gengtype.c : Likewise.
25927         * genhooks.c : Likewise.
25928         * genmatch.c : Likewise.
25929         * genmodes.c : Likewise.
25930         * genrecog.c : Likewise.
25931         * gensupport.c : Likewise.
25932         * ggc-common.c : Likewise.
25933         * ggc-internal.h : Likewise.
25934         * ggc-none.c : Likewise.
25935         * ggc-page.c : Likewise.
25936         * gimple-builder.c : Likewise.
25937         * gimple-expr.c : Likewise.
25938         * gimple-fold.c : Likewise.
25939         * gimple-iterator.c : Likewise.
25940         * gimple-low.c : Likewise.
25941         * gimple-match-head.c : Likewise.
25942         * gimple-pretty-print.c : Likewise.
25943         * gimple-ssa-isolate-paths.c : Likewise.
25944         * gimple-ssa-strength-reduction.c : Likewise.
25945         * gimple-ssa.h : Likewise.
25946         * gimple-streamer-in.c : Likewise.
25947         * gimple-streamer-out.c : Likewise.
25948         * gimple-streamer.h : Likewise.
25949         * gimple-walk.c : Likewise.
25950         * gimple.c : Likewise.
25951         * gimplify-me.c : Likewise.
25952         * gimplify.c : Likewise.
25953         * godump.c : Likewise.
25954         * graph.c : Likewise.
25955         * graphds.c : Likewise.
25956         * graphite-blocking.c : Likewise.
25957         * graphite-dependences.c : Likewise.
25958         * graphite-interchange.c : Likewise.
25959         * graphite-isl-ast-to-gimple.c : Likewise.
25960         * graphite-optimize-isl.c : Likewise.
25961         * graphite-poly.c : Likewise.
25962         * graphite-scop-detection.c : Likewise.
25963         * graphite-sese-to-poly.c : Likewise.
25964         * graphite.c : Likewise.
25965         * haifa-sched.c : Likewise.
25966         * hard-reg-set.h : Likewise.
25967         * hw-doloop.c : Likewise.
25968         * ifcvt.c : Likewise.
25969         * inchash.c : Likewise.
25970         * incpath.c : Likewise.
25971         * init-regs.c : Likewise.
25972         * input.c : Likewise.
25973         * internal-fn.c : Likewise.
25974         * ipa-chkp.c : Likewise.
25975         * ipa-comdats.c : Likewise.
25976         * ipa-cp.c : Likewise.
25977         * ipa-devirt.c : Likewise.
25978         * ipa-icf-gimple.c : Likewise.
25979         * ipa-icf.c : Likewise.
25980         * ipa-inline-analysis.c : Likewise.
25981         * ipa-inline-transform.c : Likewise.
25982         * ipa-inline.c : Likewise.
25983         * ipa-polymorphic-call.c : Likewise.
25984         * ipa-profile.c : Likewise.
25985         * ipa-prop.c : Likewise.
25986         * ipa-pure-const.c : Likewise.
25987         * ipa-ref.c : Likewise.
25988         * ipa-reference.c : Likewise.
25989         * ipa-split.c : Likewise.
25990         * ipa-utils.c : Likewise.
25991         * ipa-visibility.c : Likewise.
25992         * ipa.c : Likewise.
25993         * ira-build.c : Likewise.
25994         * ira-color.c : Likewise.
25995         * ira-conflicts.c : Likewise.
25996         * ira-costs.c : Likewise.
25997         * ira-emit.c : Likewise.
25998         * ira-lives.c : Likewise.
25999         * ira.c : Likewise.
26000         * jump.c : Likewise.
26001         * langhooks.c : Likewise.
26002         * lcm.c : Likewise.
26003         * libfuncs.h : Likewise.
26004         * lists.c : Likewise.
26005         * loop-doloop.c : Likewise.
26006         * loop-init.c : Likewise.
26007         * loop-invariant.c : Likewise.
26008         * loop-iv.c : Likewise.
26009         * loop-unroll.c : Likewise.
26010         * lower-subreg.c : Likewise.
26011         * lra-assigns.c : Likewise.
26012         * lra-coalesce.c : Likewise.
26013         * lra-constraints.c : Likewise.
26014         * lra-eliminations.c : Likewise.
26015         * lra-lives.c : Likewise.
26016         * lra-remat.c : Likewise.
26017         * lra-spills.c : Likewise.
26018         * lra.c : Likewise.
26019         * lto-cgraph.c : Likewise.
26020         * lto-compress.c : Likewise.
26021         * lto-opts.c : Likewise.
26022         * lto-section-in.c : Likewise.
26023         * lto-section-out.c : Likewise.
26024         * lto-streamer-in.c : Likewise.
26025         * lto-streamer-out.c : Likewise.
26026         * lto-streamer.c : Likewise.
26027         * lto-streamer.h : Likewise.
26028         * mcf.c : Likewise.
26029         * mode-switching.c : Likewise.
26030         * modulo-sched.c : Likewise.
26031         * omega.c : Likewise.
26032         * omp-low.c : Likewise.
26033         * optabs.c : Likewise.
26034         * opts-global.c : Likewise.
26035         * opts.h : Likewise.
26036         * passes.c : Likewise.
26037         * plugin.c : Likewise.
26038         * postreload-gcse.c : Likewise.
26039         * postreload.c : Likewise.
26040         * predict.c : Likewise.
26041         * print-rtl.c : Likewise.
26042         * print-tree.c : Likewise.
26043         * profile.c : Likewise.
26044         * read-md.c : Likewise.
26045         * read-md.h : Likewise.
26046         * read-rtl.c : Likewise.
26047         * real.c : Likewise.
26048         * realmpfr.c : Likewise.
26049         * recog.c : Likewise.
26050         * ree.c : Likewise.
26051         * reg-stack.c : Likewise.
26052         * regcprop.c : Likewise.
26053         * reginfo.c : Likewise.
26054         * regrename.c : Likewise.
26055         * regstat.c : Likewise.
26056         * reload.c : Likewise.
26057         * reload1.c : Likewise.
26058         * reorg.c : Likewise.
26059         * resource.c : Likewise.
26060         * rtl-chkp.c : Likewise.
26061         * rtl.c : Likewise.
26062         * rtl.h : Likewise.
26063         * rtlanal.c : Likewise.
26064         * rtlhash.c : Likewise.
26065         * rtlhash.h : Likewise.
26066         * rtlhooks.c : Likewise.
26067         * sanopt.c : Likewise.
26068         * sched-deps.c : Likewise.
26069         * sched-ebb.c : Likewise.
26070         * sched-rgn.c : Likewise.
26071         * sched-vis.c : Likewise.
26072         * sdbout.c : Likewise.
26073         * sel-sched-dump.c : Likewise.
26074         * sel-sched-ir.c : Likewise.
26075         * sel-sched-ir.h : Likewise.
26076         * sel-sched.c : Likewise.
26077         * sese.c : Likewise.
26078         * shrink-wrap.c : Likewise.
26079         * shrink-wrap.h : Likewise.
26080         * simplify-rtx.c : Likewise.
26081         * stack-ptr-mod.c : Likewise.
26082         * statistics.c : Likewise.
26083         * stmt.c : Likewise.
26084         * stor-layout.c : Likewise.
26085         * store-motion.c : Likewise.
26086         * stringpool.c : Likewise.
26087         * symtab.c : Likewise.
26088         * target-globals.c : Likewise.
26089         * targhooks.c : Likewise.
26090         * tlink.c : Likewise.
26091         * toplev.c : Likewise.
26092         * tracer.c : Likewise.
26093         * trans-mem.c : Likewise.
26094         * tree-affine.c : Likewise.
26095         * tree-affine.h : Likewise.
26096         * tree-browser.c : Likewise.
26097         * tree-call-cdce.c : Likewise.
26098         * tree-cfg.c : Likewise.
26099         * tree-cfgcleanup.c : Likewise.
26100         * tree-chkp-opt.c : Likewise.
26101         * tree-chkp.c : Likewise.
26102         * tree-chrec.c : Likewise.
26103         * tree-complex.c : Likewise.
26104         * tree-data-ref.c : Likewise.
26105         * tree-dfa.c : Likewise.
26106         * tree-diagnostic.c : Likewise.
26107         * tree-dump.c : Likewise.
26108         * tree-eh.c : Likewise.
26109         * tree-eh.h : Likewise.
26110         * tree-emutls.c : Likewise.
26111         * tree-hasher.h : Likewise.
26112         * tree-if-conv.c : Likewise.
26113         * tree-inline.c : Likewise.
26114         * tree-inline.h : Likewise.
26115         * tree-into-ssa.c : Likewise.
26116         * tree-iterator.c : Likewise.
26117         * tree-loop-distribution.c : Likewise.
26118         * tree-nested.c : Likewise.
26119         * tree-nrv.c : Likewise.
26120         * tree-object-size.c : Likewise.
26121         * tree-outof-ssa.c : Likewise.
26122         * tree-parloops.c : Likewise.
26123         * tree-phinodes.c : Likewise.
26124         * tree-predcom.c : Likewise.
26125         * tree-pretty-print.c : Likewise.
26126         * tree-profile.c : Likewise.
26127         * tree-scalar-evolution.c : Likewise.
26128         * tree-sra.c : Likewise.
26129         * tree-ssa-address.c : Likewise.
26130         * tree-ssa-alias.c : Likewise.
26131         * tree-ssa-ccp.c : Likewise.
26132         * tree-ssa-coalesce.c : Likewise.
26133         * tree-ssa-copy.c : Likewise.
26134         * tree-ssa-copyrename.c : Likewise.
26135         * tree-ssa-dce.c : Likewise.
26136         * tree-ssa-dom.c : Likewise.
26137         * tree-ssa-dse.c : Likewise.
26138         * tree-ssa-forwprop.c : Likewise.
26139         * tree-ssa-ifcombine.c : Likewise.
26140         * tree-ssa-live.c : Likewise.
26141         * tree-ssa-loop-ch.c : Likewise.
26142         * tree-ssa-loop-im.c : Likewise.
26143         * tree-ssa-loop-ivcanon.c : Likewise.
26144         * tree-ssa-loop-ivopts.c : Likewise.
26145         * tree-ssa-loop-manip.c : Likewise.
26146         * tree-ssa-loop-niter.c : Likewise.
26147         * tree-ssa-loop-prefetch.c : Likewise.
26148         * tree-ssa-loop-unswitch.c : Likewise.
26149         * tree-ssa-loop.c : Likewise.
26150         * tree-ssa-math-opts.c : Likewise.
26151         * tree-ssa-operands.c : Likewise.
26152         * tree-ssa-phiopt.c : Likewise.
26153         * tree-ssa-phiprop.c : Likewise.
26154         * tree-ssa-pre.c : Likewise.
26155         * tree-ssa-propagate.c : Likewise.
26156         * tree-ssa-reassoc.c : Likewise.
26157         * tree-ssa-sccvn.c : Likewise.
26158         * tree-ssa-scopedtables.c : Likewise.
26159         * tree-ssa-sink.c : Likewise.
26160         * tree-ssa-strlen.c : Likewise.
26161         * tree-ssa-structalias.c : Likewise.
26162         * tree-ssa-tail-merge.c : Likewise.
26163         * tree-ssa-ter.c : Likewise.
26164         * tree-ssa-threadedge.c : Likewise.
26165         * tree-ssa-threadupdate.c : Likewise.
26166         * tree-ssa-uncprop.c : Likewise.
26167         * tree-ssa-uninit.c : Likewise.
26168         * tree-ssa.c : Likewise.
26169         * tree-ssanames.c : Likewise.
26170         * tree-stdarg.c : Likewise.
26171         * tree-streamer-in.c : Likewise.
26172         * tree-streamer-out.c : Likewise.
26173         * tree-streamer.c : Likewise.
26174         * tree-streamer.h : Likewise.
26175         * tree-switch-conversion.c : Likewise.
26176         * tree-tailcall.c : Likewise.
26177         * tree-vect-data-refs.c : Likewise.
26178         * tree-vect-generic.c : Likewise.
26179         * tree-vect-loop-manip.c : Likewise.
26180         * tree-vect-loop.c : Likewise.
26181         * tree-vect-patterns.c : Likewise.
26182         * tree-vect-slp.c : Likewise.
26183         * tree-vect-stmts.c : Likewise.
26184         * tree-vectorizer.c : Likewise.
26185         * tree-vectorizer.h : Likewise.
26186         * tree-vrp.c : Likewise.
26187         * tree.c : Likewise.
26188         * tsan.c : Likewise.
26189         * ubsan.c : Likewise.
26190         * valtrack.c : Likewise.
26191         * valtrack.h : Likewise.
26192         * value-prof.c : Likewise.
26193         * var-tracking.c : Likewise.
26194         * varasm.c : Likewise.
26195         * varpool.c : Likewise.
26196         * vec.c: Likewise.
26197         * vmsdbgout.c : Likewise.
26198         * vtable-verify.c : Likewise.
26199         * vtable-verify.h : Likewise.
26200         * web.c : Likewise.
26201         * wide-int.cc : Likewise.
26202         * xcoffout.c : Likewise.
26203         * config/aarch64/aarch64-builtins.c : Likewise.
26204         * config/aarch64/aarch64.c : Likewise.
26205         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
26206         * config/alpha/alpha.c : Likewise.
26207         * config/arc/arc.c : Likewise.
26208         * config/arm/aarch-common.c : Likewise.
26209         * config/arm/arm-builtins.c : Likewise.
26210         * config/arm/arm-c.c : Likewise.
26211         * config/arm/arm.c : Likewise.
26212         * config/avr/avr-c.c : Likewise.
26213         * config/avr/avr-log.c : Likewise.
26214         * config/avr/avr.c : Likewise.
26215         * config/bfin/bfin.c : Likewise.
26216         * config/c6x/c6x.c : Likewise.
26217         * config/cr16/cr16.c : Likewise.
26218         * config/cris/cris.c : Likewise.
26219         * config/darwin-c.c : Likewise.
26220         * config/darwin.c : Likewise.
26221         * config/default-c.c : Likewise.
26222         * config/epiphany/epiphany.c : Likewise.
26223         * config/epiphany/mode-switch-use.c : Likewise.
26224         * config/epiphany/resolve-sw-modes.c : Likewise.
26225         * config/fr30/fr30.c : Likewise.
26226         * config/frv/frv.c : Likewise.
26227         * config/ft32/ft32.c : Likewise.
26228         * config/glibc-c.c : Likewise.
26229         * config/h8300/h8300.c : Likewise.
26230         * config/i386/i386-c.c : Likewise.
26231         * config/i386/i386.c : Likewise.
26232         * config/i386/msformat-c.c : Likewise.
26233         * config/i386/winnt-cxx.c : Likewise.
26234         * config/i386/winnt-stubs.c : Likewise.
26235         * config/i386/winnt.c : Likewise.
26236         * config/ia64/ia64-c.c : Likewise.
26237         * config/ia64/ia64.c : Likewise.
26238         * config/iq2000/iq2000.c : Likewise.
26239         * config/lm32/lm32.c : Likewise.
26240         * config/m32c/m32c-pragma.c : Likewise.
26241         * config/m32c/m32c.c : Likewise.
26242         * config/m32r/m32r.c : Likewise.
26243         * config/m68k/m68k.c : Likewise.
26244         * config/mcore/mcore.c : Likewise.
26245         * config/mep/mep-pragma.c : Likewise.
26246         * config/mep/mep.c : Likewise.
26247         * config/microblaze/microblaze-c.c : Likewise.
26248         * config/microblaze/microblaze.c : Likewise.
26249         * config/mips/mips.c : Likewise.
26250         * config/mmix/mmix.c : Likewise.
26251         * config/mn10300/mn10300.c : Likewise.
26252         * config/moxie/moxie.c : Likewise.
26253         * config/msp430/msp430-c.c : Likewise.
26254         * config/msp430/msp430.c : Likewise.
26255         * config/nds32/nds32-cost.c : Likewise.
26256         * config/nds32/nds32-fp-as-gp.c : Likewise.
26257         * config/nds32/nds32-intrinsic.c : Likewise.
26258         * config/nds32/nds32-isr.c : Likewise.
26259         * config/nds32/nds32-md-auxiliary.c : Likewise.
26260         * config/nds32/nds32-memory-manipulation.c : Likewise.
26261         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
26262         * config/nds32/nds32-predicates.c : Likewise.
26263         * config/nds32/nds32.c : Likewise.
26264         * config/nios2/nios2.c : Likewise.
26265         * config/nvptx/nvptx.c : Likewise.
26266         * config/pa/pa.c : Likewise.
26267         * config/pdp11/pdp11.c : Likewise.
26268         * config/rl78/rl78-c.c : Likewise.
26269         * config/rl78/rl78.c : Likewise.
26270         * config/rs6000/rs6000-c.c : Likewise.
26271         * config/rs6000/rs6000.c : Likewise.
26272         * config/rx/rx.c : Likewise.
26273         * config/s390/s390-c.c : Likewise.
26274         * config/s390/s390.c : Likewise.
26275         * config/sh/sh-c.c : Likewise.
26276         * config/sh/sh-mem.cc : Likewise.
26277         * config/sh/sh.c : Likewise.
26278         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
26279         * config/sh/sh_treg_combine.cc : Likewise.
26280         * config/sol2-c.c : Likewise.
26281         * config/sol2-cxx.c : Likewise.
26282         * config/sol2-stubs.c : Likewise.
26283         * config/sol2.c : Likewise.
26284         * config/sparc/sparc-c.c : Likewise.
26285         * config/sparc/sparc.c : Likewise.
26286         * config/spu/spu-c.c : Likewise.
26287         * config/spu/spu.c : Likewise.
26288         * config/stormy16/stormy16.c : Likewise.
26289         * config/tilegx/mul-tables.c : Likewise.
26290         * config/tilegx/tilegx-c.c : Likewise.
26291         * config/tilegx/tilegx.c : Likewise.
26292         * config/tilepro/mul-tables.c : Likewise.
26293         * config/tilepro/tilepro-c.c : Likewise.
26294         * config/tilepro/tilepro.c : Likewise.
26295         * config/v850/v850-c.c : Likewise.
26296         * config/v850/v850.c : Likewise.
26297         * config/vax/vax.c : Likewise.
26298         * config/visium/visium.c : Likewise.
26299         * config/vms/vms-c.c : Likewise.
26300         * config/vms/vms.c : Likewise.
26301         * config/vxworks.c : Likewise.
26302         * config/winnt-c.c : Likewise.
26303         * config/xtensa/xtensa.c : Likewise.
26304
26305 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
26306
26307         PR lto/65378
26308         * ipa-utils.h (warn_types_mismatch): Update prototype.
26309         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
26310         parameters.
26311         (type_mismatch_p): New function.
26312         (warn_types_mismatch): Reorg to work better on non-C++ types.
26313         (odr_types_equivalent_p): Add loc1/loc2 parameters.
26314         (add_type_duplicate): Update.
26315
26316 2015-06-08  Tom de Vries  <tom@codesourcery.com>
26317
26318         PR rtl-optimization/66444
26319         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
26320         call_used_regs.
26321
26322 2015-06-08  Richard Biener  <rguenther@suse.de>
26323
26324         PR tree-optimization/66422
26325         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
26326         block after inserted gcc_unreachable.
26327
26328 2015-06-08  Nick Clifton  <nickc@redhat.com>
26329
26330         * config/rx/rx.c (rx_function_value): Do not promote vector types.
26331         (rx_promote_function_mode): Likewise.
26332         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
26333
26334 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
26335
26336         * genattrtab.c (insn_alternatives): Change type from int *
26337         to uint64_t *.
26338         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
26339         (get_attr_value): Change type of num_alt to uint64_t.
26340         (compute_alternative_mask): Change return type from
26341         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
26342         (make_alternative_compare, mk_attr_alt): Change argument type
26343         from int to uint64_t.
26344         (simplify_test_exp): Change type of i from int to uint64_t.
26345         Shift ((uint64_t) 1) instead of 1 up.
26346         (main): Adjust oballocvec first argument from int to uint64_t.
26347         Shift ((uint64_t) 1) instead of 1 up.
26348
26349 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
26350
26351         PR other/65366
26352         * gdbhooks.py: Import sys.
26353         (intptr): New function.  Replace int(...) by intptr(...).
26354
26355 2015-06-08  Richard Biener  <rguenther@suse.de>
26356
26357         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
26358         adjustment for gaps at the end of a SLP load group properly.
26359         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
26360         all permutations we can generate.
26361         (vect_transform_slp_perm_load): Use the correct group-size.
26362
26363 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
26364
26365         * genmatch.c (expr::gen_transform): For conditions, guess the type
26366         from the second operand.
26367
26368 2015-06-08  Tom de Vries  <tom@codesourcery.com>
26369
26370         PR tree-optimization/66442
26371         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
26372         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
26373         if the loop latch is not a singleton.  Use
26374         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
26375
26376 2015-06-08  Marek Polacek  <polacek@redhat.com>
26377
26378         PR sanitizer/66452
26379         * toplev.c (check_global_declaration): Don't warn about artificial
26380         decls.
26381
26382 2015-06-08  Tom de Vries  <tom@codesourcery.com>
26383
26384         PR tree-optimization/66436
26385         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
26386         dump file.
26387         * gimplify.c: Add tree-dump.h include.
26388         (gimplify_function_tree): Dump function to gimple dump file.
26389         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
26390         dump file.
26391
26392 2015-06-08  Tom de Vries  <tom@codesourcery.com>
26393
26394         PR tree-optimization/66435
26395         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
26396         function.
26397
26398 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
26399
26400         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
26401         of ptr_type_node to not be ptr_to_node.
26402         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
26403         TREE_TYPE of pointers.
26404         * gimple-expr.c (useless_type_conversion): Reorder the check for
26405         function pointers and TYPE_CANONICAL.
26406
26407 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
26408
26409         PR bootstrap/66319
26410         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
26411         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
26412         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
26413         later.
26414         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
26415         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
26416         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
26417         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
26418         and non iso if unix2003.
26419
26420 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
26421
26422         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
26423
26424 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
26425
26426         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
26427         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
26428         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
26429         except.c, final.c, function.c, gcse-common.c, genemit.c,
26430         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
26431         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
26432         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
26433         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
26434         more derived ones.
26435
26436 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
26437
26438         * combine.c (combine_split_insns): Remove cast.
26439         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
26440         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
26441         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
26442         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
26443         * genemit.c (gen_split): Change return type of generated functions to
26444         rtx_insn.
26445         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
26446         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
26447         gen_peephole2_* functions.
26448         (print_subroutine, main): Likewise.
26449         * recog.c (peephole2_optimize): Remove cast.
26450         (peep2_next_insn): Promote return type to rtx_insn.
26451         * recog.h (peep2_next_insn): Fix prototype.
26452         * rtl.h (try_split, split_insns): Likewise.
26453
26454 2015-06-06  DJ Delorie  <dj@redhat.com>
26455
26456         * config/msp430/msp430.c (msp430_asm_integer): Support addition
26457         and subtraction too.
26458
26459 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
26460
26461         PR target/66410
26462         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
26463         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
26464         instead of Snd.  Disparage Sid/z alternative with '^'.
26465
26466 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
26467
26468         * dwarf2out.c: Remove deferred_locations*.
26469         (dwarf2_debug_hooks): Add early_finish hook.
26470         Remove global_decl hook.
26471         Add early_global_decl and late_global_decl hook.
26472         New global early_dwarf.
26473         New structure set_early_dwarf.
26474         (output_die): Indicate whether a DIE was generated early
26475         when generating assembly with -dA.
26476         (struct limbo_die_struct): Document created_for field.
26477         Remove file_table_last_lookup.
26478         (remove_AT): Return TRUE if successful.
26479         (remove_child_TAG): Clear die_parent.
26480         (reparent_child): New function abstracted from...
26481         (splice_child_die): ...here.
26482         (new_die): ICE if a DIE ends up in limbo too late.
26483         (check_die): New.
26484         (defer_location): Remove.
26485         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
26486         (fill_variable_array_bounds): New.
26487         (decl_start_label): Call fill_variable_array_bounds.
26488         (gen_formal_parameter_die): Rewrite to reuse previously generated
26489         DIEs.
26490         (gen_subprogram_die): Same.
26491         (gen_variable_die): Same.
26492         (gen_const_die): Same.
26493         (gen_label_die): Same.
26494         (gen_lexical_block_die): Same.
26495         (decl_will_get_specification_p): New.
26496         (local_function_static): New.
26497         (gen_struct_or_union_type_die): Fill in variable-length fields.
26498         (gen_typedef_die): Fill in variable-length typedefs.
26499         (gen_tagged_type_die): Gracefully return on error_mark_node.
26500         Handle re-entrancy.
26501         (gen_type_die_with_usage): Handle variable-length types.
26502         Remove duplicate code for ARRAY_TYPE case.
26503         (process_scope_var): Only process imported modules during early
26504         dwarf.
26505         (dwarf2out_early_global_decl): New.
26506         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
26507         (dwarf2out_type_decl): Set early_dwarf while calling
26508         dwarf2out_decl.
26509         (dwarf2out_decl): Verify that we did not recreate a previously
26510         generated DIE.
26511         Do not return on DECL_EXTERNALs in VAR_DECLs.
26512         Abstract some code to local_function_static.
26513         (lookup_filename): Remove use of file_table_last_lookup.
26514         Gracefully exit on missing file_name.
26515         (dwarf2out_finish): Verify limbo list.
26516         Remove deferred_locations_list use.
26517         Move deferred_asm_name and limbo flushing to...
26518         (dwarf2out_early_finish): ...here.  New.
26519         (dwarf2out_c_finalize): Remove set of deferred_location_list,
26520         deferred_asm_name, and file_table_last_lookup.
26521         * cgraph.h (referred_to_p): Add default argument.
26522         * cgraphunit.c (referred_to_p): Add and handle include_self
26523         argument.
26524         (analyze_functions): Add first_time argument.
26525         Call check_global_declaration for all symbols.
26526         Call late_global_decl for nodes for moribund nodes.
26527         (finalize_compilation_unit): Add new argument to
26528         analyze_functions.
26529         Call early_global_decl for functions.
26530         Call early_finish debug hook.
26531         * dbxout.c (dbxout_early_global_decl): New.
26532         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
26533         (dbx_debug_hooks): Add new hooks.
26534         (xcoff_debug_hooks): Same.
26535         * debug.c (do_nothing_debug_hooks): Add early_finish field.
26536         Add early and late debug hooks.
26537         Remove global_decl hook.
26538         * debug.h (struct gcc_debug_hooks): Add early_finish,
26539         early_global_decl, and late_global_decl fields.
26540         Remove global_decl field.
26541         Document gcc_debug_hooks.
26542         * gengtype.c (output_typename): Remove.
26543         * godump.c (go_early_global_decl): New.
26544         (go_late_global_decl): New.
26545         (go_global_decl): Remove.
26546         (dump_go_spec_init): Remove global_decl.  Add
26547         {early,late}_global_decl.
26548         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
26549         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
26550         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
26551         (write_global_declarations): Remove.
26552         (global_decl_processing): New.
26553         * langhooks.h (struct lang_hooks_for_decls): Remove
26554         final_write_globals field.
26555         Add post_compilation_parsing_cleanups field.
26556         * passes.c (rest_of_decl_compilation): Call early_global_decl.
26557         * sdbout.c: Add early and late_global_decl hooks.  Remove
26558         sdbout_global_decl hook.
26559         Add early_finish field for sdb_debug_hooks.
26560         (sdbout_global_decl): Remove.
26561         (sdbout_early_global_decl): New.
26562         (sdbout_late_global_decl): New.
26563         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
26564         * toplev.c (check_global_declaration): Rename from
26565         check_global_declaration_1.
26566         Adapt to use symtab infrastructure.
26567         (check_global_declarations): Remove.
26568         (emit_debug_global_declarations): Remove.
26569         (compile_file): Remove call to final_write_globals langhook.
26570         Run the actual compilation process.
26571         Perform any post compilation parser cleanups.
26572         Generate late debug info.
26573         * toplev.h (check_global_declaration): New.
26574         (check_global_declaration_1): Remove.
26575         (check_global_declarations): Remove.
26576         (write_global_declarations): Remove.
26577         (emit_debug_global_declarations): Remove.
26578         (global_decl_processing): New.
26579         * tree-core.h (struct tree_block): Add DIE field.
26580         * tree.h (BLOCK_DIE): New.
26581         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
26582         throughout.
26583         (vmsdbgout_early_global_decl): New.
26584         (vmsdbgout_late_global_decl): New.
26585         Add early_finish debug hook field to vmsdbg_debug_hooks.
26586         Remove vmsdbgout_decl to vmsdbgout_function_decl.
26587         Add early and late_global_decl debug hooks.
26588
26589 2015-06-05  Julian Brown  <julian@codesourcery.com>
26590             Sandra Loosemore  <sandra@codesourcery.com>
26591
26592         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
26593         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
26594         to print-sysroot-suffix.sh script.
26595
26596 2015-06-05  Tom de Vries  <tom@codesourcery.com>
26597
26598         merge from gomp4 branch:
26599         2015-05-28  Tom de Vries  <tom@codesourcery.com>
26600
26601         PR tree-optimization/65443
26602         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
26603         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
26604         (try_transform_to_exit_first_loop_alt): New function.
26605         (transform_to_exit_first_loop): Use
26606         try_transform_to_exit_first_loop_alt.
26607
26608 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
26609
26610         * builtins.c (expand_builtin_atomic_compare_exchange): Call
26611         emit_cmp_and_jump_insns with the mode of target.
26612
26613 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26614
26615         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
26616
26617 2015-06-04  DJ Delorie  <dj@redhat.com>
26618
26619         * config/msp430/msp430.md (movsi_s): New.  Special case for
26620         storing a 20-bit symbol into a 32-bit register.
26621         * config/msp430/msp430.c (msp430_subreg): Add support for it.
26622         * config/msp430/predicates.md (msp430_symbol_operand): New.
26623
26624 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
26625
26626         * c-family/c-common.c (noplt): New attribute.
26627         (handle_noplt_attribute): New handler.
26628         * calls.c (prepare_call_address): Check for noplt
26629         attribute.
26630         * config/i386/i386.c (ix86_expand_call): Check
26631         for noplt attribute.
26632         (ix86_nopic_noplt_attribute_p): New function.
26633         (ix86_output_call_insn): Output indirect call for non-pic
26634         no plt calls.
26635         * doc/extend.texi (noplt): Document new attribute.
26636         * doc/invoke.texi: Document new attribute.
26637
26638 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
26639
26640         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
26641         real.h, and fixed-value.h when included in host source files.
26642         * double-int.h: Remove redundant #includes listed above.
26643         * fixed-value.h: Likewise.
26644         * real.h: Likewise.
26645         * wide-int.h: Likewise.
26646         * inchash.h: Likewise.
26647         * rtl.h: Add some include files When included from a generator file.
26648         * target.h: Remove wide-int.h and insn-modes.h from the include list.
26649         * internal-fn.h: Don't include coretypes.h.
26650         * alias.c: Adjust includes for restructured coretypes.h.
26651         * asan.c: Likewise.
26652         * attribs.c: Likewise.
26653         * auto-inc-dec.c: Likewise.
26654         * auto-profile.c: Likewise.
26655         * bb-reorder.c: Likewise.
26656         * bt-load.c: Likewise.
26657         * builtins.c: Likewise.
26658         * caller-save.c: Likewise.
26659         * calls.c: Likewise.
26660         * ccmp.c: Likewise.
26661         * cfg.c: Likewise.
26662         * cfganal.c: Likewise.
26663         * cfgbuild.c: Likewise.
26664         * cfgcleanup.c: Likewise.
26665         * cfgexpand.c: Likewise.
26666         * cfghooks.c: Likewise.
26667         * cfgloop.c: Likewise.
26668         * cfgloop.h: Likewise.
26669         * cfgloopanal.c: Likewise.
26670         * cfgloopmanip.c: Likewise.
26671         * cfgrtl.c: Likewise.
26672         * cgraph.c: Likewise.
26673         * cgraphbuild.c: Likewise.
26674         * cgraphclones.c: Likewise.
26675         * cgraphunit.c: Likewise.
26676         * cilk-common.c: Likewise.
26677         * combine-stack-adj.c: Likewise.
26678         * combine.c: Likewise.
26679         * compare-elim.c: Likewise.
26680         * convert.c: Likewise.
26681         * coverage.c: Likewise.
26682         * cppbuiltin.c: Likewise.
26683         * cprop.c: Likewise.
26684         * cse.c: Likewise.
26685         * cselib.c: Likewise.
26686         * data-streamer-in.c: Likewise.
26687         * data-streamer-out.c: Likewise.
26688         * data-streamer.c: Likewise.
26689         * dbxout.c: Likewise.
26690         * dce.c: Likewise.
26691         * ddg.c: Likewise.
26692         * debug.c: Likewise.
26693         * df-core.c: Likewise.
26694         * df-problems.c: Likewise.
26695         * df-scan.c: Likewise.
26696         * df.h: Likewise.
26697         * dfp.c: Likewise.
26698         * dojump.c: Likewise.
26699         * dominance.c: Likewise.
26700         * domwalk.c: Likewise.
26701         * double-int.c: Likewise.
26702         * dse.c: Likewise.
26703         * dumpfile.c: Likewise.
26704         * dwarf2asm.c: Likewise.
26705         * dwarf2cfi.c: Likewise.
26706         * dwarf2out.c: Likewise.
26707         * dwarf2out.h: Likewise.
26708         * emit-rtl.c: Likewise.
26709         * et-forest.c: Likewise.
26710         * except.c: Likewise.
26711         * explow.c: Likewise.
26712         * expmed.c: Likewise.
26713         * expr.c: Likewise.
26714         * final.c: Likewise.
26715         * fixed-value.c: Likewise.
26716         * fold-const.c: Likewise.
26717         * function.c: Likewise.
26718         * fwprop.c: Likewise.
26719         * gcc-plugin.h: Likewise.
26720         * gcse.c: Likewise.
26721         * generic-match-head.c: Likewise.
26722         * ggc-page.c: Likewise.
26723         * gimple-builder.c: Likewise.
26724         * gimple-expr.c: Likewise.
26725         * gimple-fold.c: Likewise.
26726         * gimple-iterator.c: Likewise.
26727         * gimple-low.c: Likewise.
26728         * gimple-match-head.c: Likewise.
26729         * gimple-pretty-print.c: Likewise.
26730         * gimple-ssa-isolate-paths.c: Likewise.
26731         * gimple-ssa-strength-reduction.c: Likewise.
26732         * gimple-streamer-in.c: Likewise.
26733         * gimple-streamer-out.c: Likewise.
26734         * gimple-streamer.h: Likewise.
26735         * gimple-walk.c: Likewise.
26736         * gimple.c: Likewise.
26737         * gimplify-me.c: Likewise.
26738         * gimplify.c: Likewise.
26739         * godump.c: Likewise.
26740         * graph.c: Likewise.
26741         * graphite-blocking.c: Likewise.
26742         * graphite-dependences.c: Likewise.
26743         * graphite-interchange.c: Likewise.
26744         * graphite-isl-ast-to-gimple.c: Likewise.
26745         * graphite-optimize-isl.c: Likewise.
26746         * graphite-poly.c: Likewise.
26747         * graphite-scop-detection.c: Likewise.
26748         * graphite-sese-to-poly.c: Likewise.
26749         * graphite.c: Likewise.
26750         * haifa-sched.c: Likewise.
26751         * hooks.h: Likewise.
26752         * hw-doloop.c: Likewise.
26753         * ifcvt.c: Likewise.
26754         * incpath.c: Likewise.
26755         * init-regs.c: Likewise.
26756         * internal-fn.c: Likewise.
26757         * ipa-chkp.c: Likewise.
26758         * ipa-comdats.c: Likewise.
26759         * ipa-cp.c: Likewise.
26760         * ipa-devirt.c: Likewise.
26761         * ipa-icf-gimple.c: Likewise.
26762         * ipa-icf.c: Likewise.
26763         * ipa-inline-analysis.c: Likewise.
26764         * ipa-inline-transform.c: Likewise.
26765         * ipa-inline.c: Likewise.
26766         * ipa-polymorphic-call.c: Likewise.
26767         * ipa-profile.c: Likewise.
26768         * ipa-prop.c: Likewise.
26769         * ipa-pure-const.c: Likewise.
26770         * ipa-ref.c: Likewise.
26771         * ipa-reference.c: Likewise.
26772         * ipa-split.c: Likewise.
26773         * ipa-utils.c: Likewise.
26774         * ipa-visibility.c: Likewise.
26775         * ipa.c: Likewise.
26776         * ira-build.c: Likewise.
26777         * ira-color.c: Likewise.
26778         * ira-conflicts.c: Likewise.
26779         * ira-costs.c: Likewise.
26780         * ira-emit.c: Likewise.
26781         * ira-lives.c: Likewise.
26782         * ira.c: Likewise.
26783         * jump.c: Likewise.
26784         * langhooks.c: Likewise.
26785         * lcm.c: Likewise.
26786         * loop-doloop.c: Likewise.
26787         * loop-init.c: Likewise.
26788         * loop-invariant.c: Likewise.
26789         * loop-iv.c: Likewise.
26790         * loop-unroll.c: Likewise.
26791         * lower-subreg.c: Likewise.
26792         * lra-assigns.c: Likewise.
26793         * lra-coalesce.c: Likewise.
26794         * lra-constraints.c: Likewise.
26795         * lra-eliminations.c: Likewise.
26796         * lra-lives.c: Likewise.
26797         * lra-remat.c: Likewise.
26798         * lra-spills.c: Likewise.
26799         * lra.c: Likewise.
26800         * lto-cgraph.c: Likewise.
26801         * lto-compress.c: Likewise.
26802         * lto-opts.c: Likewise.
26803         * lto-section-in.c: Likewise.
26804         * lto-section-out.c: Likewise.
26805         * lto-streamer-in.c: Likewise.
26806         * lto-streamer-out.c: Likewise.
26807         * lto-streamer.c: Likewise.
26808         * mcf.c: Likewise.
26809         * mode-switching.c: Likewise.
26810         * modulo-sched.c: Likewise.
26811         * omega.c: Likewise.
26812         * omp-low.c: Likewise.
26813         * optabs.c: Likewise.
26814         * opts-global.c: Likewise.
26815         * passes.c: Likewise.
26816         * plugin.c: Likewise.
26817         * postreload-gcse.c: Likewise.
26818         * postreload.c: Likewise.
26819         * predict.c: Likewise.
26820         * print-rtl.c: Likewise.
26821         * print-tree.c: Likewise.
26822         * profile.c: Likewise.
26823         * real.c: Likewise.
26824         * realmpfr.c: Likewise.
26825         * realmpfr.h: Likewise.
26826         * recog.c: Likewise.
26827         * ree.c: Likewise.
26828         * reg-stack.c: Likewise.
26829         * regcprop.c: Likewise.
26830         * reginfo.c: Likewise.
26831         * regrename.c: Likewise.
26832         * regs.h: Likewise.
26833         * regstat.c: Likewise.
26834         * reload.c: Likewise.
26835         * reload1.c: Likewise.
26836         * reorg.c: Likewise.
26837         * resource.c: Likewise.
26838         * rtl-chkp.c: Likewise.
26839         * rtlanal.c: Likewise.
26840         * rtlhooks.c: Likewise.
26841         * sanopt.c: Likewise.
26842         * sched-deps.c: Likewise.
26843         * sched-ebb.c: Likewise.
26844         * sched-rgn.c: Likewise.
26845         * sched-vis.c: Likewise.
26846         * sdbout.c: Likewise.
26847         * sel-sched-dump.c: Likewise.
26848         * sel-sched-ir.c: Likewise.
26849         * sel-sched.c: Likewise.
26850         * sese.c: Likewise.
26851         * shrink-wrap.c: Likewise.
26852         * shrink-wrap.h: Likewise.
26853         * simplify-rtx.c: Likewise.
26854         * stack-ptr-mod.c: Likewise.
26855         * statistics.c: Likewise.
26856         * stmt.c: Likewise.
26857         * stor-layout.c: Likewise.
26858         * store-motion.c: Likewise.
26859         * stringpool.c: Likewise.
26860         * symtab.c: Likewise.
26861         * target-globals.c: Likewise.
26862         * targhooks.c: Likewise.
26863         * toplev.c: Likewise.
26864         * tracer.c: Likewise.
26865         * trans-mem.c: Likewise.
26866         * tree-affine.c: Likewise.
26867         * tree-affine.h: Likewise.
26868         * tree-browser.c: Likewise.
26869         * tree-call-cdce.c: Likewise.
26870         * tree-cfg.c: Likewise.
26871         * tree-cfgcleanup.c: Likewise.
26872         * tree-chkp-opt.c: Likewise.
26873         * tree-chkp.c: Likewise.
26874         * tree-chrec.c: Likewise.
26875         * tree-complex.c: Likewise.
26876         * tree-data-ref.c: Likewise.
26877         * tree-dfa.c: Likewise.
26878         * tree-diagnostic.c: Likewise.
26879         * tree-dump.c: Likewise.
26880         * tree-eh.c: Likewise.
26881         * tree-emutls.c: Likewise.
26882         * tree-if-conv.c: Likewise.
26883         * tree-inline.c: Likewise.
26884         * tree-into-ssa.c: Likewise.
26885         * tree-iterator.c: Likewise.
26886         * tree-loop-distribution.c: Likewise.
26887         * tree-nested.c: Likewise.
26888         * tree-nrv.c: Likewise.
26889         * tree-object-size.c: Likewise.
26890         * tree-outof-ssa.c: Likewise.
26891         * tree-parloops.c: Likewise.
26892         * tree-phinodes.c: Likewise.
26893         * tree-predcom.c: Likewise.
26894         * tree-pretty-print.c: Likewise.
26895         * tree-pretty-print.h: Likewise.
26896         * tree-profile.c: Likewise.
26897         * tree-scalar-evolution.c: Likewise.
26898         * tree-sra.c: Likewise.
26899         * tree-ssa-address.c: Likewise.
26900         * tree-ssa-alias.c: Likewise.
26901         * tree-ssa-ccp.c: Likewise.
26902         * tree-ssa-coalesce.c: Likewise.
26903         * tree-ssa-copy.c: Likewise.
26904         * tree-ssa-copyrename.c: Likewise.
26905         * tree-ssa-dce.c: Likewise.
26906         * tree-ssa-dom.c: Likewise.
26907         * tree-ssa-dse.c: Likewise.
26908         * tree-ssa-forwprop.c: Likewise.
26909         * tree-ssa-ifcombine.c: Likewise.
26910         * tree-ssa-live.c: Likewise.
26911         * tree-ssa-loop-ch.c: Likewise.
26912         * tree-ssa-loop-im.c: Likewise.
26913         * tree-ssa-loop-ivcanon.c: Likewise.
26914         * tree-ssa-loop-ivopts.c: Likewise.
26915         * tree-ssa-loop-manip.c: Likewise.
26916         * tree-ssa-loop-niter.c: Likewise.
26917         * tree-ssa-loop-prefetch.c: Likewise.
26918         * tree-ssa-loop-unswitch.c: Likewise.
26919         * tree-ssa-loop.c: Likewise.
26920         * tree-ssa-loop.h: Likewise.
26921         * tree-ssa-math-opts.c: Likewise.
26922         * tree-ssa-operands.c: Likewise.
26923         * tree-ssa-phiopt.c: Likewise.
26924         * tree-ssa-phiprop.c: Likewise.
26925         * tree-ssa-pre.c: Likewise.
26926         * tree-ssa-propagate.c: Likewise.
26927         * tree-ssa-reassoc.c: Likewise.
26928         * tree-ssa-sccvn.c: Likewise.
26929         * tree-ssa-scopedtables.c: Likewise.
26930         * tree-ssa-sink.c: Likewise.
26931         * tree-ssa-strlen.c: Likewise.
26932         * tree-ssa-structalias.c: Likewise.
26933         * tree-ssa-tail-merge.c: Likewise.
26934         * tree-ssa-ter.c: Likewise.
26935         * tree-ssa-threadedge.c: Likewise.
26936         * tree-ssa-threadupdate.c: Likewise.
26937         * tree-ssa-uncprop.c: Likewise.
26938         * tree-ssa-uninit.c: Likewise.
26939         * tree-ssa.c: Likewise.
26940         * tree-ssanames.c: Likewise.
26941         * tree-stdarg.c: Likewise.
26942         * tree-streamer-in.c: Likewise.
26943         * tree-streamer-out.c: Likewise.
26944         * tree-streamer.c: Likewise.
26945         * tree-switch-conversion.c: Likewise.
26946         * tree-tailcall.c: Likewise.
26947         * tree-vect-data-refs.c: Likewise.
26948         * tree-vect-generic.c: Likewise.
26949         * tree-vect-loop-manip.c: Likewise.
26950         * tree-vect-loop.c: Likewise.
26951         * tree-vect-patterns.c: Likewise.
26952         * tree-vect-slp.c: Likewise.
26953         * tree-vect-stmts.c: Likewise.
26954         * tree-vectorizer.c: Likewise.
26955         * tree-vrp.c: Likewise.
26956         * tree.c: Likewise.
26957         * tsan.c: Likewise.
26958         * ubsan.c: Likewise.
26959         * valtrack.c: Likewise.
26960         * value-prof.c: Likewise.
26961         * var-tracking.c: Likewise.
26962         * varasm.c: Likewise.
26963         * varpool.c: Likewise.
26964         * vmsdbgout.c: Likewise.
26965         * vtable-verify.c: Likewise.
26966         * web.c: Likewise.
26967         * wide-int-print.cc: Likewise.
26968         * wide-int-print.h: Likewise.
26969         * wide-int.cc: Likewise.
26970         * xcoffout.c: Likewise.
26971         * config/aarch64/aarch64-builtins.c: Likewise.
26972         * config/aarch64/aarch64.c: Likewise.
26973         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26974         * config/alpha/alpha.c: Likewise.
26975         * config/arc/arc.c: Likewise.
26976         * config/arm/aarch-common.c: Likewise.
26977         * config/arm/arm-builtins.c: Likewise.
26978         * config/arm/arm-c.c: Likewise.
26979         * config/arm/arm.c: Likewise.
26980         * config/avr/avr-c.c: Likewise.
26981         * config/avr/avr-log.c: Likewise.
26982         * config/avr/avr.c: Likewise.
26983         * config/bfin/bfin.c: Likewise.
26984         * config/c6x/c6x.c: Likewise.
26985         * config/cr16/cr16.c: Likewise.
26986         * config/cris/cris.c: Likewise.
26987         * config/darwin-c.c: Likewise.
26988         * config/darwin.c: Likewise.
26989         * config/default-c.c: Likewise.
26990         * config/epiphany/epiphany.c: Likewise.
26991         * config/epiphany/mode-switch-use.c: Likewise.
26992         * config/epiphany/resolve-sw-modes.c: Likewise.
26993         * config/fr30/fr30.c: Likewise.
26994         * config/frv/frv.c: Likewise.
26995         * config/ft32/ft32.c: Likewise.
26996         * config/glibc-c.c: Likewise.
26997         * config/h8300/h8300.c: Likewise.
26998         * config/i386/i386-c.c: Likewise.
26999         * config/i386/i386.c: Likewise.
27000         * config/i386/msformat-c.c: Likewise.
27001         * config/i386/winnt-cxx.c: Likewise.
27002         * config/i386/winnt-stubs.c: Likewise.
27003         * config/i386/winnt.c: Likewise.
27004         * config/ia64/ia64-c.c: Likewise.
27005         * config/ia64/ia64.c: Likewise.
27006         * config/iq2000/iq2000.c: Likewise.
27007         * config/lm32/lm32.c: Likewise.
27008         * config/m32c/m32c-pragma.c: Likewise.
27009         * config/m32c/m32c.c: Likewise.
27010         * config/m32r/m32r.c: Likewise.
27011         * config/m68k/m68k.c: Likewise.
27012         * config/mcore/mcore.c: Likewise.
27013         * config/mep/mep-pragma.c: Likewise.
27014         * config/mep/mep.c: Likewise.
27015         * config/microblaze/microblaze-c.c: Likewise.
27016         * config/microblaze/microblaze.c: Likewise.
27017         * config/mips/mips.c: Likewise.
27018         * config/mmix/mmix.c: Likewise.
27019         * config/mn10300/mn10300.c: Likewise.
27020         * config/moxie/moxie.c: Likewise.
27021         * config/msp430/msp430-c.c: Likewise.
27022         * config/msp430/msp430.c: Likewise.
27023         * config/nds32/nds32-cost.c: Likewise.
27024         * config/nds32/nds32-fp-as-gp.c: Likewise.
27025         * config/nds32/nds32-intrinsic.c: Likewise.
27026         * config/nds32/nds32-isr.c: Likewise.
27027         * config/nds32/nds32-md-auxiliary.c: Likewise.
27028         * config/nds32/nds32-memory-manipulation.c: Likewise.
27029         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
27030         * config/nds32/nds32-predicates.c: Likewise.
27031         * config/nds32/nds32.c: Likewise.
27032         * config/nios2/nios2.c: Likewise.
27033         * config/nvptx/nvptx.c: Likewise.
27034         * config/pa/pa.c: Likewise.
27035         * config/pdp11/pdp11.c: Likewise.
27036         * config/rl78/rl78-c.c: Likewise.
27037         * config/rl78/rl78.c: Likewise.
27038         * config/rs6000/rs6000-c.c: Likewise.
27039         * config/rs6000/rs6000.c: Likewise.
27040         * config/rx/rx.c: Likewise.
27041         * config/s390/s390-c.c: Likewise.
27042         * config/s390/s390.c: Likewise.
27043         * config/sh/sh-c.c: Likewise.
27044         * config/sh/sh-mem.cc: Likewise.
27045         * config/sh/sh.c: Likewise.
27046         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
27047         * config/sh/sh_treg_combine.cc: Likewise.
27048         * config/sol2-c.c: Likewise.
27049         * config/sol2-cxx.c: Likewise.
27050         * config/sol2-stubs.c: Likewise.
27051         * config/sol2.c: Likewise.
27052         * config/sparc/sparc-c.c: Likewise.
27053         * config/sparc/sparc.c: Likewise.
27054         * config/spu/spu-c.c: Likewise.
27055         * config/spu/spu.c: Likewise.
27056         * config/stormy16/stormy16.c: Likewise.
27057         * config/tilegx/mul-tables.c: Likewise.
27058         * config/tilegx/tilegx-c.c: Likewise.
27059         * config/tilegx/tilegx.c: Likewise.
27060         * config/tilepro/mul-tables.c: Likewise.
27061         * config/tilepro/tilepro-c.c: Likewise.
27062         * config/tilepro/tilepro.c: Likewise.
27063         * config/v850/v850-c.c: Likewise.
27064         * config/v850/v850.c: Likewise.
27065         * config/vax/vax.c: Likewise.
27066         * config/visium/visium.c: Likewise.
27067         * config/vms/vms-c.c: Likewise.
27068         * config/vms/vms.c: Likewise.
27069         * config/vxworks.c: Likewise.
27070         * config/winnt-c.c: Likewise.
27071         * config/xtensa/xtensa.c: Likewise.
27072         * common/config/bfin/bfin-common.c: Likewise.
27073
27074 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
27075
27076         * tree.h (tree_code_for_canonical_type_merging): New function.
27077         * tree.c (gimple_canonical_types_compatible_p): Use
27078         tree_code_for_canonical_type_merging..
27079
27080 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27081
27082         PR c++/66192
27083         PR target/66200
27084         * doc/tm.texi: Regenerate.
27085         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
27086         * target.def (TARGET_RELAXED_ORDERING): Likewise.
27087         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
27088         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
27089         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
27090         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
27091         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
27092         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
27093         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
27094
27095 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27096
27097         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
27098         register fma steering pass.
27099         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
27100         AARCH64_TUNE_FMA_STEERING.
27101
27102 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
27103
27104         * tree.c (verify_type_variant): Verify that type and variant is
27105         compatible.
27106         (gimple_canonical_types_compatible_p): Look for main variants.
27107
27108 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
27109
27110         * config.gcc (powerpc*-*-*): Add support for a new configure
27111         option --with-advance-toolchain=<xxx> which overrides using the
27112         default header files, libraries and dynamic linker.
27113
27114         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
27115         specs to support the configure --with-advance-toolchain=<xxx>
27116         option.
27117         (INCLUDE_EXTRA_SPEC): Likewise.
27118         (LINK_OS_EXTRA_SPEC32): Likewise.
27119         (LINK_OK_EXTRA_SPEC64): Likewise.
27120         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
27121         (DYNAMIC_LINKER_PREFIX): Likewise.
27122         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
27123         toolchain support.
27124         (GLIBC_DYNAMIC_LINKER32): Likewise.
27125         (GLIBC_DYNAMIC_LINKER64): Likewise.
27126         (LINK_OS_LINUX_SPEC32): Likewise.
27127         (LINK_OS_LINUX_SPEC64): Likewise.
27128
27129         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
27130         configuration option.
27131
27132 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
27133
27134         PR target/66275
27135         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
27136         to determine current function ABI.
27137         (ix86_function_value_regno_p): Ditto.
27138
27139 2015-06-03  Martin Liska  <mliska@suse.cz>
27140
27141         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
27142         * bitmap.h (struct bitmap_usage): Likewise.
27143         * ggc-common.c (struct ggc_usage): Likewise.
27144         * mem-stats.h (struct mem_location): Likewise.
27145         (struct mem_usage): Likewise.
27146         * vec.c (struct vec_usage): Likewise.
27147
27148 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
27149
27150         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
27151         -Bsymbolic.
27152
27153 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
27154
27155         * doc/plugins.texi (enum plugin_event): New event.
27156         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
27157         and PLUGIN_FINISH_FUNCTION.
27158         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
27159         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
27160
27161 2015-06-03  Richard Biener  <rguenther@suse.de>
27162
27163         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
27164         compute GROUP_GAP for the first element.
27165         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
27166         on in-group gaps.
27167
27168 2015-06-03  Nick Clifton  <nickc@redhat.com>
27169
27170         * config/rl78/rl78-real.md: Add peepholes to avoid a register
27171         copy when calling a function.
27172         * config/rl78/rl78.c (need_to_save): Do not push the frame
27173         pointer in an interrupt handler prologue if it is never used.
27174
27175 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27176
27177         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
27178
27179 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
27180
27181         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
27182         reference when cloning alias node.
27183
27184 2015-06-03  Martin Liska  <mliska@suse.cz>
27185
27186         * alloc-pool.h (struct pool_usage): Correct space padding.
27187         * ggc-page.c (ggc_print_statistics): Align columns in a report.
27188         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
27189         * tree.c (dump_tree_statistics): Align columns in a report.
27190
27191 2015-06-03  Martin Liska  <mliska@suse.cz>
27192
27193         * alloc-pool.c (allocate_pool_descriptor): Remove.
27194         (struct pool_output_info): Likewise.
27195         (print_alloc_pool_statistics): Likewise.
27196         (dump_alloc_pool_statistics): Likewise.
27197         * alloc-pool.h (struct pool_usage): New struct.
27198         (pool_allocator::initialize): Change usage of memory statistics
27199         to a new interface.
27200         (pool_allocator::release): Likewise.
27201         (pool_allocator::allocate): Likewise.
27202         (pool_allocator::remove): Likewise.
27203         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
27204         for a pool allocator.
27205         * mem-stats.h (struct mem_location): Add new ctor.
27206         (struct mem_usage): Add counter for number of
27207         instances.
27208         (mem_alloc_description::register_descriptor): New overload of
27209         * mem-stats.h (mem_location::to_string): New function.
27210         * bitmap.h (struct bitmap_usage): Use this new function.
27211         * ggc-common.c (struct ggc_usage): Likewise.
27212         the function.
27213
27214 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
27215
27216         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
27217         of GCC_INSN_FLAGS_H block.
27218
27219 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
27220
27221         * explow.c (plus_constant): Update check after force_const_mem call
27222         to see if the value returned is not a NULL_RTX.
27223
27224 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
27225
27226         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
27227         remove instumentation thunks calling reachable functions.
27228         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
27229         * lto/lto-partition.c (privatize_symbol_name_1): New.
27230         (privatize_symbol_name): Privatize both decl and orig_decl
27231         names for instrumented functions.
27232         * cgraph.c (cgraph_node::verify_node): Add transparent
27233         alias chain check for instrumented node.
27234
27235 2015-06-03  Marek Polacek  <polacek@redhat.com>
27236
27237         PR c/64223
27238         PR c/29358
27239         * tree.c (attribute_value_equal): Handle attribute format.
27240         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
27241
27242 2015-06-03  Richard Biener  <rguenther@suse.de>
27243
27244         PR tree-optimization/63916
27245         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
27246         Forward-propagate non-invariant addresses by splicing their
27247         reference ops if the result isn't going to be used by PRE.
27248         (vn_reference_lookup_3): Remove pointless assert.
27249
27250 2015-06-03  Richard Biener  <rguenther@suse.de>
27251
27252         PR tree-optimization/66375
27253         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
27254         add to the evolution before following SSA edges.
27255
27256 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
27257
27258         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
27259         (dump_use, dump_cand, find_induction_variables): Pass new argument
27260         to dump_iv.
27261         (record_use): Preserve the ssa name information in IV.
27262
27263 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
27264
27265         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
27266         NO_MODE_TEST.
27267         (add_mode_tests): Don't add mode tests if the predicate only
27268         accepts scalar constant integers.  Otherwise, allow the mode
27269         of "op" to be VOIDmode if the predicate does accept such integers.
27270
27271 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
27272
27273         PR target/66258
27274         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
27275         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
27276         (aarch64_secondary_reload): Likewise
27277         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
27278         to !TARGET_FLOAT.
27279         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
27280         Likewise.
27281
27282 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
27283             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27284
27285         PR target/65768
27286         * cprop.c (try_replace_reg): Check cost of constants before propagating.
27287
27288 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27289
27290         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
27291         provide access to the IBM extended double floating point mode if
27292         long double is IEEE 128-bit floating point.
27293         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
27294         point if long double is the IBM extended double type.
27295
27296         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
27297         enable adding IEEE 128-bit floating point support.
27298         (-mfloat128-software): Likewise.
27299         (-mfloat128-sw): Likewise.
27300
27301         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
27302         128-bit floating point types to occupy any register if
27303         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
27304         -mfloat128-software is enabled.
27305         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
27306         support.
27307         (rs6000_option_override_internal): Add -mfloat128-* support.
27308         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
27309
27310         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
27311         and float128 type nodes.
27312         (ieee128_float_type_node): Likewise.
27313         (ibm128_float_type_node): Likewise.
27314
27315 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
27316
27317         PR target/66136
27318         * config/aarch64/geniterators.sh: Rewrite in awk.
27319
27320 2015-06-02  Martin Liska  <mliska@suse.cz>
27321
27322         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
27323         values to avoid -Wmaybe-uninitialized errors.
27324
27325 2015-06-02  Richard Biener  <rguenther@suse.de>
27326
27327         PR debug/65549
27328         * dwarf2out.c (lookup_context_die): New function.
27329         (resolve_addr): Avoid forcing a full DIE for the
27330         target of a DW_TAG_GNU_call_site during late compilation.
27331         Instead create a stub DIE without a type if we have a
27332         context DIE present.
27333
27334 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
27335
27336         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
27337
27338 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
27339
27340         PR tree-optimization/48052
27341         * cfgloop.h (struct control_iv): New.
27342         (struct loop): New field control_ivs.
27343         * tree-ssa-loop-niter.c : Include "stor-layout.h".
27344         (number_of_iterations_lt): Set no_overflow information.
27345         (number_of_iterations_exit): Init control iv in niter struct.
27346         (record_control_iv): New.
27347         (estimate_numbers_of_iterations_loop): Call record_control_iv.
27348         (loop_exits_before_overflow): New.  Interface factored out of
27349         scev_probably_wraps_p.
27350         (scev_probably_wraps_p): Factor loop niter related code into
27351         loop_exits_before_overflow.
27352         (free_numbers_of_iterations_estimates_loop): Free control ivs.
27353         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
27354
27355 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
27356
27357         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
27358         the target doesn't belong to the current function.
27359
27360 2015-06-02  Marek Polacek  <polacek@redhat.com>
27361
27362         PR middle-end/66345
27363         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
27364         get_maxval_strlen does not produce an INTEGER_CST.
27365
27366 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
27367
27368         * config/arc/constraints.md: Use lower-case names in match_code.
27369         * config/mmix/constraints.md: Likewise.
27370
27371 2015-06-02  Richard Biener  <rguenther@suse.de>
27372
27373         PR tree-optimization/65961
27374         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
27375         check and clarify dump message.
27376         (vect_build_slp_tree): If all children are built up from scalars
27377         build up the parent from scalars instead.
27378         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
27379
27380 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
27381
27382         PR other/65366
27383         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
27384         instead of print ... .
27385
27386 2015-06-02  Alan Modra  <amodra@gmail.com>
27387
27388         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
27389         2014-08-11 change.
27390
27391 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
27392
27393         PR tree-optimization/52563
27394         PR tree-optimization/62173
27395         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
27396         (alloc_iv, set_iv): New parameter.
27397         (determine_biv_step): Delete.
27398         (find_bivs): Inline original determine_biv_step.  Pass new
27399         argument to set_iv.
27400         (idx_find_step): Use no_overflow information for conversion.
27401         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
27402         resolve_mixers handle folded_casts.
27403         (instantiate_scev_name): Change bool parameter to bool pointer.
27404         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
27405         (instantiate_array_ref, instantiate_scev_not): Ditto.
27406         (instantiate_scev_3, instantiate_scev_2): Ditto.
27407         (instantiate_scev_1, instantiate_scev_r): Ditto.
27408         (instantiate_scev_convert, ): Change parameter.  Pass argument
27409         to chrec_convert_aggressive.
27410         (instantiate_scev): Change argument.
27411         (resolve_mixers): New parameter and set it.
27412         (scev_const_prop): New argument.
27413         * tree-scalar-evolution.h (resolve_mixers): New parameter.
27414         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
27415         of chrec_conert_1.
27416         (chrec_convert): New parameter.  Move definition below.
27417         (chrec_convert_aggressive): New parameter and set it.  Call
27418         convert_affine_scev.
27419         * tree-chrec.h (chrec_convert): New parameter.
27420         (chrec_convert_aggressive): Ditto.
27421
27422 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27423
27424         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
27425         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
27426         the LHS of a no-return call if its type has variable size.
27427         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
27428         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
27429
27430 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
27431
27432         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
27433         * config.in: Regenerate.
27434
27435 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27436
27437         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
27438         consecutive accesses within outer-loop with force_vectorize
27439         for references with zero step in inner-loop.
27440
27441 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
27442
27443         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
27444         rather than from gcc/build directory.
27445
27446 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
27447
27448         PR target/65697
27449         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
27450         for __sync memory models, emit initial loads and final barriers as
27451         appropriate.
27452
27453 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
27454
27455         PR target/65697
27456         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
27457         (aarch64_split_atomic_op): Check for __sync memory models, emit
27458         appropriate initial loads and final barriers.
27459
27460 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
27461
27462         * Makefile.in: Fix gcov dependencies that should
27463         not point to a build folder.
27464
27465 2015-06-01  Richard Biener  <rguenther@suse.de>
27466
27467         Revert
27468         2015-05-29  Richard Biener  <rguenther@suse.de>
27469
27470         PR tree-optimization/66314
27471         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27472         parameter that says which loop the new block belongs to.
27473         (ssa_create_duplicates): Blocks duplicated for the threaded
27474         path belong to the loop of the thread destination.
27475
27476 2015-06-01  Martin Liska  <mliska@suse.cz>
27477
27478         * sched-deps.c: Include pool-alloc.h before
27479         cselib.h header file is included.
27480
27481 2015-06-01  Richard Biener  <rguenther@suse.de>
27482
27483         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
27484         functions.
27485
27486 2015-06-01  Martin Liska  <mliska@suse.cz>
27487
27488         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
27489         a function local variable.
27490
27491 2015-06-01  Martin Liska  <mliska@suse.cz>
27492
27493         * alloc-pool.c (create_alloc_pool): Remove.
27494         (empty_alloc_pool): Likewise.
27495         (free_alloc_pool): Likewise.
27496         (free_alloc_pool_if_empty): Likewise.
27497         (pool_alloc): Likewise.
27498         (pool_free): Likewise.
27499         * alloc-pool.h: Remove old declarations.
27500
27501 2015-06-01  Martin Liska  <mliska@suse.cz>
27502
27503         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
27504         (ira_create_object): Likewise.
27505         (ira_create_allocno): Likewise.
27506         (ira_create_live_range): Likewise.
27507         (copy_live_range): Likewise.
27508         (ira_finish_live_range): Likewise.
27509         (ira_free_allocno_costs): Likewise.
27510         (finish_allocno): Likewise.
27511         (finish_allocnos): Likewise.
27512         (initiate_prefs): Likewise.
27513         (ira_create_pref): Likewise.
27514         (finish_pref): Likewise.
27515         (finish_prefs): Likewise.
27516         (initiate_copies): Likewise.
27517         (ira_create_copy): Likewise.
27518         (finish_copy): Likewise.
27519         (finish_copies): Likewise.
27520         (finish_prefs): Likewise.
27521
27522 2015-06-01  Martin Liska  <mliska@suse.cz>
27523
27524         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
27525         (allocate_and_init_ipcp_value): Likewise.
27526         (ipcp_lattice::add_value): Likewise.
27527         (merge_agg_lats_step): Likewise.
27528         (ipcp_driver): Likewise.
27529         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
27530         (ipa_free_all_structures_after_iinln): Likewise.
27531         * ipa-prop.h: Likewise.
27532
27533 2015-06-01  Martin Liska  <mliska@suse.cz>
27534
27535         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
27536         pool allocator.
27537         (set_hint_predicate): Likewise.
27538         (inline_summary_alloc): Likewise.
27539         (reset_inline_edge_summary): Likewise.
27540         (reset_inline_summary): Likewise.
27541         (set_cond_stmt_execution_predicate): Likewise.
27542         (set_switch_stmt_execution_predicate): Likewise.
27543         (compute_bb_predicates): Likewise.
27544         (estimate_function_body_sizes): Likewise.
27545         (inline_free_summary): Likewise.
27546
27547 2015-06-01  Martin Liska  <mliska@suse.cz>
27548
27549         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
27550         (ipa_edge_duplication_hook): Likewise.
27551         (ipa_free_all_structures_after_ipa_cp): Likewise.
27552         (ipa_free_all_structures_after_iinln): Likewise.
27553
27554 2015-06-01  Martin Liska  <mliska@suse.cz>
27555
27556         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
27557         (ipa_profile_generate_summary): Likewise.
27558         (ipa_profile_read_summary): Likewise.
27559         (ipa_profile): Likewise.
27560
27561 2015-06-01  Martin Liska  <mliska@suse.cz>
27562
27563         * tree-ssa-structalias.c (new_var_info): Use new type-based
27564         pool allocator.
27565         (new_constraint): Likewise.
27566         (init_alias_vars): Likewise.
27567         (delete_points_to_sets): Likewise.
27568
27569 2015-06-01  Martin Liska  <mliska@suse.cz>
27570
27571         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
27572         (free_strinfo): Likewise.
27573         (pass_strlen::execute): Likewise.
27574
27575 2015-06-01  Martin Liska  <mliska@suse.cz>
27576
27577         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
27578         pool allocator.
27579         (vn_reference_insert_pieces): Likewise.
27580         (vn_phi_insert): Likewise.
27581         (visit_reference_op_call): Likewise.
27582         (copy_phi): Likewise.
27583         (copy_reference): Likewise.
27584         (process_scc): Likewise.
27585         (allocate_vn_table): Likewise.
27586         (free_vn_table): Likewise.
27587
27588 2015-06-01  Martin Liska  <mliska@suse.cz>
27589
27590         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
27591         pool allocator.
27592         (add_repeat_to_ops_vec): Likewise.
27593         (get_ops): Likewise.
27594         (maybe_optimize_range_tests): Likewise.
27595         (init_reassoc): Likewise.
27596         (fini_reassoc): Likewise.
27597
27598 2015-06-01  Martin Liska  <mliska@suse.cz>
27599
27600         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
27601         pool allocator.
27602         (bitmap_set_new): Likewise.
27603         (get_or_alloc_expr_for_constant): Likewise.
27604         (get_or_alloc_expr_for): Likewise.
27605         (phi_translate_1): Likewise.
27606         (compute_avail): Likewise.
27607         (init_pre): Likewise.
27608         (fini_pre): Likewise.
27609
27610 2015-06-01  Martin Liska  <mliska@suse.cz>
27611
27612         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
27613         (delete_dep_node): Likewise.
27614         (create_deps_list): Likewise.
27615         (free_deps_list): Likewise.
27616         (sched_deps_init): Likewise.
27617         (sched_deps_finish): Likewise.
27618
27619 2015-06-01  Martin Liska  <mliska@suse.cz>
27620
27621         * regcprop.c (free_debug_insn_changes): Use new type-based
27622         pool allocator.
27623         (replace_oldest_value_reg): Likewise.
27624         (pass_cprop_hardreg::execute): Likewise.
27625
27626 2015-06-01  Martin Liska  <mliska@suse.cz>
27627
27628         * ira-build.c (initiate_cost_vectors): Use new type-based
27629         pool allocator.
27630         (ira_allocate_cost_vector): Likewise.
27631         (ira_free_cost_vector): Likewise.
27632         (finish_cost_vectors): Likewise.
27633
27634 2015-06-01  Martin Liska  <mliska@suse.cz>
27635
27636         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
27637         pool allocator.
27638         (free_sched_pools): Likewise.
27639         * sel-sched-ir.h (_list_alloc): Likewise.
27640         (_list_remove): Likewise.
27641
27642 2015-06-01  Martin Liska  <mliska@suse.cz>
27643
27644         * stmt.c (add_case_node): Use new type-based pool allocator.
27645         (expand_case): Likewise.
27646         (expand_sjlj_dispatch_table): Likewise.
27647
27648 2015-06-01  Martin Liska  <mliska@suse.cz>
27649
27650         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
27651         (free_bb): Likewise.
27652         (pass_cse_reciprocals::execute): Likewise.
27653
27654 2015-06-01  Martin Liska  <mliska@suse.cz>
27655
27656         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
27657         (sra_deinitialize) Likewise.
27658         (create_access_1) Likewise.
27659         (build_accesses_from_assign) Likewise.
27660         (create_artificial_child_access) Likewise.
27661
27662 2015-06-01  Martin Liska  <mliska@suse.cz>
27663
27664         * dse.c (get_group_info):Use new type-based pool allocator.
27665         (dse_step0) Likewise.
27666         (free_store_info) Likewise.
27667         (delete_dead_store_insn) Likewise.
27668         (free_read_records) Likewise.
27669         (record_store) Likewise.
27670         (replace_read) Likewise.
27671         (check_mem_read_rtx) Likewise.
27672         (scan_insn) Likewise.
27673         (dse_step1) Likewise.
27674         (dse_step7) Likewise.
27675
27676 2015-06-01  Martin Liska  <mliska@suse.cz>
27677
27678         * df-scan.c (struct df_scan_problem_data):Use new type-based
27679         pool allocator.
27680         (df_scan_free_internal) Likewise.
27681         (df_scan_alloc) Likewise.
27682         (df_grow_reg_info) Likewise.
27683         (df_free_ref) Likewise.
27684         (df_insn_create_insn_record) Likewise.
27685         (df_mw_hardreg_chain_delete) Likewise.
27686         (df_insn_info_delete) Likewise.
27687         (df_free_collection_rec) Likewise.
27688         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
27689         (df_sort_and_compress_mws) Likewise.
27690         (df_ref_create_structure) Likewise.
27691         (df_ref_record) Likewise.
27692
27693 2015-06-01  Martin Liska  <mliska@suse.cz>
27694
27695         * df-problems.c (df_chain_create):Use new type-based pool allocator.
27696         (df_chain_unlink_1) Likewise.
27697         (df_chain_unlink) Likewise.
27698         (df_chain_remove_problem) Likewise.
27699         (df_chain_alloc) Likewise.
27700         (df_chain_free) Likewise.
27701         * df.h (struct dataflow) Likewise.
27702
27703 2015-06-01  Martin Liska  <mliska@suse.cz>
27704
27705         * cselib.c (new_elt_list):Use new type-based pool allocator.
27706         (new_elt_loc_list) Likewise.
27707         (unchain_one_elt_list) Likewise.
27708         (unchain_one_elt_loc_list) Likewise.
27709         (unchain_one_value) Likewise.
27710         (new_cselib_val) Likewise.
27711         (cselib_init) Likewise.
27712         (cselib_finish) Likewise.
27713
27714 2015-06-01  Martin Liska  <mliska@suse.cz>
27715
27716         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
27717         (sh_reorg) Likewise.
27718
27719 2015-06-01  Martin Liska  <mliska@suse.cz>
27720
27721         * cfg.c (initialize_original_copy_tables):Use new type-based
27722         pool allocator.
27723         (free_original_copy_tables) Likewise.
27724         (copy_original_table_clear) Likewise.
27725         (copy_original_table_set) Likewise.
27726
27727 2015-06-01  Martin Liska  <mliska@suse.cz>
27728
27729         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
27730         pool allocator.
27731         (asan_mem_ref_new) Likewise.
27732         (free_mem_ref_resources) Likewise.
27733
27734 2015-06-01  Martin Liska  <mliska@suse.cz>
27735
27736         * var-tracking.c (variable_htab_free):Use new type-based
27737         pool allocator.
27738         (attrs_list_clear) Likewise.
27739         (attrs_list_insert) Likewise.
27740         (attrs_list_copy) Likewise.
27741         (shared_hash_unshare) Likewise.
27742         (shared_hash_destroy) Likewise.
27743         (unshare_variable) Likewise.
27744         (var_reg_delete_and_set) Likewise.
27745         (var_reg_delete) Likewise.
27746         (var_regno_delete) Likewise.
27747         (drop_overlapping_mem_locs) Likewise.
27748         (variable_union) Likewise.
27749         (insert_into_intersection) Likewise.
27750         (canonicalize_values_star) Likewise.
27751         (variable_merge_over_cur) Likewise.
27752         (dataflow_set_merge) Likewise.
27753         (remove_duplicate_values) Likewise.
27754         (variable_post_merge_new_vals) Likewise.
27755         (dataflow_set_preserve_mem_locs) Likewise.
27756         (dataflow_set_remove_mem_locs) Likewise.
27757         (variable_from_dropped) Likewise.
27758         (variable_was_changed) Likewise.
27759         (set_slot_part) Likewise.
27760         (clobber_slot_part) Likewise.
27761         (delete_slot_part) Likewise.
27762         (loc_exp_insert_dep) Likewise.
27763         (notify_dependents_of_changed_value) Likewise.
27764         (emit_notes_for_differences_1) Likewise.
27765         (vt_emit_notes) Likewise.
27766         (vt_initialize) Likewise.
27767         (vt_finalize) Likewise.
27768
27769 2015-06-01  Martin Liska  <mliska@suse.cz>
27770
27771         * ira-color.c (init_update_cost_records):Use new type-based
27772         pool allocator.
27773         (get_update_cost_record) Likewise.
27774         (free_update_cost_record_list) Likewise.
27775         (finish_update_cost_records) Likewise.
27776         (initiate_cost_update) Likewise.
27777
27778 2015-06-01  Martin Liska  <mliska@suse.cz>
27779
27780         * lra.c (init_insn_regs): Use new type-based pool allocator.
27781         (new_insn_reg) Likewise.
27782         (free_insn_reg) Likewise.
27783         (free_insn_regs) Likewise.
27784         (finish_insn_regs) Likewise.
27785         (init_insn_recog_data) Likewise.
27786         (init_reg_info) Likewise.
27787         (finish_reg_info) Likewise.
27788         (lra_free_copies) Likewise.
27789         (lra_create_copy) Likewise.
27790         (invalidate_insn_data_regno_info) Likewise.
27791
27792 2015-06-01  Martin Liska  <mliska@suse.cz>
27793
27794         * lra-lives.c (free_live_range): Use new type-based pool allocator.
27795         (free_live_range_list) Likewise.
27796         (create_live_range) Likewise.
27797         (copy_live_range) Likewise.
27798         (lra_merge_live_ranges) Likewise.
27799         (remove_some_program_points_and_update_live_ranges) Likewise.
27800         (lra_live_ranges_init) Likewise.
27801         (lra_live_ranges_finish) Likewise.
27802
27803 2015-06-01  Martin Liska  <mliska@suse.cz>
27804
27805         * et-forest.c (et_new_occ): Use new type-based pool allocator.
27806         (et_new_tree): Likewise.
27807         (et_free_tree): Likewise.
27808         (et_free_tree_force): Likewise.
27809         (et_free_pools): Likewise.
27810         (et_split): Likewise.
27811
27812 2015-06-01  Martin Liska  <mliska@suse.cz>
27813
27814         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
27815         to header file.
27816         * alloc-pool.h (pool_allocator::pool_allocator): New function.
27817         (pool_allocator::release): Likewise.
27818         (inline pool_allocator::release_if_empty): Likewise.
27819         (inline pool_allocator::~pool_allocator): Likewise.
27820         (pool_allocator::allocate): Likewise.
27821         (pool_allocator::remove): Likewise.
27822
27823 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27824
27825         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
27826         in comment.
27827
27828 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27829
27830         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
27831         to fusible_ops.
27832         * config/arm/arm.c (arm_print_tune_info): Likewise.
27833         (arm_macro_fusion_p): Likewise.
27834         (arm_macro_fusion_pair_p): Likewise.
27835
27836 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27837
27838         * config/aarch64/aarch64-protos.h (tune_params): Rename
27839         fuseable_ops to fusible_ops.
27840         * config/aarch64/aarch64.c (generic_tunings): Rename
27841         fuseable_ops to fusible_ops.
27842         (cortexa53_tunings): Likewise.
27843         (cortexa57_tunings): Likewise.
27844         (thunderx_tunings): Likewise.
27845         (xgene1_tunings): Likewise.
27846         (aarch64_macro_fusion_p): Likewise.
27847         (aarch64_macro_fusion_pair_p): Likewise.
27848
27849 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27850
27851         * config/s390/driver-native.c: New file.
27852         * config/s390/x-native: New file.
27853         * config.host: Add new files for s390.
27854         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
27855         and -march=native
27856         * config.gcc: Likewise.
27857         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
27858         * config/s390/s390-opts.h (enum processor_type): Ditto.
27859         * config/s390/s390.c (s390_option_override): Catch unhandled
27860         PROCESSOR_NATIVE
27861
27862 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
27863
27864         PR target/65527
27865         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
27866         redirection for instrumented calls.
27867         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
27868         (append_compiler_options): Append -fcheck-pointer-bounds.
27869         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
27870         (chkp_redirect_edge): New.
27871         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
27872         (chkp_redirect_edge): New.
27873
27874 2015-06-01  Richard Biener  <rguenther@suse.de>
27875
27876         PR tree-optimization/66280
27877         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
27878         def-use walking.
27879
27880 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27881
27882         * config/aarch64/aarch64.md
27883         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
27884         logic_shift_imm.
27885
27886 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27887
27888         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
27889         Remove obsolete kludge.
27890
27891 2015-06-01  Richard Biener  <rguenther@suse.de>
27892
27893         * tree-ssa-reassoc.c (get_rank): Simplify.
27894
27895 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
27896
27897         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
27898         * configure: Regenerated.
27899
27900 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
27901
27902         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
27903         issue (add space between string literal and macro).
27904         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
27905
27906 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
27907
27908         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
27909         implict or explicit -fPIE or -fpie.
27910
27911 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
27912
27913         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
27914
27915 2015-05-28  DJ Delorie  <dj@redhat.com>
27916
27917         * expmed.c (extract_bit_field_1): Avoid clobbering a
27918         yet-to-be-used base/index register.
27919
27920 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
27921
27922         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
27923         (alias_stats): Add num_universal.
27924         (alias_set_subset_of): Special case pointers; be ready for NULL
27925         children.
27926         (alias_sets_conflict_p): Special case pointers; be ready for NULL
27927         children.
27928         (init_alias_set_entry): Break out from ...
27929         (record_alias_subset): ... here; propagate new fields;
27930         allocate children only when really needed.
27931         (get_alias_set): Do less generous pointer globbing.
27932         (dump_alias_stats_in_alias_c): Update statistics.
27933
27934 2015-05-30  Alan Modra  <amodra@gmail.com>
27935
27936         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
27937         correct block for use of r12.
27938         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
27939
27940 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27941
27942         PR target/66215
27943         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
27944         with -mhotpatch=.
27945
27946 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
27947
27948         PR tree-optimization/66142
27949         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
27950         virtual phis that feed themselves.
27951
27952 2015-05-29  Richard Biener  <rguenther@suse.de>
27953
27954         PR tree-optimization/66314
27955         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27956         parameter that says which loop the new block belongs to.
27957         (ssa_create_duplicates): Blocks duplicated for the threaded
27958         path belong to the loop of the thread destination.
27959
27960 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27961
27962         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
27963         to cleanup-saved-temps.
27964         * doc/sourcebuild.texi (Clean up generated test files): Expand
27965         introduction.
27966         (dg-keep-saved-temps): Document new proc.
27967         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
27968         cleanup-saved-temps): Remove.
27969
27970 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
27971
27972         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
27973         gcc_AC_CHECK_DECLS.
27974         * configure: Regenerate.
27975
27976 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27977
27978         * config/nios2/linux.h (CPP_SPEC): Define.
27979
27980 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27981
27982         * config/microblaze/linux.h (CPP_SPEC): Define.
27983
27984 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27985
27986         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
27987         -pthread is specified.
27988
27989 2015-05-28  Richard Biener  <rguenther@suse.de>
27990
27991         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
27992         (vect_fixup_scalar_cycles_with_patterns): Likewise.
27993         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
27994         after pattern recog.
27995         (vect_create_epilog_for_reduction): Properly handle reductions
27996         with patterns.
27997         (vectorizable_reduction): Likewise.
27998         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
27999         reduction chains.
28000         (vect_get_constant_vectors): Create the correct number of
28001         initial values for reductions.
28002         (vect_schedule_slp_instance): Handle reduction chains that are
28003         type changing properly.
28004         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
28005
28006 2015-05-28  Richard Biener  <rguenther@suse.de>
28007
28008         PR tree-optimization/66142
28009         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
28010         values better in memcpy destination handling.  Handle non-aliasing
28011         we discover here.
28012
28013 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
28014
28015         PR target/63810
28016         * config/darwin-c.c (version_components): New global enum.
28017         (parse_version, version_as_legacy_macro)
28018         (version_as_modern_macro, macosx_version_as_macro): New functions.
28019         (version_as_macro): Remove.
28020         (darwin_cpp_builtins): Use new function.
28021
28022 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
28023
28024         * builtins.c (expand_builtin_acc_on_device): Mark parameters
28025         with ATTRIBUTE_UNUSED.
28026
28027 2015-05-28  Julian Brown  <julian@codesourcery.com>
28028
28029         PR libgomp/65742
28030
28031         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
28032         sequence for !ACCEL_COMPILER.
28033
28034 2015-05-28  Nick Clifton  <nickc@redhat.com>
28035
28036         * config/rx/rx.c (push_regs): New function.  Extracts code from...
28037         (rx_expand_prologue): ... here.  Use push_regs to push even small
28038         spans of registers.
28039         (pop_regs): New function.
28040         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
28041         registers.
28042
28043 2015-05-28  Richard Biener  <rguenther@suse.de>
28044
28045         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
28046         member.
28047         (SLP_INSTANCE_BODY_COST_VEC): Remove.
28048         (vect_update_slp_costs_according_to_vf): Likewise.
28049         (vect_slp_analyze_operations): Update prototype.
28050         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
28051         vect_update_slp_costs_according_to_vf, adjust.
28052         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
28053         (vect_analyze_slp_cost_1): Likewise.
28054         (vect_analyze_slp_cost): Likewise.  Properly deal with
28055         widening reduction ops.  Commit body costs.
28056         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
28057         cost for loops from here.
28058         (vect_slp_analyze_operations): But do it from here when
28059         the vectorization factor is known and stmts are analyzed.
28060         (vect_bb_vectorization_profitable_p): Simplify.
28061         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
28062         (vect_update_slp_costs_according_to_vf): Remove.
28063
28064 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
28065             H.J. Lu  <hongjiu.lu@intel.com>
28066
28067         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
28068         (BUILD_CFLAGS): Likewise.
28069         (BUILD_CXXFLAGS): Likewise.
28070         (LINKER): Add @NO_PIE_FLAG@.
28071         (BUILD_LDFLAGS): Likewise.
28072         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
28073         --enable-default-pie.
28074         * common.opt (fPIE): Initialize to -1.
28075         (fpie): Likewise.
28076         (no-pie): New option.
28077         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
28078         * configure.ac: Add --enable-default-pie.
28079         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
28080         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
28081         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
28082         * gcc.c (NO_PIE_SPEC): New.
28083         (PIE_SPEC): Likewise.
28084         (NO_FPIE1_SPEC): Likewise.
28085         (FPIE1_SPEC): Likewise.
28086         (NO_FPIE2_SPEC): Likewise.
28087         (FPIE2_SPEC): Likewise.
28088         (NO_FPIE2_SPEC): Likewise.
28089         (FPIE_SPEC): Likewise.
28090         (NO_FPIE_SPEC): Likewise.
28091         (NO_FPIC1_SPEC): Likewise.
28092         (FPIC1_SPEC): Likewise.
28093         (NO_FPIC2_SPEC): Likewise.
28094         (FPIC2_SPEC): Likewise.
28095         (NO_FPIC2_SPEC): Likewise.
28096         (FPIC_SPEC): Likewise.
28097         (NO_FPIC_SPEC): Likewise.
28098         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
28099         (FPIE1_OR_FPIC1_SPEC): Likewise.
28100         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
28101         (FPIE2_OR_FPIC2_SPEC): Likewise.
28102         (NO_FPIE_AND_FPIC_SPEC): Likewise.
28103         (FPIE_OR_FPIC_SPEC): Likewise.
28104         (LD_PIE_SPEC): Likewise.
28105         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
28106         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
28107         * config/darwin.h (PIE_SPEC): Renamed to ...
28108         (DARWIN_PIE_SPEC): This.
28109         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
28110         * config/darwin9.h (PIE_SPEC): Renamed to ...
28111         (DARWIN_PIE_SPEC): This.
28112         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
28113         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
28114         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
28115         FPIE2_OR_FPIC2_SPEC.
28116         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
28117         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
28118         * config/sol2.h (ASM_PIC_SPEC): Likewise.
28119         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
28120         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
28121         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
28122         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
28123         * config/m32r/m32r.h (ASM_SPEC): Likewise.
28124         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
28125         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
28126         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
28127         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
28128         * config/sparc/linux.h (ASM_SPEC): Likewise.
28129         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28130         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
28131         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
28132         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28133         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
28134         * config/sparc/sparc.h (ASM_SPEC): Likewise.
28135         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
28136         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
28137         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
28138         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
28139         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
28140         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
28141         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
28142         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
28143         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
28144         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
28145         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
28146         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
28147         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28148         * config/vax/linux.h (ASM_SPEC): Likewise.
28149         * doc/install.texi: Document --enable-default-pie.
28150         * doc/invoke.texi: Document -no-pie.
28151         * config.in: Regenerated.
28152         * configure: Likewise.
28153
28154 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28155
28156         PR rtl-optimization/66168
28157         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
28158         can_move_invariant_reg.
28159
28160 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
28161
28162         PR target/66148
28163         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
28164         REG_EQUAL note when doing insert.
28165
28166         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
28167         instead of "%d" for 'o' operand.
28168
28169 2015-05-27  Nathan Sidwell  <nathan@acm.org>
28170
28171         PR c++/66270
28172         * tree.c (build_pointer_type_for_mode): Canonical type does not
28173         inherit can_alias_all.
28174         (build_reference_type_for_mode): Likewise.
28175
28176 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
28177
28178         * expr.h (array_at_struct_end_p): Move to...
28179         (array_ref_element_size): Likewise.
28180         (component_ref_field_offset): Likewise.
28181         * tree.h (array_ref_element_size): ...here.
28182         (array_at_struct_end_p): Likewise.
28183         (component_ref_field_offset): Likewise.
28184         * expr.c (array_ref_element_size): Move to...
28185         (array_ref_low_bound): Likewise.
28186         (array_at_struct_end_p): Likewise.
28187         (array_ref_up_bound): Likewise.
28188         (component_ref_field_offset): Likewise.
28189         * tree.c (array_ref_element_size): ...here.
28190         (array_ref_low_bound): Likewise.
28191         (array_ref_up_bound): Likewise.
28192         (array_at_struct_end_p): Likewise.
28193         (component_ref_field_offset): Likewise.
28194
28195 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
28196             Szabolcs Nagy  <szabolcs.nagy@arm.com>
28197
28198         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
28199
28200 2015-05-27  Jason Merrill  <jason@redhat.com>
28201
28202         PR bootstrap/66304
28203         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
28204         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
28205         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
28206
28207 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
28208
28209         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
28210         is true.
28211
28212         * statistics.c (statistics_fini_pass): Print pass name.
28213
28214 2015-05-27  Richard Biener  <rguenther@suse.de>
28215
28216         PR tree-optimization/66272
28217         Revert parts of
28218         2014-08-15  Richard Biener  <rguenther@suse.de>
28219
28220         PR tree-optimization/62031
28221         * tree-data-ref.c (dr_analyze_indices): Do not set
28222         DR_UNCONSTRAINED_BASE.
28223         (dr_may_alias_p): All indirect accesses have to go the
28224         formerly DR_UNCONSTRAINED_BASE path.
28225         * tree-data-ref.h (struct indices): Remove
28226         unconstrained_base member.
28227         (DR_UNCONSTRAINED_BASE): Remove.
28228
28229 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
28230
28231         * dwarf2out.c: Remove block_map.
28232         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
28233         (gen_lexical_block_die): Same.
28234         (dwarf2out_function_decl): Remove block_map use.
28235         (dwarf2out_c_finalize): Same.
28236         * tree-core.h (struct tree_block): Add die field.
28237         * tree.h (BLOCK_DIE): New.
28238
28239 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28240
28241         PR target/65358
28242         * expr.c (memory_load_overlap): New function.
28243         (emit_push_insn): When pushing partial args to the stack would
28244         clobber the register part load the overlapping part into a pseudo
28245         and put it into the hard reg after pushing.  Change return type
28246         to bool.  Add bool argument.
28247         * expr.h (emit_push_insn): Change return type to bool.
28248         Add bool argument.
28249         * calls.c (expand_call): Cancel sibcall optimization when encountering
28250         partial argument on targets with ARGS_GROW_DOWNWARD and
28251         !STACK_GROWS_DOWNWARD.
28252         (emit_library_call_value_1): Update callsite of emit_push_insn.
28253         (store_one_arg): Likewise.
28254
28255 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
28256
28257         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
28258
28259 2015-05-27  Martin Liska  <mliska@suse.cz>
28260
28261         * Makefile.in: Add additional dependencies related to memory report
28262         enhancement.
28263         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
28264         * bitmap.c (struct bitmap_descriptor_d): Remove.
28265         (struct loc): Likewise.
28266         (struct bitmap_desc_hasher): Likewise.
28267         (bitmap_desc_hasher::hash): Likewise.
28268         (bitmap_desc_hasher::equal): Likewise.
28269         (get_bitmap_descriptor): Likewise.
28270         (bitmap_register): User new memory descriptor API.
28271         (register_overhead): Likewise.
28272         (bitmap_find_bit): Register nsearches and search_iter statistics.
28273         (struct bitmap_output_info): Remove.
28274         (print_statistics): Likewise.
28275         (dump_bitmap_statistics): Use new memory descriptor.
28276         * bitmap.h (struct bitmap_usage): New class.
28277         * genmatch.c: Extend header file inclusion.
28278         * genpreds.c: Likewise.
28279         * ggc-common.c (struct ggc_usage): New class.
28280         (struct ggc_loc_desc_hasher): Remove.
28281         (ggc_loc_desc_hasher::hash): Likewise.
28282         (ggc_loc_desc_hasher::equal): Likewise.
28283         (struct ggc_ptr_hash_entry): Likewise.
28284         (struct ptr_hash_hasher): Likewise.
28285         (ptr_hash_hasher::hash): Likewise.
28286         (ptr_hash_hasher::equal): Likewise.
28287         (make_loc_descriptor): Likewise.
28288         (ggc_prune_ptr): Likewise.
28289         (dump_ggc_loc_statistics): Use new memory descriptor.
28290         (ggc_record_overhead): Likewise.
28291         (ggc_free_overhead): Likewise.
28292         (final_cmp_statistic): Remove.
28293         (cmp_statistic): Likewise.
28294         (ggc_add_statistics): Liekwise.
28295         (ggc_prune_overhead_list): Likewise.
28296         * hash-map-traits.h: New file.
28297         * hash-map.h (struct default_hashmap_traits): Move the traits to a
28298         separate header file.
28299         * hash-set.h: Pass memory statistics info to ctor.
28300         * hash-table.c (void dump_hash_table_loc_statistics): New function.
28301         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
28302         (hash_table::~hash_table): Register memory release operation.
28303         (hash_table::alloc_entries): Handle memory allocation operation.
28304         (hash_table::expand): Likewise.
28305         * inchash.c (iterative_hash_hashval_t): Move implementation to header
28306         file.
28307         (iterative_hash_host_wide_int): Likewise.
28308         * inchash.h (class hash): Likewise.
28309         * mem-stats-traits.h: New file.
28310         * mem-stats.h: New file.
28311         (mem_location): Add new class.
28312         (mem_usage): Likewise.
28313         (mem_alloc_description): Likewise.
28314         * sese.c: Add new header file inclusision.
28315         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
28316         and hash_set.
28317         * tree-sra.c: Add new header file inclusision.
28318         * vec.c (struct vec_descriptor): Remove.
28319         (hash_descriptor): Likewise.
28320         (struct vec_usage): Likewise.
28321         (struct ptr_hash_entry): Likewise.
28322         (hash_ptr): Likewise.
28323         (eq_ptr): Likewise.
28324         (vec_prefix::register_overhead): Use new memory descriptor API.
28325         (vec_prefix::release_overhead): Likewise.
28326         (add_statistics): Remove.
28327         (dump_vec_loc_statistics): Use new memory descriptor API.
28328         * vec.h (struct vec_prefix): Likewise.
28329         (va_heap::reserve): Likewise.
28330         (va_heap::release): Likewise.
28331         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
28332
28333 2015-05-27  Richard Biener  <rguenther@suse.de>
28334
28335         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
28336         earlier and remove ??? comment.
28337         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
28338         and got called from loop analysis bail out.  Always pass the SLP
28339         node to the vectorizable_* functions.
28340         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
28341         the premature SLP check here.
28342         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
28343         detected SLP stmts.
28344         (vect_detect_hybrid_slp_1): Likewise.
28345
28346 2015-05-26  Jeff Law  <law@redhat.com>
28347
28348         * combine.c (find_split_point): Verify that the shift count is a
28349         constant when choosing (plus (ashift ...)) as a split point.
28350
28351         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
28352         No functional changes.
28353
28354 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
28355
28356         * ipa-polymorphic-call.c
28357         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
28358         case when call target is already known.
28359
28360 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
28361
28362         PR target/65979
28363         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
28364         take into account the case that operands[1] and operands[2]
28365         are the same register.
28366
28367 2015-05-26  Michael Matz  <matz@suse.de>
28368
28369         PR middle-end/66251
28370
28371         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
28372         stores.
28373         (vect_create_vectorized_demotion_stmts): Always set
28374         STMT_VINFO_VEC_STMT, also with SLP.
28375         (vectorizable_store): Handle strided group stores.
28376
28377 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
28378
28379         PR target/66049
28380         * config/aarch64/aarch64.md
28381         (*adds_shift_imm_<mode>):  New pattern.
28382         (*subs_shift_imm_<mode>):  Likewise.
28383         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
28384         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
28385         (*add_uxt<mode>_shift2): Likewise.
28386         (*add_uxtsi_shift2_uxtw): Likewise.
28387         (*sub_uxt<mode>_shift2): Likewise.
28388         (*sub_uxtsi_shift2_uxtw): Likewise.
28389
28390 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
28391
28392         * config/rs6000/constraints.md (Y, U): Use match_test.
28393
28394 2015-05-26  Christian Bruel  <christian.bruel@st.com>
28395
28396         PR target/52144
28397         * config/arm/arm.c (arm_option_check_internal)
28398         (arm_option_params_internal): Check opts->target_flags to set macros.
28399         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
28400         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
28401         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
28402         (builtin_define): Replaced with def_or_undef_macro.
28403         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
28404         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
28405         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
28406         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
28407         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
28408         (TARGET_ARM_FEATURE_LDREX_P)
28409         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
28410         * config/arm/arm-c.c (def_or_undef_macro): New function.
28411         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
28412
28413 2015-05-26  Christian Bruel  <christian.bruel@st.com>
28414
28415         * c-common.h (builtin_define_with_int_value)
28416         (builtin_define_type_sizeof): Declare.
28417         * c-cppbuiltin.c (builtin_define_with_int_value)
28418         (builtin_define_type_sizeof): Externalize.
28419         (builtin_define_std): Cleanup declaration.
28420         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
28421         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
28422         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
28423         (builtin_define, builtin_assert): New macros.
28424
28425 2015-05-26  Richard Biener  <rguenther@suse.de>
28426
28427         PR tree-optimization/66142
28428         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
28429         MEM_REFs for the same base address.
28430
28431 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28432
28433         PR ipa/66181
28434         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
28435
28436 2015-05-26  Jason Merrill  <jason@redhat.com>
28437
28438         * configure.ac: Set CXXFLAGS for ISL test.
28439         * configure: Regenerate.
28440
28441         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
28442         strstr and basename.
28443         * configure: Regenerate.
28444
28445 2015-05-26  Richard Biener  <rguenther@suse.de>
28446
28447         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
28448         X % C -> X & (C - 1) for C being a power-of two to ...
28449         * match.pd: ... patterns.
28450
28451 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
28452
28453         * match.pd (swapped_tcc_comparison): New operator list.
28454         (-A CMP -B): New simplification.
28455         * fold-const.c (fold_comparison): Remove corresponding code.
28456
28457 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
28458
28459         * caller-save.c (init_caller_save): Base temporary register numbers
28460         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
28461         * cfgloopanal.c (init_set_costs): Likewise.
28462         * dojump.c (prefer_and_bit_test): Likewise.
28463         * expr.c (init_expr_target): Likewise.
28464         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28465         * lower-subreg.c (init_lower_subreg): Likewise.
28466         * postreload.c (reload_cse_regs_1): Likewise.
28467
28468 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
28469
28470         * gensupport.h (compute_test_codes): Declare.
28471         * gensupport.c (compute_predicate_codes): Rename to...
28472         (compute_test_codes): ...this.  Generalize error message.
28473         (process_define_predicate): Update accordingly.
28474         * genpreds.c (compute_maybe_allows): Delete.
28475         (add_constraint): Use compute_test_codes to determine whether
28476         something can accept a SUBREG, REG or MEM.
28477
28478 2015-05-26  Torvald Riegel  <triegel@redhat.com>
28479
28480         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
28481         'memory model' to align with C++11; fix description of memory orders;
28482         fix a few typos.
28483
28484 2015-05-26  Richard Biener  <rguenther@suse.de>
28485
28486         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
28487         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
28488         detect whether we apply SLP.  Remove call to
28489         vect_update_slp_costs_according_to_vf.
28490         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
28491         vect_update_slp_costs_according_to_vf from here.  Dispatch
28492         to vect_slp_analyze_operations to analyze SLP stmts.
28493         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
28494         unused bb_vec_info parameter, adjust assert.
28495         (vect_slp_analyze_operations): Pass in the slp instance tree
28496         instead of bb_vec_info.
28497         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
28498         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
28499
28500 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28501
28502         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
28503         Q_REGS.  Expand comment.
28504         (REG_CLASS_NAMES): Ditto.
28505         (REG_CLASS_CONTENTS): Ditto.
28506
28507 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
28508
28509         PR target/66274
28510         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
28511         when LEGACY_INT_REGNO_P is processed.
28512
28513 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28514
28515         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
28516
28517 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
28518
28519         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
28520         register if not marked dead/unused, before return.
28521
28522 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28523
28524         PR lto/66180
28525         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
28526         is set; check for assembler name at LTO time.
28527         (type_in_anonymous_namespace): Remove hacks, check that all
28528         anonymous types are called "<anon>"
28529         (odr_type_p): Simplify; add check for "<anon>"
28530         (odr_subtypes_equivalent): Add odr_type_p check.
28531         * tree.c (need_assembler_name_p): Even anonymous namespace needs
28532         assembler name.
28533
28534 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28535
28536         * ipa-utils.h (method_class_type): Remove.
28537         * cgraphunit.c (walk_polymorphic_call_targets): Use
28538         TYPE_METHOD_BASETYPE.
28539         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
28540         on main variants only.
28541         (method_class_type): Remove.
28542         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
28543         (build_type_inheritance_graph): Likewise.
28544         * ipa-icf.c (sem_function::equals_wpa): Likewise.
28545         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
28546         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
28547
28548 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28549
28550         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
28551         is_typedef_decl, typedef_variant_p): Constify.
28552         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
28553         is_typedef_decl, typedef_variant_p): Constify.
28554
28555 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28556
28557         * defaults.h (gen_tablejump): New function.
28558         (HAVE_tablejump): Add default value.
28559         * expr.c: Adjust.
28560         * stmt.c: Likewise.
28561
28562 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28563
28564         * defaults.h (gen_store_multiple): New function.
28565         (HAVE_store_multiple): Add default value.
28566         * expr.c (move_block_from_reg): Adjust.
28567
28568 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28569
28570         * defaults.h (gen_load_multiple): New function.
28571         (HAVE_load_multiple): Add default value.
28572         * expr.c (move_block_to_reg): Adjust.
28573
28574 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28575
28576         * defaults.h (gen_mem_signal_fence): New function.
28577         (HAVE_mem_signal_fence): Add default value.
28578         * optabs.c: Adjust.
28579
28580 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28581
28582         * defaults.h (gen_memory_barrier): New function.
28583         (HAVE_memory_barrier): Add default value.
28584         * optabs.c: Adjust.
28585
28586 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28587
28588         * defaults.h (gen_mem_thread_fence): New function.
28589         (HAVE_mem_thread_fence): Add default definition.
28590         * optabs.c: Adjust.
28591
28592 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28593
28594         * combine.c (find_split_point): Check the value of HAVE_lo_sum
28595         instead of if it is defined.
28596         (combine_simplify_rtx): Likewise.
28597         * lra-constraints.c (process_address_1): Likewise.
28598         * config/darwin.c: Adjust.
28599         * genconfig.c (main): Always define HAVE_lo_sum.
28600
28601 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28602
28603         * genmatch.c (parser::parse_operation): Reject expanding
28604         operator-list inside 'for'.
28605
28606 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28607
28608         * genmatch.c (parser::parse_for): Reject iterator if used as
28609         operator-list.
28610
28611 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28612
28613         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
28614         after end of id-list.
28615
28616 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28617
28618         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
28619         we do not try to compute canonical type for type that does not need
28620         alias set.
28621         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
28622         FUNCITON_TYPE.
28623         * tree.h (type_with_alias_set_p): New.
28624
28625 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28626
28627         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
28628         function attributes.
28629         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
28630
28631 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
28632
28633         * Makefile.in (check_gcc_parallelize): Delete.
28634         (lang_checks_parallelized): Update comment.
28635
28636 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
28637
28638         PR rtl-optimization/66237
28639         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
28640         location of an "as_a" cast.
28641
28642 2015-05-22  Jeff Law  <law@redhat.com>
28643
28644         * config/pa/pa.md (non-canonical shift-add insns): Remove.
28645         (peepholes with non-canonical RTL sources): Remove.
28646         (peepholes for indexed stores of FP regs in integer modes): Match and
28647         generate canonical RTL.
28648
28649 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28650
28651         PR tree-optimization/63387
28652         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
28653         ((x ord x) & (y ord y) -> (x ord y),
28654         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
28655         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
28656         vectors like scalars.
28657
28658 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28659
28660         * convert.c (convert_to_integer, convert_to_vector): Include the
28661         types in the error message.
28662
28663 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28664
28665         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
28666         simplifications.
28667
28668 2015-05-22  Jeff Law  <law@redhat.com>
28669
28670         * config/pa/pa.md (integer_indexed_store splitters): Use
28671         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
28672         insns -- adjusting the constant 2nd operand accordingly.
28673
28674         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
28675         (plus (ashift X log2) Y) if it is a split point.
28676
28677         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
28678         out of hppa_legitimize_address to handle both forms of a multiply
28679         by 2, 4 or 8.
28680         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
28681         Always generate the ASHIFT variant as the result is not directly
28682         used in a MEM.  Update comments and refactor slightly to improve
28683         readability.
28684
28685 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28686
28687         PR target/65491
28688         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
28689         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
28690         (aarch64_composite_type_p): Return false if given type and mode are
28691         for a short vector.
28692
28693 2015-05-22  Richard Biener  <rguenther@suse.de>
28694
28695         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
28696         member.
28697         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
28698         patterns when determining whether SLP is pure.
28699         (vect_is_slp_reduction): Remove check for pattern stmts.
28700         (vect_is_simple_reduction_1): Remove dead code.
28701         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
28702         (vect_get_and_check_slp_defs): Pass in the stmt number.
28703         Allow the first def in a reduction to be not a pattern stmt when
28704         the rest of the stmts def are patterns.
28705         (vect_build_slp_tree_1): Allow tcc_expression codes like
28706         SAD_EXPR and DOT_PROD_EXPR.
28707         (vect_build_slp_tree): Adjust.
28708         (vect_analyze_slp): Refactor and move BB vect error message ...
28709         (vect_slp_analyze_bb_1): ... here.
28710
28711 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
28712
28713         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
28714         for CSWTCH temporary.
28715
28716 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28717
28718         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
28719         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
28720         unknown unspecs.
28721
28722 2015-05-22  Richard Biener  <rguenther@suse.de>
28723
28724         PR tree-optimization/66251
28725         * tree-vect-stmts.c (vectorizable_conversion): Properly
28726         set STMT_VINFO_VEC_STMT even for the SLP case.
28727
28728 2015-05-22  Marek Polacek  <polacek@redhat.com>
28729
28730         * doc/extend.texi: Use @pxref instead of @xref.
28731
28732 2015-05-22  hiraditya  <hiraditya@msn.com>
28733
28734         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
28735         redundant if.
28736
28737 2015-05-22  Richard Biener  <rguenther@suse.de>
28738
28739         PR tree-optimization/65701
28740         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
28741         Move peeling cost models into one place.  Peel for alignment
28742         for single loads only if an aligned load is cheaper than
28743         an unaligned load.
28744
28745 2015-05-22  Marek Polacek  <polacek@redhat.com>
28746
28747         PR c/47043
28748         * doc/extend.texi (Enumerator Attributes): New section.
28749         Document syntax of enumerator attributes.
28750
28751 2015-05-22  Richard Biener  <rguenther@suse.de>
28752
28753         * tree-vect-loop.c (get_reduction_op): New function.
28754         (vect_model_reduction_cost): Use it, add reduc_index parameter.
28755         Make ready for BB reductions.
28756         (vect_create_epilog_for_reduction): Use get_reduction_op.
28757         (vectorizable_reduction): Init reduc_index to a valid value.
28758         Adjust vect_model_reduction_cost call.
28759         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
28760         operand for reduction defaults.  Add SAD_EXPR support.
28761         Assert we have a neutral op for SLP reductions.
28762         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
28763         walking pattern stmt ops only recurse to SSA names.
28764
28765 2015-05-22  Richard Biener  <rguenther@suse.de>
28766
28767         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
28768         assert with guard, remove check on detected reduction.
28769         (vect_recog_sad_pattern): Likewise.
28770         (vect_recog_widen_sum_pattern): Likewise.
28771
28772 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28773
28774         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
28775         __always_inline__ attribute.
28776         (vaesdq_u8): Likewise.
28777         (vaesmcq_u8): Likewise.
28778         (vaesimcq_u8): Likewise.
28779         (vsha1cq_u32): Likewise.
28780         (vsha1mq_u32): Likewise.
28781         (vsha1pq_u32): Likewise.
28782         (vsha1h_u32): Likewise.
28783         (vsha1su0q_u32): Likewise.
28784         (vsha1su1q_u32): Likewise.
28785         (vsha256hq_u32): Likewise.
28786         (vsha256h2q_u32): Likewise.
28787         (vsha256su0q_u32): Likewise.
28788         (vsha256su1q_u32): Likewise.
28789         (vmull_p64): Likewise.
28790         (vmull_high_p64): Likewise.
28791
28792 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28793
28794         * final.c (final_scan_insn): Don't check HAVE_peephole with the
28795         preprocessor.
28796         * output.h: Likewise.
28797         * genconfig.c (main): Alwways define HAVE_peephole.
28798         * genpeep.c: Don't emit checks of HAVE_peephole.
28799
28800 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28801
28802         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
28803         check HAVE_conditional_move with the preprocessor.
28804
28805 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28806
28807         * genconfig.c (main): Always define HAVE_conditional_move.
28808         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
28809         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
28810         is defined.
28811
28812 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28813
28814         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
28815         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
28816         and FRAME_POINTER_REGNUM with the preprocessor.
28817
28818 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28819
28820         * defaults.h: Add default for STACK_PUSH_CODE.
28821         * expr.c: Don't redefine STACK_PUSH_CODE.
28822         * recog.c: Likewise.
28823
28824 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28825
28826         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
28827         sched-deps.c: Use if instead of preprocessor checks with
28828         STACK_GROWS_DOWNWARD.
28829
28830 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28831
28832         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
28833         is defined.
28834         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
28835         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
28836         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
28837         * doc/tm.texi: Regenerate.
28838
28839 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
28840
28841         PR target/66232
28842         * config/i386/constraints.md (Bg): New constraint for GOT memory
28843         operand.
28844         * config/i386/i386.md (*call_got_x32): New pattern.
28845         (*call_value_got_x32): Likewise.
28846         * config/i386/predicates.md (GOT_memory_operand): New predicate.
28847
28848 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
28849
28850         PR tree-optimization/66233
28851         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
28852         Simplify.
28853
28854 2015-05-21  Jeff Law  <law@redhat.com>
28855
28856         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
28857         than MULT for shadd sequences.
28858
28859 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
28860
28861         * alias.c (alias_stats): New static var.
28862         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
28863         (dump_alias_stats_in_alias_c): New function.
28864         * alias.h (dump_alias_stats_in_alias_c): Declare.
28865         * tree-ssa-alias.c (dump_alias_stats): Call it.
28866
28867 2015-05-08  Michael Matz  <matz@suse.de>
28868
28869         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
28870         to strided_p.
28871         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
28872         (STMT_VINFO_STRIDED_P): ... this.
28873         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
28874         (vect_verify_datarefs_alignment): Likewise.
28875         (vect_enhance_data_refs_alignment): Likewise.
28876         (vect_analyze_data_ref_access): Likewise.
28877         (vect_analyze_data_refs): Accept strided stores.
28878         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
28879         (vect_model_load_cost): Adjust for macro rename.
28880         (vectorizable_mask_load_store): Likewise.
28881         (vectorizable_load): Likewise.
28882         (vectorizable_store): Open code strided stores.
28883
28884 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28885
28886         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
28887         Document sqrt_insn.
28888
28889 2015-05-21  Richard Biener  <rguenther@suse.de>
28890
28891         PR c++/66211
28892         * match.pd: Guard pattern optimzing (int)(float)int
28893         conversions to apply only on GIMPLE.
28894
28895 2015-05-21  Jeff Law  <law@redhat.com>
28896
28897         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
28898         multiply-accumulate/shift-add insn generation.
28899
28900 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
28901
28902         PR target/54236
28903         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
28904         operands[1] are the same.
28905
28906 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
28907
28908         PR middle-end/66221
28909         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
28910         build_distinct_type_copy to copy bounds.
28911
28912 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
28913
28914         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
28915         Change to unsigned int.
28916
28917 2015-05-20  Jeff Law  <law@redhat.com>
28918
28919         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
28920         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
28921         (pa_shadd_constant_p): Allow constants for shadd insns rather
28922         than valid scaling constants for memory addresses.
28923         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
28924         * config/pa/predicates.md (mem_shadd_operand): New predicate.
28925         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
28926         (shift-add insns using ASHIFT): New patterns.
28927
28928 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
28929
28930         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
28931         feasible.
28932         (fix_up_fall_thru_edges): Likewise.
28933         (fix_crossing_conditional_branches): Likewise. Promote jump targets
28934         from to rtx_insn to rtx_code_label where feasible.
28935         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
28936         gen_move_insn (returned type changed to rtx_insn).
28937         * builtins.c (expand_errno_check): Fix arguments of
28938         do_compare_rtx_and_jump (now expects rtx_code_label).
28939         (expand_builtin_acc_on_device): Likewise.
28940         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
28941         invert_jump (now exprects rtx_jump_insn).
28942         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
28943         (construct_init_block): Use rtx_code_label.
28944         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
28945         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
28946         calling redirect_jump.
28947         (patch_jump_insn): Likewise.
28948         (redirect_branch_edge): Likewise.
28949         (force_nonfallthru_and_redirect): Likewise.
28950         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
28951         when suitable.
28952         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
28953         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
28954         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
28955         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
28956         to store the value retured by gen_label_rtx.
28957         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
28958         rtx_jump_insn.
28959         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
28960         (split_branches): Fix calls of redirect_jump.
28961         * dojump.c (jumpifnot): Promote argument type from rtx to
28962         rtx_code_label.
28963         (jumpifnot_1): Likewise.
28964         (jumpif): Likewise.
28965         (jumpif_1): Likewise.
28966         (do_jump_1): Likewise.
28967         (do_jump): Likewise. Use rtx_code_label when feasible.
28968         (do_jump_by_parts_greater_rtx): Likewise.
28969         (do_jump_by_parts_zero_rtx): Likewise.
28970         (do_jump_by_parts_equality_rtx): Likewise.
28971         (do_compare_rtx_and_jump): Likewise.
28972         * dojump.h: Update function prototypes.
28973         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
28974         returns rtx_insn).
28975         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
28976         rtx_jump_insn.
28977         (emit_label_before): Likewise.
28978         (emit_jump_insn_after_noloc): Likewise.
28979         (emit_jump_insn_after_setloc): Likewise.
28980         (emit_jump_insn_after): Likewise
28981         (emit_jump_insn_before_setloc): Likewise.
28982         (emit_jump_insn_before): Likewise.
28983         (emit_label_before): Promote return type to rtx_code_label.
28984         (emit_label): Likewise.
28985         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
28986         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
28987         gen_move_insn.
28988         (emit_stack_restore): Likewise.
28989         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
28990         (do_cmp_and_jump): Likewise.
28991         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
28992         from rtx to rtx_code_label.
28993         (gen_move_insn_uncast): New function.
28994         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
28995         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
28996         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
28997         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
28998         invert_jump_1 and redirect_jump_1.
28999         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
29000         do_compare_rtx_and_jump.
29001         (expand_addsub_overflow): Likewise.
29002         (expand_neg_overflow): Likewise.
29003         (expand_mul_overflow): Likewise.
29004         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
29005         return value of gen_move_insn.
29006         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
29007         * loop-doloop.c (add_test): Use rtx_code_label.
29008         (doloop_modify): Likewise.
29009         (doloop_optimize): Likewise.
29010         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
29011         * lra-constraints.c (emit_spill_move): Remove cast of value returned
29012         by gen_move_insn.
29013         (inherit_reload_reg): Add cast when calling dump_insn_slim.
29014         (split_reg): Likewise.
29015         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
29016         gen_move_insn.
29017         * optabs.c (expand_binop_directly): Remove casts of values returned by
29018         maybe_gen_insn.
29019         (expand_unop_direct): Likewise.
29020         (expand_abs): Likewise.
29021         (maybe_emit_unop_insn): Likewise.
29022         (maybe_gen_insn): Promote return type to rtx_insn.
29023         * optabs.h: Update prototype of maybe_gen_insn.
29024         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
29025         redundant cast.
29026         * recog.c (struct peep2_insn_data): Promote type of insn field to
29027         rtx_insn.
29028         (peep2_reinit_state): Use NULL instead of NULL_RTX.
29029         (peep2_attempt): Remove casts of insn in peep2_insn_data.
29030         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
29031         * recog.h (struct insn_gen_fn): Promote return types of function
29032         pointers and operator ().from rtx to rtx_insn.
29033         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
29034         (fill_eager_delay_slots): Likewise.
29035         (relax_delay_slots): Likewise.
29036         (make_return_insns): Likewise.
29037         (dbr_schedule): Likewise.
29038         (optimize_skips): Likewise.
29039         (reorg_redirect_jump): Likewise.
29040         (fill_slots_from_thread): Likewise.
29041         * reorg.h: Update prototypes.
29042         * resource.c (find_dead_or_set_registers): Use dyn_cast to
29043         rtx_jump_insn instead of check.  Use it's jump_target method.
29044         * rtl.h (rtx_jump_insn::jump_label): Define new method.
29045         (rtx_jump_insn::jump_target): Define new method.
29046         (rtx_jump_insn::set_jump_target): Define new method.
29047         * rtlanal.c (tablejump_p): Promote type of one local variable.
29048         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
29049         (sched_analyze_insn): Likewise.
29050         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
29051         (print_insn): Likewise.
29052         * stmt.c (label_rtx): Promote return type to rtx_insn.
29053         (force_label_rtx): Likewise.
29054         (jump_target_rtx): Define new function.
29055         (expand_label): Use it, get rid of one cast.
29056         (expand_naked_return): Promote rtx to rtx_code_label.
29057         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
29058         (expand_case): Use rtx_code_label instread of rtx where feasible.
29059         (expand_sjlj_dispatch_table): Likewise.
29060         (emit_case_nodes): Likewise.
29061         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
29062         * store-motion.c (insert_store): Make use of new return type of
29063         gen_move_insn and remove a cast.
29064         (replace_store_insn): Likewise.
29065
29066 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
29067
29068         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
29069         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
29070
29071 2015-05-20  Jeff Law  <law@redhat.com>
29072
29073         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
29074         dispose of the jump thread path when the jump threading
29075         opportunity is cancelled.
29076
29077 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29078
29079         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
29080         when printing the caret character.
29081
29082 2015-05-20  Marek Polacek  <polacek@redhat.com>
29083
29084         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
29085
29086 2015-05-20  Marek Polacek  <polacek@redhat.com>
29087
29088         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
29089         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
29090         * gimple-fold.c (canonicalize_bool): Likewise.
29091         (same_bool_result_p): Likewise.
29092         * tree-if-conv.c (parse_predicate): Likewise.
29093
29094 2015-05-20  Marek Polacek  <polacek@redhat.com>
29095
29096         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
29097         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
29098
29099 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29100
29101         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
29102         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
29103         values.
29104
29105 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
29106
29107         * config/mips/mips.h (micromips_globals): Declare.
29108
29109 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
29110
29111         * timevar.def (TV_INITIALIZE_RTL): New.
29112         * toplev.c (initialize_rtl): Use an auto_timevar to account this
29113         function's time to TV_INITIALIZE_RTL.
29114
29115 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
29116
29117         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
29118         gimple_build_nop calls.
29119         (chkp_find_bounds_for_elem): Likewise.
29120         (chkp_get_zero_bounds): Likewise.
29121         (chkp_get_none_bounds): Likewise.
29122         (chkp_get_bounds_by_definition): Likewise.
29123         (chkp_generate_extern_var_bounds): Likewise.
29124         (chkp_get_bounds_for_decl_addr): Likewise.
29125         (chkp_get_bounds_for_string_cst): Likewise.
29126
29127 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
29128
29129         PR tree-optimization/65447
29130         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
29131         (dump_use, dump_uses): Support to dump sub use.
29132         (record_use): New parameters to support sub use.  Remove call to
29133         dump_use.
29134         (record_sub_use, record_group_use): New functions.
29135         (compute_max_addr_offset, split_all_small_groups): New functions.
29136         (group_address_uses, rewrite_use_address): New functions.
29137         (strip_offset): New declaration.
29138         (find_interesting_uses_address): Call record_group_use.
29139         (add_candidate): New assertion.
29140         (infinite_cost_p): Move definition forward.
29141         (add_costs): Check INFTY cost and return immediately.
29142         (get_computation_cost_at): Clear setup cost and dependent bitmap
29143         for sub uses.
29144         (determine_use_iv_cost_address): Compute cost for sub uses.
29145         (rewrite_use_address_1): Rename from old rewrite_use_address.
29146         (free_loop_data): Free sub uses.
29147         (tree_ssa_iv_optimize_loop): Call group_address_uses.
29148
29149 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
29150             Jim Wilson  <jim.wilson@linaro.org>
29151
29152         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
29153         new  fields loadv and storev.
29154         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
29155         Initialize loadv and storev.
29156         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
29157         (cortexa53_extra_costs): Likewise.
29158         (cortexa57_extra_costs): Likewise.
29159         (xgene1_extra_costs): Likewise.
29160         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
29161         rtx_costs.
29162
29163 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
29164
29165         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
29166          storev.
29167         (cortexa8_extra_costs): Likewise.
29168         (cortexa5_extra_costs): Likewise.
29169         (cortexa7_extra_costs): Likewise.
29170         (cortexa12_extra_costs): Likewise.
29171         (cortexa15_extra_costs): Likewise.
29172         (v7m_extra_costs): Likewise.
29173
29174 2015-05-20  Jeff Law  <law@redhat.com>
29175
29176         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
29177         instead of open-coded version.  Also delete the jump thread created
29178         within this function.
29179
29180 2015-05-20  Alan Modra  <amodra@gmail.com>
29181
29182         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
29183         stack adjusting insn.  Formatting.
29184         (rs6000_emit_prologue): Track stack adjusting insn, and use of
29185         r12.  If possible, emit first -fsplit-stack arg pointer insn
29186         before stack adjust.  Don't use r12 to save cr if split-stack.
29187
29188 2015-05-20  Alan Modra  <amodra@gmail.com>
29189
29190         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
29191         Define.
29192         (rs6000_supports_split_stack): New function.
29193         * config/rs6000/rs6000.c (machine_function): Add
29194         split_stack_arg_pointer.
29195         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
29196         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
29197         rather than virtual_incoming_args_rtx.
29198         (rs6000_va_start): Likewise.
29199         (split_stack_arg_pointer_used_p): New function.
29200         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
29201         (morestack_ref): New var.
29202         (gen_add3_const, rs6000_expand_split_stack_prologue,
29203         rs6000_internal_arg_pointer, rs6000_live_on_entry,
29204         rs6000_split_stack_space_check): New functions.
29205         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
29206         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
29207         (UNSPECV_SPLIT_STACK_RETURN): Define.
29208         (split_stack_prologue, load_split_stack_limit,
29209         load_split_stack_limit_di, load_split_stack_limit_si,
29210         split_stack_return, split_stack_space_check): New expands and insns.
29211         * config/rs6000/rs6000-protos.h
29212         (rs6000_expand_split_stack_prologue): Declare.
29213         (rs6000_split_stack_space_check): Declare.
29214
29215 2015-05-20  Alan Modra  <amodra@gmail.com>
29216
29217         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
29218         (direct_return): Test vrsave_size rather than vrsave_mask.
29219         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
29220         (rs6000_emit_epilogue): Likewise.
29221
29222 2015-05-20  Alan Modra  <amodra@gmail.com>
29223
29224         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
29225         when not saving registers.
29226         (debug_stack_info): Adjust to omit printing unused offsets,
29227         as before.
29228         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
29229         expression.
29230
29231 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29232
29233         PR c++/65835
29234         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
29235         value_type to const char *.
29236
29237 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
29238
29239         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
29240         to build a biarch toolchain again.
29241
29242 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
29243
29244         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
29245         or implicit declarations.
29246         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
29247         into it.
29248         (get_odr_type): Check type has linkage before adding bases.
29249         (register_odr_type): Check that type has linkage before adding it.
29250         (type_known_to_have_no_deriavations_p): Rename to ..
29251         (type_known_to_have_no_derivations_p): This one.
29252         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
29253         (type_known_to_have_no_derivations_p): This one.
29254         * ipa-polymorphic-call.c
29255         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
29256         type has linkage.
29257
29258 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29259
29260         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
29261         (layout_type): Use RECORD_OR_UNION_TYPE_P.
29262
29263 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29264
29265         * config/s390/s390.c (s390_vector_bool_type_p): New function.
29266         (s390_invalid_binary_op): New function.
29267         (TARGET_INVALID_BINARY_OP): Define macro.
29268
29269 2015-05-19  David Sherwood  <david.sherwood@arm.com>
29270
29271         * loop-invariant.c (create_new_invariant): Don't calculate address cost
29272         if mode is not a scalar integer.
29273         (get_inv_cost): Increase computational cost for unused invariants.
29274
29275 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29276
29277         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
29278         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
29279         * config/s390/s390-builtin-types.def: New file.
29280         * config/s390/s390-builtins.def: New file.
29281         * config/s390/s390-builtins.h: New file.
29282         * config/s390/s390-c.c: New file.
29283         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
29284         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
29285         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
29286         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
29287         prototypes.
29288         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
29289         Include.
29290         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
29291         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
29292         variable definitions.
29293         (s390_const_operand_ok): New function.
29294         (s390_expand_builtin): Rewrite.
29295         (s390_init_builtins): New function.
29296         (s390_handle_vectorbool_attribute): New function.
29297         (s390_attribute_table): Add s390_vector_bool attribute.
29298         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
29299         (s390_branch_condition_mask): Generate masks for new modes.
29300         (s390_expand_vec_compare_cc): New function.
29301         (s390_mangle_type): Add mangling for vector bool types.
29302         (enum s390_builtin): Remove.
29303         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
29304         efpc builtins.
29305         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
29306         s390_cpu_cpp_builtins.
29307         (REGISTER_TARGET_PRAGMAS): New macro.
29308         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
29309         (insn_cmp mode attribute): Add new CC modes.
29310         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
29311         (lcbb): New pattern definition.
29312         * config/s390/s390intrin.h: Include vecintrin.h.
29313         * config/s390/t-s390: New file.
29314         * config/s390/vecintrin.h: New file.
29315         * config/s390/vector.md: Include vx-builtins.md.
29316         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
29317         support.
29318
29319 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29320
29321         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
29322         CCVFHE.
29323         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
29324         (s390_select_ccmode): Likewise.
29325         (s390_canonicalize_comparison): Swap operands if necessary.
29326         (s390_expand_vec_compare_scalar): Expand DFmode compare using
29327         single element vector instructions.
29328         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
29329         (s390_branch_condition_mask): Generate CC masks for the new modes.
29330         * config/s390/s390.md (v0, vf, vd): New mode attributes.
29331         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
29332         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
29333         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
29334         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
29335         (*extend<DSF:mode><BFP:mode>2): New insn definition.
29336         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
29337         (extend<DSF:mode><BFP:mode>2): Turn into expander.
29338         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
29339         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
29340         (sqrt<mode>2): Add vector instruction.
29341
29342 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29343
29344         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
29345         constraints.
29346         * config/s390/predicates.md (const0_operand, constm1_operand)
29347         (constable_operand): Accept vector operands.
29348         * config/s390/s390-modes.def: Add supported vector modes.
29349         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
29350         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
29351         (s390_bytemask_vector_p, s390_expand_vec_strlen)
29352         (s390_expand_vec_compare, s390_expand_vcond)
29353         (s390_expand_vec_init): Add prototypes.
29354         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
29355         (s390_vector_mode_supported_p): New function.
29356         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
29357         (s390_contiguous_bitmask_vector_p): New function.
29358         (s390_bytemask_vector_p): New function.
29359         (s390_split_ok_p): Vector regs don't work either.
29360         (regclass_map): Add VEC_REGS.
29361         (s390_legitimate_constant_p): Handle vector constants.
29362         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
29363         (legitimate_reload_vector_constant_p): New function.
29364         (s390_preferred_reload_class): Handle CONST_VECTOR.
29365         (s390_reload_symref_address):  Likewise.
29366         (s390_secondary_reload): Vector memory instructions only support
29367         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
29368         (s390_emit_ccraw_jump): New function.
29369         (s390_expand_vec_strlen): New function.
29370         (s390_expand_vec_compare): New function.
29371         (s390_expand_vcond): New function.
29372         (s390_expand_vec_init): New function.
29373         (s390_dwarf_frame_reg_mode): New function.
29374         (print_operand): Handle addresses with 'O' and 'R' constraints.
29375         (NR_C_MODES, constant_modes): Add vector modes.
29376         (s390_output_pool_entry): Handle vector constants.
29377         (s390_hard_regno_mode_ok): Handle vector registers.
29378         (s390_class_max_nregs): Likewise.
29379         (s390_cannot_change_mode_class): New function.
29380         (s390_invalid_arg_for_unprototyped_fn): New function.
29381         (s390_function_arg_vector): New function.
29382         (s390_function_arg_float): Remove size variable.
29383         (s390_pass_by_reference): Handle vector arguments.
29384         (s390_function_arg_advance): Likewise.
29385         (s390_function_arg): Likewise.
29386         (s390_return_in_memory): Vector values are returned in a VR if
29387         possible.
29388         (s390_function_and_libcall_value): Handle vector arguments.
29389         (s390_gimplify_va_arg): Likewise.
29390         (s390_call_saved_register_used): Consider the arguments named.
29391         (s390_conditional_register_usage): Disable v16-v31 for non-vec
29392         targets.
29393         (s390_preferred_simd_mode): New function.
29394         (s390_support_vector_misalignment): New function.
29395         (s390_vector_alignment): New function.
29396         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
29397         (TARGET_VECTOR_MODE_SUPPORTED_P)
29398         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
29399         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
29400         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
29401         (TARGET_VECTOR_ALIGNMENT): Define target macro.
29402         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
29403         (FIRST_PSEUDO_REGISTER): Increase value.
29404         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
29405         (VECTOR_REG_P): Define macros.
29406         (FIXED_REGISTERS, CALL_USED_REGISTERS)
29407         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
29408         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
29409         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
29410         Add vector registers.
29411         (CANNOT_CHANGE_MODE_CLASS): Call C function.
29412         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
29413         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
29414         memory.
29415         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
29416         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
29417         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
29418         (VR*_REGNUM): New constants.
29419         (ALL): New mode iterator.
29420         (INTALL): Remove mode iterator.
29421         Include vector.md.
29422         (movti): Implement TImode moves for VRs.
29423         Disable TImode splitter for VR targets.
29424         Implement splitting TImode GPR<->VR moves.
29425         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
29426         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
29427         reload<mode>_la_in, reload<mode>_la_out.
29428         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
29429         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
29430         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
29431         (mov<mode> SF SD): Prefer lder, lde for loading.
29432         Add lrl and strl instructions.
29433         Add vector instructions.
29434         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
29435         Call s390_expand_vec_strlen on z13.
29436         (*cc_to_int): Change predicate to nonimmediate_operand.
29437         (addti3): Rename to *addti3.  New expander.
29438         (subti3): Rename to *subti3.  New expander.
29439         * config/s390/vector.md: New file.
29440
29441 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29442
29443         * common/config/s390/s390-common.c (processor_flags_table): Add
29444         z13.
29445         * config.gcc: Add z13.
29446         * config/s390/s390-opts.h (enum processor_type): Add
29447         PROCESSOR_2964_Z13.
29448         * config/s390/s390.c (s390_adjust_priority): Check for
29449         PROCESSOR_2964_Z13.
29450         (s390_reorg): Likewise.
29451         (s390_sched_reorder): Likewise.
29452         (s390_sched_variable_issue): Likewise.
29453         (s390_loop_unroll_adjust): Likewise.
29454         (s390_option_override): Likewise. Default to -mvx when available.
29455         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
29456         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
29457         (TARGET_VX_ABI): Define macros.
29458         macros.
29459         (TARGET_DEFAULT): Add MASK_OPT_VX.
29460         * config/s390/s390.md ("cpu" attribute): Add z13.
29461         ("cpu_facility" attribute): Add vec.
29462         * config/s390/s390.opt (processor_type): Add z13.
29463         (mvx): New options.
29464         * doc/invoke.texi: Add z13 option for -march.
29465
29466 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29467
29468         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
29469         mode check to make sure that only scalar integer values are
29470         accepted.
29471
29472 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
29473
29474         * tree.c (verify_type_variant): Fix #undef.
29475         (gimple_canonical_types_compatible_p): Move here from lto.c
29476         (verify_type): Verify TYPE_CANONICAL compatibility.
29477         * tree.h (gimple_canonical_types_compatible_p): Declare.
29478
29479 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29480
29481         PR middle-end/66199
29482         * tree.h (OMP_TEAMS_COMBINED): Define.
29483         * gimplify.c (enum gimplify_omp_var_data): Add
29484         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
29485         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
29486         (omp_notice_variable): Accept both ORT_TEAMS
29487         and ORT_COMBINED_TEAMS.  Don't recurse if
29488         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
29489         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
29490         GOVD_FIRSTPRIVATE.
29491         (omp_no_lastprivate): New function.
29492         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
29493         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
29494         notice_outer and set appropriate bits, otherwise make
29495         sure default(none) combined constructs won't complain.
29496         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
29497         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
29498         omp_no_lastprivate either remove the clause or turn it
29499         into OMP_CLAUSE_PRIVATE.
29500         (gimplify_omp_for): Fix up handling of implicit
29501         lastprivate or linear iterators.
29502         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
29503         ORT_COMBINED_TEAMS.
29504         * omp-low.c (lower_omp_for_lastprivate): For combined
29505         for simd use fd.loop.n2 from the for rather than simd.
29506
29507 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29508
29509         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
29510         instead of gen_rtx_raw_REG.
29511         (cris_expand_epilogue): Likewise.
29512         * config/microblaze/microblaze.c (microblaze_classify_address):
29513         Likewise.
29514         * config/sparc/sparc.md: Likewise.
29515
29516 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
29517
29518         * config/alpha/alpha.c (alpha_legitimize_reload_address)
29519         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
29520         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
29521         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
29522         Use CASE_CONST_SCALAR_INT.
29523         (print_operand) <case 'M'>: Use mode_width_operand to check the
29524         value of the constant.
29525         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
29526         * config/alpha/predicates.md (input_operand): Use general_operand
29527         instead of match_code as operand check.
29528         (symbolic_operand): Use match_code with subexpression digits.
29529         * config/alpha/constraints.md (Q): Ditto.
29530
29531 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29532
29533         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
29534
29535 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29536
29537         * config/s390/s390.c (s390_secondary_reload): Fix check for
29538         load/store relative.
29539
29540 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29541
29542         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
29543         alternative_mask to uint64_t.
29544
29545 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29546
29547         PR tree-optimization/66187
29548         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
29549         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
29550         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
29551
29552 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
29553
29554         * diagnostic.c (diagnostic_report_current_module): Strengthen
29555         local "new_map" from const line_map * to
29556         const line_map_ordinary *.
29557         * genmatch.c (error_cb): Likewise for local "map".
29558         (output_line_directive): Likewise for local "map".
29559         * input.c (expand_location_1): Likewise for local "map".
29560         Pass NULL rather than &map to
29561         linemap_unwind_to_first_non_reserved_loc, since the value is never
29562         read from there, and the value written back not read from here.
29563         (is_location_from_builtin_token): Strengthen local "map" from
29564         const line_map * to const line_map_ordinary *.
29565         (dump_location_info): Strengthen locals "map" from
29566         line_map *, one to const line_map_ordinary *, the other
29567         to const line_map_macro *.
29568         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
29569         const line_map * to const line_map_macro *.
29570         (maybe_unwind_expanded_macro_loc): Add a call to
29571         linemap_check_macro when writing to the "map" field of the
29572         loc_map_pair.
29573         Introduce local const line_map_ordinary * "ord_map", using it in
29574         place of "map" in the part of the function where we know we have
29575         an ordinary map.  Strengthen local "m" from const line_map * to
29576         const line_map_ordinary *.
29577
29578 2015-05-19  Nick Clifton  <nickc@redhat.com>
29579
29580         PR target/66156
29581         * config/msp430/msp430.md (zero_extendhisi2): Add support for
29582         separate source and destination registers.
29583
29584 2015-05-19  Richard Biener  <rguenther@suse.de>
29585
29586         PR tree-optimization/66165
29587         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
29588         for no load permutation.
29589
29590         PR tree-optimization/66185
29591         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
29592         when building the SLP node from scalars.
29593
29594 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29595             Tristan Gingold  <gingold@adacore.com>
29596
29597         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
29598         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
29599         (expand_stack_restore): Call record_new_stack_level.
29600         (expand_stack_save): Do not call do_pending_stack_adjust.
29601         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
29602         * calls.c (expand_call): Call record_new_stack_level for alloca.
29603         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
29604         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
29605         (update_sjlj_context): New global function.
29606         * except.h (update_sjlj_context): Declare.
29607         * explow.c (record_new_stack_level): New global function.
29608         (allocate_dynamic_stack_space): Call record_new_stack_level.
29609         * explow.h (record_new_stack_level): Declare.
29610         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
29611         * cfgrtl.c (duplicate_insn_chain): Likewise.
29612
29613 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29614
29615         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
29616         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
29617         STACK_GROWS_DOWNWARD as normal if.
29618         (expand_call): Likewise.
29619
29620 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
29621
29622         PR target/54236
29623         * config/sh/sh.md (*round_int_even): New insn_and_split and
29624         accompanying new unnamed split.
29625
29626 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29627
29628         * bitmap.c (bitmap_set_range): Handle count==1 specially.
29629         (bitmap_clear_range): Likewise.
29630         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
29631         bitmap_set_range unconditionally.
29632         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29633         * df-scan.c (df_mark_reg): Likewise.
29634         * haifa-sched.c (setup_ref_regs): Likewise.
29635         * sched-rgn.c (update_live_1): Likewise.
29636
29637 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29638
29639         * regs.h (END_HARD_REGNO): Delete.
29640         (END_REGNO): Move to...
29641         * rtl.h: ...here.
29642         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
29643         * caller-save.c (mark_set_regs): Likewise.
29644         * combine.c (move_deaths, distribute_notes): Likewise.
29645         * cse.c (invalidate, invalidate_for_call): Likewise.
29646         * df-scan.c (df_ref_record): Likewise.
29647         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
29648         (record_last_reg_set_info): Likewise.
29649         * reg-stack.c (convert_regs_exit): Likewise.
29650         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
29651         * resource.c (update_live_status): Likewise.
29652         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
29653
29654 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29655
29656         * rtl.h (reg_info): Add an nregs field.
29657         (REG_NREGS): Use it.
29658         (SET_REGNO_RAW): Delete.
29659         (set_regno_raw): New function.
29660         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
29661         (END_REGNO): Redefine in terms of REG_NREGS.
29662         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
29663         SET_REGNO_RAW.
29664         * emit-rtl.c (set_mode_and_regno): Likewise.
29665         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
29666         instead of SET_REGNO_RAW.
29667
29668 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29669
29670         * rtl.h (PUT_MODE_RAW): New macro.
29671         (PUT_REG_NOTE_KIND): Use it.
29672         (set_mode_and_regno): Declare.
29673         (gen_raw_REG): Change regno to "unsigned int".
29674         (gen_rtx_REG): Change "unsigned" to "unsigned int".
29675         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
29676         use set_mode_and_regno to change the mode of registers.
29677         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
29678         * emit-rtl.c (set_mode_and_regno): New function.
29679         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
29680         * caller-save.c (reg_save_code): Use set_mode_and_regno.
29681         * expr.c (init_expr_target): Likewise.
29682         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29683         * postreload.c (reload_cse_simplify_operands): Likewise.
29684
29685 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29686
29687         * caller-save.c (init_caller_save): Use word_mode and
29688         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
29689         * expr.c (init_expr_target): Likewise.
29690         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29691         * postreload.c (reload_cse_regs_1): Likewise.
29692
29693 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29694
29695         * rtl.def (REG): Change format to "r".
29696         * rtl.h (rtunion): Remove rt_reg.
29697         (reg_info): New structure.
29698         (rtx_def): Add reg field to main union.
29699         (X0REGATTR): Delete.
29700         (REG_CHECK): New macro.
29701         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
29702         * rtl.c (rtx_format): Document "r".
29703         (rtx_code_size): Handle REG specially.
29704         * gengenrtl.c (special_format): Return true for formats
29705         that include 'r'.
29706         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
29707         Deal with REG_ATTRS after the field loop.
29708         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
29709         * expmed.c (init_expmed): Call gen_raw_REG instead of
29710         gen_rtx_raw_REG.
29711         * expr.c (init_expr_target): Likewise.
29712         * regcprop.c (maybe_mode_change): Likewise.
29713         * varasm.c (make_decl_rtl): Likewise.
29714         * final.c (leaf_renumber_regs_insn): Return early after
29715         handling REGs.
29716         * genemit.c (gen_exp): Handle 'r' fields.
29717         * genpeep.c (match_rtx): Likewise.
29718         * gensupport.c (subst_pattern_match): Likewise.
29719         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
29720         (alter_constraints, subst_dup): Likewise.
29721         * read-rtl.c (read_rtx_code): Likewise.
29722         * print-rtl.c (print_rtx): Likewise.
29723         * genrecog.c (find_operand, find_matching_operand): Likewise.
29724         (validate_pattern, match_pattern_2): Likewise.
29725         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
29726         (rtx_test::regno_field): New function.
29727         (operator ==, safe_to_hoist_p, transition_parameter_type)
29728         (parameter_type_string, print_parameter_value)
29729         (print_nonbool_test, print_test): Handle new enum values.
29730         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
29731         * lra-constraints.c (operands_match_p): Likewise.
29732
29733 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29734
29735         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
29736         Change type of new_regno to unsigned int.
29737         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
29738         new_regno to unsigned int.
29739         (df_ref_change_reg_with_loc): Remove old_regno parameter.
29740         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
29741         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
29742         (SET_REGNO_RAW): Add space after ",".
29743
29744 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29745
29746         * rtl.h (REG_NREGS): New macro
29747         * alias.c (record_set): Use it.
29748         * cfgcleanup.c (mark_effect): Likewise.
29749         * combine.c (likely_spilled_retval_1): Likewise.
29750         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
29751         (move_deaths, distribute_notes): Likewise.
29752         * cselib.c (cselib_record_set): Likewise.
29753         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29754         * df-scan.c (df_mark_reg): Likewise.
29755         * dse.c (look_for_hardregs): Likewise.
29756         * dwarf2out.c (reg_loc_descriptor): Likewise.
29757         (multiple_reg_loc_descriptor): Likewise.
29758         * expr.c (write_complex_part, read_complex_part): Likewise.
29759         (emit_move_complex): Likewise.
29760         * haifa-sched.c (setup_ref_regs): Likewise.
29761         * ira-lives.c (mark_hard_reg_live): Likewise.
29762         * lra.c (lra_set_insn_recog_data): Likewise.
29763         * mode-switching.c (create_pre_exit): Likewise.
29764         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
29765         (reload_combine_recognize_pattern): Likewise.
29766         (reload_combine_note_use, move2add_record_mode): Likewise.
29767         (reload_cse_move2add): Likewise.
29768         * reg-stack.c (subst_stack_regs_pat): Likewise.
29769         * regcprop.c (kill_value, copy_value): Likewise.
29770         (copyprop_hardreg_forward_1): Likewise.
29771         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
29772         (build_def_use): Likewise.
29773         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
29774         (deps_analyze_insn): Likewise.
29775         * sched-rgn.c (check_live_1, update_live_1): Likewise.
29776         * sel-sched.c (count_occurrences_equiv): Likewise.
29777         * valtrack.c (dead_debug_insert_temp): Likewise.
29778
29779 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29780
29781         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
29782         * dse.c (note_add_store): Likewise.
29783         * ira-lives.c (mark_hard_reg_dead): Likewise.
29784         * loop-invariant.c (mark_reg_store): Likewise.
29785         (mark_reg_death): Likewise.
29786         * postreload.c (reload_combine): Likewise.
29787         (reload_combine_note_store): Likewise.
29788         (reload_combine_note_use): Likewise.
29789         * recog.c (peep2_reg_dead_p): Likewise.
29790
29791 2015-05-19  Alan Modra  <amodra@gmail.com>
29792
29793         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
29794         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
29795         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
29796         unused predicates.
29797         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
29798         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
29799         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
29800         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
29801
29802 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
29803
29804         * config/mips/mips.md (JOIN_MODE): New mode iterator.
29805         (join2_load_Store<JOIN_MODE:mode>): New pattern.
29806         (join2_loadhi): Likewise.
29807         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
29808         load-load and store-stores.
29809         * config/mips/mips.opt (mload-store-pairs): New option.
29810         (TARGET_LOAD_STORE_PAIRS): New macro.
29811         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
29812         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
29813         * config/mips/mips.c (mips_load_store_bonding_p): New function.
29814
29815 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
29816
29817         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
29818         explicit swaps.
29819         * dojump.c (do_compare_rtx_and_jump): Likewise.
29820         * expmed.c (emit_store_flag_1): Likewise.
29821         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
29822         * final.c (sprint_ul): Use std::reverse for reversing a string.
29823         * fold-const.c (extract_muldiv_1): Use std::swap.
29824         * genmodes.c (emit_mode_int_n): Likewise.
29825         * ifcvt.c (dead_or_predicable): Likewise.
29826         * ira-build.c (ira_merge_live_ranges): Likewise.
29827         (swap_allocno_copy_ends_if_necessary): Likewise.
29828         * ira.c (ira_setup_alts): Likewise.
29829         * loop-iv.c (iv_analyze_expr): Likewise.
29830         (implies_p): Likewise.
29831         (canon_condition): Likewise.
29832         * lra-constraints.c (swap_operands): Likewise.
29833         * lra-lives.c (lra_merge_live_ranges): Likewise.
29834         * omega.c (swap): Remove.
29835         (bswap): Remove.
29836         (omega_unprotect_1): Use std::swap.
29837         (omega_solve_geq): Likewise.
29838         * optabs.c (expand_binop_directly): Likewise.
29839         (expand_binop): Likewise.
29840         (emit_conditional_move): Likewise.
29841         (emit_conditional_add): Likewise.
29842         * postreload.c (reload_cse_simplify_operands): Likewise.
29843         * reg-stack.c (emit_swap_insn): Likewise.
29844         (swap_to_top): Likewise.
29845         (compare_for_stack_reg): Likewise.
29846         (subst_asm_stack_regs): Likewise.
29847         * reload.c (find_reloads): Likewise.
29848         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
29849         * sel-sched.c (invoke_reorder_hooks): Likewise.
29850         (create_block_for_bookkeeping): Likewise.
29851         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
29852         (lambda_matrix_right_hermite): Use std::swap.
29853         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
29854         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29855         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
29856         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
29857         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
29858         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
29859         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
29860         * tree-vrp.c (compare_ranges): Likewise.
29861         * var-tracking.c (add_with_sets): Likewise.
29862         (vt_find_locations): Likewise.
29863
29864 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
29865
29866         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
29867         pie executables.
29868         (FBSD_ENDFILE_SPEC): Likewise.
29869         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
29870         config/freebsd-spec.h.
29871         (ENDFILE_SPEC): Likewise.
29872
29873 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
29874             Richard Henderson  <rth@redhat.com>
29875
29876         PR target/57032
29877         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
29878         Check for a memory location that is not a reference (using an AND)
29879         to an unaligned location here.
29880         * config/alpha/predicates.md (normal_memory_operand): Remove.
29881
29882 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
29883
29884         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
29885         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
29886
29887 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
29888
29889         * config/mips/mips.c (micromips_globals): New variable.
29890         (mips_set_compression_mode): Save and reinitialize target-dependent
29891         state for microMIPS.
29892
29893 2015-05-18  Martin Liska  <mliska@suse.cz>
29894
29895         * dbgcnt.def: Add new counter.
29896         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
29897
29898 2015-05-18  Martin Liska  <mliska@suse.cz>
29899
29900         * dbgcnt.def: Sort counters.
29901         * opts.c (common_handle_option): Do not compile if
29902         -fdbg-cnt-list is enabled.
29903
29904 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29905
29906         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
29907         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
29908         address operator to va_list operand.
29909         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
29910         unconditionally.
29911         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
29912         operand.
29913         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
29914         * config/s390/s390.c (s390_gimplify_va_arg): Same.
29915         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
29916
29917 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29918
29919         * tree-ssa-tail-merge.c: Fix whitespace.
29920
29921 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
29922
29923         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
29924         cortex-a17, and cortex-a17.cortex-a7.
29925
29926 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
29927
29928         PR target/54236
29929         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
29930
29931 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
29932
29933         PR target/66174
29934         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
29935         QImode inner modes for TARGET_AVX512BW.  Force mask operand
29936         to a register for AVX512F modes.
29937
29938 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29939
29940         * toplev.c (emit_debug_global_declarations): Do not output debug info
29941         when doing slim LTO objects.
29942
29943 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29944
29945         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
29946         odr_types_equivalent_p): Declare.
29947         (odr_type_p): Use gcc_checking_assert.
29948         (type_in_anonymous_namespace_p) Declare.
29949         (type_with_linkage_p): Declare.
29950         * common.opt (Wlto-type-mismatch): New warning.
29951         * ipa-devirt.c (compound_type_base): New function.
29952         (odr_or_derived_type_p): New function.
29953         (odr_types_equivalent_p): New function.
29954         (add_type_duplicate): Simplify.
29955         (type_with_linkage_p): Add hack to prevent false positives on C types
29956         (type_in_anonymous_namespace_p): Likewise.
29957         * tree.c (need_assembler_name_p): Use type_with_linkage.
29958         * tree.h (type_in_anonymous_namespace_p): Remove.
29959         * doc/invoke.texi (-Wlto-type-mismatch): Document
29960
29961 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29962
29963         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
29964         (verify_type): Verify STRING_FLAG.
29965
29966 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29967
29968         PR fortran/44054
29969         * tree-pretty-print.c (percent_K_format): Replace locus pointer
29970         with accessor function.
29971         * tree-diagnostic.c (diagnostic_report_current_function): Use
29972         diagnostic_location function.
29973         (maybe_unwind_expanded_macro_loc): Likewise.
29974         (virt_loc_aware_diagnostic_finalizer): Likewise.
29975         (default_tree_printer): Replace locus pointer with accessor function.
29976         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
29977         (diagnostic_set_info_translated): Initialize second location.
29978         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
29979         (diagnostic_show_locus): Handle two locations. Call
29980         diagnostic_print_caret_line.
29981         (diagnostic_print_caret_line): New.
29982         (default_diagnostic_starter): Use diagnostic_location function.
29983         (diagnostic_report_diagnostic): Use diagnostic_location function.
29984         (verbatim): Do not set text.locus.
29985         * diagnostic.h (struct diagnostic_info): Remove location field.
29986         (struct diagnostic_context): Make caret_chars an array of two.
29987         (diagnostic_location): New inline.
29988         (diagnostic_expand_location): Handle two locations.
29989         (diagnostic_same_line): New inline.
29990         (diagnostic_print_caret_line): Declare.
29991         (CARET_LINE_MARGIN): New constant.
29992         * pretty-print.c (pp_printf): Do not set text.locus.
29993         (pp_verbatim): Do not set text.locus.
29994         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
29995         (struct text_info): Replace locus pointer with locations
29996         array. Add accessor functions.
29997
29998 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
29999             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30000
30001         PR target/65768
30002         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
30003         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
30004          large constants in register instead of splitting them.
30005
30006 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
30007
30008         PR target/66140
30009         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
30010         replacements in memory addresses.
30011         (get_unaligned_address): Ditto.
30012
30013 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
30014
30015         * config/ft32/*: New files for FT32 port.
30016         * doc/install.texi: Add FT32 information.
30017         * doc/invoke.texi: Add FT32 information.
30018         * doc/md.texi: Add FT32 information.
30019         * doc/contrib.texi: Self added.
30020
30021 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
30022
30023         PR tree-optimization/64454
30024         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
30025         (-1 - A -> ~A): Remove unnecessary condition.
30026
30027 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
30028
30029         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
30030         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
30031         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
30032
30033 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
30034
30035         * ipa-chkp.h (chkp_wrap_function): New.
30036         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
30037         (chkp_wrap_function_name): New.
30038         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
30039         to get wrapper name.
30040         * lto-cgraph.c: Include ipa-chkp.h.
30041         (input_cgraph_1): Avoid alias chain for wrappers.
30042
30043 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
30044
30045         PR middle-end/66134
30046         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
30047         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
30048
30049 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30050
30051         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
30052         (AARCH64_FL_SLOWMUL): Delete.
30053         (AARCH64_FL_CRC): Redefine to 1<<3.
30054         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
30055
30056 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30057
30058         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
30059         casting.
30060
30061 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
30062
30063         * config/alpha/alpha.md (extendqidi2): Use general_operand
30064         instead of some_operand for operand[1] predicate.
30065         (extendhidi2): Ditto.
30066         (cbranchdi4): Use general_operand instead of some_operand
30067         for operand[1] and operands[2] predicates.
30068         (cstoredi4): Ditto.
30069         * config/alpha/predicates.md (some_operand): Remove unused predicate.
30070         (some_ni_operand): Ditto.
30071
30072 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
30073
30074         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
30075         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
30076         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
30077         low part of the constant using alpha_emit_set_const_1.
30078         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
30079
30080 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
30081
30082         * varasm.c (output_constant_pool_1): Pass down alignment from
30083         constant pool entry's descriptor to output_constant_pool_2.
30084         (output_object_block): Add comment prior to call to
30085         output_constant_pool_1.
30086
30087 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
30088
30089         PR rtl-optimization/65862
30090         * target.def (ira_change_pseudo_allocno_class): New hook.
30091         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
30092         value of the hook.
30093         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
30094         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
30095         hook.
30096         * ira-costs.c (find_costs_and_classes): Call the hook and change
30097         classes when it is necessary.
30098         * doc/tm.texi: Update.
30099
30100 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
30101
30102         * config/i386/i386.md (sibcall_memory): Check that register with
30103         callee address is not also used as one of the arguments, instead
30104         of checking that it is not live after the sibcall.
30105         (sibcall_pop_memory): Ditto.
30106         (sibcall_value_memory): Ditto.
30107         (sibcall_value_pop_memory): Ditto.
30108
30109 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
30110
30111         * generic-match-head.c (types_match): Handle non-types.
30112         * gimple-match-head.c (types_match): Likewise.
30113         * match.pd: Remove unnecessary TREE_TYPE for types_match.
30114
30115 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
30116
30117         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
30118         (csneg3<mode>_insn): Enable expansion of pattern.
30119
30120 2015-05-14  Nick Clifton  <nickc@redhat.com>
30121
30122         * config/rl78/rl78.c (rl78_select_section): Select the correct
30123         default section based upon the category of the decl.
30124
30125 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
30126
30127         PR rtl-optimization/30967
30128         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
30129         destination mode for the cost of scc patterns.
30130
30131 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
30132
30133         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
30134         using SWIM248 mode iterator.
30135         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
30136         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
30137         for operand[2] constraint.
30138         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
30139
30140 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
30141
30142         PR middle-end/66133
30143         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
30144         make sure it is never noreturn, even when the task body does not
30145         return.
30146         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
30147         right before GIMPLE_OMP_RETURN.
30148         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
30149         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
30150         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
30151
30152 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30153
30154         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
30155         * tree-ssa-math-opts.c: Include params.h
30156         (pow_synth_sqrt_info): New struct.
30157         (representable_as_half_series_p): New function.
30158         (get_fn_chain): Likewise.
30159         (print_nested_fn): Likewise.
30160         (dump_fractional_sqrt_sequence): Likewise.
30161         (dump_integer_part): Likewise.
30162         (expand_pow_as_sqrts): Likewise.
30163         (gimple_expand_builtin_pow): Use above to attempt to expand
30164         pow as series of square roots.  Removed now unused variables.
30165
30166 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
30167
30168         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
30169         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
30170         Remove *p0 and *p1 arguments.  Rewrite function.
30171         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
30172         (alpha_split_const_mov): Update calls to alpha_extract_integer and
30173         alpha_emit_set_long_const.
30174         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
30175         (alpha_output_mi_thunk_osf): Ditto.
30176         * config/alpha/alpha.md (movti): Do not check operands[1]
30177         for CONST_DOUBLE.
30178
30179 2015-05-13  Richard Biener  <rguenther@suse.de>
30180
30181         PR tree-optimization/66129
30182         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
30183         commutative.
30184         (vect_schedule_slp_instance): Fix typo.
30185
30186 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
30187
30188         * common.opt (fdump-internal-locations): New option.
30189         * input.c: Include diagnostic-core.h.
30190         (get_end_location): New function.
30191         (write_digit): New function.
30192         (write_digit_row): New function.
30193         (dump_location_range): New function.
30194         (dump_labelled_location_range): New function.
30195         (dump_location_info): New function.
30196         * input.h (dump_location_info): New prototype.
30197         * toplev.c (compile_file): Handle flag_dump_locations.
30198
30199 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
30200
30201         * gimple-expr.h (is_gimple_constant): Reorder.
30202         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
30203
30204 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
30205
30206         * combine.c (simplify_set): When generating a CC set, if the
30207         source already is in the correct mode, do not wrap it in a
30208         compare.  Simplify the rest of that code.
30209
30210 2015-05-13  Richard Biener  <rguenther@suse.de>
30211
30212         PR tree-optimization/66123
30213         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
30214         a taken edge.
30215
30216 2015-05-13  Richard Biener  <rguenther@suse.de>
30217
30218         PR middle-end/66110
30219         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
30220         specially.
30221         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
30222
30223 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
30224
30225         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
30226         * aclocal.m4: Regenerated with automake-1.11.6.
30227
30228 2015-05-13  Tom de Vries  <tom@codesourcery.com>
30229
30230         PR tree-optimization/66010
30231         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
30232         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
30233         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
30234         and rval based on do_deref.
30235
30236 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
30237
30238         PR target/65103
30239         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
30240         link time constants into adress expressions and therefore set
30241         their cost to 0.
30242
30243 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
30244
30245         PR target/66112
30246         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
30247         Use SWI248 iterator instead of SWI.
30248         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
30249         Use eq_attr "alternative" "0" instead of match_test in
30250         length_immediate attribute computation.
30251         (*mulvhi4, *mulvhi4_1): New define_insns.
30252
30253         PR target/66112
30254         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
30255         SIGNED to get precision of non-negative value.
30256
30257 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
30258
30259         PR target/66048
30260         * function.c (diddle_return_value_1): Process bounds first.
30261         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
30262         register.
30263
30264 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30265
30266         PR rtl-optimization/64616
30267         * loop-invariant.c (can_move_invariant_reg): New.
30268         (move_invariant_reg): Call above new function to decide whether
30269         instruction can just be moved, skipping creation of temporary
30270         register.
30271
30272 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
30273
30274         PR target/pr66047.c
30275         * i386.c (ix86_function_sseregparm): Only return -1 if local function
30276         with implied regparm is called from -mno-sse function.
30277         (init_cumulative_args): Output error if ix86_function_sseregparm
30278         return -1 and SSE register would be needed.
30279         (function_arg_advance_32): Likewise.
30280         (function_arg_32): Likewise.
30281         * i386.h (ix86_args): Add decl field.
30282
30283 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
30284
30285         PR ipa/65873
30286         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
30287         inlines across optimization boundary.
30288
30289 2015-05-12  Jason Merrill  <jason@redhat.com>
30290
30291         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
30292         string literal and macro name.
30293
30294 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
30295
30296         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
30297         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
30298         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
30299
30300 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
30301
30302         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
30303         (-Wmisleading-indentation): New option.
30304         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
30305
30306 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
30307
30308         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
30309         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
30310         (alpha_extract_integer): Ditto.
30311         (alpha_legitimate_constant_p): Ditto.
30312         (alpha_split_tmode_pair): Ditto.
30313         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
30314         (alpha_expand_mov): Ditto.
30315         (print_operand): Remove handling of 'H' modifier.
30316         <case 'm'>: Remove CONST_DOUBLE handling.
30317         (summarize_insn): Handle CONST_WIDE_INT.
30318         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
30319         (anddi3): Ditto.
30320         (movti): Handle CONST_WIDE_INT.
30321         * config/alpha/constraints.md ('H'): Remove constraint definition.
30322         ('G'): Do not match MODE_FLOAT class.
30323         * config/alpha/predicates.md (const0_operand): Also match
30324         const_wide_int.
30325         (non_add_const_operand): Ditto.
30326         (non_zero_const_operand): Ditto.
30327         (some_operand): Ditto.
30328         (input_operand): Ditto.  Handle CONST_WIDE_INT.
30329         (and_operand): Do not match const_double.
30330         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
30331
30332 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
30333
30334         PR target/65697
30335         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
30336         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
30337         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
30338         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
30339         is_mm_seq_cst, is_mm_sync): New accessor functions.
30340         * builtins.c (expand_builtin_sync_operation,
30341         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
30342         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
30343         (get_memmodel,  expand_builtin_atomic_compare_exchange,
30344         expand_builtin_atomic_load, expand_builtin_atomic_store,
30345         expand_builtin_atomic_clear): Use new accessor routines.
30346         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
30347         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
30348         (maybe_emit_sync_lock_test_and_set): Use new accessors and
30349         MEMMODEL_SYNC_ACQUIRE.
30350         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
30351         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
30352         expand_atomic_store): Use new accessors.
30353         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
30354         * tsan.c (instrument_builtin_call): Update check for memory model beyond
30355         final enum to use MEMMODEL_LAST.
30356         * c-family/c-common.c: Use new accessor for memmodel_base.
30357         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
30358         accessors.
30359         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
30360         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
30361         mem_thread_fence, *dmb): Likewise.
30362         * config/alpha/alpha.c (alpha_split_compare_and_swap,
30363         alpha_split_compare_and_swap_12): Likewise.
30364         * config/arm/arm.c (arm_expand_compare_and_swap,
30365         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
30366         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
30367         atomic_loaddi): Likewise.
30368         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
30369         Likewise.
30370         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
30371         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
30372         use new accessors.
30373         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
30374         atomic_store<mode>, atomic_compare_and_swap<mode>,
30375         atomic_exchange<mode>): Use new accessors.
30376         * config/mips/mips.c (mips_process_sync_loop): Likewise.
30377         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
30378         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
30379         rs6000_post_atomic_barrier): Add new cases.
30380         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
30381         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
30382         (atomic_load<mode>): Add new cases and use new accessors.
30383         (store_quadpti): Add new cases.
30384         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
30385         accessors.
30386         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
30387         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
30388         model, not 8.
30389
30390 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
30391
30392         * ipa-devirt.c (type_with_linkage_p): New function.
30393         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
30394         type has linkage.
30395         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
30396         (can_be_name_hashed_p): Simplify.
30397         (hash_odr_name): Check that type has linkage before checking if it is
30398         anonymous.
30399         (types_same_for_odr): Likewise.
30400         (odr_name_hasher::equal): Likewise.
30401         (odr_subtypes_equivalent_p): Likewise.
30402         (warn_types_mismatch): Likewise.
30403         (get_odr_type): Likewise.
30404         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
30405         * ipa-utils.h (odr_type_p): Move offline.
30406         * tree.c (need_assembler_name_p): Fix handling of types
30407         without linkages.
30408         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
30409
30410 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
30411
30412         * timevar.c (timevar_enable): Delete in favor of...
30413         (g_timer): New global.
30414         (struct timevar_def): Move to timevar.h inside class timer.
30415         (struct timevar_stack_def): Likewise.
30416         (timevars): Delete global in favor of field "m_timevars" within
30417         class timer in timevar.h
30418         (stack): Likewise, in favor of field "m_stack".
30419         (unused_stack_instances): Likewise, in favor of field
30420         "m_unused_stack_instances".
30421         (start_time): Likewise, in favor of field "m_start_time".
30422         (get_time): Eliminate check for timevar_enable.
30423         (timer::timer): New function, built from part of timevar_init.
30424         (timevar_init): Rewrite idempotency test from using
30425         "timevar_enable" bool to using dynamic allocation of "g_timer".
30426         Move rest of implementation into timer's constructor.
30427         (timevar_push_1): Rename to...
30428         (timer::push): ...this, adding "m_" prefixes to variables that
30429         are now fields of timer.
30430         (timevar_pop_1): Likewise, rename to...
30431         (timer::pop): ...this, and add "m_" prefixes.
30432         (timevar_start): Replace test for "timevar_enable" with one for
30433         "g_timer", and move bulk of implementation to...
30434         (timer::start): ...here, adding "m_" prefixes.
30435         (timevar_stop): Likewise, from here...
30436         (timer::stop): ...to here.
30437         (timevar_cond_start): Likewise, from here...
30438         (timer::cond_start): ...to here.
30439         (timevar_cond_stop): Likewise, from here...
30440         (timer::cond_stop): ...to here.
30441         (validate_phases): Rename to...
30442         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
30443         locals "total" and "tv" const.
30444         (timevar_print): Rename to...
30445         (timer::print): ...this, and add "m_" prefixes.  Make locals
30446         "total" and "tv" const.  Eliminate test for timevar_enable.
30447         * timevar.h (timevar_enable): Eliminate.
30448         (g_timer): New declaration.
30449         (timevar_push_1): Eliminate.
30450         (timevar_pop_1): Eliminate.
30451         (timevar_print): Eliminate.
30452         (class timer): New class.
30453         (timevar_push): Rewrite to use g_timer.
30454         (timevar_pop): Likewise.
30455         * toplev.c (toplev::~toplev): Likewise.
30456
30457 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
30458
30459         * arm-protos.h (arm_sched_autopref): Delete.
30460         (tune_params): Re-organize, use enums for flag values.
30461         (FUSE_OPS): New macro.
30462         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
30463         (ARM_PREFETCH_BENEFICIAL): Likewise.
30464         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
30465         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
30466         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
30467         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
30468         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
30469         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
30470         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
30471         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
30472         format.
30473         (arm_option_override, thumb2_reorg, arm_print_tune_info)
30474         (aarch_macro_fusion_pair_p): Update uses of current_tune.
30475         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
30476
30477 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
30478
30479         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
30480         "break".
30481
30482 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
30483             Sandra Loosemore <sandra@codesourcery.com>
30484
30485         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
30486         value.
30487         (REG_CLASS_NAMES): Add "IJMP_REGS".
30488         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
30489         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
30490         use new "c" register constraint.
30491         * config/nios2/constraint.md (c): New register constraint
30492         corresponding to IJMP_REGS.
30493
30494 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30495
30496         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
30497         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
30498         define_splits): Delete, revamp, transmogrify into ...
30499         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
30500         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
30501         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
30502         New.
30503
30504 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30505
30506         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
30507         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
30508
30509 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30510
30511         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
30512         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
30513         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
30514         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
30515         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
30516         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
30517         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
30518         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
30519         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
30520         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
30521         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
30522         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
30523         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
30524         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
30525         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
30526         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
30527         and 30 corresponding splitters): Delete.
30528
30529 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30530
30531         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
30532         zero_extract.
30533
30534 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30535
30536         * combine.c (recog_for_combine_1): New function, factored out
30537         from recog_for_combine.
30538         (change_zero_ext): New function.
30539         (recog_for_combine): If recog fails, try again with the pattern
30540         modified by change_zero_ext; if that still fails, restore the
30541         pattern.
30542
30543 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30544
30545         * combine.c (get_undo_marker): New function.
30546         (undo_to_marker): New function, largely factored out from ...
30547         (undo_all): ... this.  Adjust.
30548
30549 2015-05-12  Richard Biener  <rguenther@suse.de>
30550
30551         PR tree-optimization/66101
30552         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
30553         fixup if we turn a loop exit edge to a fallthru edge.
30554
30555 2015-05-12  Richard Biener  <rguenther@suse.de>
30556
30557         PR tree-optimization/37021
30558         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
30559         (SLP_TREE_TWO_OPERATORS): New define.
30560         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
30561         SLP_TREE_TWO_OPERATORS.
30562         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
30563         SLP node.
30564         (vect_build_slp_tree): Adjust.
30565         (vect_analyze_slp_cost_1): Likewise.
30566         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
30567         emitting two vector stmts and mixing the results.
30568
30569 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30570
30571         * call.c (print_z_candidates): Remove dead code.
30572
30573 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30574
30575         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
30576         and zEC12_simple_fp.
30577         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
30578         to 1.
30579
30580 2015-05-12  Tom de Vries  <tom@codesourcery.com>
30581
30582         PR tree-optimization/66010
30583         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
30584         ifn_va_arg.
30585         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
30586         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
30587         va_lists are passed, and remove corresponding handling.
30588         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
30589         do_deref argument to ifn_va_arg.
30590         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
30591         ifn_va_arg.
30592
30593 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30594
30595         PR target/65955
30596         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
30597         REG before taking its REGNO.
30598
30599 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30600
30601         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
30602         rsp->sign_bit_copies and rsp->nonzero_bits into ...
30603         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
30604         present to get more accurate information about the number of sign bit
30605         copies and non zero bits.
30606
30607 2015-05-12  Richard Biener  <rguenther@suse.de>
30608
30609         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
30610         do not allow unrolling.
30611
30612 2015-05-11  Richard Henderson  <rth@redhat.com>
30613
30614         * config/i386/i386-modes.def (CCP): New.
30615         * config/i386/i386.c (put_condition_code): Handle it.
30616         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
30617
30618 2015-05-11  Richard Henderson  <rth@redhat.com>
30619
30620         * target.def (md_asm_clobbers): Replace with...
30621         (md_asm_adjust): this.
30622         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
30623         (TARGET_MD_ASM_ADJUST): New.
30624         * tm.texi: Rebuild.
30625         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
30626         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
30627         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
30628
30629         * cfgexpand.c (check_operand_nalternatives): Accept vector of
30630         constraints instead of lists of outputs and inputs.
30631         (expand_asm_stmt): Save and restore input_location around the
30632         body of the function.  Move asm data into vectors instead of
30633         building tree lists.  Generate cleanup sequences as needed,
30634         rather than waiting til the end.  Use new md_asm_adjust hook.
30635
30636         * config/vxworks.c: Include vec.h before target.h.
30637         * gimple.c: Likewise.
30638         * incpath.c: Likewise.
30639         * mode-switching.c: Likewise.
30640
30641         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
30642         (cris_md_asm_adjust): this.
30643         (TARGET_MD_ASM_CLOBBERS): Remove.
30644         (TARGET_MD_ASM_ADJUST): New.
30645         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
30646         (ix86_md_asm_adjust): this.
30647         (TARGET_MD_ASM_CLOBBERS): Remove.
30648         (TARGET_MD_ASM_ADJUST): New.
30649         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
30650         (mn10300_md_asm_adjust): this.
30651         (TARGET_MD_ASM_CLOBBERS): Remove.
30652         (TARGET_MD_ASM_ADJUST): New.
30653         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
30654         (rs6000_md_asm_adjust): this.
30655         (TARGET_MD_ASM_CLOBBERS): Remove.
30656         (TARGET_MD_ASM_ADJUST): New.
30657         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
30658         (visium_md_asm_adjust): this.
30659         (TARGET_MD_ASM_CLOBBERS): Remove.
30660         (TARGET_MD_ASM_ADJUST): New.
30661
30662 2015-05-11  Richard Henderson  <rth@redhat.com>
30663
30664         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
30665         if noutputs is zero.
30666         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
30667
30668         * cfgexpand.c (expand_asm_operands): Merge into...
30669         (expand_asm_stmt): ... here.
30670
30671         * cfgexpand.c (expand_asm_operands): Don't call
30672         resolve_asm_operand_names.
30673         * stmt.c (resolve_asm_operand_names): Clarify block comment.
30674
30675 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
30676
30677         * dwarf2out.c (gen_member_die): Sanity check that we access
30678         TYPE_MAIN_VARIANT for TYPE_METHODS.
30679         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
30680         checking TYPE_METHODS.
30681         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
30682         if non-null.
30683         (build_distinct_type_copy): Clear TYPE_METHODS.
30684         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
30685         (verify_type): Allow TYPE_METHODS to be error_mark_node.
30686         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
30687
30688 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
30689
30690         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
30691         (emit_pattern_before_setloc): Likewise.
30692
30693 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30694
30695         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
30696         for define_peephole2s.
30697         (get_peephole2_pattern): New function.
30698         (main): Use it.  Call validate_pattern.
30699
30700 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30701
30702         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
30703         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
30704         (Last callee saved reg is different for AVR_TINY architecture)
30705
30706 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30707
30708         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
30709         when looking for memory references.
30710
30711 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30712
30713         PR target/65753
30714         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
30715         via function pointers.
30716
30717 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30718
30719         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
30720         indirect call by forcing address into a pseudo with -fno-plt.
30721         * common.opt (flag_plt): New option.
30722         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
30723         ([-fno-plt]): Document.
30724
30725 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
30726
30727         PR bootstrap/66105
30728         * config/rs6000/option-defaults.h: Add space between string literal
30729         and macro name.
30730
30731 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30732
30733         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
30734         accross ARM targets.
30735
30736 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30737
30738         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
30739         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
30740
30741 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30742
30743         PR rtl-optimization/66076
30744         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
30745         Don't grow the heap array if it is already big enough from a
30746         previous iteration.
30747
30748 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30749
30750         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
30751         (is_called_in_ARM_mode): Remove.
30752         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
30753         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
30754         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
30755          arm_declare_function_name.
30756
30757 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30758
30759         * config/arm/arm.c (arm_option_override): Reoganized and split into :
30760         (arm_option_params_internal); New function.
30761         (arm_option_check_internal): New function.
30762         (arm_option_override_internal): New function.
30763         (thumb_code, thumb1_code): Remove.
30764         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
30765         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
30766         (thumb_code, thumb1_code): Remove.
30767         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
30768
30769 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30770
30771         * config/alpha/alpha.c (alpha_emit_set_const_1)
30772         (alpha_emit_set_long_const, alpha_extract_integer)
30773         (alpha_legitimate_constant_p, alpha_split_const_mov)
30774         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
30775         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30776         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
30777         HOST_WIDE_INT_1U.
30778         * config/alpha/predicates.md (mode_mask_operand): Do not match
30779         const_double RTX.
30780         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30781         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
30782         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
30783         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30784         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
30785
30786 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
30787
30788         PR target/65780
30789         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
30790         default_binds_local_p_2.
30791         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
30792         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
30793
30794 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30795
30796         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
30797
30798 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30799
30800         Patch by Richard Biener
30801         * coverage.c (coverage_obj_init): Delay building of type variant
30802         until the type is finished.
30803
30804 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30805
30806         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
30807         mismatch between C and C++ type; compoare correctly ARG_TYPES
30808         for non-prototypes and output correctly parameter index for METHOD_TYPE.
30809         (odr_types_equivalent_p): Fix wording of warning about attributes;
30810         it is OK to match prototype and non-prototype.
30811
30812 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30813
30814         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
30815         TYPE_ARG_TYPES list.
30816         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
30817         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
30818
30819 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30820
30821         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
30822         * tree.h (is_lang_specific): Constify.
30823
30824 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
30825
30826         PR tree-optimization/64454
30827         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
30828         Rewrite.
30829
30830 2015-05-08  Jason Merrill  <jason@redhat.com>
30831
30832         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
30833         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
30834         config/darwin.h, config/darwin9.h, config/elfos.h,
30835         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
30836         config/microblaze/microblaze.h, config/mips/mips.h,
30837         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
30838         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
30839         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
30840         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
30841         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
30842         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
30843         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
30844         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
30845         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
30846         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
30847         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
30848         between string literal and macro name.
30849
30850 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30851
30852         * jump.c: Change argument types to rtx_insn *.
30853         * rtl.h: Adjust.
30854
30855 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30856
30857         * lra-constraints.c: Change argument type to rtx_insn *.
30858
30859 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30860
30861         * df-problems.c: Change argument type to rtx_insn *.
30862
30863 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30864
30865         * combine.c: Change argument type to rtx_insn *.
30866
30867 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30868
30869         * rtl.h: Adjust.
30870         * rtlanal.c: Change argument type to rtx_insn *.
30871
30872 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30873
30874         * sched-deps.c: Change argument types to rtx_insn *.
30875         * sched-int.h: Adjust.
30876
30877 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30878
30879         * dwarf2cfi.c: Change argument type to rtx_insn *.
30880
30881 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30882
30883         * ira.c (decrease_live_ranges_number): Changetype of local
30884         variable to rtx_insn *.
30885         * recog.c: Change argument types to rtx_insn *.
30886         * recog.h: Adjust.
30887
30888 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30889
30890         * reorg.c: Change argument types to rtx_insn *.
30891
30892 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30893
30894         * ira-color.c: Change argument types to rtx_insn *.
30895         * lra-eliminations.c: Likewise.
30896         * ira.h: Adjust.
30897
30898 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30899
30900         * gcse.c: Change argument types to rtx_insn *.
30901
30902 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30903
30904         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
30905
30906 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30907
30908         * emit-rtl.c (emit_debug_insn_before): Change argument type to
30909         rtx_insn *.
30910         * rtl.h: Adjust.
30911
30912 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30913
30914         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
30915         * rtl.h: Adjust.
30916
30917 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30918
30919         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
30920         * rtl.h: Adjust.
30921
30922 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30923
30924         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
30925         * rtl.h: Adjust.
30926
30927 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30928
30929         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
30930         * rtl.h: Adjust.
30931
30932 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30933
30934         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
30935         to rtx_insn *.
30936         * rtl.h: Adjust.
30937
30938 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30939
30940         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
30941         to rtx_insn *.
30942         * rtl.h: Likewise.
30943
30944 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30945
30946         * except.c (can_nonlocal_goto): Change type of argument to
30947         rtx_insn *.
30948         * rtl.h: Adjust.
30949
30950 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30951
30952         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
30953         * rtl.h: Adjust.
30954
30955 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30956
30957         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
30958         * cfgrtl.c (can_delete_label_p): Adjust.
30959         * rtl.h: likewise.
30960
30961 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30962
30963         * reorg.c (stop_search_p): Change argument to rtx_insn *.
30964
30965 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30966
30967         * except.c (make_reg_eh_region_note): Change argument to
30968         rtx_insn *.
30969         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
30970         * except.h: Adjust.
30971
30972 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30973
30974         * mode-switching.c (commit_mode_sets): Change type of local
30975         variable from rtx to rtx_insn *.
30976
30977 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
30978
30979         * doc/install.texi (--enable-languages): Add missing jit and lto info.
30980         Add ^ to grep command.
30981         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
30982         arg to last gimple_simplify declaration.  Add missing gimple_build
30983         declaration for built-in function case with four tree args.
30984
30985 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30986             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30987
30988         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
30989         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
30990         (GNU_USER_DYNAMIC_LINKERN32): Update.
30991
30992 2015-05-08  Richard Biener  <rguenther@suse.de>
30993
30994         PR tree-optimization/66036
30995         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30996         Handle strided group loads.
30997         (vect_verify_datarefs_alignment): Likewise.
30998         (vect_enhance_data_refs_alignment): Likewise.
30999         (vect_analyze_group_access): Likewise.
31000         (vect_analyze_data_ref_access): Likewise.
31001         (vect_analyze_data_ref_accesses): Likewise.
31002         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
31003         (vectorizable_load): Likewise.
31004
31005 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
31006
31007         * config/rs6000/rs6000.md: Require operand inequality in one
31008         of the peepholes.
31009
31010 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31011             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
31012
31013         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
31014         from (set ...).
31015         * config/rx/rx.md (movdi, movdf): Likewise.
31016         Likewise for define_peephole2s.
31017
31018 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
31019
31020         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
31021         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
31022         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
31023         vtst_u64): Rewrite using gcc vector extensions.
31024
31025 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
31026
31027         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
31028         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
31029
31030 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
31031
31032         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
31033
31034 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
31035
31036         * config/glibc-stdint.h (OPTION_MUSL): Define.
31037         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
31038         Change the definition based on OPTION_MUSL for 64 bit targets.
31039         * config/linux.h (OPTION_MUSL): Redefine.
31040         * config/alpha/linux.h (OPTION_MUSL): Redefine.
31041         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
31042         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
31043
31044 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
31045             Szabolcs Nagy  <szabolcs.nagy@arm.com>
31046
31047         * config.gcc (LIBC_MUSL): New tm_defines macro.
31048         * config/linux.h (OPTION_MUSL): Define.
31049         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
31050         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
31051         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
31052         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
31053         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
31054         * config/linux.opt (mmusl): New option.
31055         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
31056         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
31057         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
31058         * configure: Regenerate.
31059
31060 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
31061             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31062
31063         PR target/48904
31064         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
31065         * config/i386/knetbsd-gnu64.h: New file.
31066
31067 2015-05-08  Marek Polacek  <polacek@redhat.com>
31068
31069         PR c/64918
31070         * doc/invoke.texi: Document -Woverride-init-side-effects.
31071
31072 2015-05-07  Marek Polacek  <polacek@redhat.com>
31073
31074         PR c/65179
31075         * doc/invoke.texi: Document -Wshift-negative-value.
31076
31077 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
31078
31079         * gcov-tool.c (do_merge): Refactore to remove int ret.
31080         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
31081         !type == FUNC to type != FUNC.
31082         * reload.h (struct target_reload): Changee to type of
31083         x_spill_indirect_levels from bool to unsigned char.
31084
31085 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
31086
31087         * rtl.h (always_void_p): New function.
31088         * gengenrtl.c (always_void_p): Likewise.
31089         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
31090         with code foo are always VOIDmode.
31091         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
31092         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
31093         compare-elim.c, config/aarch64/aarch64.c,
31094         config/aarch64/aarch64.md, config/alpha/alpha.c,
31095         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
31096         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
31097         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
31098         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
31099         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
31100         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
31101         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
31102         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
31103         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
31104         config/ia64/vect.md, config/iq2000/iq2000.c,
31105         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
31106         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
31107         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
31108         config/mep/mep.c, config/microblaze/microblaze.c,
31109         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
31110         config/mn10300/mn10300.c, config/msp430/msp430.c,
31111         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
31112         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
31113         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
31114         config/rs6000/altivec.md, config/rs6000/rs6000.c,
31115         config/rs6000/rs6000.md, config/rs6000/vector.md,
31116         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
31117         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
31118         config/sh/sh.md, config/sh/sh_treg_combine.cc,
31119         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
31120         config/spu/spu.md, config/stormy16/stormy16.c,
31121         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
31122         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
31123         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
31124         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
31125         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
31126         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
31127         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
31128         var-tracking.c: Update calls accordingly.
31129
31130 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
31131
31132         PR middle-end/192
31133         PR middle-end/54303
31134         * varasm.c (function_mergeable_rodata_prefix): New function.
31135         (mergeable_string_section): Use it.
31136         (mergeable_constant_section): Use it.
31137
31138 2015-05-07  Jeff Law  <law@redhat.com>
31139
31140         PR target/39726
31141         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
31142         simplifier to narrow arithmetic.
31143         * generic-match-head.c: (types_match, single_use): New functions.
31144         * gimple-match-head.c: (types_match, single_use): New functions.
31145
31146 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
31147
31148         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
31149         rtx type.
31150
31151 2015-05-07  Richard Biener  <rguenther@suse.de>
31152
31153         PR tree-optimization/66002
31154         * passes.def: Schedule another pass_merge_phi after ifcombine, right
31155         before phiopt.
31156
31157 2015-05-07  Marek Polacek  <polacek@redhat.com>
31158             Martin Uecker  <uecker@eecs.berkeley.edu>
31159
31160         * doc/invoke.texi: Document -fsanitize=bounds-strict.
31161         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
31162         into SANITIZE_NONDEFAULT.
31163         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
31164
31165 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
31166
31167         PR target/66015
31168         * config/alpha/alpha.c (alpha_override_options_after_change): New.
31169         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
31170         (alpha_override_options): Move align_loops, align_jumps and
31171         align_functions handling into alpha_override_options_after_change.
31172
31173 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
31174             Chris Jones  <chrisj@nvidia.com>
31175             Joshua Conner  <jconner@nvidia.com>
31176
31177         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
31178         linking of crtfastmath.o.
31179         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
31180
31181 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
31182
31183         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
31184         (cstore<mode>4_unsigned_imm): New expander.
31185         (cstore<mode>4): Remove empty constraint strings.  Use the new
31186         expanders.
31187
31188 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
31189
31190         PR target/64208
31191         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
31192         alternatives.
31193
31194 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
31195
31196         * config/aarch64/geniterators.sh: Use standard BRE in sed.
31197
31198 2015-05-06  Alan Modra  <amodra@gmail.com>
31199
31200         PR target/66033
31201         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
31202         (UNSPEC_NOP): Define.
31203         (reload_vsx_from_gpr<mode>): Add missing DONE.
31204         (reload_gpr_from_vsx<mode>): Likewise.
31205         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
31206         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
31207
31208 2015-05-06  Christian Bruel  <christian.bruel@st.com>
31209
31210         PR target/66015
31211         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
31212         align_jumps, align_functions into aarch64_override_options_after_change.
31213
31214 2015-05-06  Richard Biener  <rguenther@suse.de>
31215
31216         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
31217         vect_transform_slp_perm_load to check if we support a permutation
31218         for basic-block vectorization.
31219
31220 2015-05-06  Nick Clifton  <nickc@redhat.com>
31221
31222         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
31223         used, even if it is not being used as a frame pointer.
31224
31225 2015-05-05  Jason Merrill  <jason@redhat.com>
31226
31227         * dwarf2out.c (gen_member_die): Don't emit anything for an
31228         anonymous class constructor.
31229
31230 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
31231
31232         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
31233         that it reflects the block structure.
31234         (afdo_propagate_edge): Likewise.
31235         (afdo_calculate_branch_prob): Likewise.
31236         (afdo_annotate_cfg): Likewise.
31237         * cfgcleanup.c (equal_different_set_p): Likewise.
31238         (try_crossjump_to_edge): Likewise.
31239         * cgraph.c (cgraph_node::verify_node): Likewise.
31240         * cgraphunit.c (expand_all_functions): Likewise.
31241         * config/i386/i386.c (ix86_expand_copysign): Likewise.
31242         (exact_dependency_1): Likewise.
31243         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
31244         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
31245         * gensupport.c (process_define_subst): Likewise.
31246         * lto-wrapper.c (merge_and_complain): Likewise.
31247         * tree-if-conv.c (if_convertible_bb_p): Likewise.
31248         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
31249         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
31250         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
31251         * tree-vect-loop.c (vectorizable_reduction): Likewise.
31252         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
31253         * tree-vect-stmts.c (vectorizable_shift): Likewise.
31254         * tree-vrp.c (vrp_finalize): Likewise.
31255         * tree.c (variably_modified_type_p): Likewise.
31256
31257 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
31258
31259         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
31260         on darwin12 and later.
31261         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
31262         file to pass -rdynamic on darwin12 and later.
31263         * config/darwin.opt (rdynamic): Add.
31264
31265 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
31266
31267         * doc/extend.texi (C Extensions): Update menu for moved Variable
31268         Attributes and Type Attributes sections.
31269
31270 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
31271
31272         PR target/65990
31273         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
31274         if rep_8byte stringop strategy was specified for 32-bit target.
31275
31276 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
31277
31278         PR target/65915
31279         * config/i386/i386.md (vector convert to float spltiter): Check for
31280         xmm16+, when splitting scalar float conversion.
31281         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
31282
31283 2015-05-05  Nick Clifton  <nickc@redhat.com>
31284
31285         * config/msp430/msp430-opts.h (enum msp430_regions): New.
31286         * config/msp430/msp430.c (msp430_override_options): Complain if
31287         -mcode-region or -mdata-region is used on a non MSP430X.
31288         (msp430_section_attr): New function.  Checks lower, upper and
31289         either attributes.
31290         (msp430_attribute_table): Add lower, upper and either.
31291         (gen_prefix): New function.  Generates a prefix for a section
31292         name.
31293         (msp430_select_section): New function - handles the choice of
31294         section for an object.  Takes into account memory region
31295         attributes and options.
31296         (msp430_function_section): Use gen_prefix.
31297         (TARGET_SECTION_TYPE_FLAGS): Define.
31298         (msp430_section_type_flags): New function.
31299         (TARGET_ASM_UNIQUE_SECTION): Define.
31300         (msp430_unique_section): New function.
31301         (msp430_output_aligned_decl_common): New function.
31302         (msp430_do_not_relax_short_jumps): New function.
31303         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
31304         Define.
31305         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
31306         * config/msp430/msp430-protos.h
31307         (msp430_do_not_relax_short_jumps): New prototype.
31308         (msp430_output_aligned_decl_common): New prototype.
31309         * config/msp430/msp430.md (length): New attribute.
31310         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
31311         then use a long code sequence for short jumps.
31312         * config/msp430/msp430.opt (mcode-region): New.
31313         (mdata-region): New.
31314         * doc/invoke.texi: Document new options.
31315         * doc/extend.texi: Document new attributes.
31316
31317 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
31318
31319         * config/aarch64-protos.h (struct cpu_branch_cost): New.
31320         (tune_params): Add field branch_costs.
31321         (aarch64_branch_cost): Declare.
31322         * config/aarch64.c (generic_branch_cost): New.
31323         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
31324         (cortexa53_tunings): Likewise.
31325         (cortexa57_tunings): Likewise.
31326         (thunderx_tunings): Likewise.
31327         (xgene1_tunings): Likewise.
31328         (aarch64_branch_cost): Define.
31329         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
31330
31331 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
31332
31333         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
31334         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
31335         * config/i386/i386.md: Ditto.
31336         * config/i386/winnt.c: Ditto.
31337
31338 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
31339
31340         * doc/extend.texi (__atomic Builtins): Move implementation details
31341         to the end of the description, rewrite opening paragraphs, state
31342         difference with __sync builtins, state C11/C++11 assumptions,
31343         weaken itemized descriptions, add explanation of memory model
31344         behaviour, expand description of compare-exchange, simplify text.
31345
31346 2015-05-05  Renlin Li  <renlin.li@arm.com>
31347
31348         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
31349
31350 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
31351
31352         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
31353         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
31354         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
31355         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
31356         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
31357         * configure: Regenerate.
31358         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
31359         * doc/install.texi (aarch64*-*-*): Document new
31360         --enable-fix-cortex-a53-843419 option.
31361         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
31362         and -mno-fix-cortex-a53-843419 options.
31363
31364 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
31365
31366         PR target/65871
31367         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
31368
31369 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
31370
31371         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
31372         fix overactive TYPE_MIN_VALUE check and add FIXME for type
31373         compatibility problems.
31374
31375 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
31376
31377         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
31378         constraints.
31379         (cbranchsi4_reg): New.
31380         * config/microblaze/microblaze.c
31381         (microblaze_expand_conditional_branch_reg): New.
31382         * config/microblaze/microblaze-protos.h
31383         (microblaze_expand_conditional_branch_reg): New prototype.
31384
31385 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
31386
31387         * config/microblaze/microblaze.md (peephole2): New.
31388
31389 2015-05-04  Jeff Law  <law@redhat.com>
31390
31391         Revert:
31392         2015-05-04  Jeff Law  <law@redhat.com>
31393
31394         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
31395         simplifier to narrow arithmetic.
31396         * generic-match-head.c: (types_match, single_use): New functions.
31397         * gimple-match-head.c: (types_match, single_use): New functions.
31398
31399 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31400
31401         PR target/65987
31402         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
31403         (split_branches): Likewise.
31404
31405 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
31406
31407         * common.opt (fdelete-null-pointer-checks): Init to -1.
31408         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
31409         override flag_delete_null_pointer_checks default.
31410         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
31411         behavior re address zero.  Better document target-specific behavior.
31412         (-fisolate-errneous-paths-dereference): Mention relationship to
31413         -fdelete-null-pointer-checks.
31414
31415 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
31416
31417         PR tree-optimization/65984
31418         * ubsan.c: Include tree-cfg.h.
31419         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
31420         stmt_could_throw_p test, rename can_throw variable to ends_bb.
31421
31422 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
31423
31424         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
31425         to CONST_DOUBLE_P predicate.
31426         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
31427         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
31428         allow only operands that satisfy standard_sse_constant_p predicate.
31429         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
31430         to CONST_DOUBLE_P predicate.
31431
31432 2015-05-04  Jeff Law  <law@redhat.com>
31433
31434         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
31435         simplifier to narrow arithmetic.
31436         * generic-match-head.c: (types_match, single_use): New functions.
31437         * gimple-match-head.c: (types_match, single_use): New functions.
31438
31439 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
31440
31441         * config/arm/arm.c: Restore bootstrap.
31442
31443 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
31444
31445         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
31446         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
31447         as CONST_WIDE_INT, not CONST_DOUBLE.
31448         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
31449         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
31450         (ix86_find_base_term): Do not check for CONST_DOUBLE.
31451         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
31452         (ix86_build_signbit_mask): Rewrite using wide ints.
31453         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
31454         (ix86_rtx_costs): Handle CONST_WIDE_INT.
31455         (find_constant): Ditto.
31456         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
31457         using gen_int_mode.
31458         * config/i386/predicates.md (x86_64_immediate_operand)
31459         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
31460         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
31461         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
31462         (const0_operand): Also match const_wide_int.
31463         (constm1_operand): Ditto.
31464         (const1_operand): Ditto.
31465
31466 2015-05-04  Richard Biener  <rguenther@suse.de>
31467
31468         PR tree-optimization/65965
31469         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
31470         store groups at gaps.
31471
31472 2015-05-04  Richard Biener  <rguenther@suse.de>
31473
31474         PR tree-optimization/65935
31475         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
31476         then make sure to apply that swapping to the IL.
31477
31478 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
31479
31480         * Makefile.in (PATCHLEVEL_c): New variable.
31481         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
31482         expand the same way as if DEVPHASE_c was non-empty.
31483
31484 2015-05-04  Kai Tietz  <ktietz@redhat.com>
31485
31486         PR target/65559
31487         * lto-wrapper.c (run_gcc): Open filename
31488         in binary-mode.
31489
31490 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
31491
31492         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
31493         sections up in file, to immediately after the Function Attributes
31494         section.
31495
31496 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
31497
31498         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
31499
31500 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31501
31502         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
31503         (insert_partition_copy_on_edge): Adjust.
31504         (insert_rtx_to_part_on_edge): Likewise.
31505         (insert_part_to_rtx_on_edge): Likewise.
31506
31507 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31508
31509         * function.c (set_return_jump_label): Change type of argument to
31510         rtx_insn *.
31511         * function.h (set_return_jump_label): Adjust.
31512
31513 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31514
31515         * reload.h (struct reg_equivs_t): Change type of init to
31516         rtx_insn *.
31517         * ira.c (fix_reg_equiv_init): Adjust.
31518         * reload1.c (eliminate_regs_1): Likewise.
31519         (init_eliminable_invariants): Likewise.
31520
31521 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31522
31523         * cselib.c (fp_setter_insn): Take a rtx_insn *.
31524         * cselib.h (fp_setter_insn): Adjust.
31525
31526 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31527
31528         * recog.c (struct validate_replace_src_data): Change type of
31529         insn field to rtx_insn *.
31530         (validate_replace_src_group): Change type of argument to rtx_insn *.
31531         * recog.h (validate_replace_src_group): Adjust.
31532
31533 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31534
31535         * haifa-sched.c: Change the type of some variables to rtx_insn *.
31536         * sched-deps.c: Likewise.
31537         * sched-int.h: Likewise.
31538         * sched-rgn.c: Likewise.
31539         * sel-sched.c: Likewise.
31540
31541 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31542
31543         to rtx_insn *.
31544         * config/i386/i386.c: Change the type of some arguments to
31545         rtx_insn *.
31546         * config/arm/arm.c: Likewise.
31547
31548 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31549
31550         * lra-constraints.c: Change type of some arguments to rtx_insn *.
31551
31552 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31553
31554         * regcprop.c (kill_autoinc_value): Change type of argument to
31555         rtx_insn *.
31556
31557 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31558
31559         * genrecog.c (print_subroutine): Adjust.
31560         * recog.c (get_bool_attr_mask_uncached): Likewise.
31561         * recog.h (struct recog_data_d): Change the type of insn to
31562         rtx_insn *.
31563
31564 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31565
31566         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
31567
31568 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31569
31570         * df-problems.c (df_set_note): Change type of argument to
31571         rtx_insn *.
31572
31573 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31574
31575         * builtins.c (expand_builtin_trap): Change type of local
31576         variable to rtx_insn *.
31577         (add_sched_insns_for_speculation): Likewise.
31578         (ix86_emit_save_regs): Likewise.
31579         (get_scratch_register_on_entry): Likewise.
31580         (ix86_emit_restore_reg_using_pop): Likewise.
31581         (ix86_emit_leave): Likewise.
31582         (ix86_emit_restore_regs_using_mov): Likewise.
31583         (ix86_expand_epilogue): Likewise.
31584         Likewise.
31585         (rl78_alloc_physical_registers_umul): Likewise.
31586         * cselib.c (discard_useless_locs): Likewise.
31587         (cselib_invalidate_regno): Likewise.
31588         (cselib_invalidate_mem): Likewise.
31589         * function.c (expand_function_start): Likewise.
31590         (emit_use_return_register_into_block): Likewise.
31591         * gcse.c: Likewise.
31592         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
31593         * ifcvt.c (noce_get_alt_condition): Likewise.
31594         * loop-doloop.c (doloop_condition_get): Likewise.
31595         * lra-constraints.c (inherit_in_ebb): Likewise.
31596         * modulo-sched.c (sms_schedule_by_order): Likewise.
31597         * recog.c (next_insn_tests_no_inequality): Likewise.
31598         * reorg.c (emit_delay_sequence): Likewise.
31599         (update_reg_dead_notes): Likewise.
31600         (fix_reg_dead_note): Likewise.
31601         (fill_slots_from_thread): Likewise.
31602         (delete_computation): Likewise.
31603
31604 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
31605
31606         * doc/extend.texi (Variable Attributes): Add menu and proper
31607         @nodes to subsections.  Move Microsoft Windows attributes to
31608         their own subsection.
31609         (Type Attributes): Reorganize introduction to remove duplicate
31610         list of attributes.  Add menu and proper @nodes to subsections.
31611         Alphabetize the main table of common attributes.
31612
31613 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
31614
31615         * match.pd: New simplification patterns.
31616         (x + (x & 1))  -> ((x + 1) & ~1)
31617         (x & ~(x & y)) -> ((x & ~y))
31618         (x | ~(x | y)) -> ((x | ~y))
31619
31620 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31621
31622         * target.def (attribute_table): Mention that struct attribute_spec
31623         is defined in tree-core.h rather than tree.h
31624         * doc/tm.texi: Regenerate.
31625
31626 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
31627
31628         * genrecog.c (test): Rename to rtx_test.  Update rest of file
31629         accordingly.
31630
31631 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
31632
31633         PR translation/65959
31634         * params.h (DEFPARAM): Rename msgid to nocmsgid.
31635
31636 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31637
31638         * config/aarch64/aarch64-protos.h (tune_params):
31639         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
31640         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
31641         Return value depending on target.
31642         (generic_tunings): Initialize new target settings.
31643         (cortexa53_tunings): Likewise.
31644         (cortexa57_tunings): Likewise.
31645         (thunderx_tunings): Likewise.
31646         (xgene1_tunings): Likewise.
31647
31648 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31649
31650         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
31651         Make Cortex-A53 shift costs more accurate.
31652
31653 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31654
31655         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
31656         UNSIGNED_FLOAT.
31657
31658 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31659
31660         * config/aarch64/aarch64.c (aarch64_rtx_costs):
31661         Calculate cost of op0 and op1 in PLUS and MINUS cases.
31662
31663 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31664
31665         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
31666         Add cost of op0 in the compare-with-fpzero case.
31667
31668 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
31669
31670         * builtins.c (fold_builtin_1): Remove spurious second
31671         semicolon.
31672         * cgraph.h (symtab_node::get_availability): Likewise.
31673         * opts.c (common_handle_option): Remove spurious second semicolon.
31674         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
31675         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
31676
31677 2015-04-30  Caroline Tice  <cmtice@google.com>
31678
31679         PR gcov-profile/65929
31680         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
31681         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
31682         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
31683         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
31684         * doc/tm.texi: Regenerate.
31685         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
31686         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
31687         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
31688         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
31689
31690 2015-04-30  Marek Polacek  <polacek@redhat.com>
31691
31692         * varasm.c (handle_cache_entry): Fix logic.
31693
31694 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31695
31696         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
31697         (*extrsi5_insn_uxtw_alt): Likewise.
31698         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
31699         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
31700         operations.
31701
31702 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31703
31704         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
31705         fabd in ABS case.
31706
31707 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31708
31709         * config/aarch64/aarch64.md
31710         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
31711         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
31712         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
31713         appropriately.  Handle alternative EON form.
31714
31715 2015-04-30  Renlin Li  <renlin.li@arm.com>
31716
31717         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
31718         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
31719
31720 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31721
31722         PR ipa/65873
31723         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
31724         -fstrict-aliasing boundaries.
31725
31726 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31727
31728         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
31729         and [SU]MNEGL patterns.
31730
31731 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31732
31733         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
31734         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
31735         combined arithmetic-shift ops.  Properly handle all shift and extend
31736         operations that can occur in combination with PLUS/MINUS.
31737         Rename maybe_fma to compound_p.
31738         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
31739         arithmetic and shift operations.
31740
31741 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31742
31743         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
31744         rather than arith_shift cost when costing ADD/MINUS of an
31745         extended value.
31746
31747 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31748
31749         PR lto/65948
31750         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
31751         to itself.
31752
31753 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
31754
31755         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
31756         are for the same position.
31757
31758 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
31759
31760         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
31761         vectorize_loops.
31762         (vectorize_loops): Use it.
31763
31764 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31765
31766         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
31767         for aggregate types.
31768         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
31769         type to be non_ODR.
31770         * tree.c (need_assembler_name_p): Compute mangled name for
31771         non-fundamental types and integer types.
31772
31773 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
31774
31775         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
31776         manual swaps.
31777         * expr.c (expand_expr_real_2): Likewise.
31778
31779 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31780
31781         * tree.c (build_common_builtin_nodes): Do not build
31782         __builtin_alloca_with_align as equivalent of library alloca.
31783
31784 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31785
31786         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
31787         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
31788         bugus variants.
31789         * tree.c: Include print-tree.h and ipa-utils.h
31790         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
31791         (free_lang_data_in_cgraph): Call verify_type.
31792         (verify_type_variant): New function.
31793         (verify_type): New function.
31794         * tree.h (verify_type): Declare.
31795
31796 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
31797
31798         * config/mips/mips-cpus.def: (mips4): Change default processor
31799         from PROCESSOR_R8000 to PROCESSOR_R10000.
31800
31801 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
31802
31803         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
31804         la/jalr instead of jal.
31805
31806 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
31807
31808         PR target/65871
31809         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
31810         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
31811         (setcc+movzbl peephole2): Check also clobbered reg.
31812         (setcc+andl peephole2): Ditto.
31813
31814 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31815
31816         PR libgomp/65099
31817         * config/nvptx/mkoffload.c (target_ilp32): New variable.
31818         (main): Set it depending on "-foffload-abi=[...]".
31819         (compile_native, main): Use it to pass "-m32" or "-m64" to the
31820         compiler.
31821
31822 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31823
31824         PR target/65770
31825         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
31826         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
31827         Flip lane index back at assembly time for bigendian.
31828
31829 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31830
31831         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
31832         * gimplify.c (gimplify_omp_workshare): Use it.
31833
31834 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31835
31836         * Makefile.in (build/genrecog.o): Depend on inchash.h.
31837         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
31838         build/inchash.o
31839         * genrecog.c: Rewrite most of the code except for the third page.
31840
31841 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31842
31843         * inchash.h, inchash.c: Include bconfig.h for build objects.
31844         * Makefile.in (build/inchash.o): New rule.
31845
31846 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
31847
31848         PR target/65924
31849         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
31850         number in type attribute expression.
31851
31852 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31853
31854         * loop-iv.c (canon_condition): Generalize to all types of integer
31855         constant.
31856
31857 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
31858
31859         * gimple-walk.c: Prune duplicate or unneeded includes.
31860         (walk_gimple_asm): Only call parse_input_constraint or
31861         parse_output_constraint if their findings are used.
31862         Honour parse_input_constraint and parse_output_constraint
31863         result.
31864
31865 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31866
31867         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
31868
31869 2015-04-29  Tom de Vries  <tom@codesourcery.com>
31870
31871         PR tree-optimization/65893
31872         * passes.def (pass_all_optimizations): Move pass_stdarg to after
31873         pass_dce.
31874
31875 2015-04-29  Richard Biener  <rguenther@suse.de>
31876
31877         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
31878         compute GROUP_SIZE for basic-block SLP.
31879         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
31880         take into account gaps.
31881         (vect_get_mask_element): Properly reject references to previous
31882         vectors.
31883         (vect_transform_slp_perm_load): Likewise.
31884
31885 2015-04-29  Christian Bruel  <christian.bruel@st.com>
31886
31887         PR target/64835
31888         * config/i386/i386.c (ix86_default_align): New function.
31889         (ix86_override_options_after_change): Call ix86_default_align.
31890         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
31891         (ix86_override_options_after_change): New function.
31892
31893 2015-04-28  Jeff Law  <law@redhat.com>
31894
31895         * tree-ssa-dom.c (record_equality); Fix comment typos.
31896
31897 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31898
31899         PR tree-optimization/65887
31900         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
31901
31902 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
31903
31904         * doc/extend.texi (Declaring Attributes of Functions): Split into
31905         subsections by target.  Alphabetize the table of common attributes.
31906         Rewrite some of the introductory text to reflect the new structure.
31907         Update some cross-references to point to the new subsections.
31908         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
31909         duplicate copies in the discussion of function, label, and type
31910         attributes.
31911
31912 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
31913
31914         PR bootstrap/65910
31915         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
31916
31917 2015-04-28  Jason Merrill  <jason@redhat.com>
31918
31919         PR c++/65734
31920         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
31921         (finalize_type_size): Respect TYPE_USER_ALIGN.
31922         (layout_type) [ARRAY_TYPE]: Likewise.
31923
31924 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
31925
31926         * config/arm/arm.md (*arm_movt): Fix type attribute.
31927         (*cmpsi_shiftsi): Likewise.
31928         (*cmpsi_shiftsi_swp): Likewise.
31929         (*movsicc_insn): Likewise.
31930         (*cond_move): Likewise.
31931         (*if_plus_move): Likewise.
31932         (*if_move_plus): Likewise.
31933         (*if_arith_move): Likewise.
31934         (*if_move_arith): Likewise.
31935         (*if_shift_move): Likewise.
31936         (*if_move_shift): Likewise.
31937         (*arm_movtas_ze): Likewise.
31938         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
31939         redundancy and type attribute.
31940         (*thumb2_movsi_insn): Fix type attribute.
31941         (*thumb2_addsi_short): Likewise.
31942         (thumb2_addsi3_compare0): Likewise.
31943         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
31944         attributes accordingly.
31945
31946 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
31947
31948         PR other/65911
31949         * function.c (pad_to_arg_alignment): Add parentheses.
31950
31951 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
31952
31953         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
31954         libgcc/config/frv/elf-lib.h.
31955
31956 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31957
31958         * tree-call-cdce.c: Fix example in header comment.
31959
31960 2015-04-28  Richard Biener  <rguenther@suse.de>
31961
31962         PR tree-optimization/62283
31963         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
31964         fails fatally and we are vectorizing a basic-block simply
31965         cause the child to be constructed piecewise.
31966         (vect_analyze_slp_cost_1): Adjust.
31967         (vect_detect_hybrid_slp_stmts): Likewise.
31968         (vect_bb_slp_scalar_cost): Likewise.
31969         (vect_get_constant_vectors): For piecewise constructed
31970         constants place them after the last def.
31971         (vect_get_slp_defs): Adjust.
31972         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
31973         externals for basic-block vectorization.
31974
31975 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31976
31977         PR target/63503
31978         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
31979         aarch64-*-*.
31980         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
31981         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
31982         (AARCH64_TUNE_FMA_STEERING): Likewise.
31983         * config/aarch64/aarch64-cores.def: Set
31984         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
31985         FMUL/FMADD instructions.
31986         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
31987         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
31988         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
31989         * config/aarch64/cortex-a57-fma-steering.h: New file.
31990         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
31991
31992 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
31993
31994         * gensupport.c (std_preds): Add missing codes to address_operand entry.
31995
31996 2015-04-28  Richard Biener  <rguenther@suse.de>
31997
31998         PR tree-optimization/65851
31999         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
32000         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
32001         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
32002         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
32003         (ccp_visit_phi_node): Adjust.
32004         (evaluate_stmt): For simplifications to SSA names return its
32005         lattice value if that isn't VARYING.  Return immediately when
32006         simplified to a constant.
32007         (visit_assignment): Adjust.
32008         (ccp_visit_stmt): Likewise.
32009
32010 2015-04-28  Tom de Vries  <tom@codesourcery.com>
32011
32012         PR tree-optimization/65818
32013         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
32014         evaluated.
32015
32016 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32017
32018         * calls.c (save_fixed_argument_area): Don't check
32019         ARGS_GROW_DOWNWARD with the preprocessor.
32020         (restore_fixed_argument_area): Likewise.
32021         (mem_overlaps_already_clobbered_arg_p): Likewise.
32022         (check_sibcall_argument_overlap): Likewise.
32023         (expand_call): Likewise.
32024         (emit_library_call_value_1): Likewise.
32025         (store_one_arg): Likewise.
32026         * function.c (assign_parms): Likewise.
32027         (locate_and_pad_parm): Likewise.
32028         (pad_to_arg_alignment): Likewise.
32029         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
32030
32031 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32032
32033         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
32034         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
32035         * calls.c (save_fixed_argument_area): Don't chekc if
32036         ARGS_GROW_DOWNWARD is defined.
32037         (restore_fixed_argument_area): Likewise.
32038         (mem_overlaps_already_clobbered_arg_p): Likewise.
32039         (check_sibcall_argument_overlap): Likewise.
32040         (expand_call): Likewise.
32041         (emit_library_call_value_1): Likewise.
32042         (store_one_arg): Likewise.
32043         * function.c (assign_parms): Likewise.
32044         (locate_and_pad_parm): Likewise.
32045         (pad_to_arg_alignment): Likewise.
32046         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
32047
32048 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32049
32050         * defaults.h (gen_epilogue): New function.
32051         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
32052         defined.
32053         * cfgrtl.c (cfg_layout_finalize): Likewise.
32054         * df-scan.c: Likewise.
32055         * function.c (thread_prologue_and_epilogue_insns): Likewise.
32056         (reposition_prologue_and_epilogue_notes): Likewise.
32057         * reorg.c (find_end_label): Likewise.
32058         * toplev.c: Likewise.
32059
32060 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32061
32062         * bb-reorder.c (HAVE_return): Don't check if its undefined.
32063         * defaults.h (gen_simple_return): New function.
32064         (gen_simple_return): Likewise.
32065         (HAVE_return): Add default definition to false.
32066         (HAVE_simple_return): Likewise.
32067         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
32068         HAVE_return and HAVE_simple_return are defined.
32069         * function.c (gen_return_pattern): Likewise.
32070         (convert_jumps_to_returns): Likewise.
32071         (thread_prologue_and_epilogue_insns): Likewise.
32072         * reorg.c (find_end_label): Likewise.
32073         (dbr_schedule): Likewise.
32074         * shrink-wrap.c: Likewise.
32075         * shrink-wrap.h: Likewise.
32076
32077 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32078
32079         * defaults.h (EPILOGUE_USES): Add default definition of false.
32080         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
32081         * resource.c (init_resource_info): Likewise.
32082
32083 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32084
32085         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
32086         to false.
32087         * dwarf2out.c (field_byte_offset): REmove check if
32088         PCC_BITFIELD_TYPE_MATTERS is defined.
32089         * stor-layout.c (layout_decl): Likewise.
32090         (update_alignment_for_field): Likewise.
32091         (place_field): Likewise.
32092
32093 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32094
32095         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
32096         true.
32097         * regrename.c (check_new_reg_p): Remove check if
32098         HARD_REGNO_RENAME_OK is defined.
32099         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
32100
32101 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32102
32103         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
32104         * cse.c (fold_rtx): Likewise.
32105         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
32106         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
32107         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
32108         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
32109         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
32110         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
32111         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
32112         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
32113         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
32114         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
32115         * Likewise.
32116         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
32117         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
32118         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
32119         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
32120         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
32121         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
32122         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
32123         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
32124         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
32125         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
32126         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
32127         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
32128         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
32129         * doc/tm.texi: Regenerate.
32130         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
32131         either true or false.
32132
32133 2015-04-27  Jeff Law  <law@redhat.com>
32134
32135         PR tree-optimization/65217
32136         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
32137         of them has a single use, make sure it is the LHS of the implied
32138         copy.
32139
32140 2015-04-28  Alan Modra  <amodra@gmail.com>
32141
32142         PR target/65810
32143         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
32144         (offsettable_ok_by_alignment): Use minimum of decl and toc
32145         pointer alignment.  Replace dead code with assertion.
32146         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
32147         case if size exceeds toc pointer alignment.
32148         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
32149         (rs6000_emit_move): Likewise.
32150         * configure.ac: Add linker toc pointer alignment check.
32151         * configure: Regenerate.
32152         * config.in: Regenerate.
32153
32154 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
32155
32156         * config.gcc: Add h8300-*-linux.
32157         * config/h8300/linux.h: New.
32158         * config/h8300/t-linux: New.
32159         * config/h8300/h8300.c (h8300_option_override): Normal mode
32160         is not supported for h8300-*-linux.
32161         (h8300_file_start): Target priority change.
32162         (get_shift_alg): Likewise.
32163         (h8300_shift_need_scratch_p): Likewise.
32164         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
32165         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
32166
32167 2015-04-27  Caroline Tice  <cmtice@google.com>
32168
32169         * final.c (final_scan_insn):  Output cold_function_name as function
32170         type.
32171         * varasm.c (cold_function_name):  Make global.
32172         (assemble_start_function):  Re-set cold_function_name.
32173         (assemble_end_function): Output cold partition size.
32174         * varasm.h (cold_function_name):  Declare global.
32175
32176 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
32177
32178         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
32179         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
32180         constraint.
32181         (*movxi_internal_avx512f): Ditto.
32182         (define_split): Check for xmm16+, when splitting scalar float_extend.
32183         (*extendsfdf2_mixed): Use "v" constraint.
32184         (define_split): Check for xmm16+, when splitting scalar float_truncate.
32185         (*truncdfsf_fast_sse): Use "v" constraint.
32186         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
32187         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
32188         (define_peephole2): Check for xmm16+, when converting scalar
32189         float_truncate.
32190         (define_peephole2): Check for xmm16+, when converting scalar
32191         float_extend.
32192         (*fop_<mode>_comm_mixed): Use "v" constraint.
32193         (*fop_<mode>_comm_sse): Ditto.
32194         (*fop_<mode>_1_mixed): Ditto.
32195         (*sqrt<mode>2_sse): Ditto.
32196         (*ieee_s<ieee_maxmin><mode>3): Ditto.
32197
32198 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32199
32200         * combine.c (simplify_if_then_else): Use std::swap instead
32201         of manually swapping.
32202         (known_cond): Likewise.
32203         (simplify_comparison): Likewise.
32204
32205 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
32206
32207         PR target/64579
32208         * config/rs6000/htm.md: Remove all define_expands.
32209         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
32210         UNSPECV_HTM_TABORTWCI): Remove.
32211         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
32212         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
32213         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
32214         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
32215         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
32216         tabortwci_internal): Remove define_insns.
32217         (tabort<wd>c, tabort<wd>ci): New define_insns.
32218         (tabort): Use gpc_reg_operand.
32219         (tcheck): Remove operand.
32220         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
32221         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
32222         expected value.
32223         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
32224         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
32225         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
32226         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
32227         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
32228         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
32229         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
32230         (tcheck): Remove builtin argument.
32231         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
32232         not TARGET_64BIT.
32233         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
32234         tabortdc and tabortdci builtins when not in 64-bit mode.
32235         Modify code to handle the loss of the HTM define_expands.
32236         Emit code to copy the CR register to TARGET.
32237         (htm_init_builtins): Modify code to handle the loss of the HTM
32238         define_expands.
32239         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
32240         (RS6000_BTC_64BIT): Likewise.
32241         (RS6000_BTC_CR): New macro.
32242         * doc/extend.texi: Update documentation for htm builtins.
32243
32244 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32245
32246         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
32247         of manually swapping.
32248         (simplify_associative_operation): Likewise.
32249         (simplify_binary_operation): Likewise.
32250         (simplify_plus_minus): Likewise.
32251         (simplify_relational_operation): Likewise.
32252         (simplify_ternary_operation): Likewise.
32253
32254 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
32255
32256         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
32257         (xs_hi_nonmemory_operand): Remove error.
32258         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
32259         general_operand rather than xs_hi_general_operand.
32260
32261 2015-04-27  Richard Biener  <rguenther@suse.de>
32262
32263         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
32264         (record_equivalences_from_stmt): Valueize rhs.
32265         (record_equality): Canonicalize x and y order via
32266         tree_swap_operands_p.  Do not swap operands for same loop depth.
32267
32268 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
32269
32270         PR target/65296
32271         PR target/65895
32272         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
32273         Add hint how to use own spec file.
32274
32275 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
32276
32277         PR tree-optimization/65875
32278         * tree-vrp.c (update_value_range): If in is_new case setting
32279         old_vr to VR_VARYING, also set new_vr to it.  Remove
32280         old_vr->type == VR_VARYING test.
32281         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
32282         SSA_PROP_INTERESTING if update_value_range returned true,
32283         but new range is VR_VARYING.
32284
32285 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32286
32287         * combine.c (sign_extend_short_imm): New.
32288         (set_nonzero_bits_and_sign_copies): Use above new function for sign
32289         extension of src short immediate.
32290         (reg_nonzero_bits_for_combine): Likewise for tem.
32291
32292 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32293
32294         * stor-layout.c (self_referential_component_ref_p): New predicate.
32295         (copy_self_referential_tree_r): Use it.
32296         (self_referential_size): Punt for simple operations directly involving
32297         self-referential component references.
32298         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
32299
32300 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32301
32302         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
32303
32304 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
32305
32306         * vec.h (vec): Make splice arguments const.  Update definitions
32307         accordingly.
32308
32309 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
32310
32311         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
32312         alternatives.
32313
32314 2015-04-26  Tom de Vries  <tom@codesourcery.com>
32315
32316         PR tree-optimization/65826
32317         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
32318
32319 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
32320
32321         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
32322         (*madd3<mode>): Ditto.
32323         (*msub4<mode>): Ditto.
32324         (*msub3<mode>): Ditto.
32325         (*nmadd4<mode>): Ditto.
32326         (*nmadd3<mode>): Ditto.
32327         (*nmadd4<mode>_fastmath): Ditto.
32328         (*nmadd3<mode>_fastmath): Ditto.
32329         (*nmsub4<mode>): Ditto.
32330         (*nmsub3<mode>): Ditto.
32331         (*nmsub4<mode>_fastmath): Ditto.
32332         (*nmsub3<mode>_fastmath): Ditto.
32333
32334 2015-04-24  Jason Merrill  <jason@redhat.com>
32335
32336         PR c++/50800
32337         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
32338         down when building TYPE_CANONICAL.
32339         (build_pointer_type_for_mode): Likewise.
32340
32341 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
32342
32343         * genrecog.c (validate_pattern): Check matching constraint refers
32344         to a lower numbered operand.
32345
32346 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
32347
32348         PR target/65849
32349         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
32350         save to independent variables use the Save attribute.  This will
32351         allow these options to be modified with the #pragma/attribute
32352         target support.
32353         (-mallow-movmisalign): Likewise.
32354         (-mallow-df-permute): Likewise.
32355         (-msched-groups): Likewise.
32356         (-malways-hint): Likewise.
32357         (-malign-branch-targets): Likewise.
32358         (-mvectorize-builtins): Likewise.
32359         (-msave-toc-indirect): Likewise.
32360
32361         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
32362         can be set via the #pragma/attribute target support.
32363         (rs6000_opt_vars): Likewise.
32364         (rs6000_inner_target_options): If VSX was set, also set
32365         -mno-avoid-indexed-addresses.
32366
32367 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32368
32369         * config/arm/iterators.md (shiftable_ops): Rename to...
32370         (SHIFTABLE_OPS): ... This.  Update use in comments.
32371         (ior_xor): Rename to...
32372         (IOR_XOR): ... This.
32373         (vqh_ops): Rename to...
32374         (VQH_OPS): ... This.
32375         (vqhs_ops): Rename to...
32376         (VQHS_OPS): ... This.
32377         (rshifts): Rename to...
32378         (RSHIFTS): ... This.
32379         (returns): Rename to...
32380         (RETURNS): ... This.
32381         * config/arm/arm.md: Update uses of the above.
32382         * config/arm/neon.md: Likewise.
32383
32384 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32385
32386         * config.host (case ${host}): Add aarch64*-*-linux case.
32387         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
32388         fields to all the cores.
32389         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
32390         Add MCPU_MTUNE_NATIVE_SPECS.
32391         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
32392         field to all extensions.
32393         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
32394         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
32395         Adjust definition of AARCH64_OPT_EXTENSION.
32396         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
32397         (MCPU_MTUNE_NATIVE_SPECS): Define.
32398         * config/aarch64/driver-aarch64.c: New file.
32399         * config/aarch64/x-arch64: New file.
32400         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
32401         -mtune and -march.
32402
32403 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32404             Wei Mi  <wmi@google.com>
32405
32406         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
32407         * config/i386/i386.c (extract_base_offset_in_addr): New function.
32408         (ix86_operands_ok_for_move_multiple): Ditto.
32409         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
32410         (movlpd/movhpd to movupd peephole2): Ditto.
32411
32412 2015-04-24  Marek Polacek  <polacek@redhat.com>
32413
32414         PR c/61534
32415         * input.h (from_macro_expansion_at): Define.
32416
32417         PR c/63357
32418         * doc/invoke.texi: Update description of -Wlogical-op.
32419
32420 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32421
32422         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
32423         ternary operator in fprintf and harmonize spacing.
32424
32425 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32426
32427         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
32428         Mark operand1 commutative.
32429
32430 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32431
32432         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
32433         input operands in memory.
32434         (*vec_concatv2si_sse4_1): Ditto.
32435         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
32436         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
32437         register_operand.
32438         (vec_extract_hi_v32hi): Ditto.
32439         (vec_extract_hi_v64hi): Ditto.
32440         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
32441
32442 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32443             Steven Bosscher <steven@gcc.gnu.org>
32444
32445         PR rtl-optimization/34503
32446         * cprop.c (cprop_reg_p): New.
32447         (hash_scan_set): Use above function to check if register can be
32448         propagated.
32449         (find_avail_set): Return up to two sets, one whose source is a
32450         register and one whose source is a constant.  Sets are returned in an
32451         array passed as parameter rather than as a return value.
32452         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
32453         sets returned by find_avail_set, starting with the one whose source is
32454         a constant. Use cprop_reg_p to check if register can be propagated.
32455         (do_local_cprop): Use cprop_reg_p to check if register can be
32456         propagated.
32457         (implicit_set_cond_p): Likewise.
32458
32459 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32460
32461         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
32462         (sem_function::equals): IGNORED_NODES parameter is now unused;
32463         update call of equals_private.
32464         (sem_function::equals_private): Do not call equals_wpa; skip
32465         gimple body matching if there is no body.
32466         (sem_function::init): Add logic to hash tthunk info.
32467         (sem_function::parse): Also parse thunks.
32468         * ipa-icf.h (equals_private): Update declaration.
32469
32470 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32471
32472         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
32473         asterisk from name so this can be generated directly.
32474         (*altivec_stvx_<mode>_internal): Likewise.
32475         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
32476         that this is never called during or after reload/lra.
32477         (rs6000_frame_related): Remove split_reg
32478         argument and logic that references it.
32479         (emit_frame_save): Remove last parameter from call to
32480         rs6000_frame_related.
32481         (rs6000_emit_prologue): Remove last parameter from eight calls to
32482         rs6000_frame_related.  Force generation of stvx instruction for
32483         Altivec register saves.  Remove split_reg handling, which is no
32484         longer needed.
32485         (rs6000_emit_epilogue):  Force generation of lvx instruction for
32486         Altivec register restores.
32487
32488 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32489
32490         * config/rs6000/rs6000.opt (mcrypto): Change option description to
32491         match category changes in ISA 2.07B.
32492
32493 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32494
32495         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
32496         iterators.
32497         (cmp_op, cmp_type): New code attributes.
32498         (NEON_VCMP, NEON_VACMP): New int iterators.
32499         (cmp_op_unsp): New int attribute.
32500         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
32501         (neon_vceq<mode>): Delete.
32502         (neon_vc<cmp_op><mode>_insn): New pattern.
32503         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
32504         (neon_vcgeu<mode>): Delete.
32505         (neon_vcle<mode>): Likewise.
32506         (neon_vclt<mode>: Likewise.
32507         (neon_vcage<mode>): Likewise.
32508         (neon_vcagt<mode>): Likewise.
32509         (neon_vca<cmp_op><mode>): New define_expand.
32510         (neon_vca<cmp_op><mode>_insn): New pattern.
32511         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
32512
32513 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32514
32515         * tree.h (attribute_value_equal): Declare.
32516         * tree.c (attribute_value_equal): Export.
32517
32518 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32519
32520         * ipa-icf.c (sem_item::compare_attributes): New function.
32521         (sem_item::compare_referenced_symbol_properties): Compare variable
32522         attributes.
32523         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
32524         (sem_function::param_used_p): New function.
32525         (sem_function::equals_wpa): Fix attribute comparsion; match
32526         parameter type codes; do not compare paremter flags when
32527         they are not used; compare edge flags; compare indirect calls.
32528         (sem_item::update_hash_by_addr_refs): Hash reference type.
32529         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
32530         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
32531         reference use type.
32532         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
32533         * ipa-icf.h (compare_attributes, param_used_p): Declare.
32534
32535 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32536
32537         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
32538         cleanup.
32539         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
32540         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
32541         (sem_item::compare_referenced_symbol_properties): New.
32542         (sem_item::hash_referenced_symbol_properties): New.
32543         (sem_item::compare_cgraph_references): Rename to ...
32544         (sem_item::compare_symbol_references): ... this one; use
32545         compare_referenced_symbol_properties.
32546         (sem_function::equals_wpa): Do not compare
32547         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
32548         DECL_IS_OPERATOR_NEW; compare pointer sizes.
32549         (sem_item::update_hash_by_addr_refs): Call
32550         hash_referenced_symbol_properties.
32551         (sem_item::update_hash_by_local_refs): Cleanup.
32552         (sem_function::merge): Do not mix up symbol properties.
32553         (sem_variable::equals_wpa): Use compare_symbol_references.
32554         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
32555         (sem_item::hash_referenced_symbol_properties): New.
32556         (sem_item::compare_symbol_references): New.
32557         (sem_item::compare_cgraph_references): Remove.
32558
32559 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
32560
32561         PR target/26702
32562         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
32563         Emit size of local.
32564
32565 2015-04-23  Nick Clifton  <nickc@redhat.com>
32566
32567         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
32568         ATTRIBUTE_UNUSED to x parameter.
32569         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
32570
32571 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32572
32573         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
32574         TARGET_CRYPTO to TARGET_P8_VECTOR>
32575         (crypto_vpermxor_<mode>): Likewise.
32576         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
32577         (BU_CRYPTO_3A): Likewise.
32578         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
32579         (BU_CRYPTO_OVERLOAD_3A): New #define.
32580         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
32581         (VPMSUMH): Likewise.
32582         (VPMSUMW): Likewise.
32583         (VPMSUMD): Likewise.
32584         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
32585         (VPERMXOR_V4SI): Likewise.
32586         (VPERMXOR_V8HI): Likewise.
32587         (VPERMXOR_V16QI): Likewise.
32588         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
32589         BU_CRYPTO_OVERLOAD_2A.
32590         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
32591         BU_CRYPTO_OVERLOAD_3A.
32592         * config/rs6000/rs6000.opt (mcrypto): Change description of
32593         option.
32594
32595 2015-04-23  Richard Biener  <rguenther@suse.de>
32596
32597         * passes.def: Remove copy propagation passes run directly after CCP.
32598         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
32599         SSA names.
32600         (ccp_visit_phi_node): Rework to handle first executable edge
32601         specially.
32602
32603 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
32604
32605         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32606         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32607         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32608         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
32609         (thumb_legimitimize_reload_address): Remove.
32610         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
32611         Remove.
32612         (thumb_legimitimize_reload_address): Remove.
32613
32614 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32615
32616         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
32617
32618 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32619
32620         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
32621         MAX_LDM_STM_OPS.
32622         (store_multiple): Likewise.
32623
32624 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32625
32626         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
32627         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
32628         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
32629         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
32630         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
32631         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
32632         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
32633         Specify issue_rate value.
32634         (arm_issue_rate): Look up issue rate from tuning structs. Remove
32635         large switch statement.
32636         (arm_marvell_pj4_tune): New struct.
32637         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
32638         struct.
32639
32640 2015-04-23  Richard Biener  <rguenther@suse.de>
32641
32642         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
32643         (vect_find_last_store_in_slp_instance): Rename to ...
32644         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
32645         (vect_analyze_slp_cost_1): Use vector_load for constant defs
32646         and vec_construct for external defs when estimating prologue cost.
32647         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
32648         Compute costs here only when vectorizing loops.
32649         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
32650         have been determined.
32651         (vect_schedule_slp_instance): Simplify vectorized code placement
32652         and prepare for in-BB external defs.
32653         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
32654         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
32655         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
32656         guard.
32657         (vect_model_load_cost): Likewise.
32658         (vectorizable_store): Instead add it here.
32659         (vectorizable_load): Likewise.
32660         (vect_is_simple_use): Dump def type textually.
32661
32662 2015-04-23  Richard Biener  <rguenther@suse.de>
32663
32664         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
32665         * cfgloop.c (verify_loop_structure): Verify the root loop node.
32666         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
32667         instead of get_eh_region_from_lp_number.
32668         * loop-init.c (fix_loop_structure): If we removed a loop, reset
32669         the SCEV cache.
32670
32671 2015-04-23  Anton Blanchard  <anton@samba.org>
32672
32673         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
32674         need for -mprofile-kernel to save LR to stack.
32675
32676 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32677
32678         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
32679         adjustments.
32680         (insn_is_swappable_p): Return 1 for a convert from double to
32681         single precision when all of its uses are splats of BE element
32682         zero.
32683
32684 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
32685
32686         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
32687
32688 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32689
32690         PR target/65456
32691         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
32692         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
32693         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
32694         option.
32695         (rs6000_builtin_mask_for_load): Return 0 for targets with
32696         efficient unaligned VSX accesses so that the vectorizer will use
32697         direct unaligned loads.
32698         (rs6000_builtin_support_vector_misalignment): Always return true
32699         for targets with efficient unaligned VSX accesses.
32700         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
32701         stores on targets with efficient unaligned VSX accesses is almost
32702         always the same as the cost of an aligned load or store, so model
32703         it that way.
32704         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
32705         unaligned vectors if we have efficient unaligned VSX accesses.
32706         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
32707         undocumented option.
32708
32709 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32710
32711         Revert:
32712         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32713
32714         * config.gcc (LIBC_MUSL): New tm_defines macro.
32715         * config/linux.h (OPTION_MUSL): Define.
32716         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32717         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32718         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32719
32720         * config/linux.opt (mmusl): New option.
32721         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32722         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32723
32724         * configure: Regenerate.
32725
32726 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32727
32728         * config.gcc (LIBC_MUSL): New tm_defines macro.
32729         * config/linux.h (OPTION_MUSL): Define.
32730         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32731         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32732         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32733
32734         * config/linux.opt (mmusl): New option.
32735         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32736         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32737
32738         * configure: Regenerate.
32739
32740 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
32741
32742         * doc/invoke.texi (-fsanitize-sections): Update description.
32743         * asan.c (set_sanitized_sections): Parse incoming arg.
32744         (section_sanitized_p): Support wildcards.
32745
32746 2015-04-22  Tom de Vries  <tom@codesourcery.com>
32747
32748         PR tree-optimization/65823
32749         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
32750         equality between ap_copy and ap.
32751
32752 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32753
32754         PR target/47098
32755         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
32756
32757 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32758
32759         PR target/47122
32760         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
32761
32762 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32763
32764         PR target/55144
32765         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
32766         remove already contained t-files.
32767
32768 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32769
32770         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
32771         Remove unneeded forward declarations.
32772         (suitable_for_tail_call_opt_p): Commentary typo fix.
32773
32774 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32775
32776         * varasm.c (emit_bss): Remove redundant guard.
32777
32778 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32779
32780         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
32781
32782 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32783
32784         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
32785
32786 2015-04-22  Hale Wang  <hale.wang@arm.com>
32787             Terry Guo  <terry.guo@arm.com>
32788
32789         PR rtl-optimization/64818
32790         * combine.c (can_combine_p): Don't combine user-specified
32791         register if it is in an asm input.
32792
32793 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
32794
32795         PR ipa/65076
32796         * passes.def (early_optimizations): Add pass_dse.
32797
32798 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32799
32800         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
32801         * reorg.c (redundant_insn): Remove ifdef
32802         INSN_REFERENCES_ARE_DELAYED.
32803         * resource.c (mark_referenced_resources): Likewise.
32804
32805 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32806
32807         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
32808         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
32809         * resource.c (mark_set_resources): Likewise.
32810
32811 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32812
32813         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
32814         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32815         (flow_find_head_matching_sequence): Likewise.
32816         (try_head_merge_bb): Likewise.
32817         * combine.c (can_combine_p): Likewise.
32818         (try_combine): Likewise.
32819         (distribute_notes): Likewise.
32820         * df-problems.c (can_move_insns_across): Likewise.
32821         * final.c (final): Likewise.
32822         * gcse.c (insert_insn_end_basic_block): Likewise.
32823         * ira.c (find_moveable_pseudos): Likewise.
32824         * reorg.c (try_merge_delay_insns): Likewise.
32825         (fill_simple_delay_slots): Likewise.
32826         (fill_slots_from_thread): Likewise.
32827         * sched-deps.c (sched_analyze_2): Likewise.
32828
32829 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32830
32831         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
32832         PIC_OFFSET_TABLE_REGNUM.
32833
32834 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32835
32836         * alias.c (init_alias_target): Remove ifdef
32837         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
32838         * df-scan.c (df_insn_refs_collect): Likewise.
32839         (df_get_regular_block_artificial_uses): Likewise.
32840         (df_get_eh_block_artificial_uses): Likewise.
32841         (df_get_entry_block_def_set): Likewise.
32842         (df_get_exit_block_use_set): Likewise.
32843         * emit-rtl.c (gen_rtx_REG): Likewise.
32844         * ira.c (ira_setup_eliminable_regset): Likewise.
32845         * reginfo.c (init_reg_sets_1): Likewise.
32846         * regrename.c (rename_chains): Likewise.
32847         * reload1.c (reload): Likewise.
32848         (eliminate_regs_in_insn): Likewise.
32849         * resource.c (mark_referenced_resources): Likewise.
32850         (init_resource_info): Likewise.
32851
32852 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32853
32854         * defaults.h (MASK_RETURN_ADDR): New definition.
32855         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32856         MASK_RETURN_ADDR.
32857
32858 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32859
32860         * defaults.h (RETURN_ADDR_OFFSET): New definition.
32861         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32862         RETURN_ADDR_OFFSET.
32863         (expand_builtin_frob_return_addr): Likewise.
32864
32865 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32866
32867         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
32868         (try_redirect_by_replacing_jump): Likewise.
32869         (rtl_tidy_fallthru_edge): Likewise.
32870         * combine.c (insn_a_feeds_b): Likewise.
32871         (find_split_point): Likewise.
32872         (simplify_set): Likewise.
32873         * cprop.c (cprop_jump): Likewise.
32874         * cse.c (cse_extended_basic_block): Likewise.
32875         * df-problems.c (can_move_insns_across): Likewise.
32876         * function.c (emit_use_return_register_into_block): Likewise.
32877         * haifa-sched.c (sched_init): Likewise.
32878         * ira.c (find_moveable_pseudos): Likewise.
32879         * loop-invariant.c (find_invariant_insn): Likewise.
32880         * lra-constraints.c (curr_insn_transform): Likewise.
32881         * postreload.c (reload_combine_recognize_const_pattern):
32882         * Likewise.
32883         * reload.c (find_reloads): Likewise.
32884         * reorg.c (delete_scheduled_jump): Likewise.
32885         (steal_delay_list_from_target): Likewise.
32886         (steal_delay_list_from_fallthrough): Likewise.
32887         (redundant_insn): Likewise.
32888         (fill_simple_delay_slots): Likewise.
32889         (fill_slots_from_thread): Likewise.
32890         (delete_computation): Likewise.
32891         * sched-rgn.c (add_branch_dependences): Likewise.
32892
32893 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32894
32895         * genconfig.c (main): Always define HAVE_cc0.
32896         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
32897         HAVE_cc0.
32898         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32899         (flow_find_head_matching_sequence): Likewise.
32900         (try_head_merge_bb): Likewise.
32901         * cfgrtl.c (rtl_merge_blocks): Likewise.
32902         (try_redirect_by_replacing_jump): Likewise.
32903         (rtl_tidy_fallthru_edge): Likewise.
32904         * combine.c (do_SUBST_MODE): Likewise.
32905         (insn_a_feeds_b): Likewise.
32906         (combine_instructions): Likewise.
32907         (can_combine_p): Likewise.
32908         (try_combine): Likewise.
32909         (find_split_point): Likewise.
32910         (subst): Likewise.
32911         (simplify_set): Likewise.
32912         (distribute_notes): Likewise.
32913         * cprop.c (cprop_jump): Likewise.
32914         * cse.c (cse_extended_basic_block): Likewise.
32915         * df-problems.c (can_move_insns_across): Likewise.
32916         * final.c (final): Likewise.
32917         (final_scan_insn): Likewise.
32918         * function.c (emit_use_return_register_into_block): Likewise.
32919         * gcse.c (insert_insn_end_basic_block): Likewise.
32920         * haifa-sched.c (sched_init): Likewise.
32921         * ira.c (find_moveable_pseudos): Likewise.
32922         * loop-invariant.c (find_invariant_insn): Likewise.
32923         * lra-constraints.c (curr_insn_transform): Likewise.
32924         * optabs.c (prepare_cmp_insn): Likewise.
32925         * postreload.c (reload_combine_recognize_const_pattern):
32926         * Likewise.
32927         * reload.c (find_reloads): Likewise.
32928         (find_reloads_address_1): Likewise.
32929         * reorg.c (delete_scheduled_jump): Likewise.
32930         (steal_delay_list_from_target): Likewise.
32931         (steal_delay_list_from_fallthrough): Likewise.
32932         (try_merge_delay_insns): Likewise.
32933         (redundant_insn): Likewise.
32934         (fill_simple_delay_slots): Likewise.
32935         (fill_slots_from_thread): Likewise.
32936         (delete_computation): Likewise.
32937         (relax_delay_slots): Likewise.
32938         * sched-deps.c (sched_analyze_2): Likewise.
32939         * sched-rgn.c (add_branch_dependences): Likewise.
32940
32941 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32942
32943         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
32944         that is trivially ded on non cc0 targets.
32945         (simplify_set): Likewise.
32946         (mark_used_regs_combine): Likewise.
32947         * cse.c (new_basic_block): Likewise.
32948         (fold_rtx): Likewise.
32949         (cse_insn): Likewise.
32950         (cse_extended_basic_block): Likewise.
32951         (set_live_p): Likewise.
32952         * rtlanal.c (canonicalize_condition): Likewise.
32953         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
32954
32955 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32956
32957         * conditions.h: Define macros even if HAVE_cc0 is undefined.
32958         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
32959         * final.c: Likewise.
32960         * jump.c: Likewise.
32961         * recog.c: Likewise.
32962         * recog.h: Declare functions even when HAVE_cc0 is undefined.
32963         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
32964
32965 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32966
32967         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
32968         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
32969         * builtins.c (expand_builtin): Remove check if
32970         EH_RETURN_DATA_REGNO is defined.
32971         * df-scan.c (df_bb_refs_collect): Likewise.
32972         (df_get_exit_block_use_set): Likewise.
32973         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
32974         * ira-lives.c (process_bb_node_lives): Likewise.
32975         * lra-lives.c (process_bb_lives): Likewise.
32976
32977 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32978
32979         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
32980         FIRST_PSEUDO_REG): New.
32981         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
32982         (ARG_POINTER_REGNUM): Define to ARGP_REG.
32983         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
32984         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
32985         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
32986         (FIRST_INT_REG): New.
32987         (LAST_INT_REG): New.
32988         (FIRST_*_REG): Define using *_REG.
32989         (LAST_*_REG): Ditto.
32990         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
32991         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
32992         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
32993
32994 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32995
32996         * expmed.c: (synth_mult): Only assume overlapping
32997         shift with previous steps in alg_sub_t_m2 case.
32998
32999 2015-04-21  Richard Biener  <rguenther@suse.de>
33000
33001         PR tree-optimization/65650
33002         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
33003         transitions involving copies.
33004         (set_lattice_value): Adjust for copy lattice state.
33005         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
33006         if that doesn't dominate the merge point.
33007         (bit_value_unop): Adjust what we treat as varying mask.
33008         (bit_value_binop): Likewise.
33009         (bit_value_assume_aligned): Likewise.
33010         (evaluate_stmt): When we simplified to a SSA name record a copy
33011         instead of dropping to varying.
33012         (visit_assignment): Simplify.
33013
33014         * gimple-match.h (gimple_simplify): Add another callback.
33015         * gimple-fold.c (fold_stmt_1): Adjust caller.
33016         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
33017         for the 2nd callback.
33018         * gimple-match-head.c (gimple_simplify): Add a callback that is
33019         used to valueize the stmt operands and use it that way.
33020
33021 2015-04-21  Richard Biener  <rguenther@suse.de>
33022
33023         PR tree-optimization/65788
33024         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
33025
33026 2015-04-21  Richard Biener  <rguenther@suse.de>
33027
33028         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
33029         vec_construct cost by vec_stmt_cost.
33030
33031 2015-04-21  Richard Biener  <rguenther@suse.de>
33032
33033         * cfghooks.h (create_basic_block): Replace with two overloads
33034         for RTL and GIMPLE.
33035         (split_block): Likewise.
33036         * cfghooks.c (split_block): Rename to ...
33037         (split_block_1): ... this.
33038         (split_block): Add two type-safe overloads for RTL and GIMPLE.
33039         (split_block_after_labels): Call split_block_1.
33040         (create_basic_block): Rename to ...
33041         (create_basic_block_1): ... this.
33042         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
33043         (create_empty_bb): Call create_basic_block_1.
33044         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
33045         split_block_after_labels.
33046         * omp-low.c (expand_parallel_call): Likewise.
33047         (expand_omp_target): Likewise.
33048         (simd_clone_adjust): Likewise.
33049         * tree-chkp.c (chkp_get_entry_block): Likewise.
33050         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
33051         create_basic_block overload.
33052         (cgraph_node::expand_thunk): Likewise.
33053         * tree-cfg.c (make_blocks): Likewise.
33054         (handle_abnormal_edges): Likewise.
33055         * tree-inline.c (copy_bb): Likewise.
33056
33057 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33058
33059         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
33060         New pattern.
33061         (*xor_one_cmplsidi3_ze): Likewise.
33062
33063 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33064
33065         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
33066         use df_remove_problem rather than manually removing problems, leaving
33067         holes in df->problems_in_order[].
33068
33069 2015-04-21  Tom de Vries  <tom@codesourcery.com>
33070
33071         PR tree-optimization/65802
33072         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
33073
33074 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33075
33076         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
33077         Increase to 128.
33078         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
33079         at '.'.  Assert that there's enough space for everything.
33080
33081 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
33082
33083         PR tree-optimization/64950
33084         Revert:
33085         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
33086
33087         PR target/41089
33088         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
33089         as volatile.
33090
33091 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
33092
33093         PR rtl-optimization/64916
33094         * cfgcleanup.c (values_equal_p): New function.
33095         (can_replace_by): Use it.
33096
33097 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
33098
33099         PR c++/65801
33100         * doc/invoke.texi ([-Wnarrowing]): Update.
33101
33102 2015-04-20  Jeff Law  <law@redhat.com>
33103
33104         PR tree-optimization/65658
33105         * tree-ssa-threadupdate.c (redirection_block_p): Remove
33106         redundant test for GIMPLE_ASSIGN in last change.
33107
33108 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
33109
33110         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
33111         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
33112         (legitimize_tls_address): Ditto.
33113         (ix86_expand_move): Ditto.
33114         (ix86_expand_binary_operator): Remove reload_in_progress checks.
33115         (ix86_expand_unary_operator): Ditto.
33116         * config/i386/predicates.md (index_register_operand): Ditto.
33117
33118 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
33119
33120         * reorg.c (try_merge_delay_insns): Improve correctness checking
33121         for targets with multiple delay slots.
33122
33123 2015-04-20  Jeff Law  <law@redhat.com>
33124
33125         PR tree-optimization/65658
33126         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
33127         statements too.
33128
33129 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
33130
33131         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
33132         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
33133         Delete.
33134
33135 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
33136
33137         PR debug/65807
33138         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
33139
33140 2015-04-20  Richard Biener  <rguenther@suse.de>
33141
33142         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
33143         * gimple-fold.c (gimple_build_valueize): New function.
33144         (gimple_build): Always use gimple_build_valueize as valueize hook.
33145
33146 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
33147
33148         PR target/64134
33149         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
33150         and overwrite variable parts if <= 1/2 the elements are variable.
33151
33152 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33153
33154         PR rtl-optimization/65805
33155         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
33156         Don't use difference of offset and previous offset if
33157         update_sp_offset is non-zero.
33158         (eliminate_regs_in_insn): Ditto.
33159         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
33160         lra_eliminate_regs_1 call.
33161         * lra-constraints.c (get_equiv_with_elimination): Ditto.
33162
33163 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
33164
33165         * hash-table.h: Remove version of hash_table that stored value_type *.
33166         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
33167         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
33168         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
33169         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
33170         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
33171         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
33172         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
33173         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
33174         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
33175         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
33176         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
33177         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
33178         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
33179         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
33180         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
33181         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
33182
33183 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33184             Jakub Jelinek  <jakub@redhat.com>
33185
33186         PR target/65787
33187         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
33188         subsequent SH_NONE operand does not overwrite an existing *special
33189         value.
33190         (adjust_extract): Handle case where a vec_extract operation is
33191         wrapped in a PARALLEL.
33192
33193 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
33194
33195         PR target/65780
33196         * config/i386/i386.c (ix86_binds_local_p): Define only if
33197         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
33198
33199 2015-04-17  Jeff Law  <law@redhat.com>
33200
33201         PR tree-optimization/47679
33202         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
33203         * tree-ssa-scopedtables.c: New file.
33204         * tree-ssa-scopedtables.h: New file.
33205         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
33206         (const_and_copies): Change name/type.
33207         (record_const_or_copy): Move into tree-ssa-scopedtables.c
33208         (record_const_or_copy_1): Similarly.
33209         (restore_vars_to_original_value): Similarly.
33210         (pass_dominator::execute): Create and destroy const_and_copies table.
33211         (thread_across_edge): Update passing of const_and_copies.
33212         (record_temporary_equivalence): Use method calls rather than
33213         manipulating const_and_copies directly.
33214         (record_equality, cprop_into_successor_phis): Similarly.
33215         (dom_opt_dom_walker::before_dom_children): Similarly.
33216         (dom_opt_dom_walker::after_dom_children): Similarly.
33217         (eliminate_redundant_computations): Similarly.
33218         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
33219         (record_temporary_equivalence): Likewise.
33220         (invalidate_equivalences): Likewise.
33221         (record_temporary_equivalences_from_phis): Update due to type
33222         change of const_and_copies.  Use method calls rather than
33223         manipulating the stack directly.
33224         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
33225         (thread_through_normal_block, thread_across_edge): Likewise.
33226         (thread_across_edge): Likewise.
33227         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
33228         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
33229         of equiv_stack.
33230         (identify_jump_threads): Update due to type change of equiv_stack.
33231         (finalize_jump_threads): Delete the equiv_stack when complete.
33232
33233 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
33234
33235         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
33236         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
33237         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
33238
33239 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
33240
33241         PR target/65535
33242         * config.gcc: Exit with a comment when we do not have a major version
33243         number for the FreeBSD target.
33244
33245 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
33246
33247         PR target/65689
33248         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
33249         maybe_allows_mem bitfields.
33250         (maybe_allows_none_start, maybe_allows_none_end,
33251         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
33252         maybe_allows_mem_end): New variables.
33253         (compute_maybe_allows): New function.
33254         (add_constraint): Use it to initialize maybe_allows_reg and
33255         maybe_allows_mem fields.
33256         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
33257         is_address constraints such that those that allow neither mem nor
33258         reg come first, then those that only allow reg but not mem, then
33259         those that only allow mem but not reg, then the rest.
33260         (write_allows_reg_mem_function): New function.
33261         (write_tm_preds_h): Call it.
33262         * stmt.c (parse_output_constraint, parse_input_constraint): Use
33263         the generated insn_extra_constraint_allows_reg_mem function
33264         instead of always setting *allows_reg = true; *allows_mem = true;
33265         for unknown extra constraints.
33266
33267 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
33268
33269         PR target/65780
33270         * output.h (default_binds_local_p_3): New.
33271         * varasm.c (default_binds_local_p_3): Make it public.  Take an
33272         argument to indicate if common symbol may be local.  If common
33273         symbol may be local, treat non-external variable as defined
33274         locally.
33275         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
33276         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
33277         * config/i386/i386.c (ix86_binds_local_p): New.
33278         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
33279         ix86_binds_local_p.
33280
33281 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
33282
33283         PR debug/65771
33284         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
33285         trying mem_loc_descriptor on XEXP (rtl, 0).
33286
33287 2015-04-17  Martin Liska  <mliska@suse.cz>
33288
33289         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
33290         Release symbol_compare_collection.
33291         * ipa-reference.c: Add TODO that a vector should be released.
33292
33293 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
33294
33295         PR target/65296
33296         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
33297         to new AVR-LibC file layout (bug #44574).
33298         (*avrlibc_devicelib): Same.
33299         * config/avr/avr-mcus.def: Adjust comments.
33300         * config/avr/avr.opt (nodevicelib): Adjust help.
33301
33302 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
33303
33304         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
33305
33306 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
33307
33308         PR c++/64527
33309         * gimplify.c (gimplify_init_constructor): Always emit a
33310         side-effecting constructor.
33311
33312 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33313
33314         PR tree-optimization/64950
33315         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
33316         in cfun->curr_properties.
33317         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
33318         if we generate an IFN_VA_ARG.
33319         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
33320         function if PROP_gimple_lva is not set in src function.
33321
33322 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33323             Michael Matz  <matz@suse.de>
33324
33325         PR tree-optimization/64950
33326         * gimple-iterator.c (update_modified_stmts): Remove static.
33327         * gimple-iterator.h (update_modified_stmts): Declare.
33328         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
33329         (gimplify_va_arg_internal): New function.
33330         (gimplify_va_arg_expr): Use IFN_VA_ARG.
33331         * gimplify.h (gimplify_va_arg_internal): Declare.
33332         * internal-fn.c (expand_VA_ARG): New unreachable function.
33333         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
33334         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
33335         (expand_ifn_va_arg): New function.
33336         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
33337         (pass_stdarg::execute): Call expand_ifn_va_arg.
33338         (pass_data_lower_vaarg): New pass_data.
33339         (pass_lower_vaarg): New gimple_opt_pass.
33340         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
33341         (make_pass_lower_vaarg): New function.
33342         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
33343         properties_required field.
33344         * passes.def (all_passes): Add pass_lower_vaarg.
33345         * tree-pass.h (PROP_gimple_lva): Add define.
33346         (make_pass_lower_vaarg): Declare.
33347
33348 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33349
33350         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
33351         * calls.c (call_expr_flags): Same.
33352
33353 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33354
33355         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
33356         (pass_stdarg::execute): ... here.
33357
33358 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33359             Michael Matz  <matz@suse.de>
33360
33361         * tree-cfg.c (make_blocks_1): Factor out of ...
33362         (make_blocks): ... here.
33363         (make_edges_bb): Factor out of ...
33364         (make_edges): ... here.
33365         (gimple_find_sub_bbs): New function.
33366         * tree-cfg.h (gimple_find_sub_bbs): Declare.
33367
33368 2015-04-17  Tom de Vries  <tom@codesourcery.com>
33369
33370         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
33371
33372 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
33373
33374         * asan.c (set_sanitized_sections): New function.
33375         (section_sanitized_p): Ditto.
33376         (asan_protect_global): Optionally sanitize user-defined
33377         sections.
33378         * asan.h (set_sanitized_sections): Declare new function.
33379         * common.opt (fsanitize-sections): New option.
33380         * doc/invoke.texi (-fsanitize-sections): Document new option.
33381         * opts-global.c (handle_common_deferred_options): Handle new
33382         option.
33383
33384 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
33385
33386         PR debug/65771
33387         * dwarf2out.c (loc_list_from_tree): Return NULL
33388         for DEBUG_EXPR_DECL.
33389
33390 2015-04-17  Christian Bruel  <christian.bruel@st.com>
33391
33392         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
33393         same attributes.
33394
33395 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
33396
33397         * ira-color.c (setup_left_conflict_sizes_p): Do not process
33398         node itself when computing left conflict subnode size.
33399
33400 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
33401
33402         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
33403         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
33404         *fop_<mode>_1_sse using enabled attribute.  Use
33405         register_mixssei387nonimm_operand operand 1 predicate. Change
33406         alternative 3 constraints from "x" to "v".
33407
33408 2015-04-16  Richard Biener  <rguenther@suse.de>
33409
33410         PR tree-optimization/65774
33411         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
33412         bit-value tracking on.
33413
33414 2015-04-16  Richard Biener  <rguenther@suse.de>
33415
33416         PR tree-optimization/64277
33417         * tree-vrp.c (check_array_ref): Fix anti-range handling,
33418         simplify upper bound handling.
33419         (search_for_addr_array): Simplify.
33420         (check_array_bounds): Handle ADDR_EXPRs here.
33421         (check_all_array_refs): Simplify.
33422
33423 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
33424
33425         * config/i386/i386.c (print_reg): Rewrite function.
33426
33427 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33428
33429         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
33430         Invert the condition.
33431
33432 2015-04-16  Renlin Li  <renlin.li@arm.com>
33433
33434         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
33435         simplifications for UNSIGNED_FLOAT.
33436
33437 2015-04-16  Nick Clifton  <nickc@redhat.com>
33438
33439         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
33440         MUL_UNINIT.
33441         (enum rl78_cpu_type): New.
33442         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
33443         (umulhi3_shift_virt): Remove m constraint from operand 1.
33444         (umulqihi3_virt): Likewise.
33445         * config/rl78/rl78.c (rl78_option_override): Add code to process
33446         -mcpu and -mmul options.
33447         (rl78_alloc_physical_registers): Add code to handle divhi and
33448         divsi valloc attributes.
33449         (set_origin): Likewise.
33450         * config/rl78/rl78.h (RL78_MUL_G14): Define.
33451         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
33452         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
33453         __RL78_Gxx__.
33454         (ASM_SPEC): Pass -mcpu on to assembler.
33455         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
33456         (mulqi3_rl78): Likewise.
33457         (mulhi3_g13): Likewise.
33458         (mulhi3): Generate the G13 or G14 versions of the insn directly.
33459         (mulsi3): Likewise.
33460         (mulhi3_g14): Add clobbers of AX and BC.
33461         (mulsi3_g14): Likewise.
33462         (mulsi3_g13): Likewise.
33463         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
33464         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
33465         * config/rl78/rl78.opt (mmul): Initialise value to
33466         RL78_MUL_UNINIT.
33467         (mcpu): New option.
33468         (m13, m14, mrl78): New option aliases.
33469         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
33470         (MULTILIB_DIRNAMES): Add g13 and g14.
33471         * doc/invoke.texi: Document -mcpu and -mmul options.
33472
33473 2015-04-16  Richard Biener  <rguenther@suse.de>
33474
33475         * tree-ssa-ccp.c (likely_value): See if we have operands that
33476         are marked as never simulate again and return CONSTANT in this
33477         case.
33478         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
33479         not have any operands that will be simulated again as
33480         not being simulated again.
33481
33482 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
33483
33484         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
33485         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
33486         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
33487         attribute.
33488         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
33489         enabled attribute.
33490         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
33491         *float<SWI48:mode><MODEF:mode>2_sse.
33492         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
33493         enabled attribute.
33494         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
33495         enabled attribute.
33496
33497 2015-04-15  Tom de Vries  <tom@codesourcery.com>
33498
33499         PR other/65487
33500         * function.c (push_dummy_function): New function.
33501         (init_dummy_function_start): Use push_dummy_function.
33502         (pop_dummy_function): New function.  Factored out of ...
33503         (expand_dummy_function_end): ... here.
33504         * function.h (push_dummy_function, pop_dummy_function): Declare.
33505         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
33506         pop_dummy_function.
33507         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
33508
33509 2015-04-15  Jeff Law  <law@redhat.com>
33510
33511         PR tree-optimization/47679
33512         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
33513         need for forward declaration in upcoming changes.
33514         (record_conditions, record_edge_info): Likewise.
33515
33516         PR rtl-optimization/42522
33517         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
33518         SIGN_EXTRACT as a whole object rather than simplifying
33519         its operand.
33520
33521 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
33522
33523         PR ipa/65765
33524         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
33525         and GIMPLE_PREDICT use break instead of return true. For
33526         GIMPLE_EH_DISPATCH, compare dispatch region.
33527
33528 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
33529
33530         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
33531         details about the implementation.  Make clear preference for
33532         __atomic builtins.  Reduce possibility of future change.
33533
33534 2015-04-15  Nick Clifton  <nickc@redhat.com>
33535
33536         * config/rx/rx.opt (mallow-string-insns): New option.
33537         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
33538         builtin if string instructions are denied.
33539         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
33540         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
33541         appropriate.
33542         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
33543         * config/rx/rx.md (movstr): Enable pattern only if string
33544         instructions are allowed.
33545         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
33546         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
33547         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
33548         (MULTILIB_DIRNAMES): Add no-strings.
33549         * doc/invoke.texi: Document -mno-allow-string-insns.
33550
33551 2015-04-15  Alan Modra  <amodra@gmail.com>
33552
33553         PR target/65408
33554         PR target/58744
33555         PR middle-end/36043
33556         * calls.c (load_register_parameters): Don't load past end of
33557         mem unless suitably aligned.
33558
33559 2015-04-15  Nick Clifton  <nickc@redhat.com>
33560
33561         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
33562         decrement instruction as being frame related.
33563         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
33564         based addresses.
33565         If zero extending a function address enclose the operation in
33566         %code(...).
33567         (rl78_preferred_reload_class): New function.
33568         (TARGET_PREFERRED_RELOAD_CLASS): Define.
33569         * config/rl78/rl78.md: Remove useless constraints in expanders.
33570         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
33571         (mulhi3_rl78): Likewise.
33572         (mulhi3_g13): Likewise.
33573         (mulsi3_rl78): Likewise.
33574         (es_addr): Move to before the multiply patterns.
33575
33576 2015-04-15  Alan Modra  <amodra@gmail.com>
33577
33578         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
33579         and sequence_stack.  Add seq.
33580         (seq_stack): Delete.
33581         * function.c (prepare_function_start): Don't access x_last_insn.
33582         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
33583         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
33584         * emit_rtl.c (start_sequence, push_topmost_sequence,
33585         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
33586         sequence accessors.
33587         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
33588         remove_insn): Likewise.  Simplify.
33589         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
33590         and pop_topmost_sequence.
33591         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
33592         debug insns.
33593         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
33594
33595 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
33596
33597         PR target/65729
33598         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
33599         the assertiion.
33600
33601 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33602
33603         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
33604         (LEGACY_INT_REGNO_P): Ditto.
33605         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
33606         (ANY_MASK_REG_P): Remove.
33607         (BND_REG_P): Rename from ANY_BND_REG_P.
33608         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
33609         legacy integer registers.  Do not handle MMX_REG_P in a special way.
33610         Merge 64byte and 32byte SSE handling.
33611
33612 2015-04-14  Nick Clifton  <nickc@redhat.com>
33613
33614         * expr.c (expand_assignment): Force an address offset computation
33615         into a register before changing its mode.
33616         (expand_expr_real_1): Likewise.
33617
33618 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
33619
33620         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
33621         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
33622         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
33623         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
33624         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
33625         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
33626         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
33627         and __aarch64_vget_lane_any.
33628
33629 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
33630
33631         PR rtl-optimization/65761
33632         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
33633         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
33634
33635 2015-04-14  Richard Biener  <rguenther@suse.de>
33636
33637         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
33638         (graphite_can_represent_scev): Use POINTER_TYPE_P.
33639
33640 2015-04-14  Richard Biener  <rguenther@suse.de>
33641
33642         PR tree-optimization/65758
33643         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
33644         against -1.
33645         (ccp_lattice_meet): Likewise.
33646         (bit_value_unop): Likewise.
33647         (bit_value_binop): Likewise.
33648         (bit_value_assume_aligned): Likewise.
33649
33650 2015-04-14  Christian Bruel  <christian.bruel@st.com>
33651
33652         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
33653         function.
33654
33655 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
33656
33657         PR tree-optimization/63387
33658         * match.pd ((x unord x) | (y unord y) -> (x unord y),
33659         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
33660
33661 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33662
33663         * config/i386/predicates.md (any_QIreg_operand): Rename from
33664         q_regs_operand.  Do not process subregs.
33665         (QIreg_operand): Use QI_REGNO_P predicate.
33666         (ext_QIreg_operand): Ditto.
33667         (ext_register_operand): Ditto.
33668         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
33669         (AND splitters): Ditto.
33670         (AND with -65536 splitter): Add SWI48 mode for operand 0.
33671         (AND with -256 splitter): Use any_QIreg_operand predicate and
33672         SWI248 mode for operand 0.
33673         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
33674         mode for operand 0.
33675         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
33676
33677 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
33678
33679         * doc/plugins.texi: Rewrite first introductory paragraph.
33680
33681 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33682
33683         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
33684         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
33685
33686 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33687
33688         * ipa-profie.c (ipa_profile): Check number of parameters
33689         and possible polymorphic call targets before
33690         devirtualizing.
33691
33692 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
33693
33694         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
33695         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
33696
33697 2015-04-13  Richard Biener  <rguenther@suse.de>
33698
33699         PR tree-optimization/65204
33700         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
33701         takens for bit-CCP.
33702
33703 2015-04-13  Richard Biener  <rguenther@suse.de>
33704
33705         PR target/65660
33706         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
33707         and cond_not_taken_branch_cost to 4 and 2.
33708         (bdver2_cost): Likewise.
33709         (bdver3_cost): Likewise.
33710         (bdver4_cost): Likewise.
33711
33712 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33713
33714         * hash-table.h (hash_table constructor): Add mem stats.
33715         (alloc_entries): Likewise.
33716
33717 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33718
33719         * ipa-cp.c (ipcp_driver): Relase prev_edge.
33720         * passes.c (execute_one_pass): Only add transform if pass has one.
33721
33722 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
33723
33724         * config/i386/i386.c (ix86_option_override_internal): Don't set
33725         -fprefetch-loop-arrays if optimizing for size.
33726
33727 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33728             Gerald Pfeifer  <gerald@pfeifer.com>
33729
33730         * doc/contrib.texi (Contributors): Add Martin Jambor and
33731         Michael Matz.
33732
33733 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
33734
33735         * BASE-VER: Set to 6.0.0.
33736
33737         PR tree-optimization/65747
33738         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
33739         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
33740
33741 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33742
33743         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
33744         sentence.  Improve grammar.
33745
33746 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33747
33748         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
33749
33750 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33751
33752         PR ipa/65743
33753         * ipa-inline-transform.c (speculation_removed): Remove static var.
33754         (check_speculations): New function.
33755         (clone_inlined_nodes): Do not check spculations.
33756         (inline_call): Call check_speculations.
33757         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
33758         consider non-invariants.
33759
33760 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33761             Martin Liska  <mliska@suse.cz>
33762
33763         PR ipa/65722
33764         * ipa-icf.c (sem_item::compare_cgraph_references): function and
33765         variable can not match.
33766         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
33767         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
33768
33769 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
33770
33771         PR tree-optimization/65735
33772         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
33773         Remove visited_phis argument, add visited_bbs, avoid recursing into the
33774         same bb rather than just into the same phi node.
33775         (thread_through_normal_block): Adjust caller.
33776
33777 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33778
33779         * doc/contrib.texi (Contributors): Add Ira Rosen.
33780
33781 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
33782
33783         * gcov.c (find_source): Fix miswording in error message.
33784         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
33785         (ix86_expand_sse_comi_round): Fix typo in error message.
33786
33787 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33788
33789         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
33790
33791 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
33792
33793         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
33794
33795 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33796
33797         PR target/65710
33798         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
33799         Print bad_spills_num and insn_pseudos_num.
33800
33801 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33802
33803         PR target/65694
33804         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
33805         when creating +1 values for SImode.
33806
33807 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33808
33809         PR target/65729
33810         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
33811         assert.
33812
33813 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
33814             Iain Sandoe  <iain@codesourcery.com>
33815
33816         PR target/65351
33817         * configure: Regenerate.
33818
33819 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33820
33821         PR target/65671
33822         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
33823
33824 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
33825
33826         * doc/contrib.texi (Contributors): Add John Marino.
33827
33828 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33829
33830         PR tree-optimization/65709
33831         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
33832         TREE_TYPE (TREE_TYPE (t)).
33833
33834 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
33835
33836         PR target/65710
33837         * lra-int.h (lra_bad_spill_regno_start): New.
33838         * lra.c (lra_bad_spill_regno_start): New.
33839         (lra): Set up lra_bad_spill_regno_start.  Set up
33840         lra_constraint_new_regno_start unconditionally.
33841         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
33842         spill preferences.
33843
33844 2015-04-09  Marek Polacek  <polacek@redhat.com>
33845             Jakub Jelinek  <jakub@redhat.com>
33846
33847         PR middle-end/65554
33848         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
33849         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
33850         of STRIP_NOPS.
33851
33852 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
33853
33854         PR rtl-optimization/65693
33855         * combine.c (is_parallel_of_n_reg_sets): Move outside of
33856         #ifndef HAVE_cc0.
33857
33858 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
33859
33860         PR target/65296
33861         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
33862         device specs file if "device-specs%s" didn't resolve to a path.
33863
33864 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33865
33866         PR target/65676
33867         * config/i386/i386.c (fixup_modeless_constant): New.
33868         (ix86_expand_args_builtin): Fixup modeless constant operand.
33869         (ix86_expand_round_builtin): Ditto.
33870         (ix86_expand_special_args_builtin): Ditto.
33871         (ix86_expand_builtin): Ditto.
33872
33873 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33874
33875         PR target/65693
33876         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
33877         any pow2 integer in between 2 and 0x80000000U inclusive.
33878
33879 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
33880
33881         PR rtl-optimization/65693
33882         * combine.c (is_parallel_of_n_reg_sets): Change first argument
33883         from an rtx_insn * to an rtx.
33884         (try_combine): Adjust both callers.  Use it once more.
33885
33886 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33887
33888         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
33889         (chkp_make_static_const_bounds): Search existing
33890         symbol by assembler name.  Use make_decl_one_only.
33891         (chkp_get_zero_bounds_var): Remove node search which
33892         is now performed in chkp_make_static_const_bounds.
33893         (chkp_get_none_bounds_var): Likewise.
33894
33895 2015-04-08  Michael Witten  <mfwitten@gmail.com>
33896
33897         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
33898         to an example.
33899
33900 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33901
33902         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
33903
33904 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33905
33906         * doc/extend.texi (__sync Builtins): Fix grammar.
33907
33908 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33909
33910         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
33911
33912 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33913
33914         * varasm.c (emit_local): Move definition of align.
33915
33916 2015-04-08  Julian Brown  <julian@codesourcery.com>
33917
33918         * config/nvptx/mkoffload.c (process): Support variable mapping.
33919
33920 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
33921
33922         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
33923         alpha_links **.
33924         (alpha_write_one_linkage): Correct typo.
33925
33926 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33927
33928         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
33929
33930 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33931
33932         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
33933
33934 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33935
33936         * tree-chkp.h (chkp_insert_retbnd_call): New.
33937         * tree-chkp.c (chkp_insert_retbnd_call): New.
33938         * ipa-split.c (insert_bndret_call_after): Remove.
33939         (split_function): Use chkp_insert_retbnd_call.
33940         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
33941         bounds for instrumented functions.
33942
33943 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
33944
33945         PR ipa/65540
33946         * calls.c (initialize_argument_information): When producing tail
33947         call also turn SSA_NAMES passed by references to original PARM_DECLs
33948
33949 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33950
33951         PR target/65648
33952         * lra-remat.c (do_remat): Process input and non-input insn
33953         registers separately.
33954
33955 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33956
33957         PR debug/65678
33958         * valtrack.c (debug_lowpart_subreg): New function.
33959         (dead_debug_insert_temp): Use it.
33960
33961         PR middle-end/65680
33962         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
33963         into signed HOST_WIDE_INT the same as negative bit_offset.
33964
33965 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
33966
33967         * ipa-comdats.c (ipa_comdats): Visit all thunks
33968         to set proper comdat group.
33969
33970 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33971
33972         PR target/65489
33973         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
33974         on constants for NEON VSTRUCT modes.
33975
33976 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33977             Iain Sandoe  <iain@codesourcery.com>
33978
33979         PR target/65351
33980         * configure: Regenerate.
33981
33982 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33983
33984         PR target/65614
33985         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
33986         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
33987         that LFD is used to load double constants instead of LFS.  Add
33988         defaults for all costs structures.  Add comments for missing
33989         initialization fields.
33990         (size32_cost): Likewise.
33991         (size64_cost): Likewise.
33992         (rs64a_cost): Likewise.
33993         (mpccore_cost): Likewise.
33994         (ppc403_cost): Likewise.
33995         (ppc405_cost): Likewise.
33996         (ppc440_cost): Likewise.
33997         (ppc476_cost): Likewise.
33998         (ppc601_cost): Likewise.
33999         (ppc603_cost): Likewise.
34000         (ppc604_cost): Likewise.
34001         (ppc604e_cost): Likewise.
34002         (ppc620_cost): Likewise.
34003         (ppc630_cost): Likewise.
34004         (ppccell_cost): Likewise.
34005         (ppc750_cost): Likewise.
34006         (ppc7450_cost): Likewise.
34007         (ppc8540_cost): Likewise.
34008         (ppce300c2c3_cost): Likewise.
34009         (ppce500mc_cost): Likewise.
34010         (ppce500mc64_cost): Likewise.
34011         (ppce5500_cost): Likewise.
34012         (ppce6500_cost): Likewise.
34013         (titan_cost): Likewise.
34014         (power4_cost): Likewise.
34015         (power6_cost): Likewise.
34016         (power7_cost): Likewise.
34017         (power8_cost): Likewise.
34018         (ppca2_cost): Likewise.
34019         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
34020
34021         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
34022         instead of XXLOR to copy SFmode to clear out dirty bits created
34023         when SFmode denormals are generated.
34024         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
34025         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
34026
34027 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
34028
34029         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
34030         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
34031         * config/aarch64/aarch64-tune.md: Regenerate.
34032
34033 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
34034
34035         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
34036         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
34037         * config/arm/arm-cores.def (exynos-m1): New core.
34038         * config/arm/arm-tune.md: Regenerate.
34039         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
34040         * config/arm/bpabi.h: Likewise.
34041
34042 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
34043
34044         * ipa-cp (set_single_call_flag): Remove too
34045         restrictive assert.
34046
34047 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
34048
34049         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
34050         GOMP_offload_unregister from the destructor.
34051
34052 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
34053
34054         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
34055         flags for instrumentation thunk.
34056         (chkp_produce_thunks): Likewise.
34057
34058 2015-04-05  Martin Liska  <mliska@suse.cz>
34059
34060         PR ipa/65665
34061         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
34062         has computed data structure.
34063         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
34064
34065 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
34066
34067         * invoke.texi (inline-unit-growth): Increase growth to 20%
34068         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
34069
34070 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
34071
34072         PR target/65647
34073         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
34074         value checking.
34075         (lra_rematerialization_iter): New.
34076         * lra.c (lra): Initialize lra_rematerialization_iter.
34077         Stop updating lra_constraint_new_regno_start after switching of
34078         inheritance and rematerialization.
34079         * lra-remat.c (lra_rematerialization_iter): New.
34080         (lra_remat): Add printing pass iteration.  Do rematerialization
34081         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
34082
34083 2015-04-04  Richard Biener  <rguenther@suse.de>
34084
34085         PR tree-optimization/64909
34086         PR tree-optimization/65660
34087         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
34088         to take a cost vector for scalar iteration cost.
34089         (vect_get_single_scalar_iteration_cost): Likewise.
34090         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
34091         Compute the scalar iteration cost into a cost vector.
34092         (vect_get_known_peeling_cost): Use the scalar cost vector to
34093         account for the cost of the peeled iterations.
34094         (vect_estimate_min_profitable_iters): Likewise.
34095         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
34096         Likewise.
34097
34098 2015-04-04  Alan Modra  <amodra@gmail.com>
34099
34100         PR target/65576
34101         PR target/65240
34102         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
34103         0.0 constant unless TARGET_VSX.
34104         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
34105         alternative.
34106
34107 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
34108
34109         PR ipa/65654
34110         * ipa-inline-transform.c (inline_call): Skip sanity check to work
34111         around the ICE
34112
34113 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
34114
34115         PR ipa/65655
34116         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
34117         speculative indirect edges to avoid ordering issue.
34118
34119 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
34120
34121         PR ipa/65076
34122         * ipa-inline.c (edge_badness): Add combined size to the denominator.
34123
34124 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
34125
34126         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
34127         TYPE_ARTIFICIAL on the .omp_data* types.
34128
34129 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34130
34131         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
34132         instrumentation thunks.
34133
34134 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34135
34136         * config/i386/i386.c (ix86_expand_call): Avoid nested
34137         PARALLEL in returned call value.
34138
34139 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34140
34141         * lto-cgraph.c (input_cgraph_1): Always link instrumented
34142         assembler name with original one.
34143
34144 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
34145
34146         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
34147
34148 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
34149
34150         Revert parts of r216820.
34151         * config/i386/i386.md (movqi_internal): Correct type calculation
34152         for alternatives 3 and 5.
34153
34154 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
34155
34156         PR preprocessor/61977
34157         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
34158         predefine __vector/__bool/__pixel macros nor context sensitive
34159         macros for CLK_ASM.
34160         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
34161
34162 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
34163
34164         * config/pa/pa.c (pa_output_move_double): Directly handle register
34165         indexed memory operand.  Simplify handling of scaled register indexed
34166         memory operands.
34167
34168 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34169
34170         PR driver/65444
34171         * config/i386/linux-common.h (MPX_SPEC): New.
34172         (CHKP_SPEC): Add MPX_SPEC.
34173         * doc/invoke.texi (-fcheck-pointer-boudns): Document
34174         possible issues with '-z bndplt' support in linker.
34175
34176 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
34177
34178         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
34179         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
34180         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
34181         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
34182         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
34183
34184 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
34185
34186         * config/i386/sync.md (UNSPEC_MOVA): Remove.
34187         (atomic_load<mode>): Change operand 0 predicate to
34188         nonimmediate_operand and fix up the destination when needed.
34189         Use UNSPEC_LDA.
34190         (atomic_loaddi_fpu): Use UNSPEC_LDA.
34191         (atomic_store<mode>): Change operand 1 predicate to
34192         nonimmendate_operand and move the source to register when needed.
34193         Use UNSPEC_STA.
34194         (atomic_store<mode>_1): Use UNSPEC_STA.
34195         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
34196         Fix moves from memory operand.  Use UNSPEC_STA.
34197
34198 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34199
34200         * expmed.c (strict_volatile_bitfield_p): Check that the access will
34201         not cross a MODESIZE boundary.
34202         (store_bit_field, extract_bit_field): Added assertions in the
34203         strict volatile bitfields code path.
34204
34205 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
34206
34207         PR target/65624
34208         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
34209         Increase args array size by one to avoid buffer overflow.
34210
34211 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
34212
34213         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
34214         split_part.
34215         * ipa-inline.c (edge_badness): Add wrapper penalty.
34216         (sum_callers): Move up.
34217         (inline_small_functions): Set single_caller.
34218         * ipa-inline.h (inline_summary): Add single_caller.
34219         * ipa-split.c (split_function): Set split_part.
34220         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
34221         * cgraph.h (cgraph_node): Add split_part.
34222
34223 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
34224
34225         PR target/58945
34226         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
34227         Do not split operands 0 and operands 2 to halfmode.
34228         (atomic_compare_and_swap<mode>): Update for
34229         atomic_compare_and_swap<dwi>_doubleword changes.
34230
34231 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
34232
34233         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
34234         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
34235         no caching is done.
34236
34237 2015-03-31  Martin Liska  <mliska@suse.cz>
34238
34239         PR ipa/65557
34240         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
34241         has already filled up function summary.
34242         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
34243
34244 2015-03-31  Richard Biener  <rguenther@suse.de>
34245
34246         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
34247         of types.
34248
34249 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34250
34251         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
34252         nested functions.
34253         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
34254         (s390_asm_output_function_label): Adapt to new signature of
34255         s390_function_num_hotpatch_hw
34256         Optimise the code generating assembler output.
34257         Add comments to assembler file.
34258
34259 2015-03-31  Richard Biener  <rguenther@suse.de>
34260
34261         PR middle-end/65626
34262         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
34263         of the noreturn call so it is last and cleanup_control_flow_bb
34264         can do the CFG part.
34265
34266 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
34267
34268         PR target/65531
34269         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
34270         same_comdat_group for external symbols.
34271         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
34272         infinite same_comdat_group traversal loop.
34273
34274 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
34275
34276         PR plugins/61176
34277         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
34278         automatically to $headers.
34279
34280 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
34281
34282         PR ipa/65610
34283         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
34284         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
34285         function.
34286         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
34287         Use it.
34288         * ipa-prop.c (param_type_may_change_p): Likewise.
34289         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
34290         (remove_unused_scope_block_p): Add in_ctor_dtor_block
34291         argument.  Before inlining, preserve
34292         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
34293         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
34294         recursive calls.
34295         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
34296
34297 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
34298
34299         PR ipa/65076
34300         * ipa-inline.c (edge_badness): Base denominator on callee's
34301         grwoth squared.
34302
34303 2015-03-27  Martin Jambor  <mjambor@suse.cz>
34304
34305         PR ipa/65478
34306         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
34307         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
34308         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
34309         node_calling_single_call.
34310         * ipa-cp.c (count_callers): New function.
34311         (set_single_call_flag): Likewise.
34312         (initialize_node_lattices): Count callers and set single_flag_call if
34313         necessary.
34314         (incorporate_penalties): New function.
34315         (good_cloning_opportunity_p): Use it, dump new flags.
34316         (propagate_constants_topo): Set node_within_scc flag if appropriate.
34317         * doc/invoke.texi (ipa-cp-recursion-penalty,
34318         ipa-cp-single-call-pentalty): Document.
34319
34320 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
34321
34322         PR ipa/65588
34323         * symtab.c (symtab_node::get_partitioning_class): Register vars
34324         are duplicated.
34325         * varpool.c (symbol_table::output_variables) Do not assemble unefined
34326         decls for non-symbols.
34327
34328 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
34329
34330         PR target/65248
34331         * output.h (default_binds_local_p_2): New.
34332         * varasm.c (default_binds_local_p_2): Renamed to ...
34333         (default_binds_local_p_3): This.  Don't return true on protected
34334         data symbol if protected data may be external.
34335         (default_binds_local_p): Use default_binds_local_p_3.
34336         (default_binds_local_p_1): Likewise.
34337         (default_binds_local_p_2): New.
34338         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
34339         default_binds_local_p_2 if TARGET_MACHO is undefined.
34340
34341 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
34342
34343         PR target/65593
34344         * config/i386/i386.c (legitimize_pic_address): If base
34345         is SYMBOL_REF or LABEL_REF using %rip addressing, force
34346         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
34347
34348 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
34349
34350         PR target/65531
34351         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
34352         comdat groups.
34353
34354 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
34355
34356         PR ipa/65600
34357         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
34358         of optimized out indirect call.
34359         (redirect_to_unreachable): Always build symbol table node for
34360         BUILT_IN_UNREACHABLE
34361
34362 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
34363
34364         PR target/65407
34365         * ira-costs.c (record_reg_classes): Process all constraint string
34366         containing 0-9.
34367
34368 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
34369
34370         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
34371         memory_operand.
34372
34373         PR target/65052
34374         * config/c6x/constraints.md (S3): New constraint.
34375         * config/c6x/c6x.md (real_jump): Use it.
34376
34377 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34378
34379         PR middle-end/65595
34380         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
34381         do redirection if the call is not optimized out.
34382
34383 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
34384
34385         PR target/65495
34386         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
34387         (fchkp-check-incomplete-type): Add LTO.
34388         (fchkp-zero-input-bounds-for-main): Likewise.
34389         (fchkp-first-field-has-own-bounds): Likewise.
34390         (fchkp-narrow-bounds): Likewise.
34391         (fchkp-narrow-to-innermost-array): Likewise.
34392         (fchkp-use-static-bounds): Likewise.
34393         (fchkp-use-static-const-bounds): Likewise.
34394         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34395
34396 2015-03-27  Marek Polacek  <polacek@redhat.com>
34397
34398         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
34399
34400 2015-03-27  Marek Polacek  <polacek@redhat.com>
34401
34402         PR sanitizer/65583
34403         * ubsan.c (ubsan_create_edge): New function.
34404         (instrument_bool_enum_load): Call it.
34405         (instrument_nonnull_arg): Likewise.
34406         (instrument_nonnull_return): Likewise.
34407         (instrument_object_size): Likewise.
34408
34409 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34410
34411         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
34412         auto_vec.
34413
34414 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34415
34416         PR lto/65536
34417         * lto-streamer.h (class lto_location_cache): New.
34418         (struct data_in): Add location_cache.
34419         (lto_input_location): Update prototype.
34420         (stream_input_location_now): New.
34421         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
34422         pointer to location.
34423         (stream_input_location): Update.
34424         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
34425         (warn_odr): Apply location cache before warning.
34426         (lto_input_location): Update prototype.
34427         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
34428         Use stream_input_location_now.
34429         * lto-streamer-in.c (lto_location_cache::current_cache): New static
34430         variable.
34431         (lto_location_cache::cmp_loc): New function.
34432         (lto_location_cache::apply_location_cache): New function.
34433         (lto_location_cache::accept_location_cache): New function.
34434         (lto_location_cache::revert_location_cache): New function.
34435         (lto_location_cache::input_location): New function.
34436         (lto_input_location): Do location caching.
34437         (stream_input_location_now): New function.
34438         (input_eh_region, input_struct_function_base): Use
34439         stream_input_location_now.
34440         (lto_data_in_create): use new.
34441         (lto_data_in_delete): Use delete.
34442         * tree-streamer-in.c (unpack_ts_block_value_fields,
34443         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
34444         lto_input_ts_exp_tree_pointers): Update for cached location api.
34445
34446 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34447
34448         PR ipa/65076
34449         * passes.def: Add pass_nothrow.
34450         * ipa-pure-const.c: (pass_data_nothrow): New.
34451         (pass_nothrow): New.
34452         (pass_nothrow::execute): New.
34453         (make_pass_nothrow): New.
34454         * tree-pass.h (make_pass_nothrow): Declare.
34455
34456 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34457
34458         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
34459         edge to change by speculation resolution or redirection.
34460         (edge_set_predicate): Likewise.
34461         (inline_summary_t::duplicate): Likewise.
34462         (remap_edge_summaries): Likewise.
34463
34464 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34465
34466         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
34467         New macros.
34468         (can_inline_edge_p): Relax option matching for always inline functions.
34469
34470 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
34471
34472         PR target/65561
34473         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
34474         Check operand 4 and operand 0 for equality.
34475         (avx512f_vextract<shuffletype>32x4_1_maskm):
34476         Check operand 6 and operand 0 for equality.
34477         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
34478         for equality.
34479         (vec_extract_hi_<mode>_maskm): Ditto.
34480
34481 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34482
34483         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
34484         dead calls back to live.
34485         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
34486         cross check to ...
34487         (cgraph_node::verify_node): ... here; verify only callee edges,
34488         not caller.
34489         * cif-code.def (CILK_SPAWN): New code.
34490
34491 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34492
34493         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
34494         (edge_set_predicate): Use it to mark unreachable edges.
34495         (inline_summary_t::duplicate): Remove unnecesary code.
34496         (remap_edge_summaries): Likewise.
34497         (dump_inline_summary): Report contains_cilk_spawn.
34498         (compute_inline_parameters): Compute contains_cilk_spawn.
34499         (inline_read_section, inline_write_summary): Stream
34500         contains_cilk_spawn.
34501         * ipa-inline.c (can_inline_edge_p): Do not touch
34502         DECL_STRUCT_FUNCTION that may not be available;
34503         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
34504         remove check for callee_fun->can_throw_non_call_exceptions and
34505         replace it by optimization attribute check; check for flag_exceptions.
34506         * ipa-inline-transform.c (inline_call): Maintain
34507         DECL_FUNCTION_PERSONALITY
34508         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
34509
34510 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34511
34512         PR tree-optimization/65551
34513         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
34514         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
34515
34516 2015-03-26  Richard Biener  <rguenther@suse.de>
34517
34518         PR middle-end/65555
34519         * tree-cfg.c (verify_gimple_call): Do not require a call to
34520         have no LHS if it wasn't recognized as control altering yet.
34521
34522 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34523
34524         PR tree-optimization/64715
34525         * passes.def: Add another instance of pass_object_sizes before ccp1.
34526         * tree-object-size.c (pass_object_sizes::execute): In
34527         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
34528         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
34529         __bos result and the computed constant.  Remove redundant
34530         checks, obsoleted by gimple_call_builtin_p test.
34531
34532         * var-tracking.c (variable_tracking_main_1): Don't track
34533         variables for targetm.no_register_allocation targets.
34534
34535 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
34536
34537         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
34538         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
34539
34540 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34541
34542         PR target/65569
34543         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
34544         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
34545         0.0 is correctly setup.
34546         (extenddftf2_internal): Likewise.
34547
34548 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
34549
34550         PR tree-optimization/65177
34551         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
34552         (bb_in_bbs): New.
34553         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
34554         edges not adjacent on the path to the original code.
34555
34556 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
34557
34558         PR bootstrap/65537
34559         * doc/install.texi (Building a native compiler): Document new
34560         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
34561         configuration assumes that the host supports the linker plugin.
34562
34563 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
34564
34565         PR target/65508
34566         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
34567         chain for generated call.
34568
34569 2015-03-25  Richard Biener  <rguenther@suse.de>
34570
34571         * passes.c (pass_manager::execute_early_local_passes): Guard
34572         execution of pass_chkp_instrumentation_passes with
34573         flag_check_pointer_bounds.
34574         (pass_chkp_instrumentation_passes::gate): Likewise.
34575
34576 2015-03-25  Martin Liska  <mliska@suse.cz>
34577
34578         PR tree-optimization/65538
34579         * symbol-summary.h (function_summary::~function_summary):
34580         Relese memory for allocated summaries.
34581         (function_summary::release): New function.
34582
34583 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
34584
34585         PR lto/65515
34586         * lto-streamer-out.c (DFS::worklist): New struct.
34587         (DFS::worklist_vec): New data member.
34588         (DFS::next_dfs_num): Remove.
34589         (DFS::DFS): Rewritten using worklist instead of recursion,
34590         using most of code from DFS::DFS_write_tree.
34591         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
34592         pass it to DFS_write_tree calls.
34593         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
34594         quick initial checks push it into worklist_vec and return.
34595
34596 2015-03-25  Richard Biener  <rguenther@suse.de>
34597
34598         PR middle-end/65519
34599         * genmatch.c (expr::gen_transform): Re-write to avoid
34600         using gimple_build.
34601
34602 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34603
34604         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
34605
34606 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34607
34608         * config/arm/arm.opt (print_tune_info): New option.
34609         * config/arm/arm.c (arm_print_tune_info): New function.
34610         (arm_file_start): Call arm_print_tune_info.
34611         * config/arm/arm-protos.h (struct tune_params): Add comment.
34612         * doc/invoke.texi (@item -mprint-tune-info): New item.
34613         (-mtune): mention it in ARM Option Summary.
34614
34615 2015-03-25  DJ Delorie  <dj@redhat.com>
34616
34617         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
34618         correct clause.
34619
34620 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
34621             Martin Liska  <mliska@suse.cz>
34622
34623         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
34624         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
34625         (sem_item::add_type): New function.
34626         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
34627         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
34628         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
34629         (sem_function::equals_wpa): Fix typo.
34630         * ipa-icf.h (sem_item::add_type): New function.
34631         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
34632         order.
34633
34634 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
34635
34636         PR tree-optimization/65533
34637         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
34638         with swapped operands, call vect_free_slp_tree on
34639         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
34640         vector.
34641
34642 2015-03-24  Richard Biener  <rguenther@suse.de>
34643
34644         PR middle-end/65517
34645         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
34646         for fixup if necessary.
34647
34648 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
34649
34650         * doc/extend.texi (Function Attributes): Add @cindex entries
34651         for all attributes and regularize their format.  Delete text
34652         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
34653         information about "eightbit_data", "tiny_data", and "model"
34654         variable attributes to the Variable Attributes section.  Fix
34655         some obvious typos and copy-editing issues.
34656         (Variable Attributes, Type Attributes): Likewise add/fix
34657         @cindex entries for all attributes.
34658
34659 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34660
34661         PR target/65523
34662         * tree-chkp.c (chkp_build_returned_bound): Ignore
34663         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
34664
34665 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
34666
34667         PR target/65505
34668         * config/sh/predicates.md (simple_mem_operand,
34669         displacement_mem_operand): Add test for reg.
34670         (short_displacement_mem_operand): Test for displacement_mem_operand
34671         before invoking sh_disp_addr_displacement.
34672         * config/sh/constraints.md (Sdd, Sra): Simplify.
34673         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
34674         Remove redundant displacement_mem_operand tests.
34675
34676 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
34677
34678         PR target/65296
34679         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
34680         the same -mmcu=MCU more than once.
34681
34682 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34683
34684         PR bootstrap/65522
34685         * ipa-devirt.c: Remove duplicate demangle.h include.
34686
34687         PR target/65504
34688         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
34689         on the pseudo.
34690         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
34691         REG_POINTER on *destptr after adjusting it for prologue size.
34692
34693         PR ipa/65521
34694         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
34695         ultimate_alias_target ()->order ints instead of
34696         ultimate_alias_target () pointers.
34697
34698 2015-03-23  Richard Biener  <rguenther@suse.de>
34699
34700         PR tree-optimization/65518
34701         * tree-vect-stmts.c (vectorizable_load): Reject single-element
34702         interleaving cases we generate absymal code for.
34703
34704 2015-03-23  Richard Biener  <rguenther@suse.de>
34705
34706         PR tree-optimization/65494
34707         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
34708         matches here.
34709         (vect_analyze_slp_instance): But do that here, always and once.
34710
34711 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34712
34713         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
34714         adding T or multiplying by T+1 and subracting T.
34715
34716 2015-03-22  Jeff Law  <law@redhat.com>
34717
34718         PR rtl-optimization/64317
34719         * Makefile.in (OBJS): Add gcse-common.c
34720         * gcse.c: Include gcse-common.h
34721         (struct modify_pair_s): Move structure definition to gcse-common.h
34722         (compute_transp): Move function to gcse-common.c.
34723         (canon_list_insert): Similarly.
34724         (record_last_mem_set_info): Break out some code and put it into
34725         gcse-common.c.  Call into the new common code.
34726         (compute_local_properties): Pass additional arguments to compute_transp.
34727         * postreload-gcse.c: Include gcse-common.h and df.h
34728         (modify_mem_list_set, blocks_with_calls): New variables.
34729         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
34730         (get_bb_avail_insn): Pass in the expression index too.
34731         (alloc_mem): Allocate memory for the new bitmaps and lists.
34732         (free_mem): Free memory for the new bitmaps and lists.
34733         (insert_expr_in_table): Record a bitmap index for each entry we
34734         add to the table.
34735         (record_last_mem_set_info): Call into common code in gcse-common.c.
34736         (get_bb_avail_insn): If no available insn was found in the requested
34737         BB.  If BB has a single predecessor, see if the expression is
34738         transparent in BB and available in that single predecessor.
34739         (compute_expr_transp): New wrapper for compute_transp.
34740         (eliminate_partially_redundant_load): Pass expression's bitmap_index
34741         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
34742         (gcse_after_reload_main): If there are elements in the hash table,
34743         then compute transparency for all the elements in the hash table.
34744         * gcse-common.h: New file.
34745         * gcse-common.c: New file.
34746
34747 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
34748
34749         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
34750         as an adjective.
34751         (System Headers): Likewise.
34752         (Ifdef): Likewise.
34753         (Traditional macros): Likewise.
34754         (Invocation): Likewise.
34755         (Option Index): Likewise.
34756         * doc/cppopts.texi (-M): Likewise.
34757         (-finput-charset): Likewise.
34758         (--help): Likewise.
34759         * doc.invoke.texi (AVR Options): Likewise.
34760         (V850 Options): Likewise.
34761
34762 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
34763
34764         PR ipa/65475
34765         * ipa-devirt.c: Include demangle.h
34766         (odr_type_d): Add field rtti_broken.
34767         (odr_subtypes_equivalent_p): Do not require name to match.
34768         (compare_virtual_tables): Fix typo; if type already has ODR violation,
34769         bypass the tests; be ready for function referneces in vtables that are
34770         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
34771         (warn_odr): Give up for nameless types.
34772         (warn_types_mismatch): Report mismatch in mangled names;
34773         report mismatch in anonymous namespaces; look into component types to
34774         give useful error; report when mismatch is dragged in from other ODR
34775         type.
34776         (odr_types_equivalent_p): Match types for being polymorphic; avoid
34777         duplicated diagnostics.
34778         (add_type_duplicate): Reorder checks so more informative ones come
34779         first; fix typo; do not output "the extra base is defined here" when
34780         we did not warn.
34781         (BINFO_N_BASE_BINFOS): Relax sanity check.
34782
34783 2015-03-22  Martin Liska  <mliska@suse.cz>
34784             Jakub Jelinek  <jakub@redhat.com>
34785
34786         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
34787         masks that can potentially include a builtin.
34788         (ix86_add_new_builtins): Introduce fast filter for isa values
34789         that cannot trigger builtin inclusion.
34790
34791 2015-03-22  Martin Liska  <mliska@suse.cz>
34792
34793         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
34794         (sem_item::update_hash_by_local_refs): Likewise.
34795         (sem_variable::get_hash): Empty line is fixed.
34796         (sem_item_optimizer::execute): Include adding of hash references.
34797         (sem_item_optimizer::update_hash_by_addr_refs): New function.
34798         (sem_item_optimizer::build_hash_based_classes): Use local hash.
34799         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
34800         (sem_item::update_hash_by_local_refs): Likewise.
34801
34802 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34803
34804         PR ipa/65502
34805         * ipa-comdats.c (enqueue_references): Walk through thunks.
34806         (ipa_comdats): Likewise.
34807         (set_comdat_group_1): New function.
34808
34809 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34810
34811         PR ipa/65475
34812         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
34813         non-polymorphic
34814
34815 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
34816             Gerald Pfeifer  <gerald@pfeifer.com>
34817
34818         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
34819
34820 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
34821             Sandra Loosemore  <sandra@codesourcery.com>
34822
34823         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
34824         function parameter declaration.
34825         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
34826         Update arguments to nios2_adjust_call_address().
34827         (sibcall_internal): Rename from *sibcall.
34828         (sibcall_value_internal): Rename from *sibcall_value.
34829         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
34830         (nios2_large_got_address): Add target temp reg parameter.
34831         (nios2_got_address): Adjust call to nios2_large_got_address, add
34832         force_reg around it.
34833         (nios2_load_pic_address): Add target temp reg parameter, replace call
34834         to nios2_got_address with corresponding code.
34835         (nios2_legitimize_constant_address): Update call to
34836         nios2_load_pic_address.
34837         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
34838         to use temp reg for PIC loading purposes.
34839         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
34840         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34841         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
34842
34843 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34844
34845         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
34846         usage of "the @option{...}".
34847         (-Wopenmp-simd): Likewise.
34848         (-fsanitize-recover): Likewise.
34849         (-fsanitize-undefined-trap-on-error): Likewise.
34850         (-flto): Likewise.
34851         (tracer-dynamic-coverage-feedback): Likewise.
34852         (reorder-block-duplicate-feedback): Likewise.
34853         (loop-unroll-jam-size): Likewise.
34854         (-B): Likewise.
34855         (-I-): Likewise.
34856         (-mabs=legacy): Likewise.
34857         (-mupper-regs-df): Likewise.
34858         (-mupper-regs-sf): Likewise.
34859         (-mpointers-to-nested-functions): Likewise.
34860
34861 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34862
34863         * doc/extend.texi (Cilk Plus Builtins): Add markup.
34864
34865 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34866
34867         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
34868         additional index entries and cross-references.
34869         (-fchkp-check-incomplete-type): Likewise.
34870         (-fchkp-first-field-has-own-bounds): Likewise.
34871         (-fchkp-narrow-to-innermost-array): Likewise.
34872         (-fchkp-use-fast-string-functions): Likewise.
34873         (-fchkp-use-nochk-string-functions): Likewise.
34874         (-fchkp-use-static-const-bounds): Likewise.
34875         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34876         (-fchkp-instrument-marked-only): Likewise.
34877         (-fchkp-use-wrappers): Likewise.
34878         (-static-libmpx): Likewise.
34879         (-static-libmpxwrappers): Likewise.
34880         * doc/extend.texi (bnd_legacy): Likewise.
34881         (bnd_instrument): Likewise.
34882         (bnd_variable_size): Likewise.
34883         (Pointer Bounds Checker builtins): Likewise.
34884
34885 2015-03-21  Tom de Vries  <tom@codesourcery.com>
34886
34887         PR tree-optimization/65458
34888         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
34889         * cgraph.h (cgraph_node): Add parallelized_function field.
34890         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
34891         (input_overwrite_node): Read parallelized_function field.
34892         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
34893         parallelized_function on cgraph_node for child_fn.
34894         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
34895         Remove include of gt-tree-parloops.h.
34896         (parallelized_functions): Remove static variable.
34897         (parallelized_function_p): Rewrite using parallelized_function field of
34898         cgraph_node.
34899         (create_loop_fn): Remove adding to parallelized_functions.
34900         * Makefile.in (GTFILES): Remove tree-parloops.c
34901
34902 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
34903
34904         PR rtl-optimization/64366
34905         * lra.c (lra_update_insn_regno_info): Consider regs in
34906         CALL_INSN_FUNCTION_USAGE memory.
34907
34908 2015-03-20  Richard Biener  <rguenther@suse.de>
34909
34910         PR middle-end/64715
34911         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
34912         for type comparison and gcc_checking_assert.
34913         (chrec_fold_plus_poly_poly): Likewise.
34914         (chrec_fold_multiply_poly_poly): Likewise.
34915         (chrec_convert_1): Likewise.
34916         * gimplify.c (gimplify_expr): Remove premature folding of
34917         &X + CST to &MEM[&X, CST].
34918
34919 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34920
34921         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
34922         already is final.
34923         (ipa_inline): Recompute inline_failed codes.
34924         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34925         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
34926         CIF_FINAL_ERROR.
34927
34928 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
34929
34930         PR rtl-optimization/60851
34931         * recog.c (constrain_operands): Accept a pseudo register before reload
34932         for LRA enabled targets.
34933
34934 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
34935
34936         PR target/65240
34937         * config/rs6000/predicates.md (easy_fp_constant): Remove special
34938         -ffast-math handling that kept non-0 constants live in the RTL
34939         until reload.  Remove logic testing the number of instructions it
34940         took to create a constant in a GPR that was never used, due to a
34941         test for soft-float earlier.
34942         (memory_fp_constant): Delete, no longer used.
34943
34944         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
34945         alternatives for loading non-0 constants into GPRs for hard
34946         floating point that is no longer needed due to changes in
34947         easy_fp_constant.  Add support for loading 0.0 into GPRs.
34948         (mov<mode>_hardfloat32): Likewise.
34949         (mov<mode>_hardfloat64): Likewise.
34950         (mov<mode>_64bit_dm): Likewise.
34951         (movtd_64bit_nodm): Likewise.
34952         (pre-reload move FP constant define_split): Delete define_split,
34953         since it is no longer used.
34954         (extenddftf2_internal): Remove GHF constraints that are not valid
34955         for extenddftf2.
34956
34957 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
34958
34959         PR rtl-optimization/63491
34960         * lra-constraints.c (check_and_process_move): Use src instead of
34961         sreg.  Remove some dead code.
34962
34963 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
34964
34965         PR ipa/65380
34966         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
34967         (sem_variable::merge): Likewise.
34968
34969 2015-03-19  Martin Liska  <mliska@suse.cz>
34970
34971         PR ipa/65465
34972         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
34973         all fields of cgraph_thunk_info.
34974
34975 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
34976
34977         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
34978         clone instrumented thunks.
34979
34980 2015-03-19  Richard Biener  <rguenther@suse.de>
34981
34982         Revert
34983         2015-03-10  Richard Biener  <rguenther@suse.de>
34984
34985         PR middle-end/63155
34986         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34987         * tree-ssa-coalesce.c: Include timevar.h.
34988         (attempt_coalesce): Handle graph being NULL.
34989         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34990         Split out abnormal coalescing to ...
34991         (perform_abnormal_coalescing): ... this function.
34992         (coalesce_ssa_name): Perform abnormal coalescing without computing
34993         live/conflict.
34994         (verify_ssa_coalescing_worker): New function.
34995         (verify_ssa_coalescing): Likewise.
34996
34997 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34998             Jakub Jelinek  <jakub@redhat.com>
34999
35000         PR sanitizer/65400
35001         * tsan.c (instrument_gimple): Clear tail call flag on
35002         calls.
35003
35004 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
35005
35006         PR sanitizer/65400
35007         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
35008         call in the return bb.
35009         (find_split_points): Add RETURN_BB argument, don't call
35010         find_return_bb.
35011         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
35012         if true append TSAN_FUNC_EXIT internal call after the call to
35013         the split off function.
35014         (execute_split_functions): Call find_return_bb here.
35015         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
35016         Adjust find_split_points and split_function calls.
35017
35018 2015-03-18  DJ Delorie  <dj@redhat.com>
35019
35020         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
35021         (iorqi3_virt): Likewise.
35022
35023 2015-03-18  Tom de Vries  <tom@codesourcery.com>
35024
35025         * tree-parloops.c (parallelize_loops): Make static.
35026         * tree-parloops.h (parallelize_loops): Remove extern declaration.
35027
35028 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
35029
35030         PR middle-end/64491
35031         Revert:
35032         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
35033
35034         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
35035         condition would be removed due to undefined behaviour.
35036
35037 2015-03-18  Martin Liska  <mliska@suse.cz>
35038
35039         PR ipa/65432
35040         * cgraph.c (cgraph_node::get_create): Remove unnecessary
35041         xstrdup_for_dump wrapper.
35042         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
35043         sem_item::name.
35044         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
35045         with xstrdup_for_dump.
35046         (sem_variable::equals): Likewise.
35047         (sem_item_optimizer::read_section): Use symtab_node::name instead of
35048         sem_item::name.
35049         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
35050         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
35051         symtab_node::asm_name with xstrdup_for_dump.
35052         (congruence_class::dump): Use symtab_node::name instead of
35053         sem_item::name.
35054         * ipa-icf.h (symtab_node::name): Remove.
35055         (symtab_node::asm_name): Likewise.
35056
35057 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
35058
35059         PR tree-optimization/65450
35060         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
35061         function.
35062         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
35063         it instead of duplicate_ssa_name_ptr_info.
35064
35065         PR target/65222
35066         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
35067
35068 2015-03-18  Richard Biener  <rguenther@suse.de>
35069
35070         * tree-data-ref.h (struct access_matrix): Remove.
35071         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
35072         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
35073         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
35074         (am_vector_index_for_loop): Likewise.
35075         (struct data_reference): Remove access_matrix member.
35076         (DR_ACCESS_MATRIX): Remove.
35077         (lambda_vector_new): Add comment.
35078         (lambda_matrix_new): Use XOBNEWVEC.
35079
35080 2015-03-18  Richard Biener  <rguenther@suse.de>
35081
35082         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
35083         (pass_ch::execute): Cleanup the CFG only if we did sth.
35084         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
35085
35086 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35087
35088         * expmed.c (synth_mult): Use std::swap instead of manually
35089         swapping algorithms.
35090
35091 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
35092
35093         PR target/65078
35094         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
35095
35096 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
35097
35098         PR target/65296
35099         * config/avr/avr.opt (-nodevicelib): New option.
35100         * doc/invoke.texi (AVR Options): Document it.
35101         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
35102         libgcc.a, libc.a, libm.a.
35103         * config/avr/specs.h: Same.
35104         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
35105         which don't (directly) depend on the device.  Print more help.
35106         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
35107         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
35108         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
35109         case of an error.
35110         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
35111         for specs file name.
35112         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
35113         * config/avr/avr-mcus.def: Adjust initializers and comments.
35114
35115 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
35116
35117         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
35118         DECL_ONE_ONLY to check if decl is one only.
35119         * ipa-split.c (consider_split): Limit splitt of one only functions.
35120
35121 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
35122
35123         PR tree-optimization/65427
35124         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
35125         functions.
35126         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
35127
35128 2015-03-16  Marek Polacek  <polacek@redhat.com>
35129
35130         * cgraph.h (add_new_static_var): Remove declaration.
35131         * varpool.c (add_new_static_var): Remove function.
35132
35133 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
35134
35135         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
35136         instead of vec<tree> * with vec_alloc and release for args.
35137         Adjust all users.
35138
35139         PR middle-end/65431
35140         * omp-low.c (delete_omp_context): Only splay_tree_delete
35141         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
35142         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
35143
35144 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
35145
35146         PR sanitizer/64820
35147         * cfgexpand.c (align_base): New function.
35148         (alloc_stack_frame_space): Call it.
35149         (expand_stack_vars): Align prev_frame to be sure
35150         data->asan_vec elements aligned properly.
35151
35152 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
35153
35154         PR middle-end/65409
35155         * expr.c (store_field): Do not do a direct block copy if the source is
35156         a PARALLEL with BLKmode.
35157
35158 2015-03-16  Tom de Vries  <tom@codesourcery.com>
35159
35160         PR middle-end/65414
35161         Revert:
35162         2015-03-12  Tom de Vries  <tom@codesourcery.com>
35163
35164         PR rtl-optimization/64895
35165         * lra-lives.c (check_pseudos_live_through_calls): Use
35166         actual_call_used_reg_set instead of call_used_reg_set, if available.
35167
35168 2015-03-16  Alan Modra  <amodra@gmail.com>
35169
35170         PR target/63150
35171         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
35172         Modify Z->r bswapdi splitter to use dest in place of scratch.
35173         In r->Z and Z->r bswapdi splitter rename word_high, word_low
35174         to word1, word2 and rearrange logic to suit.
35175         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
35176         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
35177         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
35178         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
35179         early clobber.
35180
35181 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
35182
35183         PR tree-optimization/65369
35184         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
35185         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
35186         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
35187
35188         PR tree-optimization/65418
35189         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
35190         are casts in the first PLUS_EXPR operand, ensure tbias and
35191         *totallowp are in the inner type.
35192
35193         PR rtl-optimization/65401
35194         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
35195         argument.  If true, adjust_address_nv of x with big-endian
35196         correction for the mode widening to GET_MODE (y).
35197         (make_field_assignment): Don't do MEM mode widening here.
35198         Use MEM_P instead of GET_CODE == MEM.
35199
35200 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
35201
35202         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
35203         the external decls.
35204
35205 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35206
35207         PR target/64600
35208         * config/arm/arm.c (arm_gen_constant, AND case): Use
35209         ARM_SIGN_EXTEND when constructing AND mask.
35210
35211 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35212
35213         * graph.c (print_graph_cfg): Make function names visible and append
35214         parenthesis to it.  Also make groups of basic blocks belonging to the
35215         same function visible.
35216
35217 2015-03-12  Richard Biener  <rguenther@suse.de>
35218
35219         PR middle-end/44563
35220         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
35221         to avoid quadratic behavior with inline expansion splitting blocks.
35222         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
35223         with the successor if the predecessor will be merged with it.
35224         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
35225         entry block with its successor.
35226
35227 2015-03-13  Richard Biener  <rguenther@suse.de>
35228
35229         PR middle-end/44563
35230         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
35231         (cleanup_tree_cfg_1): Do not call it.
35232         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
35233         (fixup_noreturn_call): Mark the stmt as control altering.
35234         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
35235         here.
35236         (pass_data_fixup_cfg): Produce a dump file.
35237         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
35238         (need_noreturn_fixup): New global.
35239         (pass_dominator::execute): Fixup queued noreturn calls.
35240         (optimize_stmt): Queue calls that became noreturn for fixup.
35241         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
35242         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
35243         (el_to_fixup): New global.
35244         (eliminate_dom_walker::before_dom_childre): Queue calls that
35245         became noreturn for fixup.
35246         (eliminate): Fixup queued noreturn calls.
35247         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
35248         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
35249         (substitute_and_fold_dom_walker::before_dom_children): Queue
35250         alls that became noreturn for fixup.
35251         (substitute_and_fold): Fixup queued noreturn calls.
35252
35253 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
35254
35255         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
35256         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
35257         are building; for methods check ODR type of class they belong to if
35258         they may lead to a polymorphic call.
35259         (sem_function::compare_polymorphic_p): Be bit smarter about testing
35260         when function may lead to a polymorphic call.
35261         (sem_function::compare_type_list): Remove.
35262         (sem_variable::equals): Update use of compatible_types_p.
35263         (sem_variable::parse_tree_refs): Remove.
35264         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
35265         cdtor.
35266         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
35267         matching here.
35268         (func_checker::compatible_polymorphic_types_p): Break out from ...
35269         (unc_checker::compatible_types_p): ... here.
35270         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
35271         Declare.
35272         (unc_checker::compatible_types_p): Update.
35273         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
35274         Remove.
35275
35276 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35277
35278         PR rtl-optimization/65235
35279         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
35280         When first element of vec_concat is const_int, calculate its size
35281         using second element.
35282
35283 2015-03-12  Richard Biener  <rguenther@suse.de>
35284
35285         PR middle-end/65270
35286         * fold-const.c (operand_equal_p): Fix ordering of resetting
35287         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
35288
35289 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
35290
35291         * config/s390/s390.c (s390_reorg): Move code to output nops after label
35292         to s390_reorg ().
35293         (s390_asm_output_function_label): Likewise.
35294         * config/s390/s390.c (s390_asm_output_function_label):
35295         Fix function label alignment with -mhtopatch.
35296         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
35297         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
35298         ("nop_2_byte"): New define_insn.
35299         ("nop_4_byte"): Likewise.
35300         ("nop_6_byte"): Likewise.
35301         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
35302         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
35303
35304 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
35305
35306         PR target/65103
35307         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
35308         register.
35309
35310 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
35311
35312         PR target/65044
35313         * toplev.c (process_options): Restrict Pointer Bounds Checker
35314         usage with Address Sanitizer.
35315
35316 2015-03-12  Richard Biener  <rguenther@suse.de>
35317
35318         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
35319         to split on.
35320         * omp-low.c (expand_omp_taskreg): Split block before removing
35321         the stmt.
35322         (expand_omp_target): Likewise.
35323         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
35324         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
35325         stmt to split_block.
35326
35327 2015-03-12  Tom de Vries  <tom@codesourcery.com>
35328
35329         PR rtl-optimization/64895
35330         * lra-lives.c (check_pseudos_live_through_calls): Use
35331         actual_call_used_reg_set instead of call_used_reg_set, if available.
35332
35333 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35334
35335         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
35336         (cgraph_node::remove): Likewise.
35337         (cgraph_node::get_untransformed_body): Likewise.
35338         * varpool.c (varpool_node::remove): Likewise.
35339         (varpool_node::get_constructor): Add sanity check.
35340
35341 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
35342
35343         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
35344         old GCC versions.
35345         (-fabi-compat-version): Likewise.
35346         (-ffriend-injection): Likewise.
35347         (-Wdeclaration-after-statement): Likewise.
35348         (-fomit-frame-pointer): Likewise.
35349         (-ftree-coalesce-inlined-vars): Likewise.
35350         (-fvisibility=): Likewise.
35351         * doc/extend.texi (Typeof): Likewise.
35352         (Zero Length): Likewise.
35353         (Escaped Newlines): Likewise.
35354         (Compound Literals): Likewise.
35355         (Function Attributes): Likewise.
35356         (Label Attributes): Likewise.
35357         (Type Attributes): Likewise.
35358         (Function Names): Likewise.
35359         (Other Builtins): Likewise.
35360         (Function Specific Option Pragmas): Likewise.
35361         (C++ Interface): Likewise.
35362
35363 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
35364
35365         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
35366
35367 2015-03-11  Marek Polacek  <polacek@redhat.com>
35368
35369         PR tree-optimization/65388
35370         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
35371
35372 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
35373
35374         PR target/65296
35375         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
35376         * configure: Regenerate.
35377         * config.in: Regenerate.
35378         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
35379         [-mn-flash]: Document it.
35380         [__AVR_ARCH__]: Document avrtiny.
35381
35382         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
35383         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
35384         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
35385
35386 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35387
35388         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
35389
35390 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
35391
35392         PR target/65242
35393         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
35394         allow reloads of PLUS in floating point/VSX registers.
35395
35396 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
35397
35398         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
35399         crypto_sha256_fast.
35400         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
35401
35402 2015-03-11  Richard Biener  <rguenther@suse.de>
35403
35404         PR tree-optimization/65310
35405         * tree-sra.c (build_ref_for_offset): Also preserve larger
35406         alignment.
35407
35408 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
35409
35410         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
35411
35412 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35413
35414         PR target/65368
35415         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
35416         new define_expand.
35417         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
35418
35419 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35420
35421         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
35422         (sem_function::equals_wpa): ... here.
35423
35424 2015-03-10  Marek Polacek  <polacek@redhat.com>
35425             Jakub Jelinek  <jakub@redhat.com>
35426
35427         PR sanitizer/65367
35428         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
35429         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
35430         separately.
35431
35432 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35433
35434         PR target/65286
35435         * config/rs6000/t-linux: For powerpc64* target set
35436         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
35437
35438 2015-03-10  Richard Biener  <rguenther@suse.de>
35439
35440         PR middle-end/44563
35441         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
35442         for redirect_all_calls.
35443
35444 2015-03-10  Marek Polacek  <polacek@redhat.com>
35445
35446         * gdbinit.in (pcfun): Define and document.
35447
35448 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
35449
35450         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
35451         of libgomp-plugin.h.
35452         (find_target_compiler): Support a case when the path to gcc is
35453         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
35454         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
35455         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
35456         libgomp-plugin.h.
35457         (main): Use GCC_INSTALL_NAME as target_driver_name.
35458         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
35459         define.
35460         (mkoffload.o): Remove obsolete include path and defines.
35461         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
35462
35463 2015-03-10  Richard Biener  <rguenther@suse.de>
35464
35465         PR middle-end/63155
35466         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
35467         * tree-ssa-coalesce.c: Include timevar.h.
35468         (attempt_coalesce): Handle graph being NULL.
35469         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
35470         Split out abnormal coalescing to ...
35471         (perform_abnormal_coalescing): ... this function.
35472         (coalesce_ssa_name): Perform abnormal coalescing without computing
35473         live/conflict.
35474         (verify_ssa_coalescing_worker): New function.
35475         (verify_ssa_coalescing): Likewise.
35476
35477 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
35478
35479         PR target/65296
35480         * config.gcc (extra_options) [avr]: Remove.
35481         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
35482         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
35483         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
35484
35485         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
35486         (-mmcu=): Add Var and MissingArgError properties.
35487         (-march=): Remove.
35488         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
35489         * config/avr/t-multilib: Regenerate.
35490         * config/avr/specs.h: New file.
35491         * config/avr/driver-avr.c: New file.
35492         * config/avr/genopt.sh: Remove file.
35493         * config/avr/avr-tables.opt: Remove file.
35494         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
35495         * config/avr/avr-c.c: Same.
35496         * avr-arch.h: Same.
35497         (avr_current_device): Remove proto.
35498         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
35499         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
35500         (EXTRA_SPEC_FUNCTIONS): Define.
35501         (avr_devicespecs_file): New specs function proto.
35502         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
35503         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
35504         (avr_current_device): Remove definition and usage.
35505         (avr_set_core_architecture): New static function.
35506         (avr_option_override): Use it.
35507         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
35508         (mcu_name): New static array.
35509         (comparator, avr_archs_str, avr_mcus_str): New static functions.
35510         (avr_inform_devices, avr_inform_core_architectures): New functions.
35511         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
35512         (avrlibc.h) [WITH_AVRLIBC]: Include.
35513         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
35514         (print_mcu): Rewrite from scratch.
35515         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
35516         Forward to avr-specific specs defined in device-specs file.
35517         * config/avr/t-avr (driver-avr.o): New rule.
35518         (avr-devices.o): Depend on avr-arch.h.
35519         (avr-mcus): No more depend on avr-tables.opt.
35520         (avr-tables.opt): Remove rule.
35521         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
35522
35523 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35524
35525         * c-family/c.opt (fchkp-use-wrappers): New.
35526         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
35527         (chkp_wrap_function): New.
35528         (chkp_build_instrumented_fndecl): Support wrapped
35529         functions.
35530         * doc/invoke.texi (-fcheck-pointer-bounds): New.
35531         (-fchkp-check-incomplete-type): New.
35532         (-fchkp-first-field-has-own-bounds): New.
35533         (-fchkp-narrow-bounds): New.
35534         (-fchkp-narrow-to-innermost-array): New.
35535         (-fchkp-optimize): New.
35536         (-fchkp-use-fast-string-functions): New.
35537         (-fchkp-use-nochk-string-functions): New.
35538         (-fchkp-use-static-bounds): New.
35539         (-fchkp-use-static-const-bounds): New.
35540         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
35541         (-fchkp-check-read): New.
35542         (-fchkp-check-write): New.
35543         (-fchkp-store-bounds): New.
35544         (-fchkp-instrument-calls): New.
35545         (-fchkp-instrument-marked-only): New.
35546         (-fchkp-use-wrappers): New.
35547         (-static-libmpx): New.
35548         (-static-libmpxwrappers): New.
35549
35550 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35551
35552         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
35553         (CHKP_SPEC): Add wrappers library.
35554         * c-family/c.opt (static-libmpxwrappers): New.
35555
35556 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35557
35558         * config/i386/linux-common.h (LIBMPX_LIBS): New.
35559         (LIBMPX_SPEC): New.
35560         (CHKP_SPEC): New.
35561         * gcc.c (CHKP_SPEC): New.
35562         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
35563         * c-family/c.opt (static-libmpx): New.
35564
35565 2015-03-10  Richard Biener  <rguenther@suse.de>
35566
35567         PR middle-end/44563
35568         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
35569         for compare_type.
35570         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
35571         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
35572         (cgraph_add_edge_to_call_site_hash): Likewise.
35573         (cgraph_node::get_edge): Likewise.
35574         (cgraph_edge::set_call_stmt): Likewise.
35575         (cgraph_edge::remove_caller): Likewise.
35576
35577 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
35578
35579         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
35580         (callee_saved_gpr_regs_size): ... this.
35581         (callee_saved_regs_first_regno): Rename to ...
35582         (callee_saved_first_gpr_regno): ... this.
35583         (callee_saved_regs_last_regno) Rename to ...
35584         (callee_saved_last_gpr_regno): ... this.
35585         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
35586         variables.
35587         (nds32_initial_elimination_offset): Likewise.
35588         (nds32_expand_prologue): Likewise.
35589         (nds32_expand_epilogue): Likewise.
35590         (nds32_expand_prologue_v3push): Likewise.
35591         (nds32_expand_epilogue_v3pop): Likewise.
35592         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
35593         Adjust renamed variables.
35594         (nds32_output_stack_pop): Likewise.
35595
35596 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35597
35598         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
35599         code in comment.
35600
35601 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35602
35603         PR rtl-optimization/65321
35604         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
35605         than shift mode.
35606         * var-tracking.c (use_narrower_mode): Likewise.
35607
35608 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35609
35610         PR tree-optimization/65355
35611         * varasm.c (notice_global_symbol): Do not produce RTL.
35612         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
35613         anchor.
35614         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
35615         check for section anchors.
35616
35617 2015-03-10  Alan Modra  <amodra@gmail.com>
35618
35619         PR target/65286
35620         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
35621         to be single-arch by default.  Set cpu_is_64bit for powerpc64
35622         given --with-cpu=native.
35623         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
35624         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
35625         and powerpc64le.
35626         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
35627         rs6000_isa_flags rather than TARGET_64BIT.
35628
35629 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
35630             Kaz Kojima  <kkojima@gcc.gnu.org>
35631
35632         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
35633
35634 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
35635
35636         PR lto/65361
35637         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
35638         on a TREE_BINFO, instead use BINFO_TYPE.
35639
35640 2015-03-09  Richard Biener  <rguenther@suse.de>
35641
35642         PR middle-end/65270
35643         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
35644         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
35645         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
35646         of that.  When comparing dereferences compare alignment.
35647         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
35648
35649 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35650
35651         * ipa-inline-analysis.c (check_callers): Check
35652         node->can_remove_if_no_direct_calls_and_refs_p.
35653         (growth_likely_positive): Reorganize to call
35654         can_remove_if_no_direct_calls_p later.
35655         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
35656         will_be_removed_from_program_if_no_direct_calls_p): Add
35657         will_inline parameter.
35658         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
35659         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35660         Handle inliner case correctly.
35661
35662 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35663
35664         PR tree-optimization/63743
35665         * cfgexpand.c (reorder_operands): Also reorder if only second operand
35666         had its definition forwarded by TER.
35667
35668 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35669
35670         PR lto/65316
35671         * ipa-utils.h (types_odr_comparable): Add strict argument.
35672         * ipa-devirt.c: Fix whitespace;
35673         (odr_hasher): Remove.
35674         (odr_name_hasher, odr_vtable_hasher): New hashers.
35675         (can_be_name_hashed_p): New predicate.
35676         (hash_type_name): remove.
35677         (hash_odr_name): New.
35678         (odr_name_hasher::hash): new.
35679         (can_be_vtable_hashed_p): New.
35680         (hash_odr_vtable): New.
35681         (odr_vtable_hasher::hash): New.
35682         (types_same_for_odr): Add strict parameter.
35683         (types_odr_comparable): Likewise.
35684         (odr_name_hasher::equal): New.
35685         (odr_vtable_hasher::equal): New.
35686         (odr_name_hasher::remove): New.
35687         (odr_hash_type): Change to hash_table<odr_name_hasher>.
35688         (odr_vtable_hash_type): New.
35689         (odr_vtable_hash): New.
35690         (odr_subtypes_equivalent_p): Do strict comparsion.
35691         (add_type_duplicate): Merge type names; cleanup; avoid type
35692         duplicates.
35693         (register_odr_type): Initialize vtable hash.
35694         (build_type_inheritance_graph): Likewise
35695         (get_odr_type): Reorg to use two hashes.
35696         (dump_possible_polymorphic_call_targets): Move sanity check after debug
35697         output.
35698         (ipa_devirt): Dump type_inheritance_graph.
35699         (types_same_for_odr): Add strict mode.
35700
35701 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35702
35703         PR ipa/65334
35704         * cgraph.h (symtab_node): Add definition_alignment,
35705         can_increase_alignment_p and increase_alignment.
35706         * symtab.c (symtab_node::can_increase_alignment_p,
35707         increase_alignment_1, symtab_node::increase_alignment,
35708         symtab_node::definition_alignment): New.
35709         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
35710         can_increase_alignment_p.
35711         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
35712         * tree-vect-stmts.c (ensure_base_align): Likewise.
35713         * varasm.c (function_section_1): Use definition_alignment.
35714         (assemble_start_function): Likewise.
35715         (emit_local): likewise.
35716         (build_constant_desc): Likewsie.
35717         (output_constant_def_contents): Likewise.
35718         (place_block_symbol): Likewise.
35719         (output_object_block): Likewise.
35720
35721 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35722
35723         PR ipa/65316
35724         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
35725         when outputting debug.
35726
35727 2015-03-07  Marek Polacek  <polacek@redhat.com>
35728             Martin Uecker  <uecker@eecs.berkeley.edu>
35729
35730         PR sanitizer/65280
35731         * doc/invoke.texi: Update description of -fsanitize=bounds.
35732
35733 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
35734
35735         * tree-ssa-phiopt.c (neg_replacement): Remove.
35736         (tree_ssa_phiopt_worker): Remove negate optimization.
35737
35738 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35739
35740         PR ipa/65302
35741         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
35742
35743 2015-03-06  Richard Biener  <rguenther@suse.de>
35744
35745         PR middle-end/64928
35746         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
35747         and liveout_obstack members.
35748         (calculate_live_on_exit): Remove.
35749         (calculate_live_ranges): Change declaration.
35750         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
35751         (new_tree_live_info): Adjust.
35752         (calculate_live_ranges): Delete livein when not wanted.
35753         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
35754         Deal with partly deleted live info.
35755         (loe_visit_block): Remove temporary bitmap by using
35756         bitmap_ior_and_compl_into.
35757         (live_worklist): Adjust accordingly.
35758         (calculate_live_on_exit): Make static.
35759         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
35760         we do not need livein.
35761
35762 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
35763
35764         * real.c (real_from_string): Fix typo in assertion.
35765
35766 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
35767
35768         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
35769         the patch.
35770
35771 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35772
35773         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
35774
35775 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
35776
35777         PR target/64342
35778         * lra-assigns.c (find_hard_regno_for): Rename to
35779         find_hard_regno_for_1.  Add a new parameter.
35780         (find_hard_regno_for): New function using find_hard_regno_for_1.
35781
35782 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35783
35784         PR rtl-optimization/65067
35785         * expmed.c (store_bit_field, extract_bit_field): Reworked the
35786         strict volatile bitfield handling.
35787
35788 2015-03-05  Martin Liska  <mliska@suse.cz>
35789
35790         PR ipa/65318
35791         * ipa-icf.c (sem_variable::equals): Compare variables types.
35792
35793 2015-03-05  Richard Henderson  <rth@redhat.com>
35794
35795         PR target/65121
35796         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
35797         correctly check weak symbol binding.
35798
35799 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
35800
35801         PR middle-end/65315
35802         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
35803         needed alignment.
35804
35805 2015-03-05  Martin Liska  <mliska@suse.cz>
35806
35807         * ipa-inline.c (inline_small_functions): Set default value to
35808         prevent warning during bootstrap.
35809         * tree.h: Add pragma guard that ignores false positives during
35810         bootstrap.
35811
35812 2015-03-05  Richard Biener  <rguenther@suse.de>
35813
35814         PR tree-optimization/65310
35815         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
35816         Properly preserve alignment of the base of the access.
35817
35818 2015-03-05  Richard Biener  <rguenther@suse.de>
35819
35820         PR ipa/65270
35821         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
35822         Compare dependence info.
35823
35824 2015-03-05  Richard Biener  <rguenther@suse.de>
35825
35826         PR middle-end/65233
35827         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
35828         tree-into-ssa.h.
35829         (walk_ssa_copies): Revert last chage.  Instead do not walk
35830         SSA names registered for SSA update.
35831
35832 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35833
35834         PR ipa/65270
35835         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
35836         vtable references for their containing type.
35837         (sem_function::equals_wpa): Compare TYPE_RESTRICT
35838         and type attributes.
35839
35840 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
35841
35842         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
35843         before negating it.
35844         * stor-layout.c (finalize_record_size): Revert latest change.
35845
35846 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
35847
35848         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
35849
35850 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35851
35852         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
35853         for correct comdat handling.
35854         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35855         Likewise.
35856         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
35857         (used_from_object_file_p_worker): Remove.
35858         (cgraph_node::only_called_directly_or_alised): Add
35859         used_from_object_file_p.
35860         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
35861         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
35862         can_remove_if_no_direct_calls_and_refs_p.
35863
35864 2015-03-04  Nick Clifton  <nickc@redhat.com>
35865
35866         * config/rl78/rl78.h (enum reg_class): Remove real registers from
35867         General register class.
35868         * config/rl78/rl78-real.md: Replace general register constraints
35869         with real+virtual register constraints.
35870
35871 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35872
35873         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
35874         from checking for -mhtm option.
35875
35876 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35877
35878         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
35879         (struct ipa_sra_check_caller_data): Add has_thunk field.
35880         (ipa_sra_check_caller): Check for thunk.
35881         (ipa_sra_preliminary_function_checks): Give up on function with
35882         thunks.
35883         (ipa_early_sra): Use call_for_symbol_and_aliases.
35884
35885 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
35886
35887         PR target/65249
35888         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
35889         called for __stack_chk_guard symbol.
35890
35891 2015-03-03  DJ Delorie  <dj@redhat.com>
35892
35893         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
35894         inc/dec.
35895         (*addhi3_real): Likewise.
35896         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
35897         pattern to match incrementing memory.
35898         * config/rl78/predicates.md (rl78_1_2_operand): New.
35899         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
35900         it's the same and only mem.
35901         (rl78_alloc_physical_registers_op2): If there's effectively only
35902         one MEM, transcode it into HL.
35903         (rl78_far_p): Reject addresses that aren't legitimate.
35904
35905 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35906
35907         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
35908         negating it.
35909
35910         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
35911
35912 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35913
35914         Implement call0 ABI for xtensa
35915         * config/xtensa/constraints.md ("a" constraint): Include stack
35916         pointer in case of call0 ABI.
35917         ("q" constraint): Make empty in case of call0 ABI.
35918         ("D" constraint): Include stack pointer in case of call0 ABI.
35919         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
35920         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
35921         prototypes.
35922         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
35923         variable.
35924         (xtensa_regno_to_class): Make it a local variable in the
35925         function xtensa_regno_to_class.
35926         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
35927         macro, function prototype and implementation.
35928         (reg_nonleaf_alloc_order): Make it a local variable in the
35929         function order_regs_for_local_alloc.
35930         (xtensa_conditional_register_usage): New function.
35931         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
35932         (xtensa_valid_move): Allow direct moves to stack pointer
35933         register in call0 ABI.
35934         (xtensa_setup_frame_addresses): Only spill register windows in
35935         windowed ABI.
35936         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
35937         call0 ABI respectively.
35938         (xtensa_function_arg_1): Only mark a7 register for copying in
35939         windowed ABI.
35940         (xtensa_call_save_reg): New function.
35941         (compute_frame_size): Add space for callee saved register
35942         storage to the frame size in call0 ABI.
35943         (xtensa_expand_prologue): Generate code to set up stack frame
35944         and save callee-saved registers in call0 ABI.
35945         (xtensa_expand_epilogue): New function.
35946         (xtensa_set_return_address): New function.
35947         (xtensa_return_addr): Calculate return address in call0 ABI.
35948         (xtensa_builtin_saveregs): Only mark a7 register for copying and
35949         emit copying code in windowed ABI.
35950         (order_regs_for_local_alloc): Add preferred register allocation
35951         order for non-leaf function in call0 ABI.
35952         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
35953         (xtensa_asm_trampoline_template): Add trampoline generation for
35954         call0 ABI.
35955         (xtensa_trampoline_init): Add trampoline initialization for
35956         call0 ABI.
35957         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
35958         functions.
35959         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
35960         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
35961         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
35962         ABI call-used registers.
35963         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
35964         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
35965         call0 ABI.
35966         (REG_CLASS_CONTENTS): Include all registers into the preferred
35967         reload registers set, adjust the set in the
35968         xtensa_conditional_register_usage.
35969         (xtensa_regno_to_class): Drop variable declaration.
35970         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
35971         function.
35972         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
35973         respectively.
35974         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
35975         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
35976         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
35977         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
35978         location in call0 ABI.
35979         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
35980         stack adjustment size when handling exception.
35981         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
35982         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
35983         definitions.
35984         ("return" pattern): Generate ret.n/ret in call0 ABI.
35985         ("epilogue" pattern): Expand epilogue.
35986         ("nonlocal_goto" pattern): Use default in call0 ABI.
35987         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
35988         emit eh_set_a0_* depending on ABI.
35989         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
35990         ("eh_set_a0_call0", "blockage"): New patterns.
35991
35992 2015-03-03  Martin Liska  <mliska@suse.cz>
35993
35994         PR ipa/65287
35995         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
35996
35997 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
35998
35999         PR 65138/target
36000         * config/rs6000/rs6000-tables.opt: Regenerate table.
36001
36002 2015-03-03  Renlin Li  <renlin.li@arm.com>
36003
36004         * doc/md.texi (@item ^): Change ? into ^.
36005
36006 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
36007
36008         * doc/tm.texi: Regenerated.
36009
36010 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
36011
36012         * builtins.c (expand_builtin_return_addr): Add
36013         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
36014         surrounding #ifdef.
36015         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
36016         definition to 1.
36017         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
36018         Likewise.
36019         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
36020         undefined.
36021         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
36022         paragraph.
36023
36024 2015-03-03  Martin Jambor  <mjambor@suse.cz>
36025             Eric Botcazou  <ebotcazou@adacore.com>
36026
36027         * tree-sra.c (ipa_sra_check_caller_data): New type.
36028         (has_caller_p): Removed.
36029         (ipa_sra_check_caller): New function.
36030         (ipa_sra_preliminary_function_checks): Use it.
36031
36032 2015-03-03  Martin Liska  <mliska@suse.cz>
36033
36034         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
36035         instead of if branch.
36036
36037 2015-03-03  Martin Liska  <mliska@suse.cz>
36038
36039         PR ipa/65282
36040         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
36041
36042 2015-03-23  Jeff Law  <law@redhat.com>
36043
36044         PR tree-optimization/65241
36045         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
36046         hash table if INSERT is true.
36047
36048 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
36049
36050         PR target/65296
36051         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
36052
36053 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
36054
36055         PR target/64331
36056         * config/avr/avr.c (context.h, tree-pass.h): Include them.
36057         (avr_pass_data_recompute_notes): New static variable.
36058         (avr_pass_recompute_notes): New class.
36059         (avr_register_passes): New static function.
36060         (avr_option_override): Call it.
36061
36062 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
36063
36064         Fix various problems with specs file generation.
36065
36066         PR target/65296
36067         * config.gcc (extra_gcc_objs) [avr]: Remove.
36068         * config/avr/driver-avr.c: Remove file.
36069         * config/avr/t-avr (driver-avr.o): Remove rule.
36070         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
36071         INCLUDES to build.  Depend on TM_H.
36072         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
36073         build warnings.  Fix non-matching types and non-existing %-codes.
36074         (tm.h): Include.
36075         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
36076         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
36077         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
36078         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
36079         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
36080         (LIBGCC_SPEC): Remove definitions.
36081
36082 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
36083
36084         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
36085         to create a register in testing mode.
36086
36087 2015-03-03  Martin Liska  <mliska@suse.cz>
36088             Jan Hubicka  <hubicka@ucw.cz>
36089
36090         PR ipa/65263
36091         * cgraph.c (cgraph_node::has_thunk_p): New function.
36092         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
36093         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
36094         (sem_function::merge): Assert is changed.
36095
36096 2015-03-03  Martin Liska  <mliska@suse.cz>
36097             Martin Jambor  <mjambor@suse.cz>
36098
36099         PR ipa/65087
36100         * ipa-icf.c (sem_item_optimizer::execute): Change function
36101         return value to boolean.
36102         (sem_item_optimizer::merge_classes): Likewise.
36103         (ipa_icf_driver): Return TODO_remove_functions in case there's
36104         a merge operation processed.
36105         * ipa-icf.h: Change function return value to boolean.
36106
36107 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
36108
36109         PR 65138/target
36110         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
36111         processor type for 64-bit little endian PowerPC.
36112
36113         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
36114         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
36115         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
36116         printing built-in mask so it does not pass NULL pointers.
36117
36118         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
36119         -mcpu=powerpc64le.
36120
36121 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
36122
36123         PR target/58158
36124         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
36125         !ISA_HAS_FP_CONDMOVE.
36126
36127 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
36128
36129         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
36130         reload_completed.
36131
36132 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
36133
36134         * doc/invoke.texi (Options for Code Generation Conventions):
36135         Fix URL of DSO paper.
36136
36137 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
36138
36139         PR ipa/65130
36140         * ipa-inline.c (check_callers): Looks for recursion.
36141         (inline_to_all_callers): Give up on uninlinable or recursive edges.
36142         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
36143         summary of inline clones.
36144         (do_estimate_growth_1): Fix recursion check.
36145
36146 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
36147
36148         PR ipa/64988
36149         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
36150         comdat groups.
36151
36152 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
36153             Aldy Hernandez  <aldyh@redhat.com>
36154
36155         PR lto/65276
36156         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
36157         when checking TYPE_BINFO.
36158
36159 2015-03-02  Richard Biener  <rguenther@suse.de>
36160
36161         PR ipa/65270
36162         * ipa-icf-gimple.c: Include builtins.h.
36163         (func_checker::compare_memory_operand): Compare base alignment.
36164
36165 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
36166
36167         PR target/65184
36168         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
36169         passed by reference.
36170
36171 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
36172
36173         PR target/65183
36174         * tree-chkp.c (chkp_check_lower): Don't check against
36175         zero bounds for already instrumented functions.
36176         (chkp_check_upper): Likewise.
36177         (chkp_fini): Clean pass local data to avoid wrong reusage.
36178
36179 2015-02-28  Martin Liska  <mliska@suse.cz>
36180             Jan Hubicka  <hubicka@ucw.cz>
36181
36182         * ipa-icf.c (sem_variable::equals): Improve debug output;
36183         get variable constructor.
36184         (sem_variable::parse): Do not filter out too early; give up on
36185         volatile and register vars.
36186         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
36187         variables.
36188         * ipa-icf.h (sem_variable::init): Do not set ctor.
36189         (sem_variable::ctor): Remove.
36190
36191 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
36192
36193         PR middle-end/65233
36194         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
36195
36196 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36197
36198         * ipa-icf.c: Include stor-layout.h
36199         (sem_function::compare_cgraph_references): Rename to ...
36200         (sem_item::compare_cgraph_references): ... this one.
36201         (sem_variable::equals_wpa): New function
36202         (sem_variable::equals): Do not check stuff already verified by
36203         equals_wpa.
36204         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
36205         * ipa-icf.h (sem_item): Add compare_cgraph_references.
36206         (sem_function): Remove compare_cgraph_references.
36207         (sem_variable): Turns equals_wpa into non-inline.
36208
36209 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36210
36211         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
36212         (sem_item::add_expr): New function.
36213         (sem_function::hash_stmt): Handle operands of most statements.
36214         (sem_variable::get_hash): Hash the actual constructor.
36215         * ipa-icf.h (sem_item): Add add_expr.
36216         (sem_function): Update prototype of hash_stmt
36217
36218 2015-02-28  Martin Liska  <mliska@suse.cz>
36219             Jan Hubicka  <hubicka@ucw.cz>
36220
36221         PR ipa/65245
36222         * ipa-icf-gimple.c (func_checker::compare_function_decl):
36223         Remove.
36224         (func_checker::compare_variable_decl): Skip symtab vars.
36225         (func_checker::compare_cst_or_decl): Update.
36226         * ipa-icf.c (sem_function::parse): Do not consider aliases.
36227         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
36228         use correct symtab predicates.
36229         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
36230         (sem_variable::parse):  Update comment.
36231         (sem_item_optimizer::build_graph): Consider ultimate aliases
36232         for references.
36233
36234 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36235
36236         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
36237         of OBJ_TYPE_REF.
36238
36239 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36240
36241         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
36242         (sem_variable::merge) Likewise.
36243
36244 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36245
36246         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
36247         target; also match flag_ipa_devirt.
36248
36249 2015-03-01  Martin Liska  <mliska@suse.cz>
36250             Jan Hubicka  <hubicka@ucw.cz>
36251
36252         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
36253         Validate variable alignment.
36254         * ipa-icf.c (sem_function::equals_private): Be more precise
36255         about non-common function attributes.
36256         (sem_variable::equals): Likewise.
36257
36258 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36259
36260         PR ipa/65237
36261         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
36262         across COMDAT group boundary.
36263
36264 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36265
36266         PR ipa/65232
36267         * ipa-icf.c (clear_decl_rtl): New function.
36268         (sem_function::merge): Clear RTL before forming alias.
36269         (sem_variable::merge): Clear RTL before forming alias.
36270
36271 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
36272
36273         PR ipa/65236
36274         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
36275
36276 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
36277
36278         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
36279         to neon_to_gp<q>.
36280
36281 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
36282
36283         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
36284         a typo in the description.
36285
36286 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
36287
36288         PR target/64317
36289         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
36290         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
36291         * lra-constraints.c: Include "params.h".
36292         (EBB_PROBABILITY_CUTOFF): Use
36293         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
36294         (lra_inheritance): Use '<' instead of '<=' for
36295         EBB_PROBABILITY_CUTOFF.
36296         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
36297         Document change.
36298
36299 2015-02-27  Martin Liska  <mliska@suse.cz>
36300
36301         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
36302         vector length condition.
36303
36304 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
36305
36306         * doc/extend.texi (x86 transactional memory intrinsics):
36307         Reorganize discussion of _xbegin.  Clarify that the return
36308         value is a bit mask.  Expand example and move to end of section.
36309
36310 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
36311             Aldy Hernandez  <aldyh@redhat.com>
36312
36313         PR rtl-optimization/65220
36314         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
36315
36316 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
36317
36318         PR target/65032
36319         * lra-remat.c (update_scratch_ops): New.
36320         (do_remat): Call it.
36321         * lra.c (lra_register_new_scratch_op): New. Take code from ...
36322         (remove_scratches): ... here.
36323         * lra-int.h (lra_register_new_scratch_op): New prototype.
36324
36325 2015-02-27  Marek Polacek  <polacek@redhat.com>
36326
36327         PR c/65040
36328         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
36329         -Wformat-signedness anymore.
36330
36331 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36332
36333         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
36334         function.
36335         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
36336
36337 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36338
36339         * config/s390/s390.c (enum s390_builtin):
36340         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
36341         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
36342         (s390_init_builtins): Generate new builtin functions.
36343         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
36344         (s390_sfpc, s390_efpc): New pattern definitions.
36345
36346 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36347
36348         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
36349         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
36350         (s390_builtin_decls): New array.
36351         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
36352         (s390_builtin_decl): New function.
36353         (TARGET_BUILTIN_DECL): Define macro.
36354
36355 2015-02-27  Richard Biener  <rguenther@suse.de>
36356
36357         PR middle-end/63175
36358         * builtins.c (get_object_alignment_2): Make sure to re-apply
36359         the ANDed mask after recursing to its operand gets us a new
36360         misalignment bit position.
36361
36362 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
36363             Martin Liska  <mliska@suse.cz>
36364
36365         PR bootstrap/65150
36366         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
36367         Use address_matters_p.
36368         (redirect_all_callers, set_addressable): New functions.
36369         (sem_function::merge): Reorganize and fix merging issues.
36370         (sem_variable::merge): Likewise.
36371         (sem_variable::compare_sections): Remove.
36372         * common.opt (fmerge-all-constants, fmerge-constants): Remove
36373         Optimization flag.
36374         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
36375         redirect them.
36376         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
36377         decl is used.
36378         (address_matters_1): New function.
36379         (symtab_node::address_matters_p): New function.
36380         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
36381         check for merged flag.
36382         * cgraph.h (address_matters_p): Declare.
36383         (symtab_node::address_taken_from_non_vtable_p): Remove.
36384         (symtab_node::address_can_be_compared_p): New method.
36385         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
36386         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
36387         Remove.
36388         (comdat_can_be_unshared_p_1) Use address_matters_p.
36389         (update_vtable_references): Fix formating.
36390         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
36391         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
36392         * cgraphclones.c: Preserve merged and icf_merged flags.
36393
36394 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
36395
36396         * doc/extend.texi (Function Attributes): Fix spelling and typos.
36397         (Label Attributes): Likewise.
36398         (Cilk Plus Builtins): Likewise.
36399         (ARC SIMD Built-in Functions): Likewise.
36400         (ARM C Language Extensions (ACLE)): Likewise.
36401         (PowerPC Built-in Functions): Likewise.
36402         (PowerPC Hardware Transactional Memory Built-in Functions):
36403         Likewise.
36404
36405 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
36406
36407         PR tree-optimization/65216
36408         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
36409         new stmt and new SSA_NAME for lhs whenever the arguments have
36410         changed and weren't just swapped.  Fix comment typo.
36411
36412         PR tree-optimization/65215
36413         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
36414         for PDP endian targets.
36415         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
36416         Fix up formatting issues.
36417         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
36418         size is smaller than the original, adjust MEM_REF offset by the
36419         difference of sizes.  Use is_gimple_mem_ref_addr instead of
36420         is_gimple_min_invariant test to avoid adding address temporaries.
36421
36422 2015-02-26  Martin Liska  <mliska@suse.cz>
36423             Jan Hubicka  <hubicka@ucw.cz>
36424
36425         PR ipa/64693
36426         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
36427         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
36428         (sem_item_optimizer::process_cong_reduction): Include division by
36429         sensitive references.
36430         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
36431         * ipa-ref.c (ipa_ref::address_matters_p): New function.
36432         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
36433
36434 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
36435
36436         PR target/65192
36437         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
36438         Remove.
36439         * config/avr/avr.c: Same.
36440         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
36441         Refuse any constant address not in 0..0xbf.
36442         * config/avr/avr.md (*mov<mode>, *movsf): Remove
36443         tiny_valid_direct_memory_access_range from insn conditions.
36444         (mov<mode>): Don't special-case expansion of avrtiny addresses.
36445
36446 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
36447
36448         PR target/61142
36449         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
36450         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
36451         * config/sh/predicates.md (const_logical_operand): New predicate.
36452         * config/sh/sh.md: Add new peephole2 patterns.
36453
36454 2015-02-26  Marek Polacek  <polacek@redhat.com>
36455
36456         PR ipa/65008
36457         * ipa-inline.c (early_inliner): Recompute inline parameters.
36458
36459 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36460
36461         PR target/65171
36462         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
36463         instructions with TImode operands are included in the analysis.
36464
36465 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
36466
36467         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
36468         of an EDGE_FSM_THREAD.
36469
36470 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
36471
36472         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
36473
36474 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
36475
36476         PR debug/46102
36477         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
36478
36479 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
36480
36481         PR tree-optimization/65048
36482         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
36483         (thread_through_all_blocks): Call valid_jump_thread_path.
36484         Remove invalid FSM jump-thread paths.
36485
36486 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
36487
36488         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
36489         (ipa_write_optimization_summaries): Likewise.
36490         * tree-streamer.h: Include data-streamer.h.
36491         (streamer_mode_table): Declare extern variable.
36492         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
36493         * lto-streamer-out.c (lto_output_init_mode_table,
36494         lto_write_mode_table): New functions.
36495         (produce_asm_for_decls): Call lto_write_mode_table when streaming
36496         offloading LTO.
36497         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
36498         (lto_create_simple_input_block): Add mode_table argument to the
36499         lto_input_block constructors.
36500         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
36501         Likewise.
36502         * data-streamer-in.c (string_for_index): Likewise.
36503         * ipa-inline-analysis.c (inline_read_section): Likewise.
36504         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
36505         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
36506         * lto-streamer-in.c (lto_read_body_or_constructor,
36507         lto_input_toplevel_asms): Likewise.
36508         (lto_input_mode_table): New function.
36509         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
36510         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
36511         Use bp_pack_machine_mode.
36512         * real.h (struct real_format): Add name field.
36513         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
36514         (class lto_input_block): Add mode_table member.
36515         (lto_input_block::lto_input_block): Add mode_table_ argument,
36516         initialize mode_table.
36517         (struct lto_file_decl_data): Add mode_table field.
36518         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
36519         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
36520         unpack_ts_decl_common_value_fields,
36521         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
36522         * tree-streamer.c (streamer_mode_table): New variable.
36523         * real.c (ieee_single_format, mips_single_format,
36524         motorola_single_format, spu_single_format, ieee_double_format,
36525         mips_double_format, motorola_double_format,
36526         ieee_extended_motorola_format, ieee_extended_intel_96_format,
36527         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
36528         ibm_extended_format, mips_extended_format, ieee_quad_format,
36529         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
36530         decimal_single_format, decimal_double_format, decimal_quad_format,
36531         ieee_half_format, arm_half_format, real_internal_format): Add name
36532         field.
36533         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
36534
36535 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
36536
36537         PR target/65161
36538         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
36539         reordering for selective scheduling.
36540
36541 2015-02-26  Terry Guo  <terry.guo@arm.com>
36542
36543         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
36544         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
36545         (arm_arch_no_volatile_ce): Declare new global variable.
36546         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
36547         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
36548         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
36549         (TARGET_NO_VOLATILE_CE): New macro.
36550         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
36551         volatile memory access in IT block
36552
36553 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36554
36555         PR tree-optimization/61917
36556         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
36557         that reduc_def_stmt is null.
36558
36559 2015-02-25  Martin Liska  <mliska@suse.cz>
36560
36561         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
36562         hard register variables.
36563
36564 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36565
36566         PR target/64212
36567         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
36568         (symtab::noninterposable_alias): Likewise.
36569
36570 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
36571
36572         PR target/65167
36573         * config/i386/i386.c (ix86_function_arg_regno_p): Support
36574         bounds registers.
36575         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
36576
36577 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
36578
36579         PR target/64997
36580         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
36581         as split condition; force split via '#' in output pattern.
36582
36583 2015-02-25  Richard Biener  <rguenther@suse.de>
36584             Kai Tietz  <ktietz@redhat.com>
36585
36586         PR tree-optimization/61917
36587         * tree-vect-loop.c (vectorizable_reduction): Allow
36588         vect_internal_def without reduction to exit graceful.
36589
36590 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36591
36592         PR target/65196
36593         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
36594         only with NONDEBUG_INSN_P.
36595
36596 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36597
36598         Use variadic macros with avr-log.c.
36599
36600         * config/avr/avr-protos.h (avr_vdump): New prototype.
36601         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
36602         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
36603         * config/avr/avr-log.c: Adjust comments.
36604         (avr_vdump): New function.
36605         (avr_vadump): Pass caller as 2nd argument instead of format string.
36606         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
36607         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
36608
36609 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
36610
36611         PR lto/64374
36612         * target.def (target_option_stream_in): New target hook.
36613         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
36614         targetm.target_option.post_stream_in if non-NULL.
36615         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
36616         * doc/tm.texi: Updated.
36617         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
36618         function.
36619         (TARGET_OPTION_POST_STREAM_IN): Redefine.
36620
36621 2015-02-24  Jeff Law  <law@redhat.com>
36622
36623         PR target/65117
36624         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
36625         of operand 0 and operand 2.
36626         (zero_cost_loop_end, loop_end): Similarly.
36627
36628 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
36629
36630         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
36631         CXX_MEM_STAT_INFO.
36632
36633 2015-02-24  DJ Delorie  <dj@redhat.com>
36634
36635         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
36636         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
36637         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
36638         instead of hardcoding SImode.
36639
36640 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
36641
36642         * omp-low.c (create_omp_child_function): Tag entrypoint
36643         functions with a special attribute.
36644
36645 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
36646
36647         PR target/65058
36648         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
36649
36650 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
36651
36652         PR rtl-optimization/65123
36653         * lra-remat.c (operand_to_remat): Check hard regs in insn
36654         definition too.
36655
36656 2015-02-24  Nick Clifton  <nickc@redhat.com>
36657
36658         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
36659         to the assembler.
36660
36661 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
36662
36663         PR libgomp/64625
36664         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
36665         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
36666         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
36667         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
36668         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
36669         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
36670         (BUILT_IN_GOACC_PARALLEL): Specify as
36671         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
36672         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
36673         * builtin-types.def
36674         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36675         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36676         Remove function types.
36677         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
36678         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36679         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36680         New function types.
36681
36682 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
36683
36684         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
36685
36686 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
36687
36688         PR tree-optimization/65170
36689         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
36690         if val[1] < 0, clear also val[2] and return 3.
36691
36692 2015-02-24  Alan Modra  <amodra@gmail.com>
36693
36694         PR target/65172
36695         * config/rs6000/rs6000.c (get_memref_parts): Only return true
36696         when *base is a reg.  Handle nested plus addresses.  Simplify
36697         pre_modify test.
36698
36699 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
36700
36701         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
36702         use natural alignment when optimizing for size.
36703
36704 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
36705
36706         PR target/65153
36707         * config/sh/sh.md (movsicc_true+3): Remove peephole.
36708         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
36709         * config/sh/sh.c (replace_n_hard_rtx): Remove.
36710
36711 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
36712
36713         PR fortran/63427
36714         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
36715         too big for a wide_int.  Implement missing wrapping operation.
36716
36717 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
36718
36719         PR target/65163
36720         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
36721         instead of const_int 4294901760.
36722
36723 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
36724
36725         * config/avr/t-avr: Fix typo in comment.
36726
36727 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
36728
36729         * doc/rtl.texi (fma): Clarify documentation.
36730
36731 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
36732
36733         PR debug/58123
36734         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
36735         over input_location.
36736
36737 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36738
36739         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
36740         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
36741         restrict alignments to absolute_biggest_alignment.
36742         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
36743         Define.
36744         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
36745         * doc/tm.texi: Regenerate.
36746         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
36747
36748 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
36749
36750         PR target/64172
36751         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
36752
36753 2015-02-20  Richard Biener  <rguenther@suse.de>
36754
36755         PR tree-optimization/65136
36756         * tree-ssa-propagate.c: Include cfgloop.h.
36757         (replace_phi_args_in): Avoid replacing loop latch edge PHI
36758         arguments with constants.
36759
36760 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
36761             Martin Liska  <mliska@suse.cz>
36762
36763         PR target/63892
36764         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
36765         don't try to create_thunk if stdarg_p.  If
36766         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
36767         redirect_callers if possible.
36768         (sem_item_optimizer::execute): Call unregister_hooks here...
36769         (ipa_icf_driver): ... instead of here.
36770
36771 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36772
36773         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
36774         Mark operand 0 as earlyclobber in 2nd alternative.
36775         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
36776         Write negated shift amount into QI lowpart operand 0 and use it
36777         in the shift step.
36778         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
36779
36780 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36781
36782         * cgraph.h (clone_function_name_1): Declare.
36783         * cgraphclones.c (clone_function_name_1): New function.
36784         (clone_function_name): Use it.
36785         * lto-partition.c: Include "stringpool.h".
36786         (must_not_rename, maybe_rewrite_identifier)
36787         (validize_symbol_for_target): New static functions.
36788         (privatize_symbol_name): Use must_not_rename.
36789         (promote_symbol): Call validize_symbol_for_target.
36790         (lto_promote_cross_file_statics): Likewise.
36791         (lto_promote_statics_nonwpa): Likewise.
36792
36793 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
36794
36795         PR target/64452
36796         * config/avr/avr.md (pushhi_insn): New insn.
36797         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
36798
36799 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36800             Jakub Jelinek  <jakub@redhat.com>
36801
36802         * tree-streamer.c (preload_common_nodes): Don't preload
36803         TI_VA_LIST* for offloading.
36804         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
36805         in_lto_p.
36806
36807 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
36808
36809         * config/pa/pa.c (pa_emit_move_sequence): Always force
36810         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
36811         note on insn.
36812
36813         * config/pa/pa.c (pa_reloc_rw_mask): New function.
36814         (TARGET_ASM_RELOC_RW_MASK): Define.
36815         (pa_cannot_force_const_mem): Revert previous change.
36816
36817 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
36818             Jan Hubicka  <hubicka@ucw.cz>
36819
36820         PR ipa/65028
36821         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
36822         across jump functions.
36823
36824 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
36825
36826         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
36827
36828 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
36829
36830         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
36831
36832 2015-02-19  Richard Henderson  <rth@redhat.com>
36833
36834         PR middle-end/65074
36835         * varasm.c (default_binds_local_p_2): Don't test node->definition;
36836         test DECL_EXTERNAL independent of symtab_node.
36837
36838 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
36839
36840         PR lto/65012
36841         * varpool.c (varpool_node::get_constructor): Return early
36842         if this->lto_file_data is NULL.
36843
36844 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36845
36846         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
36847         (rank_for_schedule_debug): Update.
36848         (ready_sort): Make static.  Move sorting logic to ...
36849         (ready_sort_debug, ready_sort_real): New static functions.
36850         (schedule_block): Sort both debug insns and real insns in preparation
36851         for ready list trimming.  Improve debug output.
36852         * sched-int.h (ready_sort): Remove global declaration.
36853
36854 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
36855
36856         * ipa-icf.c (sem_function::equals_private): Adjust.
36857         (sem_function::bb_dict_test): Take a vec<int> * instead of
36858         auto_vec<int>.
36859         * ipa-icf.h (bb_dict_test): Likewise.
36860
36861 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36862
36863         PR gcov-profile/64634
36864         * tree-eh.c (frob_into_branch_around): Fix up typos
36865         in function comment.
36866         (lower_catch): Put eh_seq resulting from EH lowering of
36867         the cleanup sequence after the cleanup rather than before it.
36868
36869 2015-02-18  Tom de Vries  <tom@codesourcery.com>
36870
36871         * common.opt (fstdarg-opt): New option.
36872         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
36873         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
36874         (@item -fstdarg-opt): New item.
36875
36876 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
36877
36878         PR target/65064
36879         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
36880         for common symbols.
36881
36882 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36883
36884         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
36885         insn-modes.h.
36886         (ALL_HOST_OBJS): Add mkoffload.o.
36887         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
36888
36889 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
36890
36891         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
36892         (compare_virtual_tables): Be smarter about skipping typeinfos;
36893         do sane output on virtual table table mismatch.
36894         (warn_odr): Be ready for forward declarations of enums;
36895         output sane info on base mismatch and virtual table mismatch.
36896         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
36897         when only one type is polymorphic.
36898         (get_odr_type): Fix hashtable corruption.
36899         (dump_odr_type): Dump mangled names.
36900
36901 2015-02-18  Richard Biener  <rguenther@suse.de>
36902
36903         PR tree-optimization/65063
36904         * tree-predcom.c (determine_unroll_factor): Return 1 if we
36905         have replaced looparound PHIs.
36906
36907 2015-02-18  Martin Liska  <mliska@suse.cz>
36908
36909         * lto-streamer.c (lto_streamer_init): Encapsulate
36910         streamer_check_handled_ts_structures with checking macro.
36911
36912 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36913
36914         PR ipa/65087
36915         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
36916         section if !implicit_section.
36917         (cgraph_node::create_version_clone_with_body): Likewise.
36918         * trans-mem.c (ipa_tm_create_version): Likewise.
36919
36920 2015-02-18  Richard Biener  <rguenther@suse.de>
36921
36922         PR tree-optimization/62217
36923         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
36924         into BIVs.
36925
36926 2015-02-18  Marek Polacek  <polacek@redhat.com>
36927
36928         PR sanitizer/65081
36929         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
36930         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
36931         is in range [-16K, -1].  Don't issue run-time error if
36932         (ptr > ptr + offset).
36933
36934 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
36935
36936         * doc/install.texi (nvptx-*-none): New section.
36937         * doc/invoke.texi (Nvidia PTX Options): Likewise.
36938         * config/nvptx/nvptx.opt: Update.
36939
36940         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
36941         (access_check): New functions, copied from
36942         config/i386/intelmic-mkoffload.c.
36943         (main): For non-installed testing, look in all COMPILER_PATHs for
36944         GCC_INSTALL_NAME.
36945
36946         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
36947
36948 2015-02-18  Andrew Pinski  <apinski@cavium.com>
36949             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
36950
36951         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
36952         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
36953
36954 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36955
36956         * ipa-visibility.c (function_and_variable_visibility): Only
36957         check locality if node is not already local.
36958         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36959         call_for_symbol_and_aliases instead of
36960         call_for_symbol_thunks_and_aliases.
36961         (ipa_inline): Likewise.
36962         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36963         first walk aliases.
36964         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36965         call_for_symbol_and_aliases.
36966         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36967         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36968         (ipa_propagate_frequency): Update.
36969         (ipa_profile): Add opt_for_fn gueards.
36970
36971 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36972
36973         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
36974         * doc/invoke.texi (SH options): Document it.
36975         * config/sh/sh.c (sh_insn_length_adjustment): Check
36976         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
36977
36978 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
36979
36980         * common.opt (fipa-cp-alignment): New.
36981         * ipa-cp.c (ipcp_store_alignment_results): Check
36982         flag_ipa_cp_alignment.
36983         * opts.c (default_options_table): Enable -fipa-cp-alignment for
36984         -O2.
36985         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
36986         * doc/invoke.texi: Document -fipa-cp-alignment.
36987
36988 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36989
36990         PR target/64793
36991         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
36992         to nil.  Adjust comments.
36993
36994 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36995
36996         * ipa-visibility.c (function_and_variable_visibility): Only
36997         check locality if node is not already local.
36998         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36999         call_for_symbol_and_aliases instead of
37000         call_for_symbol_thunks_and_aliases.
37001         (ipa_inline): Likewise.
37002         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
37003         first walk aliases.
37004         * ipa.c (symbol_table::remove_unreachable_nodes): Use
37005         call_for_symbol_and_aliases.
37006         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
37007         (ipa_propagate_frequency_1): Use it; use opt_for_fn
37008         (ipa_propagate_frequency): Update.
37009         (ipa_profile): Add opt_for_fn guards.
37010
37011 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
37012
37013         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
37014         skipping of "strange" tokens.
37015
37016 2015-02-17  Jeff Law  <law@redhat.com>
37017
37018         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
37019         obsolete comment.
37020
37021 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
37022
37023         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
37024         as forcing a HARD_DEP between instructions, thereby
37025         disallowing rewriting to break dependencies.
37026
37027 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
37028
37029         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
37030         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
37031         variables in boundary that have no inlitalizer encoded and are
37032         not aliases.
37033         * varasm.c (default_binds_local_p_2): External definitions do not
37034         count as definitions here.
37035
37036 2015-02-16  Jeff Law  <law@redhat.com>
37037
37038         PR tree-optimization/64823
37039         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
37040         statements.
37041         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
37042         threading through blocks with PHIs, but no statements.
37043         (thread_through_normal_block): Distinguish between blocks where
37044         we did not process all the statements and blocks with no statements.
37045
37046 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
37047             James Greenhalgh  <james.greenhalgh@arm.com>
37048
37049         PR ipa/64963
37050         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
37051         section if not linkonce.  Fix up formatting.
37052         (cgraph_node::create_version_clone_with_body): Copy section.
37053         * trans-mem.c (ipa_tm_create_version): Likewise.
37054
37055 2015-02-16  Richard Biener  <rguenther@suse.de>
37056
37057         PR tree-optimization/65077
37058         * tree-ssa-structalias.c (get_constraint_for_1): Handle
37059         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
37060         (find_func_aliases): Allow float values to carry pointers again.
37061
37062 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
37063
37064         * doc/install.texi (Specific): Reorder targets list to put
37065         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
37066         from the top menu.
37067
37068 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
37069             David Edelsohn  <dje.gcc@gmail.com>
37070
37071         PR target/65058
37072         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
37073         mapping class to external variable or function reference.
37074         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
37075         mapping class.
37076
37077 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
37078
37079         PR target/53348
37080         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
37081         ASM_WEAKEN_DECL if defined.
37082
37083 2015-02-16  Richard Biener  <rguenther@suse.de>
37084
37085         PR lto/65015
37086         * varasm.c (default_file_start): For LTO produced units
37087         emit <artificial> as file directive.
37088
37089 2015-02-16  Richard Biener  <rguenther@suse.de>
37090
37091         PR tree-optimization/63593
37092         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
37093         stmts and releasing SSA names until...
37094         (execute_pred_commoning): ... after processing all chains.
37095
37096 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
37097
37098         PR ipa/65059
37099         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
37100         external functions.
37101
37102 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
37103
37104         * doc/bugreport.texi: Adjust section titles throughout the file
37105         to use "Title Case".
37106         * doc/extend.texi: Likewise.
37107         * doc/gcov.texi: Likewise.
37108         * doc/implement-c.texi: Likewise.
37109         * doc/implement-cxx.texi: Likewise.
37110         * doc/invoke.texi: Likewise.
37111         * doc/objc.texi: Likewise.
37112         * doc/standards.texi: Likewise.
37113         * doc/trouble.texi: Likewise.
37114
37115 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
37116
37117         * cgraph.h (symtab_node::has_aliases_p): Simplify.
37118         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
37119         * tree.c (lookup_binfo_at_offset): Make static.
37120         (get_binfo_at_offset): Do not shadow offset; add explanatory
37121         comment.
37122
37123 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
37124
37125         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
37126         for all floading point loads and stores except those using a register
37127         index address.
37128         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
37129         to a register.
37130
37131 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
37132
37133         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
37134         (do_estimate_growth_1): Record if any uninlinable edge was seen.
37135         (estimate_growth): Handle uninlinable edges correctly.
37136         (check_callers): New.
37137         (growth_likely_positive): Handle aliases correctly.
37138
37139 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
37140
37141         * ipa-chkp.c: Use iterate_direct_aliases.
37142         * symtab.c (resolution_used_from_other_file_p): Move inline.
37143         (symtab_node::create_reference): Fix formating.
37144         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
37145         (symtab_node::iterate_reference): Move inline.
37146         (symtab_node::iterate_referring): Move inline.
37147         (symtab_node::iterate_direct_aliases): Move inline.
37148         (symtab_node::used_from_object_file_p_worker): Inline into ...
37149         (symtab_node::used_from_object_file_p): ... this one; move inline.
37150         (symtab_node::call_for_symbol_and_aliases): Move inline;
37151         use iterate_direct_aliases.
37152         (symtab_node::call_for_symbol_and_aliases_1): New method.
37153         (cgraph_node::call_for_symbol_and_aliases): Move inline;
37154         use iterate_direct_aliases.
37155         (cgraph_node::call_for_symbol_and_aliases_1): New method.
37156         (varpool_node::call_for_node_and_aliases): Rename to ...
37157         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
37158         use iterate_direct_aliases.
37159         (varpool_node::call_for_symbol_and_aliases_1): New method.
37160         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
37161         (ipa_discover_readonly_nonaddressable_var): Update.
37162         * ipa-devirt.c: Fix formating.
37163         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
37164         Move inline.
37165         (cgraph_node::call_for_symbol_and_aliases): Move inline.
37166         (cgraph_node::call_for_symbol_and_aliases_1): New function..
37167         * cgraph.h (used_from_object_file_p_worker): Remove.
37168         (resolution_used_from_other_file_p): Move inline.
37169         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
37170         (symtab_node::iterate_reference): Move inline.
37171         (symtab_node::iterate_referring): Move inline.
37172         (symtab_node::iterate_direct_aliases): Move inline.
37173         (symtab_node::used_from_object_file_p_worker): Inline into ...
37174         (symtab_node::used_from_object_file_p): Move inline.
37175         * tree-emutls.c (ipa_lower_emutls): Update.
37176         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
37177         (varpool_node::call_for_node_and_aliases): Remove.
37178
37179 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
37180
37181         PR tree-optimization/62209
37182         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
37183         op == range->exp, insert seq and gimplified code after labels
37184         instead of after the phi.
37185
37186 2015-02-13  Jeff Law  <law@redhat.com>
37187
37188         PR bootstrap/65060
37189         Revert my change for tree-optimization/64823.
37190
37191 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
37192
37193         PR tree-optimization/65053
37194         * tree-ssa-phiopt.c (value_replacement): When moving assign before
37195         cond, either reset VR on lhs or set it to phi result VR.
37196
37197 2015-02-13  Jeff Law  <law@redhat.com>
37198
37199         PR tree-optimization/64823
37200         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
37201         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
37202         threading through blocks with PHIs, but no statements.
37203         (thread_through_normal_block): Distinguish between blocks where
37204         we did not process all the statements and blocks with no statements.
37205
37206         PR rtl-optimization/47477
37207         * match.pd (convert (plus/minus (convert @0) (convert @1): New
37208         simplifier to narrow arithmetic.
37209
37210 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
37211
37212         PR ipa/65028
37213         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
37214         polymorphic call info when type is not known to be preserved.
37215
37216 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
37217
37218         PR ipa/65028
37219         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
37220         (inline_call): Use it.
37221
37222 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
37223
37224         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
37225         GOMP_DEVICE_NVIDIA_PTX.
37226
37227 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
37228
37229         PR ipa/65034
37230         * stmt.c (emit_case_nodes): Use void_type_node instead of
37231         NULL_TREE as LABEL_DECL type.
37232
37233 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
37234
37235         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
37236         constraints.
37237         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
37238         symbolic references to data to be forced to constant memory on the
37239         SOM target.
37240
37241 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
37242
37243         PR tree-optimization/65002
37244         * tree-cfg.c (pass_data_fixup_cfg): Don't update
37245         SSA on start.
37246         * tree-sra.c (some_callers_have_no_vuse_p): New.
37247         (ipa_early_sra): Reject functions whose callers
37248         assume function is read only.
37249
37250 2015-02-13  Richard Biener  <rguenther@suse.de>
37251
37252         PR lto/65015
37253         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
37254         for LTO produced CUs.
37255
37256 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
37257
37258         PR tree-optimization/64705
37259         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
37260         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
37261         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
37262         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
37263         expand_simple_operations.
37264
37265 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
37266             Richard Henderson  <rth@redhat.com>
37267
37268         PR rtl/32219
37269         * cgraphunit.c (cgraph_node::finalize_function): Set definition
37270         before notice_global_symbol.
37271         (varpool_node::finalize_decl): Likewise.
37272         * varasm.c (default_binds_local_p_2): Rename from
37273         default_binds_local_p_1, add weak_dominate argument.  Use direct
37274         returns instead of assigning to local variable.  Unify varpool and
37275         cgraph paths via symtab_node.  Reject undef weak variables before
37276         testing visibility.  Reorder tests for simplicity.
37277         (default_binds_local_p): Use default_binds_local_p_2.
37278         (default_binds_local_p_1): Likewise.
37279         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
37280         via symtab_node.
37281         (default_elf_asm_output_external): Emit visibility when specified.
37282
37283 2015-02-13  Alan Modra  <amodra@gmail.com>
37284
37285         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
37286         code setting up r11 for out-of-line fp restore.
37287
37288 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
37289
37290         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
37291         (muser-mode): Likewise.
37292
37293 2015-02-13  Alan Modra  <amodra@gmail.com>
37294
37295         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
37296         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
37297
37298 2015-02-12  David Howells  <dhowells@redhat.com>
37299
37300         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
37301         warning.
37302         * tree-ssa-uninit.c (dump_predicates): Likewise.
37303         * opts.c (print_filtered_help): Likewise.
37304
37305 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
37306
37307         * dwarf2out.c (output_die): Use "%s", name instead of name to
37308         avoid -Wformat-security warning.
37309
37310         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
37311         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
37312         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
37313         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
37314
37315 2015-02-12  Jason Merrill  <jason@redhat.com>
37316
37317         * common.opt (-flifetime-dse): New.
37318
37319 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
37320
37321         PR sanitizer/65019
37322         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
37323
37324         PR tree-optimization/65014
37325         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
37326         use original second operand of arg0 or arg1 instead of
37327         that adjusted by STRIP_NOPS.
37328
37329 2015-02-11  Jeff Law  <law@redhat.com>
37330
37331         PR target/63347
37332         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
37333         that needs to be queued, just queue it for a single cycle.
37334
37335 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
37336
37337         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
37338         bodies of thunks; comment on why.
37339         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
37340         symbols are extern.
37341
37342 2015-02-11  Richard Henderson  <rth@redhat.com>
37343
37344         PR sanitize/65000
37345         * tree-eh.c (mark_reachable_handlers): Mark source and destination
37346         regions of __builtin_eh_copy_values.
37347
37348 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
37349
37350         PR middle-end/65003
37351         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
37352         ultimate alias is MEM with SYMBOL_REF satisfying
37353         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
37354         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
37355
37356 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
37357
37358         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
37359         "diagnostic-core.h".
37360         (main): Initialize progname, and call diagnostic_initialize.
37361
37362         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
37363         instead of __OPENMP_TARGET__.
37364
37365         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
37366         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
37367         hard-coding PTX_ID.
37368
37369 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
37370
37371         * doc/sourcebuild.texi (pie_enabled): Document.
37372
37373 2015-02-11  Martin Liska  <mliska@suse.cz>
37374
37375         PR ipa/64813
37376         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
37377         a return value for call to a function that is noreturn.
37378
37379 2015-02-11  Richard Biener  <rguenther@suse.de>
37380
37381         PR lto/65015
37382         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
37383         and -fresolution.
37384
37385 2015-02-11  Andrew Pinski  <apinski@cavium.com>
37386
37387         PR target/64893
37388         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
37389         Change the first argument type to size_type_node and add another
37390         size_type_node.
37391         (aarch64_simd_expand_builtin): Handle the new argument to
37392         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
37393         print an out when the first two arguments are not
37394         nonzero integer constants.
37395         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
37396         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
37397
37398 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
37399
37400         PR target/61925
37401         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
37402         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
37403         (ix86_set_current_function): Rewritten.
37404         (ix86_add_new_builtins): Temporarily clear current_target_pragma
37405         when creating builtin fndecls.
37406
37407 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37408
37409         PR ipa/65005
37410         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
37411         function.
37412         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
37413         have no comdat group.
37414         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
37415         (lto_output_varpool_node): Always output alias info.
37416         (output_refs): Output refs of boundary aliases, too.
37417         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
37418         (output_symtab): Output call eges in thunks in boundary.
37419         (get_alias_symbol): Remove.
37420         (input_node, input_varpool_node): Do not special case weakrefs.
37421         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
37422         alias and thunks targets in the boundary; do not take removed symbols
37423         from their comdat groups.
37424         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
37425         (cgraph_node::global_info): Remove.
37426         (cgraph_node::rtl_info): Look through aliases and thunks.
37427         * cgrpah.h (global_info): Remove.
37428         (non_local_p): Remove.
37429
37430 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37431             Sandra Loosemore  <sandra@codesourcery.com>
37432
37433         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
37434         to inline asm.  List dialects in proper order.
37435
37436 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37437             Sandra Loosemore  <sandra@codesourcery.com>
37438
37439         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
37440
37441 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37442
37443         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
37444         modified) reference to Solaris.
37445
37446 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
37447
37448         * doc/extend.texi (Extended Asm): Fix typos.
37449
37450 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
37451
37452         PR sanitizer/65004
37453         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
37454
37455 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
37456
37457         PR target/64661
37458         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
37459         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
37460         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
37461         * config/sh/constraints.md (Ara, Add): New constraints.
37462         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
37463         predicates.
37464         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
37465         atomic_mem_operand_0.  Don't use force_reg on the memory address.
37466         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
37467         Sra constraint.  Convert to insn_and_split.  Add workaround for
37468         PR 64974.
37469         (atomic_compare_and_swap<mode>_hard): Copy to
37470         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
37471         Use atomic_mem_operand_0 predicate.
37472         (atomic_compare_and_swap<mode>_soft_gusa,
37473         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
37474         AraAdd constraints.
37475         (atomic_compare_and_swap<mode>_soft_tcb,
37476         atomic_compare_and_swap<mode>_soft_imask,
37477         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
37478         atomic_mem_operand_0 predicate and SraSdd constraints.
37479         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
37480         constraint.
37481         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
37482         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
37483         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
37484         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
37485         force_reg on the memory address.
37486         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
37487         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
37488         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
37489         atomic_mem_operand_1 predicate and Sra constraint.
37490         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
37491         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
37492         Use atomic_mem_operand_1 predicate.
37493         (atomic_<fetchop_name><mode>_hard): Copy to
37494         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
37495         Use atomic_mem_operand_1 predicate.
37496         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
37497         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37498         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
37499         insn_and_split.  Use atomic_mem_operand_1 predicate.
37500         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
37501         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
37502         Use atomic_mem_operand_1 predicate.
37503         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
37504         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37505         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
37506         in generated insn with original mem operand before emitting the insn.
37507         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
37508         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
37509         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
37510         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
37511         Use atomic_mem_operand_1 predicate and AraAdd constraints.
37512         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
37513         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
37514         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
37515         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
37516         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
37517         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
37518         atomic_not_fetch<mode>_soft_tcb,
37519         atomic_<fetchop_name>_fetch<mode>_soft_imask,
37520         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
37521         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
37522         Use atomic_mem_operand_1 predicate and SraSdd constraints.
37523
37524 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
37525
37526         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
37527         and 3 earlyclobber operands.
37528
37529 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37530
37531         * common.opt (fstack-reuse): Mark as optimization.
37532
37533 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37534
37535         PR ipa/64982
37536         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
37537
37538 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
37539
37540         PR tree-optimization/64326
37541         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
37542
37543 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
37544
37545         PR gcov-profile/61889
37546         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
37547
37548 2015-02-10  Richard Biener  <rguenther@suse.de>
37549
37550         PR tree-optimization/64995
37551         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
37552         value we use is final.
37553         (visit_reference_op_store): Always valueize op.
37554         (visit_use): Properly valueize vuses.
37555
37556 2015-02-10  Richard Biener  <rguenther@suse.de>
37557
37558         PR tree-optimization/64909
37559         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
37560         pass a scalar-stmt count estimate to the cost model.
37561         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
37562
37563 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
37564
37565         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
37566         enabled by default together with var-tracking.
37567
37568 2015-02-10  Nick Clifton  <nickc@redhat.com>
37569
37570         * config/rl78/rl78.c: Remove DIV attribute code accidentally
37571         included in previous rl78 commit.
37572
37573 2015-02-10  Richard Biener  <rguenther@suse.de>
37574
37575         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
37576         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
37577         return the bitpack.
37578
37579 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37580
37581         PR gcov-profile/61889
37582         * config.in: regenerate.
37583         * configure.in: Likewise.
37584         * configure.ac: Check for ftw.h.
37585         * gcov-tool.c: Check for ftw.h before using nftw.
37586
37587 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37588
37589         PR lto/64076
37590         * ipa-visibility.c (update_visibility_by_resolution_info): Only
37591         assert when not in lto mode.
37592
37593 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
37594
37595         * ira-color.c (setup_left_conflict_sizes_p): Simplify
37596         initialization/assignment of conflict_size.
37597
37598 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
37599
37600         PR ipa/64978
37601         * ipa-cp.c (gather_caller_stats): Skip thunks.
37602         (propagate_constants_topo): Skip aliases.
37603
37604 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
37605
37606         PR target/64761
37607         * config/sh/sh.c (sh_option_override): Don't change
37608         -freorder-blocks-and-partition to -freorder-blocks even when
37609         unwinding is enabled.
37610         (sh_can_follow_jump): Return false if the followee jump is
37611         a crossing jump when -freorder-blocks-and-partition is specified.
37612         * config/sh/sh.md (*jump_compact_crossing): New insn.
37613
37614 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
37615             Kaz Kojima  <kkojima@gcc.gnu.org>
37616
37617         PR target/64761
37618         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
37619         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
37620         (sh_can_redirect_branch): Rename to ...
37621         (sh_can_follow_jump): ... this.  Constify argument types.
37622         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
37623         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
37624         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
37625         * doc/tm.texi: Regenerate.
37626
37627 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37628
37629         PR sanitizer/64981
37630         * builtins.c (expand_builtin): Call targetm.expand_builtin
37631         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
37632
37633 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37634
37635         PR ipa/61548
37636         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
37637
37638 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37639
37640         PR ipa/63566
37641         * ipa-icf.c (set_local): New function.
37642         (sem_function::merge): Use it.
37643
37644 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37645
37646         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
37647         (add_type_duplicate): Fix comparison of BINFOs.
37648
37649 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37650
37651         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
37652         on getting VOID pointer.
37653
37654 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37655
37656         PR target/64979
37657         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
37658         va_list escapes.
37659
37660 2015-02-09  Richard Biener  <rguenther@suse.de>
37661
37662         * genmatch.c (replace_id): Copy expr_type.
37663
37664 2015-02-09  Richard Biener  <rguenther@suse.de>
37665
37666         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
37667         (streamer_write_tree_bitfields): Declare.
37668         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
37669         properly unpack padding.
37670         (unpack_value_fields): Inline ...
37671         (streamer_read_tree_bitfields): ... here.
37672         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
37673         and properly add padding bits.
37674         (streamer_pack_tree_bitfields): Fold into ...
37675         (streamer_write_tree_bitfields): ... this new function,
37676         exposing the bitpack object.
37677         * lto-streamer-out.c (lto_write_tree_1): Call
37678         streamer_write_tree_bitfields.
37679
37680 2015-02-09  Richard Biener  <rguenther@suse.de>
37681
37682         PR tree-optimization/54000
37683         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
37684         (struct ivopts_data): Add loop_loc member.
37685         (tree_ssa_iv_optimize_loop): Dump loop location.
37686         (create_new_ivs): Likewise, also dump number of IVs generated.
37687
37688 2015-02-09  Martin Liska  <mliska@suse.cz>
37689
37690         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
37691         just if not yet registered.
37692         (ipa_icf_generate_summary): Register callgraph hooks.
37693
37694 2015-02-08  Andrew Pinski  <apinski@cavium.com>
37695
37696         * config/aarch64/aarch64.c (gty_dummy): Delete.
37697
37698 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37699
37700         PR ipa/63566
37701         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
37702         (cgraph_node::local_p): Remove thunk related FIXME.
37703
37704 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37705
37706         PR ipa/63566
37707         * i386.c (ix86_function_regparm): Look through aliases to see if callee
37708         is local and optimized.
37709         (ix86_function_sseregparm): Likewise; also use target's SSE math
37710         settings; error out instead of silently generating wrong code
37711         on mismatches.
37712         (init_cumulative_args): Look through aliases.
37713
37714 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37715
37716         PR ipa/63566
37717         * ipa-split.c (execute_split_functions): Split if function has aliases.
37718
37719 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37720
37721         PR ipa/63566
37722         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
37723         aliases before trying to expand it.
37724         (cgraph_node::expand_thunk): Fix formating.
37725
37726 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
37727
37728         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
37729         (Using Assembly Language with C): Expand introduction.
37730         (Basic Asm): Copy-edit.  Add more information about uses of
37731         basic asm.
37732         (Extended Asm): Copy-edit.  Document new escape syntax and
37733         %l[label] syntax.
37734         (Global Reg Vars): Copy-edit.
37735         (Local Reg Vars): Likewise.
37736
37737 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
37738
37739         PR debug/2714
37740         PR bootstrap/64256
37741         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
37742         (DBX_CONTIN_CHAR): Define.
37743
37744 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
37745             Brian Rzycki  <b.rzycki@samsung.com>
37746
37747         PR tree-optimization/64878
37748         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
37749         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
37750         Stop recursion at loop phi nodes after having visited a loop phi node.
37751
37752 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37753
37754         * toplev.c (process_options): Change flag_ipa_ra before creating
37755         optimization_{default,current}_node.
37756
37757         PR ipa/64896
37758         * cgraphunit.c (cgraph_node::expand_thunk): If
37759         restype is not is_gimple_reg_type nor the thunk_fndecl
37760         returns aggregate_value_p, set restmp to a temporary variable
37761         instead of resdecl.
37762
37763 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
37764
37765         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
37766
37767 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37768
37769         PR target/64205
37770         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
37771         add a general secondary reload handler for SDmode, unless we have
37772         both read/write support for SDmode.
37773
37774 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37775
37776         PR middle-end/64937
37777         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
37778         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
37779         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
37780         1 before, push it to abstract_vec.
37781         (dwarf2out_abstract_function): Adjust caller.  Don't call
37782         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
37783         DECL_ABSTRACT_P flags for all abstract_vec elts.
37784
37785 2015-02-06  Renlin Li  <renlin.li@arm.com>
37786
37787         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
37788         complex gimple.
37789         * tree-ssa.c (execute_update_addresses_taken): Likewise.
37790
37791 2015-02-06  Jeff Law  <law@redhat.com>
37792
37793         PR target/64889
37794         * config/h8300/h8300.c (push): New argument "in_prologue".
37795         Pass "in_prologue" along to "F".
37796         (h8300_push_pop): Corresponding changes.
37797         (h8300_expand_prologue): Likewise.
37798         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
37799
37800 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37801
37802         PR rtl-optimization/64957
37803         PR debug/64817
37804         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
37805         IOR rather than for AND.
37806
37807 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
37808
37809         PR target/62631
37810         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
37811         of shift-add and (add + shift) operations.  Rename local variable.
37812
37813 2015-02-05  Jeff Law  <law@redhat.com>
37814
37815         PR target/17306
37816         * config/h8300/constraints.md (U): Correctly dectect
37817         "eightbit_data" memory addresses.
37818         * config/h8300/h8300.c (eightbit_constant_address_p): Also
37819         handle (const (plus (symbol_ref (x)))) where x is declared
37820         as an 8-bit data memory address.
37821         * config/h8300/h8300.md (call, call_value): Correctly detect
37822         "funcvec" functions.
37823
37824         PR target/43264
37825         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
37826         24 to 28 bits for the H8/300.
37827
37828 2015-02-06  Alan Modra  <amodra@gmail.com>
37829
37830         PR target/64876
37831         * config/rs6000/rs6000.c (chain_already_loaded): New function.
37832         (rs6000_call_aix): Use it.
37833
37834 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
37835
37836         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
37837         check.
37838
37839 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
37840
37841         * config/h8300/constraints.md ("U" constraint): Use strict
37842         variant of REG_OK_FOR_BASE_P after reload has started.
37843
37844 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
37845
37846         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
37847         define to zero if !TARGET_NEON.
37848         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
37849
37850 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37851             Trevor Saunders  <tsaunders@mozilla.com>
37852
37853         PR ipa/61548
37854         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
37855
37856 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37857
37858         PR ipa/61548
37859         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
37860         when removing varpool nodes.
37861
37862 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37863
37864         PR ipa/61548
37865         * varpool.c (varpool_node::remove): Fix order of variables.
37866
37867 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37868
37869         PR ipa/64686
37870         * ipa-inline.c (inline_small_functions): Fix ordering issue between
37871         speculation resolution and key updates.
37872
37873 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37874
37875         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
37876         about not letting any speculative edges unupdated.
37877
37878 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37879
37880         PR gcov/64123
37881         * gcov-io.c (gcov_var): Export.
37882
37883 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37884
37885         PR middle-end/64922
37886         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
37887         edges that become speculative.
37888
37889 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37890
37891         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
37892         or DW_LANG_Fortran08.
37893         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
37894         DW_LANG_Fortran08.
37895         (gen_compile_unit_die): Handle "GNU Fortran2003" and
37896         "GNU Fortran2008" language strings.
37897         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
37898         * langhooks.h (lang_GNU_Fortran): New prototype.
37899         * langhooks.c (lang_GNU_Fortran): New function.
37900         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
37901         lang_GNU_Fortran.
37902
37903 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37904
37905         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
37906         (RTX_OK_FOR_OLO10_P): Likewise.
37907
37908 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37909
37910         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
37911
37912 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37913
37914         PR middle-end/64922
37915         * gimple.c: Include gimple-ssa.h.
37916         (maybe_remove_unused_call_args): New function.
37917         * gimple.h (maybe_remove_unused_call_args): Declare.
37918         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
37919         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
37920         * gimple-fold.c (gimple_fold_call): Likewise.
37921
37922 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
37923
37924         PR rtl-optimization/64905
37925         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
37926         pointer alignment if it isn't needed.
37927
37928 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37929
37930         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
37931         cortex-a72.cortex-a53.
37932         * config/aarch64/aarch64-tune.md: Regenerate.
37933         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
37934
37935 2015-02-04  Nick Clifton  <nickc@redhat.com>
37936
37937         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
37938         inside a MEM.
37939
37940 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37941
37942         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
37943         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
37944         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
37945         of DEF_BUILTIN.
37946         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
37947         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
37948         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
37949         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
37950         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
37951         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
37952         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
37953         * tree-core.h (enum built_in_function): In between
37954         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
37955         for builtins that use DEF_BUILTIN_CHKP macro.
37956
37957 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
37958
37959         PR debug/64817
37960         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
37961         operands for tcc_comparison exprs.  Fix typos.
37962
37963         PR debug/64817
37964         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
37965         of two XORs that have an intervening AND or IOR.
37966
37967         PR debug/64817
37968         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
37969         simplification of XOR of AND to not allocate new rtx before
37970         committing to a simplification.
37971
37972 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37973
37974         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
37975         manual swaps in all peepholes.
37976
37977 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37978
37979         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
37980         of manual swapping implementation.
37981         (aarch64_expand_vec_perm_const_1): Likewise.
37982
37983 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
37984
37985         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
37986         (generic_addrcost_table): Remove NAMED_PARAM.
37987         (cortexa57_addrcost_table): Likewise.
37988         (xgene1_addrcost_table): Likewise.
37989         (generic_regmove_table): Likewise.
37990         (cortexa53_regmove_table): Likewise.
37991         (xgene1_regmove_table): Likewise.
37992         (generic_vector_table): Likewise.
37993         (cortexa57_vector_table): Likewise.
37994         (xgene1_vector_table): Likewise.
37995         (generic_tunings): Likewise.
37996         (cortexa53_tunings): Likewise.
37997         (cortexa57_tunings): Likewise.
37998         (xgene1_tunings): Likewise.
37999
38000 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
38001
38002         * config/arm/arm-cores.def: Add cortex-a72 and
38003         cortex-a72.cortex-a53.
38004         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
38005         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
38006         * config/arm/arm-tune.md: Regenerate.
38007         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
38008         "cortex-a72.cortex-a53".
38009         * doc/invoke.texi (ARM Options/-mtune): Likewise.
38010
38011 2015-02-04  Nick Clifton  <nickc@redhat.com>
38012
38013         PR target/64408
38014         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
38015         of accepted codes.
38016         (nonimmediate_di_operand): Likewise.
38017
38018         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
38019         prefixes of known F5 using MSP430 MCUs.
38020
38021 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38022
38023         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
38024         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
38025         instead of __builtin_sqrt.
38026
38027 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
38028
38029         * varasm.c (do_assemble_alias): Follow transparent alias
38030         chain for target.
38031         (default_assemble_visibility): Follow transparent alias
38032         chain for decl name.
38033
38034 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38035
38036         PR middle-end/62103
38037         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
38038         to compute size of referenced value in the constant case.
38039
38040 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
38041
38042         PR rtl-optimization/64756
38043         * cse.c (invalidate_dest): New function.
38044         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
38045         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
38046         invalidate and do not record it.
38047
38048 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
38049
38050         PR target/64660
38051         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
38052         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
38053         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
38054         atomic_nand<mode>_soft_tcb): New insns.
38055         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
38056         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
38057         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
38058         Split into atomic_not_fetchsi_hard if operands[0] is unused.
38059         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
38060         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
38061         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
38062         atomic_not<mode>_hard if operands[0] is unused.
38063         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
38064         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
38065         if operands[0] is unused.
38066         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
38067         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
38068         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
38069         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
38070         unused.
38071         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
38072         into atomic_not<mode>_soft_tcb if operands[0] is unused.
38073         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
38074         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
38075         if operands[0] is unused.
38076         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
38077         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
38078         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
38079         atomic_nand_fetchsi_hard if operands[0] is unused.
38080         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
38081         atomic_nand<mode>_hard if operands[0] is unused.
38082         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
38083         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
38084         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
38085         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
38086         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
38087         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
38088         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
38089         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
38090         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
38091         atomic_not<mode>_hard if operands[0] is unused.
38092         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
38093         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
38094         unused.
38095         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
38096         into atomic_not<mode>_soft_tcb if operands[0] is unused.
38097         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
38098         atomic_nand<mode>_hard if operands[0] is unused.
38099         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
38100         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
38101
38102 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
38103
38104         PR jit/64810
38105         * Makefile.in (GCC_OBJS): Add gcc-main.o.
38106         * gcc-main.c: New file, containing "main" taken from gcc.c.
38107         * gcc.c (do_self_spec): Free decoded_options.
38108         (class driver): Move declaration to gcc.h.
38109         (main): Move declaration and implementation to new file
38110         gcc-main.c.
38111         (driver_get_configure_time_options): New function.
38112         * gcc.h (class driver): Move this declaration here, from
38113         gcc.c.
38114         (driver_get_configure_time_options): New declaration.
38115
38116 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
38117
38118         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
38119         cross-module inlining.
38120         * cgraph.h (cgraph_node): Add flag merged.
38121         * ipa-icf.c (sem_function::merge): Maintain it.
38122
38123 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
38124
38125         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
38126         instead of OBJECT_P.
38127
38128 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
38129
38130         PR target/62631
38131         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
38132         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
38133         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
38134         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
38135
38136 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
38137
38138         PR other/63504
38139         * combine.c (reg_n_sets_max): New variable.
38140         (can_change_dest_mode, reg_nonzero_bits_for_combine,
38141         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
38142         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
38143         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
38144         (rest_of_handle_combine): Initialize reg_n_sets_max.
38145
38146 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
38147
38148         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
38149         if some always_inline was inlined, apply changes before inlining
38150         heuristically.
38151
38152 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
38153
38154         PR jit/64810
38155         * config/arm/arm.c (arm_option_override): Set
38156         arm_selected_arch/cpu/tune to NULL on entry.
38157
38158 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
38159             Andrew Pinski  <pinskia@gcc.gnu.org>
38160             Jakub Jelinek  <jakub@gcc.gnu.org>
38161
38162         PR target/64231
38163         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
38164         integer typing for small model. Use IN_RANGE.
38165
38166 2015-02-02  Richard Biener  <rguenther@suse.de>
38167
38168         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
38169         * tree-vrp.c (vrp_valueize_1): Likewise.
38170
38171 2015-02-02  Alan Modra  <amodra@gmail.com>
38172
38173         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
38174         than mem for toc_restore.
38175         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
38176         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
38177         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
38178
38179 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
38180
38181         PR target/64047
38182         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
38183         explicit default options.
38184
38185 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
38186
38187         PR ipa/64872
38188         * ipa-utils.c (ipa_merge_profiles): Add release argument.
38189         * ipa-icf.c (sem_function::merge): Do not release body when merging.
38190         * ipa-utils.h (ipa_merge_profiles): Update prototype.
38191
38192 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
38193
38194         PR debug/64817
38195         * cfgexpand.c (deep_ter_debug_map): New variable.
38196         (avoid_deep_ter_for_debug): New function.
38197         (expand_debug_expr): If TERed SSA_NAME is in
38198         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
38199         instead of trying to expand SSA_NAME's def stmt.
38200         (expand_debug_locations): When expanding debug bind
38201         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
38202         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
38203         value.
38204         (pass_expand::execute): Call avoid_deep_ter_for_debug on
38205         all debug bind stmts.  Delete deep_ter_debug_map after
38206         expand_debug_location if non-NULL and clear it.
38207
38208 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
38209
38210         PR target/64851
38211         * config/sh/sync.md (atomic_fetch_notsi_hard,
38212         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
38213         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
38214         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
38215         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
38216         atomic_not_fetch<mode>_soft_imask): New insns.
38217
38218 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38219
38220         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
38221         (rank_for_schedule_debug): Split from ...
38222         (rank_for_schedule): ... this.
38223         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
38224         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
38225
38226 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
38227
38228         * doc/md.texi (Machine Constraints): Alphabetize table by target.
38229         * doc/extend.texi (x86 Variable Attributes): Move section to
38230         correct alphabetization after renaming.
38231         (x86 Type Attributes): Likewise.
38232         (Target Builtins): Re-alphabetize menu.
38233         (x86 Built-in Functions): Move section to correct alphabetization
38234         after renaming.
38235         (x86 transactional memory intrinsics): Likewise.
38236         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
38237         and x86 Windows Options in table and menu.
38238         (x86 Options): Move section to correct alphabetization after
38239         renaming.
38240         (x86 Windows Options): Likewise.
38241
38242 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
38243
38244         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
38245         preferred names of the architecture and its 32- and 64-bit
38246         variants.
38247         * doc/invoke.texi: Likewise.
38248         * doc/md.texi: Likewise.
38249
38250 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
38251
38252         PR target/64882
38253         * config/i386/predicates.md (address_no_seg_operand): Reject
38254         non-CONST_INT_P operands in invalid mode.
38255
38256 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
38257
38258         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
38259         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
38260         * config/i386/predicates.md (address_no_seg_operand): Call
38261         address_operand with VOIDmode.
38262         (vsib_address_operand): Ditto.
38263         (address_mpx_no_base_operand): Ditto.
38264         (address_mpx_no_index_operand): Ditto.
38265
38266 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
38267
38268         PR target/64688
38269         * lra-constraints.c (original_subreg_reg_mode): New.
38270         (simplify_operand_subreg): Try to simplify subreg of const.  Use
38271         original_subreg_reg_mode for it.
38272         (swap_operands): Update original_subreg_reg_mode.
38273         (curr_insn_transform): Set up original_subreg_reg_mode.
38274
38275 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
38276
38277         PR target/64617
38278         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
38279         function.
38280         (process_alt_operands): Use it.
38281         (curr_insn_transform): Check the optional reload pseudo class is
38282         ok for the mode.
38283
38284 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
38285
38286         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
38287         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
38288         prototype.
38289         * toplev.h (init_asm_output): Update comment on use of
38290         UNKNOWN_LOCATION with fatal_error.
38291         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
38292         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
38293         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
38294         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
38295         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
38296         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
38297         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
38298         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
38299         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
38300         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
38301         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
38302         fatal_error changed to pass input_location as first argument.
38303
38304 2015-01-30  Martin Liska  <mliska@suse.cz>
38305
38306         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
38307         in #pragma GCC diagnostic guards.
38308
38309 2015-01-30  Richard Biener  <rguenther@suse.de>
38310
38311         PR tree-optimization/64829
38312         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
38313         not add a widening conversion pattern but hand off extra
38314         widenings to callers.
38315         (vect_recog_widen_mult_pattern): Handle extra widening produced
38316         by vect_handle_widen_op_by_const.
38317         (vect_recog_widen_shift_pattern): Likewise.
38318         (vect_pattern_recog_1): Remove excess vertical space in dumping.
38319         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
38320         (vect_init_vector_1): Likewise.
38321         (vect_get_vec_def_for_operand): Likewise.
38322         (vect_finish_stmt_generation): Likewise.
38323         (vectorizable_load): Likewise.
38324         (vect_analyze_stmt): Likewise.
38325         (vect_is_simple_use): Likewise.
38326
38327 2015-01-29  Jeff Law  <law@redhat.com>
38328
38329         * combine.c (try_combine): Fix typo in comment.
38330
38331 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
38332
38333         PR target/64580
38334         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
38335         (rs6000_stack_info): Add assert.
38336         (rs6000_output_savres_externs): New function, split off from...
38337         (rs6000_output_function_prologue): ... here.  Do not call it for
38338         thunks.
38339
38340 2015-01-29  Jeff Law  <law@redhat.com>
38341
38342         PR target/15184
38343         * combine.c (try_combine): If I0 is a memory load and I3 a store
38344         to a related address, increase the "goodness" of doing a 4-insn
38345         combination with I0-I3.
38346         (make_field_assignment): Handle SUBREGs in the ior+and case.
38347
38348 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
38349
38350         PR tree-optimization/64746
38351         * tree-if-conv.c (mask_exists): New function.
38352         (predicate_mem_writes): Save created mask with given size for further
38353         use.
38354         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
38355         (ifcvt_repair_bool_pattern): Collect all statements that are root
38356         of bool pattern and use iterative algorithm to remove multiple uses
38357         of predicates, display number of required iterations.
38358
38359 2015-01-29  Richard Biener  <rguenther@suse.de>
38360
38361         PR tree-optimization/64853
38362         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
38363         stmt will get simulated again.
38364         * tree-ssa-ccp.c (valueize_op_1): Likewise.
38365
38366 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38367
38368         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
38369         return_in_pc.  Remove redundant assignments.
38370         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
38371         (arm_expand_epilogue): Don't compare boolean with true in if condition.
38372
38373 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
38374
38375         * config/i386/i386.c (ix86_mode_after): Make static.
38376
38377 2015-01-29  Richard Biener  <rguenther@suse.de>
38378
38379         PR tree-optimization/64844
38380         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
38381         dump cost model analysis.
38382         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
38383         Do not register adjusted load/store costs here.
38384
38385 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
38386             Uros Bizjak  <ubizjak@gmail.com>
38387
38388         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
38389         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
38390         using x86_use_pseudo_pic_reg.
38391         * config/i386/i386.c (ix86_conditional_register_usage): Remove
38392         support for fixed PIC register.
38393         (ix86_use_pseudo_pic_reg): Not static any more.
38394
38395 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
38396
38397         PR middle-end/64805
38398         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
38399         to avoid error in cgraph node verification.
38400
38401 2015-01-29  Marek Polacek  <polacek@redhat.com>
38402
38403         * doc/standards.texi: Reflect that the default for C is gnu11.
38404
38405 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
38406
38407         PR target/64761
38408         * reorg.c (switch_text_sections_between_p): New function.
38409         (relax_delay_slots): Call it when testing if the jump insn
38410         is removable.  Use targetm.can_follow_jump when testing if
38411         the conditional branch can follow an unconditional jump.
38412
38413 2015-01-27  Caroline Tice  <cmtice@google.com>
38414
38415         Committing VTV Cywin/Ming patch for Patrick Wollgast
38416         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
38417         if -fvtable-verify=preinit/std is used.
38418         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
38419         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
38420         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
38421         if -fvtable-verify=preinit/std is used.
38422         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
38423         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
38424         if -fvtable-verify=preinit/std is used.
38425         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
38426         * config/i386/mingw32.h (LIB_SPEC): Likewise.
38427         * varasm.c (assemble_variable): Add code to properly set the comdat
38428         section and name for the .vtable_map_vars section in case the
38429         target is PE or COFF.
38430
38431 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
38432
38433         PR ipa/64801
38434         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
38435         make sane BB profile.
38436         (cgraph_node::expand_thunk): Make sane BB profile.
38437         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
38438         * cgraph.h (init_lowered_empty_function): Update prototype.
38439         * config/i386/i386.c (make_resolver_func): Update call.
38440         * predict.c (gate): Disable branch prediction pass if
38441         profile is already there.
38442
38443 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
38444
38445         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
38446         * opth-gen.awk: Likewise.
38447         * common.opt: Mark flag_fp_contract_mode as Optimization.
38448
38449 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38450
38451         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
38452         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
38453
38454 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
38455
38456         PR target/64659
38457         * config/sh/predicates.md (atomic_arith_operand,
38458         atomic_logical_operand): Remove.
38459         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
38460         (atomic_arith_operand_0): New predicate.
38461         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
38462         Use atomic_arith_operand_0 for input values.
38463         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
38464         atomic_compare_and_swap<mode>_soft_gusa,
38465         atomic_compare_and_swap<mode>_soft_tcb,
38466         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
38467         arith_reg_operand instead of register_operand.
38468         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
38469         atomic_arith_operand_0 for newval input.
38470         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
38471         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
38472         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
38473         arith_reg_operand instead of register_operand.
38474         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
38475         fetchop_predicate_1, fetchop_constraint_1_llcs,
38476         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
38477         fetchop_constraint_1_imask): New code iterator attributes.
38478         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
38479         register_operand.  Use fetchop_predicate_1.
38480         (atomic_fetch_<fetchop_name>si_hard,
38481         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
38482         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
38483         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
38484         and arith_reg_operand instead of register_operand.  Use
38485         fetchop_predicate_1, fetchop_constraint_1_gusa.
38486         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
38487         and arith_reg_operand instead of register_operand.  Use
38488         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
38489         to allow R0 usage.
38490         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
38491         and arith_reg_operand instead of register_operand.  Use
38492         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
38493         to allow R0 usage.
38494         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
38495         register_operand.  Use atomic_logical_operand_1.
38496         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
38497         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
38498         arith_reg_operand instead of register_operand.
38499         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
38500         Use arith_reg_dest and arith_reg_operand instead of register_operand.
38501         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
38502         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
38503         register_operand.  Use fetchop_predicate_1.
38504         (atomic_<fetchop_name>_fetchsi_hard,
38505         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
38506         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38507         fetchop_constraint_1_llcs.
38508         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
38509         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38510         fetchop_constraint_1_gusa.
38511         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
38512         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38513         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
38514         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
38515         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38516         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
38517         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
38518         register_operand.  Use atomic_logical_operand_1.
38519         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
38520         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
38521         arith_reg_operand instead of register_operand.
38522         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
38523         arith_reg_operand instead of register_operand.  Use logical_operand
38524         and K08.  Adjust asm sequence to allow R0 usage.
38525         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
38526         arith_reg_operand instead of register_operand.  Use logical_operand
38527         and K08.
38528
38529 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38530
38531         PR other/63504
38532         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
38533         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
38534         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
38535         only get_full_len HOST_WIDE_INTs from get_val () array rather than
38536         all bits in *val_wide.
38537
38538 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
38539
38540         * varpool.c (tls_model_names): Fix names.
38541         (varpool_node::dump): Dump tls- prefix for tls models.
38542
38543 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
38544             Bernd Schmidt  <bernds@codesourcery.com>
38545             Nathan Sidwell  <nathan@codesourcery.com>
38546
38547         * config/nvptx/mkoffload.c: New file.
38548         * config/nvptx/t-nvptx: Add build rules for it.
38549         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
38550         (extra_programs): Add mkoffload.
38551         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
38552         function.
38553         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
38554
38555 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
38556
38557         PR middle-end/64809
38558         * cfgexpand.c (reorder_operands): Skip debug gimples.
38559
38560 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
38561
38562         PR tree-optimization/64277
38563         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
38564         range info when possible to refine estimation.
38565
38566 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38567
38568         PR tree-optimization/64718
38569         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
38570         be a 16bit unsigned integer when n->range is 16.
38571         (bswap_replace): Convert src to that type if necessary for all bswap
38572         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
38573         set in pass_optimize_bswap::execute ().
38574
38575 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
38576
38577         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
38578         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
38579         integer and floating point variants.
38580         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
38581
38582 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
38583
38584         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
38585         for all vector modes.
38586
38587 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38588
38589         PR bootstrap/64612
38590         * doc/sourcebuild.texi (comdat_group): Document.
38591
38592 2015-01-28  Terry Guo  <terry.guo@arm.com>
38593
38594         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
38595
38596 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
38597
38598         * toplev.c (print_version): Add param "show_global_state", and
38599         only print GGC and plugin information if it is true.
38600         (init_asm_output): Pass in "true" for the new param when calling
38601         print_version.
38602         (process_options): Likewise.
38603         (toplev::main): Likewise.
38604         * toplev.h (print_version): Add new param to decl.
38605
38606 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38607
38608         PR ipa/60871
38609         PR ipa/64139
38610         * tree.c (lookup_binfo_at_offset): New function.
38611         (get_binfo_at_offset): Use it.
38612
38613 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38614
38615         PR ipa/64282
38616         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
38617         on vtable being vtable.
38618
38619 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38620
38621         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
38622         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
38623         -mhotpatch= option.
38624         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
38625         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
38626         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
38627         Renamed.
38628         (s390_hotpatch_trampoline_halfwords_max): Renamed.
38629         (s390_hotpatch_hw_max): New name.
38630         (s390_hotpatch_trampoline_halfwords): Renamed.
38631         (s390_hotpatch_hw_before_label): New name.
38632         (get_hotpatch_attribute): Removed.
38633         (s390_hotpatch_hw_after_label): New name.
38634         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
38635         attribute.
38636         (s390_attribute_table): Ditto.
38637         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
38638         (s390_function_num_hotpatch_hw): New name.
38639         Remove special handling of inline functions and hotpatching.
38640         Return number of nops before and after the function label.
38641         (s390_can_inline_p): Removed.
38642         (s390_asm_output_function_label): Emit a configurable number of nops
38643         after the function label.
38644         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
38645         (TARGET_CAN_INLINE_P) Removed.
38646         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
38647
38648 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38649             Jiong Wang  <jiong.wang@arm.com>
38650
38651         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
38652         of scratch reg.
38653         (cb<optab><mode>1): Likewise.
38654         * config/aarch64/iterators.md (bcond): New define_code_attr.
38655
38656 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38657
38658         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
38659         memory accesses.
38660
38661 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38662
38663         * config/s390/s390.c (s390_register_move_cost): Increase costs for
38664         FPR->GPR moves.
38665
38666 2015-01-27  Richard Biener  <rguenther@suse.de>
38667
38668         * tree-vrp.c (update_value_range): Intersect the range with
38669         old recorded SSA name range information.
38670
38671 2015-01-27  Nick Clifton  <nickc@redhat.com>
38672
38673         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
38674         BC, DE and HL registers directly, not via AX.
38675         When decrementing the stack pointer by a large amount, transfer SP
38676         into AX and perform the subtraction there.
38677         (rl78_expand_epilogue): Perform the inverse of the above
38678         enhancements.
38679
38680 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38681
38682         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
38683
38684 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38685             Yury Gribov  <y.gribov@samsung.com>
38686
38687         PR ubsan/64741
38688         * ubsan.c (ubsan_source_location): Refactor code.
38689         (ubsan_type_descriptor): Update type size. Refactor code.
38690
38691 2015-01-27  Richard Biener  <rguenther@suse.de>
38692
38693         PR tree-optimization/56273
38694         PR tree-optimization/59124
38695         PR tree-optimization/64277
38696         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
38697         from the first VRP pass.
38698
38699 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38700
38701         PR ipa/64776
38702         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
38703         handle the first argument in the same loop as all the other arguments.
38704
38705         PR rtl-optimization/61058
38706         * jump.c (cleanup_barriers): Update basic block boundaries
38707         if BLOCK_FOR_INSN is non-NULL on PREV.
38708
38709 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
38710
38711         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
38712         bounds narrowing, already instrumented calls and calls to
38713         not instrumentable functions.
38714
38715 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38716
38717         PR tree-optimization/64807
38718         * wide-int.cc (wi::divmod_internal): Clear
38719         b_dividend[dividend_blocks_needed].
38720
38721 2015-01-26  DJ Delorie  <dj@redhat.com>
38722
38723         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
38724         volatile memory references.
38725
38726 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
38727
38728         PR target/49263
38729         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
38730         remove_insn.
38731         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
38732         shifts if it already fits into K08.
38733
38734 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38735
38736         PR ipa/64730
38737         * ipa-inline.c (inline_small_functions): Print "unknown" even
38738         if edge->call_stmt is non-NULL, but has builtins or unknown
38739         location.
38740
38741         PR middle-end/64421
38742         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
38743         with asterisk, skip the first character.
38744
38745 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38746
38747         PR target/64806
38748         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
38749         order change.
38750
38751 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
38752
38753         PR target/64795
38754         * config/i386/i386.md (*movdi_internal): Also check operand 0
38755         to determine TYPE_LEA operand.
38756         (*movsi_internal): Ditto.
38757
38758 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38759
38760         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
38761         OPTION_MASK_QUAD_MEMORY_ATOMIC.
38762
38763 2015-01-26  Renlin Li  <renlin.li@arm.com>
38764
38765         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
38766         the comment.
38767         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
38768         for higher part.
38769
38770 2015-01-26  Richard Biener  <rguenther@suse.de>
38771
38772         PR middle-end/64764
38773         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
38774         combining two BIT_AND_EXPR predicates.
38775
38776 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38777
38778         PR bootstrap/64754
38779         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
38780
38781 2015-01-26  Terry Guo  <terry.guo@arm.com>
38782
38783         * config/arm/arm.c (arm_file_start): Update the assignment of
38784         Tag_ABI_HardFP_use.
38785
38786 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
38787
38788         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
38789         pipeline model.
38790         config/arm/arm.md: Include the new Cortex-A57 model.
38791         (generic_sched): Don't use generic_sched when tuning for
38792         Cortex-A57.
38793
38794 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
38795             Uros Bizjak  <ubizjak@gmail.com>
38796
38797         * config/i386/i386.c (get_builtin_code_for_version): Add
38798         support for BMI and BMI2 multiversion functions.
38799
38800 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38801
38802         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
38803         (extract_bit_field): Likewise.
38804         (extract_low_bits): Likewise.
38805         (expand_mult): Likewise.
38806         (expand_mult_highpart_adjust): Likewise.
38807
38808 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
38809
38810         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
38811         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
38812         * config/i386/i386.c (processor_model): Add
38813         M_INTEL_COREI7_BROADWELL.
38814         (arch_names_table): Add "broadwell".
38815
38816 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
38817
38818         PR target/49263
38819         PR target/53987
38820         PR target/64345
38821         PR target/59533
38822         PR target/52933
38823         PR target/54236
38824         PR target/51244
38825         * config/sh/sh-protos.h
38826         (sh_extending_set_of_reg::can_use_as_unextended_reg,
38827         sh_extending_set_of_reg::use_as_unextended_reg,
38828         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
38829         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
38830         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
38831         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
38832         (sh_treg_insns): New class.
38833         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
38834         (scope_counter): New class.
38835         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
38836         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
38837         sh_extending_set_of_reg::can_use_as_unextended_reg,
38838         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
38839         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
38840         sh_split_treg_set_expr): New functions.
38841         (addsubcosts): Handle treg_set_expr.
38842         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
38843         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
38844         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
38845         (sh_insn_operands_modified_between_p): Make non-static.
38846         * config/sh/predicates.md (zero_extend_movu_operand): Allow
38847         simple_mem_operand in addition to displacement_mem_operand.
38848         (zero_extend_operand): Don't allow zero_extend_movu_operand.
38849         (treg_set_expr, treg_set_expr_not_const01,
38850         arith_reg_or_treg_set_expr): New predicates.
38851         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
38852         arith_or_int_operand instead of logical_operand.  Convert to
38853         insn_and_split.  Try to optimize constant operand in splitter.
38854         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
38855         (*tstqi_t_zero): Delete.
38856         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
38857         (tstsi_t_and_not): Delete.
38858         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
38859         Convert to insn_and_split.
38860         (unnamed split, tstsi_t_zero_extract_xor,
38861         tstsi_t_zero_extract_subreg_xor_little,
38862         tstsi_t_zero_extract_subreg_xor_big): Delete.
38863         (*tstsi_t_shift_mask): New insn_and_split.
38864         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
38865         to recombine with surrounding insns when splitting.
38866         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
38867         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
38868         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
38869         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
38870         (*cbranch_div0s: Delete.
38871         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38872         Try to recombine with surrounding insns when splitting.  Add operand
38873         order variants.
38874         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
38875         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
38876         *addc_r_r_msb, *addc_2r_msb): Delete.
38877         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
38878         order variant.
38879         (*addc_negreg_t): New insn_and_split.
38880         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38881         Try to recombine with surrounding insns when splitting.
38882         Add operand order variants.
38883         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
38884         insn_and_split patterns.
38885         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
38886         surrounding insns when splitting.
38887         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
38888         (*rotcl): Likewise.  Add zero_extract variant.
38889         (*ashrsi2_31): New insn_and_split.
38890         (*negc): Convert to insn_and_split.  Use treg_set_expr.
38891         (*zero_extend<mode>si2_disp_mem): Update comment.
38892         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
38893         condition.
38894         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
38895         with surrounding insns when splitting.
38896         (any_treg_expr_to_reg): New insn_and_split.
38897         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
38898         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
38899         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
38900         *zero_extract_2): New single bit zero extract patterns.
38901         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
38902         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
38903         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
38904         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
38905         set destination.
38906         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
38907         register_operand for set source.
38908
38909 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
38910
38911         * i386.opt (prefetch_sse): New targetsave.
38912         * i386.c (ix86_function_specific_save): Save prefetch_sse.
38913         (ix86_function_specific_restore): Restore prefetch_sse and initialize
38914         ix86_cost/ix86_tune_cost.
38915
38916 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38917
38918         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
38919         Support the JIT by using 0 as the language type.
38920
38921 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
38922
38923         PR target/64317
38924         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
38925         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
38926         (mark_regno_live, process_bb_lives): Pass new parameter value to
38927         make_hard_regno_born.
38928
38929 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38930
38931         PR rtl-optimization/63637
38932         PR rtl-optimization/60663
38933         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
38934         if elt->cost is MAX_COST for ASM_OPERANDS.
38935         (find_sets_in_insn): Fix up comment typo.
38936         (cse_insn): Don't set src_volatile for all non-volatile
38937         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
38938         or with "memory" clobber.  Set elt->cost to MAX_COST
38939         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
38940         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
38941
38942 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38943
38944         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
38945         alternative 1.
38946
38947 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38948
38949         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
38950         libgcc/config/i386/elf-lib.h.
38951
38952 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38953
38954         PR driver/64737
38955         * gcc.c (print_configuration): Don't print a blank line at the end
38956         here...
38957         (run_attempt): ... but here unstead.
38958
38959         PR middle-end/64734
38960         * omp-low.c (scan_sharing_clauses): Don't ignore
38961         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
38962         on target data/update constructs.
38963
38964 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38965
38966         PR target/50928
38967         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
38968         (DEBUG_RELOAD): Removed define.
38969         (m32c_limit_reload_class): Enable traces with if DEBUG0.
38970         (m32c_function_arg): Added a type cast.
38971         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
38972         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
38973         * config/m32c/bitops.md (andqi3_16): Likewise.
38974         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
38975         (push_a01_l): Likewise.
38976
38977 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38978
38979         PR jit/64721
38980         * main.c (main): Construct toplev instances with init_signals=true.
38981         * toplev.c (general_init): Add param "init_signals", and use it to
38982         conditionalize the calls to signal and host_hooks.extra_signals.
38983         (toplev::toplev): Add param "init_signals".
38984         (toplev::main): When invoking general_init, pass m_init_signals
38985         to control whether signal-handlers are installed.
38986         * toplev.h (toplev::toplev): Add param "init_signals".
38987         (toplev::m_init_signals): New field.
38988
38989 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38990
38991         PR jit/64722
38992         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
38993         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
38994         latter may be affected by the former (e.g. on i686).
38995
38996 2015-01-23  Martin Liska  <mliska@suse.cz>
38997
38998         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
38999         false positive during profiledbootstrap.
39000
39001 2015-01-23  Tom de Vries  <tom@codesourcery.com>
39002
39003         PR libgomp/64672
39004         * lto-opts.c (lto_write_options): Output non-explicit conservative
39005         -fno-openacc.
39006         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
39007         (append_compiler_options): Pass -fopenacc through.
39008
39009 2015-01-23  Tom de Vries  <tom@codesourcery.com>
39010
39011         PR libgomp/64707
39012         * lto-opts.c (lto_write_options): Output non-explicit conservative
39013         -fno-openmp.
39014         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
39015         (append_compiler_options): Pass -fopenmp through.
39016
39017 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
39018
39019         PR debug/64511
39020         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
39021         GTY markup.
39022
39023         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
39024         * diagnostic.def (DK_ICE_NOBT): New kind.
39025         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
39026         like DK_ICE, but never print backtrace.
39027         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
39028         (internal_error_no_backtrace): New function.
39029         * gcc.c (execute): Use internal_error_no_backtrace instead of
39030         internal_error.
39031
39032 2015-01-22  Jeff Law  <law@redhat.com>
39033
39034         PR target/52076
39035         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
39036         improve code density for small immediate to memory case.
39037         (insv): Better handle bitfield assignments when the field is
39038         being set to all ones.
39039         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
39040         operand predicate.
39041
39042 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39043             Jakub Jelinek  <jakub@redhat.com>
39044
39045         PR middle-end/64729
39046         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
39047         for !TARGET_LIBC_PROVIDES_SSP version and
39048         -fstack-protector-{all,strong,explicit} otherwise.
39049         * config/freebsd.h (LINK_SSP_SPEC): Handle
39050         -fstack-protector-{strong,explicit}.
39051
39052 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
39053             H.J. Lu  <hongjiu.lu@intel.com>
39054
39055         PR ipa/64694
39056         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
39057         heap.
39058
39059 2015-01-22  Wei Mi  <wmi@google.com>
39060
39061         PR rtl-optimization/64557
39062         * dse.c (record_store): Call get_addr for mem_addr.
39063         (check_mem_read_rtx): Likewise.
39064
39065 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
39066
39067         * fold-const.c (const_binop): Add early return for non-tcc_binary.
39068
39069 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
39070
39071         * toplev.c (init_local_tick): Process the failure when read
39072         fails for random_seed.
39073
39074         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
39075         'pretty_name' to avoid memory overflow.
39076
39077 2015-01-22  Richard Biener  <rguenther@suse.de>
39078
39079         PR middle-end/64728
39080         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
39081         abnormal coalescing on undefined SSA names.
39082
39083 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
39084
39085         PR target/64688
39086         PR target/64477
39087         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
39088         for alternative 3.
39089         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
39090
39091 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
39092
39093         PR middle-end/63325
39094         * fold-const.c (fold_checksum_tree): Don't include value of
39095         expr->decl_with_vis.symtab_node in the checksum.
39096
39097 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
39098
39099         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
39100
39101 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
39102
39103         PR driver/64690
39104         * gcc.c (insert_comments): New function.
39105         (try_generate_repro): Call it.
39106         (append_text): Removed.
39107
39108 2015-01-22  Richard Biener  <rguenther@suse.de>
39109
39110         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
39111         with IL incompatible options.  Properly honor user optimize
39112         attributes.
39113
39114 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
39115
39116         PR rtl-optimization/64682
39117         * combine.c (distribute_notes): When moving a death note for
39118         a register that is set in the new I2, make sure to put it
39119         before that new I2.
39120
39121 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
39122
39123         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
39124         not TARGET_DEFAULT.
39125
39126 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
39127
39128         PR debug/64511
39129         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
39130         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
39131         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
39132
39133         PR sanitizer/64706
39134         * doc/invoke.texi (-fsanitize=vptr): Document.
39135
39136         PR rtl-optimization/62078
39137         * dse.c: Include cfgcleanup.h.
39138         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
39139         anything call purge_all_dead_edges and cleanup_cfg at the end
39140         of the pass.
39141
39142 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
39143
39144         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
39145         edges.
39146
39147 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39148
39149         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
39150         decl attribute.
39151
39152 2015-01-21  David Sherwood  <david.sherwood@arm.com>
39153             Tejas Belagod <Tejas.Belagod@arm.com>
39154
39155         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
39156         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
39157         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
39158         Removed.
39159
39160 2015-01-21  David Sherwood  <david.sherwood@arm.com>
39161             Tejas Belagod <Tejas.Belagod@arm.com>
39162
39163         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
39164         (aarch64_reverse_mask): New decls.
39165         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
39166         (insn_count): New mode_attr.
39167         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
39168         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
39169         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
39170         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
39171         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
39172         (aarch64_simd_st4): New patterns.
39173         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
39174         (aarch64_reverse_mask): New functions.
39175
39176 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
39177
39178         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
39179         Declare.
39180         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
39181         addressing modes for BE.
39182         (aarch64_print_operand): Add 'R' specifier.
39183         (aarch64_simd_disambiguate_copy): Delete.
39184         (aarch64_simd_emit_reg_reg_move): New function.
39185         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
39186         in define_splits for structural moves.
39187         (mov<mode>): Use less restrictive predicates.
39188         (*aarch64_mov<mode>): Simplify and only allow for LE.
39189         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
39190
39191 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
39192
39193         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
39194
39195 2015-01-21  Richard Henderson  <rth@redhat.com>
39196
39197         PR target/64669
39198         * ccmp.c (used_in_cond_stmt_p): Remove.
39199         (expand_ccmp_expr): Don't use it.
39200
39201 2015-01-21  Nick Clifton  <nickc@redhat.com>
39202
39203         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
39204         PARALLELs.
39205
39206 2015-01-21  Richard Biener  <rguenther@suse.de>
39207
39208         PR middle-end/64313
39209         * tree-core.h (builtin_info, builtin_info_type): Turn from
39210         an object with two arrays into an array of an object with
39211         decl and two flags, implicit_p and declared_p.
39212         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
39213         set_builtin_decl, set_builtin_decl_implicit_p,
39214         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
39215         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
39216         * builtins.c (builtin_info): Adjust.
39217         * gimplify.c (gimplify_addr_expr): References to builtins
39218         that have been declared by the user makes them eligible for
39219         use by the compiler.  Call set_builtin_decl_implicit_p on them.
39220
39221 2015-01-20  Jeff Law  <law@redhat.com>
39222
39223         PR target/59946
39224         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
39225         allow pc-relative addresses in operand predicates or constraints.
39226
39227 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
39228
39229         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
39230         neon on aarch32 processors for stringops.
39231
39232 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39233
39234         PR ipa/63576
39235         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
39236
39237 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39238
39239         PR lto/45375
39240         * ipa-inline.c: Include lto-streamer.h
39241         (report_inline_failed_reason): Output source file differences and
39242         flags on optimization/target node mismatch.
39243         (can_inline_edge_p): Consider caller to be the outer inline function;
39244         be less restrictive about matching opimize and optimize_size attributes.
39245         (inline_account_function_p): Break out from ...
39246         (inline_small_functions): ... here.
39247         * ipa-inline-transform.c (clone_inlined_nodes): Use
39248         inline_account_function_p.
39249         (inline_call): Use optimize attribution; use inline_account_function_p.
39250         (inline_transform): Use opt_for_fn.
39251         * ipa-inline.h (inline_account_function_p): Declare.
39252
39253 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
39254
39255         PR debug/64663
39256         * dwarf2out.c (decl_piece_node): Don't put bitsize into
39257         mode if bitsize <= 0.
39258         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
39259         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
39260         sizes and positions.
39261
39262 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
39263
39264         * config/nios2/nios2.c (nios2_asm_file_end): Implement
39265         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
39266         needed.
39267         (TARGET_ASM_FILE_END): Define.
39268
39269 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39270
39271         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
39272         (struct tune_params): Use the enum.
39273         * arm.c (arm_*_tune): Update.
39274         (arm_option_override): Update.
39275
39276 2015-01-20  Richard Biener  <rguenther@suse.de>
39277
39278         PR ipa/64684
39279         * ipa-reference.c (add_static_var): Inline ...
39280         (analyze_function): ... here after splitting out from ...
39281         (is_proper_for_analysis): ... this.
39282
39283 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
39284
39285         PR target/64149
39286         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
39287         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
39288         replace the conditional with it's true branch.
39289         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
39290         (arm_lra_p): Remove.
39291
39292 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
39293
39294         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
39295
39296 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39297
39298         * config/tilegx/mul-tables.c: Move symtab.h include after
39299         coretypes.h include.
39300         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
39301         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
39302         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
39303         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
39304         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
39305
39306 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
39307
39308         PR bootstrap/64676
39309         Revert:
39310         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
39311
39312         PR rtl-optimization/64081
39313         * loop-iv.c (def_pred_latch_p): New function.
39314         (latch_dominating_def): Allow specific cases with non-single
39315         definitions.
39316         (iv_get_reaching_def): Likewise.
39317         (check_complex_exit_p): New function.
39318         (check_simple_exit): Use check_complex_exit_p to allow certain cases
39319         with exits not executing on any iteration.
39320
39321 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39322
39323         PR lto/45375
39324         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
39325         to set branch cost.
39326
39327 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39328
39329         PR lto/45375
39330         * i386.c (gate): Check flag_expensive_optimizations and
39331         optimize_size.
39332         (ix86_option_override_internal): Drop optimize_size condition
39333         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
39334         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
39335         MASK_PREFER_AVX128.
39336         (ix86_avx256_split_vector_move_misalign,
39337         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
39338         * sse.md (all uses of TARGET_PREFER_AVX128): Add
39339         optimize_insn_for_speed_p check.
39340
39341 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39342
39343         * config/mips/mips.h (FP_ASM_SPEC): New define.
39344         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
39345         instead.
39346
39347 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
39348
39349         PR target/53988
39350         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
39351         nullptr for insn when reaching the first insn.
39352         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
39353         (sh_insn_operands_modified_between_p): Add nullptr check.
39354         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
39355         sign extending mem load if the insn contains any UNSPEC or
39356         UNSPEC_VOLATILE.
39357
39358 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39359
39360         * params.def (inline-unit-growth): Drop to 15%.
39361         * invoke.texi (inline-unit-growth): Document change.
39362
39363 2015-01-19  Martin Liska  <mliska@suse.cz>
39364
39365         PR ipa/64668
39366         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
39367         function for second argument of OBJ_TYPE_REF.
39368
39369 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39370
39371         PR ipa/64218
39372         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
39373         whether function is an alias.
39374
39375 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
39376
39377         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
39378         cases.
39379
39380 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
39381
39382         PR rtl-optimization/64671
39383         * lra-remat.c (operand_to_remat): Don't consider jump and call
39384         insns.
39385
39386 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
39387
39388         PR target/59828
39389         * config/rs6000/default64.h: Include rs6000-cpus.def.
39390         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
39391         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
39392         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
39393         and POWER8.
39394         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
39395         POWER8.
39396         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
39397         pseudo-op to specify assembler dialect.
39398
39399 2015-01-19  Martin Liska  <mliska@suse.cz>
39400
39401         PR ipa/64664
39402         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
39403         Handle safe potentially removed nodes during filtering.
39404
39405 2015-01-19  Martin Liska  <mliska@suse.cz>
39406
39407         * doc/extend.texi (no_icf): Add new attribute description.
39408         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
39409         where the pass attempts to merge a function with no_icf attribute.
39410
39411 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39412
39413         PR target/64532
39414         * doc/md.texi (ARM Options): Document register constraints.
39415
39416 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
39417             Andrew Pinski  <apinski@cavium.com>
39418
39419         PR target/64304
39420         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
39421         (ashl<mode>3): Don't expand if operands[2] is not constant.
39422
39423 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39424
39425         PR target/64448
39426         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
39427         Match xor-and-xor RTL pattern.
39428
39429 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
39430
39431         PR rtl-optimization/64081
39432         * loop-iv.c (def_pred_latch_p): New function.
39433         (latch_dominating_def): Allow specific cases with non-single
39434         definitions.
39435         (iv_get_reaching_def): Likewise.
39436         (check_complex_exit_p): New function.
39437         (check_simple_exit): Use check_complex_exit_p to allow certain cases
39438         with exits not executing on any iteration.
39439
39440 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
39441
39442         * common.opt (fgraphite): Fix a typo.
39443
39444 2015-01-19  Felix Yang  <felix.yang@huawei.com>
39445
39446         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
39447         pattern.
39448         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
39449         uminp, smax_nanp, smin_nanp): New builtins.
39450         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
39451         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
39452         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
39453         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
39454         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
39455         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
39456         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
39457         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
39458         vpminnms_f32): Rewrite using builtin functions.
39459
39460 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
39461
39462         PR libgomp/64625
39463         * omp-low.c (offload_symbol_decl): Remove variable.
39464         (get_offload_symbol_decl): Remove function.
39465         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
39466         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
39467         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
39468         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
39469         BUILT_IN_GOACC_UPDATE don't pass it at all.
39470
39471 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
39472
39473         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
39474         callers.
39475
39476 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
39477
39478         * ipa-chkp.c (chkp_produce_thunks): Add early param
39479         to split thunks production into two passes.  Keep
39480         'always_inline' function bodies after the first pass.
39481         (pass_data_ipa_chkp_early_produce_thunks): New.
39482         (pass_ipa_chkp_early_produce_thunks): New.
39483         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
39484         chkp_produce_thunks signature.
39485         (make_pass_ipa_chkp_early_produce_thunks): New.
39486         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
39487         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
39488         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
39489
39490 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39491
39492         * cgraph.c (cgraph_node::dump): Dump profile flags.
39493
39494 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
39495
39496         PR target/64652
39497         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
39498         reg appear first in the parallel.
39499
39500 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39501
39502         * ipa-reference.c (set_reference_optimization_summary,
39503         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
39504         disabled.
39505         (ignore_module_statics): New static var.
39506         (propagate_bits): If ipa-reference is disabled, do not look into local
39507         properties.
39508         (analyze_function): Disable analysis when ipa_reference is disabled.
39509         (generate_summary): Do not dump when reference is disabled;
39510         collect vars accessed from functions with ipa-reference disabled.
39511         (get_read_write_all_from_node): When ipa-reference is disabled, use the
39512         node flags.
39513         (gate): Enable for LTO.
39514         (ignore_edge_p): New function.
39515         (propagate): Skip functions w/o ipa-reference analysis.
39516         * optc-save-gen.awk: Handle optimize_debug correctly.
39517         * opth-gen.awk: Likewise.
39518         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
39519         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
39520         fira-share-save-slots, fira-share-spill-slots,
39521         fmodulo-sched-allow-regmoves, fpartial-inlining,
39522         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
39523         ftracer, ftree-parallelize-loops, fassociative-math,
39524         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
39525         Optimization
39526         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
39527         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
39528         Optimization.
39529         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
39530         Fix for IPA.
39531
39532 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39533
39534         PR ipa/64378
39535         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
39536         flag correctly.
39537         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
39538
39539 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
39540
39541         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
39542         Remove duplicate option listings.
39543
39544 2015-01-18  Felix Yang  <felix.yang@huawei.com>
39545
39546         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
39547         (autofdo_source_profile::get_callsite_total_count,
39548         function_instance::get_function_instance_by_decl,
39549         string_table::get_index, string_table::get_index_by_decl,
39550         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
39551         Fix comment typos. Reformatting and minor code rearrangement.
39552
39553 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39554
39555         * config/rs6000/rs6000.md (probe_stack): Delete.
39556         (probe_stack_address): New.
39557
39558 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39559
39560         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
39561         to test for 32-bit ABIs, not !TARGET_POWERPC64.
39562
39563 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39564
39565         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
39566         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
39567         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
39568         snafu.
39569         (rs6000_libcall_value): Use the new function.
39570
39571 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
39572
39573         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
39574
39575 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39576
39577         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
39578         implement a more precise life analysis for it during backward scan.
39579
39580 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
39581
39582         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
39583
39584 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
39585
39586         PR rtl-optimization/52773
39587         * calls.c (emit_library_call_value): When pushing arguments use
39588         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
39589         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
39590         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
39591
39592 2015-01-17  Jeff Law  <law@redhat.com>
39593
39594         PR rtl-optimization/32790
39595         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
39596         not ZERO_EXTEND in SET_DESTs.
39597
39598 2015-01-17  Alan Modra  <amodra@gmail.com>
39599
39600         * cprop.c (do_local_cprop): Revert last change.
39601
39602 2015-01-16  DJ Delorie  <dj@redhat.com>
39603             Nick Clifton  <nickc@redhat.com>
39604
39605         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
39606         (addhi3_real): Likewise.  Fix [HL+0] syntax.
39607         (subqi3_real): Likewise.
39608         (subhi3_real): Likewise.
39609         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
39610         (cbranchhi4_real): Likewise.
39611         (cbranchhi4_real_inverted): Likewise.
39612         (cbranchsi4_real_lt): Likewise.
39613         (cbranchsi4_real_ge): Likewise.
39614         (cbranchsi4_real_ge): Likewise.
39615         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
39616         (sub<mode>3_virt): Likewise.
39617         (cbranchqi4_virt): Likewise.
39618         (cbranchhi4_virt): Likewise.
39619         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
39620         always use '[reg+imm]' even when imm is zero.
39621         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
39622         (rl78_general_operand): New.
39623         (rl78_nonimmediate_operand): New.
39624         (rl78_nonfar_operand): Use them.
39625         (rl78_nonfar_nonimm_operand): Likewise.
39626         (rl78_stack_based_mem): Fix.
39627         * config/rl78/constraints.md (Ibqi): New.
39628         (IBqi): New.
39629         (Wsa): New.
39630         (Wsf): New.
39631         (Cs1): Fix.
39632         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
39633         (iorqi3): Likewise.
39634         (xorqi3): Likewise.
39635         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
39636
39637         * config/rl78/constrains (Qs8): New constraint.
39638         * config/rl78/rl78.c (rl78_flags_already_set): New function.
39639         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
39640         * config/rl78/rl78-real.md (update_Z): New attribute.
39641         Update patterns to set it.
39642         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
39643         shorter compare and branch sequence can be used.
39644         (cbranchhi4_real): Likewise.
39645         (cbranchhi4_real_inverted): Likewise.
39646
39647         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
39648         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
39649         address space.
39650         * config/rl78/rl78.c (rl78_get_name_encoding): New.
39651         (rl78_option_override): Allow -mes0 only if C.
39652         (characterize_address): Support subregs of symbol_refs.
39653         (rl78_addr_space_address_mode): Move.  Add __near.
39654         (rl78_far_p): Likewise.
39655         (rl78_addr_space_pointer_mode): Likewise.
39656         (rl78_as_legitimate_address): Likewise.
39657         (rl78_addr_space_subset_p): Likewise.
39658         (rl78_addr_space_convert): Likewise.
39659         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
39660         symbols with -mes0.
39661         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
39662         addressing.
39663         (rl78_alloc_physical_registers_op1): Change logic to prefer
39664         symbol[BC] addressing.
39665         (frodata_section): New.
39666         (rl78_asm_init_sections): Initialize it.
39667         (rl78_select_section): Put __far readonly symbols in .frodata.
39668         (rl78_make_type_far): New.
39669         (rl78_insert_attributes): Force all readonly symbols to be
39670         __far when -mes0.
39671         (rl78_asm_out_integer): New.
39672         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
39673         * config/rl78/rl78.opt (-mes0): New.
39674
39675         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
39676         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
39677         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
39678         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
39679         (rl78_saddr_p): New.
39680         (rl78_output_aligned_common): New.
39681         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
39682         (rl78_handle_saddr_attribute): New.
39683         (rl78_handle_naked_attribute): New.
39684         (rl78_attribute_table): Add saddr.
39685         (rl78_print_operand_1): Don't print '!' on saddr operands.
39686         (rl78_print_operand_1): Strip encodings.
39687         (rl78_sfr_p): New.
39688         (rl78_strip_name_encoding): New.
39689         (rl78_attrlist_to_encoding): New.
39690         (rl78_encode_section_info): New.
39691         (rl78_asm_init_sections): New.
39692         (rl78_select_section): New.
39693         (rl78_output_labelref): New.
39694         (rl78_output_aligned_common): New.
39695         (rl78_asm_out_integer): New.
39696         (rl78_asm_ctor_dtor): New.
39697         (rl78_asm_constructor): New.
39698         (rl78_asm_destructor): New.
39699
39700         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
39701         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
39702         (transcode_memory_rtx): Update.
39703         (rl78_expand_epilogue): Use A_REG instead of 0.
39704
39705 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39706
39707         * config/arm/arm-protos.h (struct tune_params): New field
39708         sched_autopref_queue_depth.
39709         * config/arm/arm.c (sched-int.h): Include header.
39710         (arm_first_cycle_multipass_dfa_lookahead_guard,)
39711         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
39712         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
39713         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
39714         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
39715         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
39716         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
39717         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
39718         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
39719         * config/arm/t-arm (arm.o): Update.
39720         * haifa-sched.c (update_insn_after_change): Update.
39721         (rank_for_schedule): Use auto-prefetcher model, if requested.
39722         (autopref_multipass_init): New static function.
39723         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
39724         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
39725         variable for debug dumps.
39726         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
39727         (autopref_multipass_dfa_lookahead_guard): New global function that
39728         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
39729         (init_h_i_d): Update.
39730         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
39731         * sched-int.h (enum autopref_multipass_data_status): New const enum.
39732         (autopref_multipass_data_): Structure for auto-prefetcher data.
39733         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
39734         (struct _haifa_insn_data:autopref_multipass_data): New field.
39735         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
39736         (autopref_multipass_dfa_lookahead_guard): Declare.
39737
39738 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39739
39740         * rtlanal.c (get_base_term): Handle SCRATCH.
39741
39742 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39743
39744         * config/aarch64/aarch64.c
39745         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
39746         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39747         * config/arm/arm.c
39748         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
39749         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39750
39751 2015-01-17  Alan Modra  <amodra@gmail.com>
39752
39753         * cprop.c (do_local_cprop): Disallow replacement of fixed
39754         hard registers.
39755
39756 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39757
39758         PR target/62066
39759         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
39760         early return 0.
39761
39762 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39763
39764         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
39765         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
39766
39767 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39768
39769         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
39770         * config/arm/thumb1.md: ... Here.
39771
39772 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39773
39774         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
39775         TImode for TARGET_32BIT.
39776
39777 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39778
39779         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
39780         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
39781         as ...
39782         (rs6000_abi_word_mode): New function.
39783
39784 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39785
39786         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
39787         instead of UNITS_PER_WORD to describe the size of stack slots.
39788
39789 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39790
39791         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
39792         as rs6000_promote_function_mode.  Move comment to there.
39793         (rs6000_promote_function_mode): New function.
39794
39795 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39796
39797         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
39798         -mpowerpc64 is active.
39799
39800 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39801
39802         PR middle-end/64353
39803         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
39804         virtuals on start.
39805
39806 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39807
39808         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
39809         introduced in revision 219724.
39810
39811 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39812             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39813
39814         PR target/64263
39815         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
39816         destination is not a GP reg.
39817         (*movdi_aarch64): Likewise.
39818
39819 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
39820
39821         PR target/64623
39822         * config/rs6000/default64.h: Revert ISA change.
39823
39824 2015-01-16  Richard Biener  <rguenther@suse.de>
39825
39826         PR middle-end/64614
39827         * tree-ssa-uninit.c: Include tree-cfg.h.
39828         (MAX_SWITCH_CASES): New define.
39829         (convert_control_dep_chain_into_preds): Handle switch statements.
39830         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
39831         (normalize_one_pred_1): Do not split bit-manipulations.
39832         Record (x & CST).
39833
39834 2015-01-16  Richard Biener  <rguenther@suse.de>
39835
39836         PR tree-optimization/64568
39837         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
39838         complex load rewriting for TARGET_MEM_REFs.
39839
39840 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
39841
39842         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
39843
39844 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
39845
39846         PR target/64149
39847         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
39848         variable.
39849         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
39850         (aarch64_lra_p): Remove.
39851
39852 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39853
39854         PR target/64363
39855         * ipa-chkp.h (chkp_instrumentable_p): New.
39856         * ipa-chkp.c: Include tree-inline.h.
39857         (chkp_instrumentable_p): New.
39858         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
39859         Fix processing of not instrumentable functions.
39860         (chkp_versioning): Use chkp_instrumentable_p. Warn about
39861         not instrumentable functions.
39862         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
39863         chkp_instrumentable_p.
39864         * tree-inline.h (copy_forbidden): New.
39865         * tree-inline.c (copy_forbidden): Not static anymore.
39866
39867 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39868
39869         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
39870         ptr1, ptr2 unused.
39871
39872 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39873
39874         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
39875         type OP_OUT to OP_INOUT.
39876
39877 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39878
39879         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
39880         (high x) y) to y if x and y have the same base.
39881
39882 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39883
39884         * config/arm/cortex-a57.md: New.
39885         * config/aarch64/aarch64.md: Include it.
39886         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
39887         * config/aarch64/aarch64-tune.md: Regenerate.
39888
39889 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
39890
39891         PR target/64015
39892         * ccmp.c (expand_ccmp_next): New function.
39893         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
39894         and compare insn sequence.
39895         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
39896         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
39897         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
39898         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
39899         (*ccmp_ior): Changed to ccmp_ior<mode>.
39900         (cmp<mode>): New pattern.
39901         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
39902         parameters.
39903         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
39904
39905 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
39906
39907         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
39908         _mm256_bsrli_epi128): New.
39909         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
39910
39911 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39912
39913         * expmed.c (store_bit_field_using_insv): Improve warning message.
39914         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
39915
39916 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39917
39918         PR rtl-optimization/64011
39919         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
39920         there is partial overflow.
39921
39922 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39923
39924         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
39925         prototype.
39926         (nds32_expand_epilogue_v3pop): Likewise.
39927         * config/nds32/nds32.md (sibcall): Define this for sibling call
39928         optimization.
39929         (sibcall_register): Likewise.
39930         (sibcall_immediate): Likewise.
39931         (sibcall_value): Likewise.
39932         (sibcall_value_register): Likewise.
39933         (sibcall_value_immediate): Likewise.
39934         (sibcall_epilogue): Likewise.
39935         (epilogue): Pass false to indicate this is not a sibcall epilogue.
39936         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
39937         (nds32_expand_epilogue_v3pop): Likewise.
39938
39939 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39940
39941         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
39942         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
39943         (return_internal): New.
39944         (return): Define this named pattern.
39945         (simple_return): Define this named pattern.
39946         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
39947         pattern instead of unspec_volatile_func_return.
39948         (nds32_expand_epilogue_v3pop): Likewise.
39949         (nds32_can_use_return_insn): New function.
39950
39951 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39952
39953         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
39954         * config/nds32/nds32.md (pop25return): New.
39955         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
39956         pop25return pattern.
39957
39958 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39959
39960         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
39961         -mforbid-fp-as-gp, and -mex9 options.
39962
39963 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39964
39965         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
39966         remove -mgp-direct option.
39967
39968 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39969
39970         * doc/invoke.texi (--param early-inlining-insns): Update default value.
39971         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
39972
39973 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39974
39975         * ipa-inline.c (inline_small_functions): Work around hints
39976         cache issue.
39977
39978 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
39979
39980         PR target/59710
39981         * doc/invoke.texi (Option Summary): Document new Nios II
39982         -mgpopt= syntax.
39983         (Nios II Options): Likewise.
39984         * config/nios2/nios2.opt: Add -mgpopt= option support.
39985         Modify existing -mgpopt and -mno-gpopt options to be aliases.
39986         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
39987         * config/nios2/nios2.c (nios2_option_override): Adjust
39988         -mgpopt defaulting.
39989         (nios2_in_small_data_p): Return true for explicit small data
39990         sections even with -G0.
39991         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
39992         option choices.
39993
39994 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39995
39996         PR ipa/64612
39997         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
39998         of comdat locals.
39999         (inline_call): Fix removal of aliases.
40000
40001 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
40002
40003         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
40004         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
40005         * opts.c (common_handle_option): Add -fsanitize=vptr.
40006         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
40007         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
40008         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
40009         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
40010         (ubsan_expand_vptr_ifn): New prototype.
40011         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
40012         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
40013         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
40014         expand_LOOP_VECTORIZED): Make argument nameless, remove
40015         ATTRIBUTE_UNUSED.
40016         (expand_UBSAN_VPTR): New function.
40017         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
40018         in fn spec.
40019         (UBSAN_VPTR): New internal function.
40020         * sanopt.c (tree_map_traits): Renamed to ...
40021         (sanopt_tree_map_traits): ... this.
40022         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
40023         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
40024         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
40025         (maybe_optimize_ubsan_vptr_ifn): New function.
40026         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
40027         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
40028         -fsanitize=vptr.
40029         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
40030         internal calls like pure functions for aliasing, even when they
40031         have other side-effects that prevent making them ECF_PURE.
40032         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
40033         (ubsan_expand_vptr_ifn): New function.
40034
40035 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
40036
40037         PR rtl-optimization/64110
40038         * stmt.c (parse_output_constraint): Process '^' and '$'.
40039         (parse_input_constraint): Ditto.
40040         * lra-constraints.c (process_alt_operands): Process the new
40041         constraints.
40042         * ira-costs.c (record_reg_classes): Process the new constraint
40043         '^'.
40044         * genoutput.c (indep_constraints): Add '^' and '$'.
40045         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
40046         * doc/md.texi: Add description of the new constraints.
40047
40048 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
40049             Bernd Schmidt  <bernds@codesourcery.com>
40050             Cesar Philippidis  <cesar@codesourcery.com>
40051             James Norris  <jnorris@codesourcery.com>
40052             Tom de Vries  <tom@codesourcery.com>
40053             Ilmir Usmanov  <i.usmanov@samsung.com>
40054             Dmitry Bocharnikov  <dmitry.b@samsung.com>
40055             Evgeny Gavrin  <e.gavrin@samsung.com>
40056             Jakub Jelinek  <jakub@redhat.com>
40057
40058         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
40059         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
40060         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
40061         New function types.
40062         * builtins.c: Include "gomp-constants.h".
40063         (expand_builtin_acc_on_device): New function.
40064         (expand_builtin, is_inexpensive_builtin): Handle
40065         BUILT_IN_ACC_ON_DEVICE.
40066         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
40067         New macros.
40068         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
40069         flag_openmp.
40070         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
40071         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
40072         i386/intelmic-offload.h.
40073         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
40074         to libgomp and its dependencies.
40075         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
40076         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
40077         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
40078         * config/ia64/hpux.h (LIB_SPEC): Likewise.
40079         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
40080         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
40081         * doc/generic.texi: Update for OpenACC changes.
40082         * doc/gimple.texi: Likewise.
40083         * doc/invoke.texi: Likewise.
40084         * doc/sourcebuild.texi: Likewise.
40085         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
40086         GF_OMP_FOR_KIND_OACC_LOOP.
40087         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
40088         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
40089         GF_OMP_TARGET_KIND_OACC_UPDATE,
40090         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
40091         Dump more data.
40092         * gimple.c: Update comments for OpenACC changes.
40093         * gimple.def: Likewise.
40094         * gimple.h: Likewise.
40095         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
40096         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
40097         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
40098         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
40099         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
40100         appropriate place.
40101         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
40102         * gimplify.c: Include "gomp-constants.h".
40103         Update comments for OpenACC changes.
40104         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
40105         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
40106         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
40107         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
40108         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
40109         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
40110         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
40111         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
40112         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
40113         OMP_CLAUSE_SEQ.
40114         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
40115         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
40116         OMP_CLAUSE_SET_MAP_KIND.
40117         (gimplify_oacc_cache): New function.
40118         (gimplify_omp_for): Handle OACC_LOOP.
40119         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
40120         OACC_DATA.
40121         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
40122         OACC_EXIT_DATA, OACC_UPDATE.
40123         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
40124         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
40125         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
40126         (gimplify_body): Consider flag_openacc next to flag_openmp.
40127         * lto-streamer-out.c: Include "gomp-constants.h".
40128         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
40129         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
40130         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
40131         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
40132         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
40133         (BUILT_IN_ACC_ON_DEVICE): New builtins.
40134         * omp-low.c: Include "gomp-constants.h".
40135         Update comments for OpenACC changes.
40136         (struct omp_context): Add reduction_map, gwv_below, gwv_this
40137         members.
40138         (extract_omp_for_data, use_pointer_for_field, install_var_field)
40139         (new_omp_context, delete_omp_context, scan_sharing_clauses)
40140         (create_omp_child_function, scan_omp_for, scan_omp_target)
40141         (check_omp_nesting_restrictions, lower_reduction_clauses)
40142         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
40143         Update for OpenACC changes.
40144         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
40145         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
40146         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
40147         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
40148         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
40149         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
40150         OMP_CLAUSE_MAP_*.
40151         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
40152         Handle GF_OMP_FOR_KIND_OACC_LOOP.
40153         (expand_omp_target, lower_omp_target): Handle
40154         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
40155         GF_OMP_TARGET_KIND_OACC_UPDATE,
40156         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
40157         GF_OMP_TARGET_KIND_OACC_DATA.
40158         (pass_expand_omp::execute, execute_lower_omp)
40159         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
40160         flag_openmp.
40161         (offload_symbol_decl): New variable.
40162         (oacc_get_reduction_array_id, oacc_max_threads)
40163         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
40164         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
40165         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
40166         (oacc_gimple_assign, oacc_initialize_reduction_data)
40167         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
40168         functions.
40169         (is_targetreg_ctx): Remove function.
40170         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
40171         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
40172         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
40173         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
40174         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
40175         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
40176         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
40177         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
40178         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
40179         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
40180         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
40181         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
40182         * tree-core.h: Update comments for OpenACC changes.
40183         (enum omp_clause_map_kind): Remove.
40184         (struct tree_omp_clause): Change type of map_kind member from enum
40185         omp_clause_map_kind to unsigned char.
40186         * tree-inline.c: Update comments for OpenACC changes.
40187         * tree-nested.c: Likewise.  Include "gomp-constants.h".
40188         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
40189         (convert_tramp_reference_stmt, convert_gimple_call): Update for
40190         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
40191         OMP_CLAUSE_SET_MAP_KIND.
40192         * tree-pretty-print.c: Include "gomp-constants.h".
40193         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
40194         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
40195         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
40196         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
40197         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
40198         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
40199         instead of OMP_CLAUSE_MAP_*.
40200         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
40201         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
40202         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
40203         * tree-streamer-in.c: Include "gomp-constants.h".
40204         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
40205         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
40206         * tree-streamer-out.c: Include "gomp-constants.h".
40207         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
40208         OMP_CLAUSE_MAP_*.
40209         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
40210         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
40211         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
40212         * tree.c (omp_clause_num_ops): Update accordingly.
40213         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
40214         Likewise.
40215         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
40216         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
40217         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
40218         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
40219         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
40220         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
40221         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
40222         (OMP_CLAUSE_SET_MAP_KIND): New macro.
40223         * varpool.c (varpool_node::get_create): Consider flag_openacc next
40224         to flag_openmp.
40225         * config/i386/intelmic-offload.h: New file.
40226         * config/nvptx/offload.h: Likewise.
40227
40228 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40229
40230         * explow.h: Remove duplicate contents.
40231         * dojump.h: Likewise.
40232
40233 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
40234
40235         * arm.c (arm_xgene_tune): Add default initializer for instruction
40236         fusion.
40237
40238 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
40239
40240         PR ipa/64068
40241         PR ipa/64559
40242         * ipa.c (symbol_table::remove_unreachable_nodes):
40243         Do not put abstract origins into boundary.
40244
40245 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
40246
40247         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
40248         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
40249
40250 2015-01-15  Steve Ellcey  <sellcey@mips.com>
40251
40252         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
40253         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
40254         builtins.def, and chkp-builtins.def.
40255
40256 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
40257
40258         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
40259         ISA 2.7 (POWER8).
40260
40261 2015-01-15  Richard Biener  <rguenther@suse.de>
40262
40263         PR tree-optimization/61743
40264         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
40265         information on PHIs for some simple cases.
40266
40267 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
40268
40269         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
40270         Include xgene1.md.
40271         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
40272         * config/arm/arm-cores.def (xgene1): New entry.
40273         * config/arm/arm-tables.opt: Regenerate.
40274         * config/arm/arm-tune.md: Regenerate.
40275         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
40276
40277 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
40278
40279         * tree-if-conv.c: Include hash-map.h.
40280         (aggressive_if_conv): New variable.
40281         (fold_build_cond_expr): Add simplification of non-zero condition.
40282         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
40283         destination block is not always executed.
40284         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
40285         than two predecessors if AGGRESSIVE_IF_CONV is true.
40286         (if_convertible_stmt_p): Fix commentary.
40287         (all_preds_critical_p): New function.
40288         (has_pred_critical_p): New function.
40289         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
40290         BB can have more than two predecessors and all incoming edges can be
40291         critical.
40292         (predicate_bbs): Skip predication for loop exit block, use build2_loc
40293         to compute predicate for true edge.
40294         (find_phi_replacement_condition): Delete this function.
40295         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
40296         Allow interchange PHI arguments if EXTENDED is false.
40297         Change check that block containing reduction statement candidate
40298         is predecessor of phi-block since phi may have more than two arguments.
40299         (phi_args_hash_traits): New helper structure.
40300         (struct phi_args_hash_traits): New type.
40301         (phi_args_hash_traits::hash): New function.
40302         (phi_args_hash_traits::equal_keys): New function.
40303         (gen_phi_arg_condition): New function.
40304         (predicate_scalar_phi): Add handling of phi nodes with more than two
40305         arguments, delete COND and TRUE_BB arguments, insert body of
40306         find_phi_replacement_condition to predicate ordinary phi nodes.
40307         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
40308         delete call of find_phi_replacement_condition and invoke
40309         predicate_scalar_phi with two arguments.
40310         (insert_gimplified_predicates): Add assert that non-predicated block
40311         don't have statements to insert.
40312         (ifcvt_split_critical_edges): New function.
40313         (ifcvt_split_def_stmt): Likewise.
40314         (ifcvt_walk_pattern_tree): Likewise.
40315         (stmt_is_root_of_bool_pattern): Likewise.
40316         (ifcvt_repair_bool_pattern): Likewise.
40317         (ifcvt_local_dce): Likewise.
40318         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
40319         is copy of inner or outer loop force_vectorize field, invoke
40320         ifcvt_split_critical_edges, ifcvt_local_dce and
40321         ifcvt_repair_bool_pattern for aggressive if-conversion.
40322
40323 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
40324
40325         * config/aarch64/aarch64.md: Include xgene1.md.
40326         * config/aarch64/xgene1.md: New file.
40327
40328 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
40329
40330         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
40331         xgene1 (APM XGene-1) core definition.
40332         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
40333         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
40334         * doc/invoke.texi: Document -mcpu=xgene1.
40335
40336 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40337
40338         * dojump.h: New header file.
40339         * explow.h: Likewise.
40340         * expr.h: Remove includes.
40341         Move expmed.c prototypes to expmed.h.
40342         Move dojump.c prototypes to dojump.h.
40343         Move alias.c prototypes to alias.h.
40344         Move explow.c prototypes to explow.h.
40345         Move calls.c prototypes to calls.h.
40346         Move emit-rtl.c prototypes to emit-rtl.h.
40347         Move varasm.c prototypes to varasm.h.
40348         Move stmt.c prototypes to stmt.h.
40349         (saved_pending_stack_adjust): Move to dojump.h.
40350         (adjust_address): Move to explow.h.
40351         (adjust_address_nv): Move to emit-rtl.h.
40352         (adjust_bitfield_address): Likewise.
40353         (adjust_bitfield_address_size): Likewise.
40354         (adjust_bitfield_address_nv): Likewise.
40355         (adjust_automodify_address_nv): Likewise.
40356         * explow.c (expr_size): Move to expr.c.
40357         (int_expr_size): Likewise.
40358         (tree_expr_size): Likewise.
40359         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40360         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
40361         * genemit.c (main): Generate includes statistics.h, real.h,
40362         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
40363         stmt.h.
40364         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
40365         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
40366         explow.h, emit-rtl.h, stmt.h.
40367         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
40368         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
40369         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
40370         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
40371         emit-rtl.h, varasm.h, stmt.h.
40372         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
40373         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
40374         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
40375         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
40376         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
40377         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
40378         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
40379         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
40380         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
40381         tm.h tree.h varasm.h vec.h wide-int.h.
40382         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40383         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
40384         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
40385         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
40386         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
40387         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
40388         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
40389         * loop-iv.c: Likewise.
40390         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
40391         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
40392         statistics.h stmt.h tree.h varasm.h wide-int.h.
40393         * lra-constraints.c: Likewise.
40394         * lra-eliminations.c: Likewise.
40395         * lra-lives.c: Likewise.
40396         * lra-remat.c: Likewise.
40397         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40398         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
40399         statistics.h stmt.h tree.h varasm.h wide-int.h.
40400         * hw-doloop.c: Likewise.
40401         * ira-color.c: Likewise.
40402         * ira-emit.c: Likewise.
40403         * loop-doloop.c: Likewise.
40404         * loop-invariant.c: Likewise.
40405         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40406         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
40407         statistics.h stmt.h tree.h varasm.h wide-int.h.
40408         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
40409         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
40410         statistics.h stmt.h tree.h varasm.h wide-int.h.
40411         * combine-stack-adj.c: Likewise.
40412         * cse.c: Likewise.
40413         * ddg.c: Likewise.
40414         * ifcvt.c: Likewise.
40415         * ira-costs.c: Likewise.
40416         * jump.c: Likewise.
40417         * lra-coalesce.c: Likewise.
40418         * lra-spills.c: Likewise.
40419         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40420         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
40421         stmt.h varasm.h wide-int.h.
40422         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40423         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
40424         varasm.h.
40425         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
40426         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
40427         statistics.h stmt.h varasm.h wide-int.h.
40428         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
40429         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
40430         varasm.h wide-int.h.
40431         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
40432         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40433         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
40434         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
40435         statistics.h stmt.h.
40436         * config/tilepro/tilepro.c: Likewise.
40437         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
40438         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
40439         * config/pdp11/pdp11.c: Likewise.
40440         * config/xtensa/xtensa.c: Likewise.
40441         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
40442         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
40443         varasm.h.
40444         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40445         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
40446         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
40447         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40448         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
40449         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
40450         * rtl-chkp.c: Likewise.
40451         * tree-chkp-opt.c: Likewise.
40452         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
40453         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
40454         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
40455         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40456         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40457         statistics.h stmt.h.
40458         * tree-vect-data-refs.c: Likewise.
40459         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
40460         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40461         rtl.h statistics.h stmt.h varasm.h.
40462         * internal-fn.c: Likewise.
40463         * ipa-icf-gimple.c: Likewise.
40464         * lto-section-out.c: Likewise.
40465         * tree-data-ref.c: Likewise.
40466         * tree-nested.c: Likewise.
40467         * tree-outof-ssa.c: Likewise.
40468         * tree-predcom.c: Likewise.
40469         * tree-pretty-print.c: Likewise.
40470         * tree-scalar-evolution.c: Likewise.
40471         * tree-ssa-strlen.c: Likewise.
40472         * tree-vect-loop.c: Likewise.
40473         * tree-vect-patterns.c: Likewise.
40474         * tree-vect-slp.c: Likewise.
40475         * tree-vect-stmts.c: Likewise.
40476         * tsan.c: Likewise.
40477         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40478         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
40479         stmt.h.
40480         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
40481         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40482         statistics.h stmt.h varasm.h.
40483         * loop-unroll.c: Likewise.
40484         * ubsan.c: Likewise.
40485         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
40486         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
40487         stmt.h varasm.h.
40488         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40489         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
40490         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
40491         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
40492         statistics.h stmt.h.
40493         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
40494         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
40495         statistics.h stmt.h varasm.h.
40496         * gimple-match-head.c: Likewise.
40497         * lto-cgraph.c: Likewise.
40498         * lto-section-in.c: Likewise.
40499         * lto-streamer-in.c: Likewise.
40500         * lto-streamer-out.c: Likewise.
40501         * tree-affine.c: Likewise.
40502         * tree-cfg.c: Likewise.
40503         * tree-cfgcleanup.c: Likewise.
40504         * tree-if-conv.c: Likewise.
40505         * tree-into-ssa.c: Likewise.
40506         * tree-ssa-alias.c: Likewise.
40507         * tree-ssa-copyrename.c: Likewise.
40508         * tree-ssa-dse.c: Likewise.
40509         * tree-ssa-forwprop.c: Likewise.
40510         * tree-ssa-live.c: Likewise.
40511         * tree-ssa-math-opts.c: Likewise.
40512         * tree-ssa-pre.c: Likewise.
40513         * tree-ssa-sccvn.c: Likewise.
40514         * tree-tailcall.c: Likewise.
40515         * tree-vect-generic.c: Likewise.
40516         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40517         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
40518         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40519         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
40520         * varasm.c: Likewise.
40521         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40522         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
40523         varasm.h.
40524         * init-regs.c: Likewise.
40525         * ira.c: Likewise.
40526         * omp-low.c: Likewise.
40527         * stack-ptr-mod.c: Likewise.
40528         * tree-ssa-reassoc.c: Likewise.
40529         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40530         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
40531         varasm.h.
40532         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40533         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
40534         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40535         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
40536         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40537         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
40538         * tree-ssa-phiopt.c: Likewise.
40539         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40540         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40541         * config/fr30/fr30.c: Likewise.
40542         * config/frv/frv.c: Likewise.
40543         * expr.c: Likewise.
40544         * final.c: Likewise.
40545         * optabs.c: Likewise.
40546         * passes.c: Likewise.
40547         * simplify-rtx.c: Likewise.
40548         * stmt.c: Likewise.
40549         * toplev.c: Likewise.
40550         * var-tracking.c: Likewise.
40551         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40552         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40553         * lower-subreg.c: Likewise.
40554         * postreload-gcse.c: Likewise.
40555         * ree.c: Likewise.
40556         * reginfo.c: Likewise.
40557         * store-motion.c: Likewise.
40558         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40559         fixed-value.h hashtab.h real.h stmt.h varasm.h.
40560         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40561         fixed-value.h hashtab.h statistics.h stmt.h.
40562         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40563         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
40564         * except.c: Likewise.
40565         * explow.c: Likewise.
40566         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40567         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
40568         varasm.h.
40569         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40570         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
40571         * tree-ssa-structalias.c: Likewise.
40572         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40573         fixed-value.h insn-config.h real.h statistics.h.
40574         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40575         fixed-value.h insn-config.h real.h statistics.h stmt.h.
40576         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40577         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40578         * cfgbuild.c: Likewise.
40579         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40580         fixed-value.h real.h rtl.h statistics.h stmt.h.
40581         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40582         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40583         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40584         fixed-value.h real.h statistics.h stmt.h.
40585         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40586         fixed-value.h real.h statistics.h stmt.h varasm.h.
40587         * cprop.c: Likewise.
40588         * modulo-sched.c: Likewise.
40589         * postreload.c: Likewise.
40590         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40591         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
40592         statistics.h stmt.h varasm.h.
40593         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
40594         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40595         rtl.h statistics.h stmt.h varasm.h.
40596         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
40597         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
40598         varasm.h.
40599         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40600         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
40601         varasm.h.
40602         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
40603         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
40604         varasm.h.
40605         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
40606         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40607         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40608         function.h real.h statistics.h stmt.h varasm.h.
40609         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40610         insn-config.h real.h statistics.h stmt.h.
40611         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40612         statistics.h stmt.h.
40613         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
40614         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
40615         statistics.h stmt.h varasm.h.
40616         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
40617         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
40618         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40619         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
40620         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
40621         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40622         statistics.h stmt.h varasm.h.
40623         * ipa-polymorphic-call.c: Likewise.
40624         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
40625         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40626         statistics.h stmt.h.
40627         * config/c6x/c6x.c: Likewise.
40628         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
40629         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40630         statistics.h stmt.h varasm.h.
40631         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
40632         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
40633         stmt.h varasm.h.
40634         * ipa-split.c: Likewise.
40635         * tree-eh.c: Likewise.
40636         * tree-ssa-dce.c: Likewise.
40637         * tree-ssa-loop-niter.c: Likewise.
40638         * tree-vrp.c: Likewise.
40639         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
40640         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
40641         stmt.h.
40642         * config/nds32/nds32-fp-as-gp.c: Likewise.
40643         * config/nds32/nds32-intrinsic.c: Likewise.
40644         * config/nds32/nds32-isr.c: Likewise.
40645         * config/nds32/nds32-md-auxiliary.c: Likewise.
40646         * config/nds32/nds32-memory-manipulation.c: Likewise.
40647         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
40648         * config/nds32/nds32-predicates.c: Likewise.
40649         * config/nds32/nds32.c: Likewise.
40650         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
40651         fixed-value.h hashtab.h real.h statistics.h.
40652         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
40653         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40654         * config/arm/arm.c: Likewise.
40655         * config/avr/avr.c: Likewise.
40656         * config/bfin/bfin.c: Likewise.
40657         * config/h8300/h8300.c: Likewise.
40658         * config/i386/i386.c: Likewise.
40659         * config/ia64/ia64.c: Likewise.
40660         * config/iq2000/iq2000.c: Likewise.
40661         * config/m32c/m32c.c: Likewise.
40662         * config/m32r/m32r.c: Likewise.
40663         * config/m68k/m68k.c: Likewise.
40664         * config/mcore/mcore.c: Likewise.
40665         * config/mep/mep.c: Likewise.
40666         * config/mips/mips.c: Likewise.
40667         * config/mn10300/mn10300.c: Likewise.
40668         * config/moxie/moxie.c: Likewise.
40669         * config/pa/pa.c: Likewise.
40670         * config/rl78/rl78.c: Likewise.
40671         * config/rx/rx.c: Likewise.
40672         * config/s390/s390.c: Likewise.
40673         * config/sh/sh.c: Likewise.
40674         * config/sparc/sparc.c: Likewise.
40675         * config/spu/spu.c: Likewise.
40676         * config/stormy16/stormy16.c: Likewise.
40677         * config/v850/v850.c: Likewise.
40678         * config/vax/vax.c: Likewise.
40679         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
40680         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40681         * config/msp430/msp430.c: Likewise.
40682         * predict.c: Likewise.
40683         * value-prof.c: Likewise.
40684         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
40685         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
40686         * config/microblaze/microblaze.c: Likewise.
40687         * config/nios2/nios2.c: Likewise.
40688         * config/rs6000/rs6000.c: Likewise.
40689         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40690         insn-config.h real.h rtl.h statistics.h stmt.h.
40691         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40692         insn-config.h real.h statistics.h stmt.h.
40693         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
40694         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40695         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
40696         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40697         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
40698         fixed-value.h real.h statistics.h stmt.h.
40699         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
40700         fixed-value.h statistics.h stmt.h.
40701         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
40702         stmt.h.
40703
40704 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
40705
40706         * gengtype.c (create_user_defined_type): Workaround
40707         -Wmaybe-uninitialized false positives.
40708         * cse.c (fold_rtx): Likewise.
40709         * loop-invariant.c (gain_for_invariant): Likewise.
40710
40711 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
40712
40713         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
40714         set the memory attributes in all cases but clear MEM_EXPR if need be.
40715
40716 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
40717
40718         PR tree-optimization/64434
40719         * cfgexpand.c (reorder_operands): New function.
40720         (expand_gimple_basic_block): Insert call of reorder_operands if
40721         optimized is true.
40722
40723 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
40724
40725         * config/mips/micromips.md (*swp): Remove explicit parallel.
40726         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
40727         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
40728         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
40729         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
40730         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
40731         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
40732         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
40733         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
40734         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
40735         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
40736         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
40737         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
40738         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
40739         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
40740         (mips_wrdsp): Likewise.
40741         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
40742         parallel.
40743         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
40744         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
40745         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
40746         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
40747         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
40748         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
40749         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
40750         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
40751         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
40752
40753 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40754
40755         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
40756         (mips_print_operand): Support 'y' to print exact log2 in decimal
40757         of a const_int.
40758         * config/mips/mips.h (ISA_HAS_LSA): New define.
40759         (ISA_HAS_DLSA): Likewise.
40760         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
40761         * config/mips/predicates.md (const_immlsa_operand): New predicate.
40762
40763 2015-01-15  Martin Liska  <mliska@suse.cz>
40764
40765         PR target/64377
40766         * optc-save-gen.awk: Add support for array types.
40767
40768 2015-01-15  Richard Biener  <rguenther@suse.de>
40769
40770         PR middle-end/64365
40771         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
40772         for MEM_REF access functions with the same base can never partially
40773         overlap.
40774
40775 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
40776
40777         * common.opt: New option -fstack-protector-explicit.
40778         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
40779         (stack_protect_decl_phase): Handle stack_protect attribute for
40780         explicit stack protection requests.
40781         (expand_used_vars): Similarly.
40782         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
40783         * doc/extend.texi: Add documentation for "stack_protect" attribute.
40784         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
40785
40786 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
40787
40788         PR target/53988
40789         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
40790         reg-reg copies.
40791         (sh_extending_set_of_reg): New struct.
40792         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
40793         sh_remove_reg_dead_or_unused_notes): New Declarations.
40794         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
40795         sh_find_extending_set_of_reg, sh_split_tst_subregs,
40796         sh_extending_set_of_reg::use_as_extended_reg): New functions.
40797         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
40798         convert to insn_and_split and use new function sh_split_tst_subregs.
40799
40800 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
40801
40802         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
40803         option.
40804         (Optimization Options): Move -fuse-ld documentation to...
40805         (Link Options): ...here.
40806
40807 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40808
40809         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
40810         offsets.
40811         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
40812         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
40813         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
40814         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
40815         instead of ZR for the memory operand of LL/SC.
40816         (compare_and_swap_12, sync_add<mode>): Likewise.
40817         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
40818         (sync_new_<optab>_12, sync_nand_12): Likewise.
40819         (sync_old_nand_12, sync_new_nand_12): Likewise.
40820         (sync_sub<mode>, sync_old_add<mode>): Likewise.
40821         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
40822         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
40823         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
40824         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
40825         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
40826         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
40827         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
40828         * doc/md.texi (ZC): Update description.
40829
40830 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40831
40832         * builtins.c (expand_builtin_atomic_exchange): Remove error when
40833         memory model is CONSUME.
40834         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
40835         expand_builtin_atomic_store): Change invalid memory model errors to
40836         warnings.
40837         (expand_builtin_atomic_clear): Change invalid model errors to warnings
40838         and issue warning for CONSUME.
40839
40840 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
40841
40842         * lto-cgraph: Update function comments for
40843         lto_symtab_encoder_encode_*.
40844
40845 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40846
40847         * Makefile.in (site.exp): Do not set ENABLE_LTO.
40848
40849 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40850
40851         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
40852         * lto-cgraph.c (select_what_to_stream): Remove argument, use
40853         lto_stream_offload_p instead.
40854         * lto-streamer.h (select_what_to_stream): Remove argument.
40855         * passes.c (ipa_write_summaries): Likewise.
40856         * tree-pass.h (ipa_write_summaries): Likewise.
40857
40858 2015-01-14  Richard Biener  <rguenther@suse.de>
40859
40860         PR tree-optimization/59354
40861         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
40862         groups larger than the slp group size as having gaps.
40863
40864 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40865
40866         PR middle-end/59448
40867         * builtins.c (get_memmodel): Promote consume to acquire always.
40868
40869 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40870
40871         PR target/64386
40872         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
40873         V32HImode.
40874
40875 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40876
40877         PR target/64393
40878         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
40879         Enable AVX512BW.
40880         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
40881         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
40882         AVX512VBMI, as it implies AVX512BW.
40883
40884 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40885
40886         PR target/64387
40887         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
40888         (vec_unpacks_hi_v16sf): Ditto.
40889
40890 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40891
40892         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
40893         is not available.
40894
40895 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40896
40897         * doc/invoke.texi (mapcs): Mention deprecation.
40898         (mapcs-frame): Likewise.
40899
40900 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40901
40902         PR target/64453
40903         * config/arm/arm.c (callee_saved_reg_p): Define.
40904         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
40905         register is callee saved instead of !call_used_regs[reg].
40906         (thumb1_compute_save_reg_mask): Likewise.
40907
40908 2015-01-14  Hale Wang  <hale.wang@arm.com>
40909
40910         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
40911         Cortex-M7.
40912
40913 2015-01-14  Richard Biener  <rguenther@suse.de>
40914
40915         PR lto/64415
40916         * tree-inline.c (insert_debug_decl_map): Check destination
40917         function MAY_HAVE_DEBUG_STMTS.
40918         (insert_init_debug_bind): Likewise.
40919         (insert_init_stmt): Remove redundant check.
40920         (remap_gimple_stmt): Drop debug stmts if the destination
40921         function has var-tracking assignments disabled.
40922
40923 2015-01-14  Martin Liska  <mliska@suse.cz>
40924
40925         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
40926         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
40927
40928 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40929
40930         PR target/64460
40931         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
40932         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
40933
40934 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40935
40936         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
40937         level from an ARCH; do not inject the default.
40938         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
40939         MIPS_ISA_LEVEL_SPEC.
40940         (MIPS_ISA_NAN2008_SPEC): Update comment.
40941         (BASE_DRIVER_SELF_SPECS): Likewise.
40942         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
40943         MIPS_DEFAULT_ISA_LEVEL_SPEC.
40944         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
40945         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
40946         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
40947
40948 2015-01-14  Richard Biener  <rguenther@suse.de>
40949
40950         PR tree-optimization/64493
40951         PR tree-optimization/64495
40952         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
40953         assign the proper vectorized PHI to the inner loop exit PHIs.
40954
40955 2015-01-14  Joey Ye  <joey.ye@arm.com>
40956
40957         * config/arm/arm.c (arm_compute_save_reg_mask):
40958         Do not save lr in case of tail call.
40959         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
40960
40961 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
40962
40963         * tree-vrp.c (check_array_ref): Emit more warnings
40964         for warn_array_bounds >= 2.
40965         * common.opt: New option -Warray-bounds=.
40966         * doc/invoke.texi: Document -Warray-bounds=.
40967
40968 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
40969
40970         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
40971         (mforbid-fp-as-gp): Remove.
40972         (mex9): Remove.
40973         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
40974         (nds32_symbol_load_store_p): Remove.
40975         (nds32_fp_as_gp_check_available): Clean up implementation.
40976         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
40977         cases.
40978         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
40979         fp-as-gp and ex9 cases.
40980
40981 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40982
40983         * tree-profile.c (init_ic_make_global_vars): Drop workaround
40984         for bintuils bug 14342.
40985         (init_ic_make_global_vars): Likewise.
40986         (gimple_init_edge_profiler): Likewise.
40987         (gimple_gen_ic_func_profiler): Likewise.
40988
40989 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
40990
40991         * ipa-inline.c (inline_small_functions): Swap the operands in
40992         enum.
40993
40994 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40995
40996         PR ipa/64481
40997         * ipa-inline-analysis.c (node_growth_cache): Remove.
40998         (initialize_growth_caches): Do not initialize it.
40999         (free_growth_caches): Do not free it.
41000         (do_estimate_growth): Rename to ...
41001         (estimate_growth): ... this one; drop growth cache code.
41002         (growth_likely_positive): Always go the heuristics way.
41003         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
41004         (reset_edge_caches): Do not reset node growth.
41005         (heap_edge_removal_hook): Do not maintain cache.
41006         (inline_small_functions): Likewise; strenghten sanity check.
41007         (ipa_inline): Do not maintain caches.
41008         * ipa-inline.h (node_growth_cache): Remove.
41009         (do_estimate_growth): Remove to ...
41010         (estimate_growth): this one; remove inline version.
41011         (reset_node_growth_cache): Remove.
41012
41013 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
41014
41015         PR ipa/64565
41016         * ipa-inline.c (inline_small_functions): Update callee keys after
41017         resolving speculation
41018         (inline_small_functions): Always check monotonicity of the queue.
41019
41020 2015-01-13  Marek Polacek  <polacek@redhat.com>
41021
41022         PR middle-end/64391
41023         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
41024
41025 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
41026
41027         PR rtl-optimization/64286
41028         * ree.c (combine_reaching_defs): Move part of comment earlier,
41029         remove !SCALAR_INT_MODE_P check.
41030         (add_removable_extension): Don't add vector mode
41031         extensions if all uses of the source register aren't the same
41032         vector extensions.
41033
41034 2015-01-13  Renlin Li  <renlin.li@arm.com>
41035
41036         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
41037         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
41038
41039 2015-01-13  Martin Liska  <mliska@suse.cz>
41040
41041         * ipa-icf.c (sem_function::equals_private): Call new functions
41042         cl_target_option_print_diff and cl_optimization_print_diff.
41043         * optc-save-gen.awk (cl_target_option_print_diff): New function.
41044         (cl_optimization_print_diff): Likewise.
41045         * opth-gen.awk: Likewise.
41046
41047 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
41048
41049         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
41050         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
41051         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
41052         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
41053         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
41054         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
41055
41056 2015-01-13  Andrew Pinski  <apinski@cavium.com>
41057
41058         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
41059         instead of src mode.
41060
41061 2015-01-13  Richard Biener  <rguenther@suse.de>
41062
41063         PR lto/64373
41064         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
41065         DECL_CONTEXT.
41066
41067 2015-01-13  Andrew Pinski  <apinski@cavium.com>
41068
41069         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
41070         volatile mems.
41071         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
41072
41073 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
41074
41075         PR middle-end/63974
41076         * cfgexpand.c (expand_computed_goto): Don't call
41077         convert_memory_address here.
41078
41079 2015-01-13  Richard Biener  <rguenther@suse.de>
41080
41081         PR tree-optimization/64406
41082         * tree-loop-distibution.c (pass_loop_distribution::execute):
41083         Reset the SCEV hashtable if we distributed anything.
41084
41085 2015-01-13  Richard Biener  <rguenther@suse.de>
41086
41087         PR tree-optimization/64404
41088         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
41089         SLP types for CSEd loads.
41090
41091 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41092
41093         PR tree-optimization/64436
41094         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
41095         merge of two symbolic numbers for a bitwise OR to ...
41096         (perform_symbolic_merge): This. Also fix computation of the range and
41097         end of the symbolic number corresponding to the result of a bitwise OR.
41098
41099 2015-01-13  Richard Biener  <rguenther@suse.de>
41100
41101         PR tree-optimization/64568
41102         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
41103         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
41104
41105 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41106
41107         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
41108         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
41109
41110 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41111
41112         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
41113         target-specific symbol_ref flag.
41114         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
41115         resides in rodata section.
41116         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
41117         (nds32_encode_section_info): New function.
41118
41119 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41120
41121         * config/nds32/nds32.md (call): Use pseudo instruction bal which
41122         clobbers TA_REGNUM if large code model is specified.
41123         (call_register): Likewise.
41124         (call_immediate): Likewise.
41125         (call_value): Likewise.
41126         (call_value_register): Likewise.
41127         (call_value_immediate): Likewise.
41128
41129 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41130
41131         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
41132         (TARGET_CMODEL_MEDIUM): New macro.
41133         (TARGET_CMODEL_LARGE): New macro.
41134         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
41135         code model setting in assembly code.
41136
41137 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41138
41139         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
41140         Remove MASK_GP_DIRECT flag.
41141         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
41142         one of the multilib default options.
41143         * config/nds32/nds32.opt (mgp-direct): Remove.
41144         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
41145         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
41146
41147 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
41148
41149         * config/nds32/nds32.opt (mcmodel): Add new option.
41150         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
41151         to describe code model.
41152
41153 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
41154
41155         PR target/64479
41156         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
41157
41158 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
41159
41160         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
41161         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
41162         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
41163         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
41164         __builtin_sh_set_fpscr.
41165
41166 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
41167
41168         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
41169         after a funtion name just to indicate it is a function.
41170         ([-fsanitize-undefined-trap-on-error]): Likewise.
41171         ([-fdbg-cnt=]): Likewise.
41172         ([-mmemcpy]): Likewise.
41173         ([-mflush-func]): Likewise.
41174         ([-msynci]): Likewise.
41175
41176 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
41177
41178         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
41179         example.
41180
41181 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
41182
41183         PR tree-optimization/64563
41184         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
41185         instead of != VR_VARYING.
41186
41187         PR target/64513
41188         * config/i386/i386.c (ix86_expand_prologue): Add
41189         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
41190
41191         PR tree-optimization/64454
41192         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
41193         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
41194         for signed or [0, op1 - 1] for unsigned modulo.
41195         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
41196         even if op1 does not satisfy integer_pow2p.
41197
41198         PR other/64370
41199         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
41200
41201 2015-01-12  Jeff Law  <law@redhat.com>
41202
41203         PR target/64461
41204         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
41205         (trunchiqi2, truncsihi2): Similarly.
41206
41207         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
41208         rather than calling F.
41209
41210 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41211
41212         * tsan.c (instrument_expr): Use force_gimple_operand.
41213         Use may_be_nonaddressable_p instead of is_gimple_addressable.
41214
41215 2015-01-12  Richard Biener  <rguenther@suse.de>
41216
41217         PR tree-optimization/64530
41218         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
41219         back dr1.
41220
41221 2015-01-12  Richard Biener  <rguenther@suse.de>
41222
41223         PR middle-end/64357
41224         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
41225         latches properly.
41226
41227 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41228
41229         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
41230         Cortex-A17 tuning parameters.
41231         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
41232
41233 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41234
41235         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
41236         * config/arm/arm.c (arm_macro_fusion_p): New function.
41237         (arm_macro_fusion_pair_p): Likewise.
41238         (TARGET_SCHED_MACRO_FUSION_P): Define.
41239         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
41240         (ARM_FUSE_NOTHING): Likewise.
41241         (ARM_FUSE_MOVW_MOVT): Likewise.
41242         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
41243         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
41244         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
41245         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
41246         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
41247         arm_cortex_a5_tune): Specify fuseable_ops value.
41248
41249 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
41250
41251         PR bootstrap/64561
41252         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
41253         test for PIE with copy reloc.
41254         * configure: Regenerated.
41255
41256 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41257
41258         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
41259         in gen_rtx_REG.
41260         (arm_tls_descseq_addr): Likewise.
41261         (arm_gen_movmemqi): Likewise.
41262         (arm_expand_epilogue_apcs_frame): Likewise.
41263         (arm_expand_epilogue): Likewise.
41264         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
41265         in gen_rtx_REG.
41266
41267 2015-01-12  Martin Liska  <mliska@suse.cz>
41268
41269         PR ipa/64550
41270         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
41271         volatility for correct operands.
41272
41273 2015-01-12  Martin Liska  <mliska@suse.cz>
41274
41275         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
41276         indication that a function is not leaf.
41277         (sem_function::compare_polymorphic_p): Likewise.
41278
41279 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
41280
41281         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
41282         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
41283         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
41284         fold-const.h, tree-check.h.
41285
41286 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
41287
41288         PR ipa/63967
41289         PR ipa/64425
41290         * ipa-inline.c (compute_uninlined_call_time,
41291         compute_inlined_call_time): Use counts for extra precision when
41292         needed possible.
41293         (big_speedup_p): Fix formating.
41294         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
41295         (relative_time_benefit): Remove.
41296         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
41297         merge guessed and read profile paths.
41298         (inline_small_functions): Count only !optimize_size functions into
41299         initial size; be more lax about sanity check when profile is used;
41300         be sure to update inlined function profile when profile is read.
41301
41302 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
41303
41304         PR ipa/63470
41305         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
41306         cost when edge becomes direct.
41307         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
41308         is resolved or when introducing new speculation.
41309
41310 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
41311
41312         PR ipa/64551
41313         PR ipa/64552
41314         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
41315         '||' to fix typo issue.
41316
41317         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
41318         accept and return NULL.
41319
41320 2015-01-12  Martin Liska  <mliska@suse.cz>
41321
41322         * cgraph.c (cgraph_edge::remove_callee): Move function to header
41323         file for being inlined.
41324         (cgraph_set_edge_callee): Delete.
41325         (cgraph_edge::redirect_callee): Move function to header file
41326         for being inlined.
41327         (cgraph_edge::make_direct): Use new function.
41328         (cgraph_edge::dump_edge_flags): New function created from
41329         static dump_edge_flags function.
41330         (cgraph_node::dump): Use new function.
41331         (cgraph_edge::verify_count_and_frequency): New function created
41332         from verify_edge_count_and_frequency.
41333         (cgraph_edge::verify_corresponds_to_fndecl): New function created
41334         from verify_edge_corresponds_to_fndecl.
41335         (verify_edge_corresponds_to_fndecl): Delete.
41336         (cgraph_node::verify_node): Use new function.
41337         * cgraph.h (cgraph_edge::set_callee): New function.
41338         (cgraph_edge::dump_edge_flags): Likewise.
41339         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
41340
41341 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
41342
41343         * ipa-utils.c (estimate_function_body_sizes): Do not
41344         free node params when called late with early=true.
41345
41346 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
41347
41348         * doc/md.texi (Instruction Patterns): Rewrite text for
41349         clarity.
41350         (Example): Likewise.
41351
41352 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
41353
41354         * doc/invoke.texi (Option Summary): Break long lines.
41355         [(-fdiagnostics-color)]: Put long literal in @smallexample
41356         instead of inline.
41357         [(-fsanitize-recover)]: Likewise.
41358         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
41359         [(-ffast-math)]: Likewise.
41360         [(--param max-inline-insns-recursive)]: Likewise.
41361         [(--param max-inline-recursive-depth)]: Likewise.
41362         [(-mno-text-section-literals)]: Likewise.
41363
41364 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
41365
41366         * doc/install.texi: Update for libgomp being renamed from "GNU
41367         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
41368         Runtime Library".
41369         * doc/sourcebuild.texi: Likewise.
41370
41371 2015-01-10  Anthony Green  <green@moxielogic.com>
41372
41373         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
41374         mul.x availability for moxiebox configuration.
41375
41376 2015-01-09  Anthony Green  <green@moxielogic.com>
41377
41378         * config/moxie/moxie.md: Tabify assembly output.
41379
41380 2015-01-09  Anthony Green  <green@moxielogic.com>
41381
41382         * config/moxie/moxie.md (CC_REG): Correct register definition.
41383
41384 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
41385
41386         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
41387         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
41388         of log files.
41389
41390 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41391
41392         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
41393
41394 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
41395             Jakub Jelinek  <jakub@redhat.com>
41396
41397         PR middle-end/64412
41398         * lto-streamer.h (lto_stream_offload_p): New declaration.
41399         * lto-streamer.c (lto_stream_offload_p): New variable.
41400         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
41401         at the same time as section_name_prefix.
41402         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
41403         if lto_stream_offload_p.
41404         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
41405         stream TREE_TARGET_OPTION if lto_stream_offload_p.
41406         (write_ts_function_decl_tree_pointers): Don't
41407         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
41408         * tree-streamer-in.c (unpack_value_fields): Don't stream
41409         TREE_TARGET_OPTION in if ACCEL_COMPILER.
41410         (lto_input_ts_function_decl_tree_pointers): Don't stream
41411         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
41412         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
41413         instead of section_name_prefix string comparisons.
41414
41415 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
41416
41417         PR rtl-optimization/64536
41418         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
41419         tablejumps.
41420
41421 2015-01-09  Michael Collison  <michael.collison@linaro.org>
41422
41423         PR tree-optimization/64322
41424         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
41425         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
41426
41427 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41428
41429         PR rtl-optimization/64539
41430         * regcprop.c (kill_clobbered_values): Factor out of ...
41431         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
41432         instead of note_stores with kill_clobbered_value.
41433
41434 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41435
41436          * ginclude/unwind-arm-common.h: Revert previous commit.
41437
41438 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41439
41440         * config.gcc (arm*-*-freebsd*): New configuration.
41441         * config/arm/freebsd.h: New file.
41442         * config.host: Add extra components for arm*-*-freebsd*.
41443         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
41444         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
41445
41446 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41447
41448         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
41449         for -mcpu=e6500.
41450         * config/rs6000/t-rtems: Add e6500 multilibs.
41451
41452 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41453
41454         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
41455         MPC8540.
41456
41457 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41458
41459         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
41460         MULTILIB_EXCEPTIONS.
41461
41462 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41463
41464         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
41465         MULTILIB_EXCEPTIONS.
41466
41467 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41468
41469         * config/arm/t-rtems-eabi: Rename to...
41470         * config/arm/t-rtems: ...this.
41471         * config/arm/rtems-eabi.h: Rename to...
41472         * config/arm/rtems.h: ...this.
41473         * config.gcc (arm*-*-rtems*): Reflect changes above.
41474
41475 2015-01-09  Richard Biener  <rguenther@suse.de>
41476
41477         PR tree-optimization/64410
41478         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
41479         on the LHS.
41480         (execute_update_addresses_taken): Deal with that.
41481         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
41482         loads/stores for complex variables.
41483
41484 2015-01-09  Martin Liska  <mliska@suse.cz>
41485
41486         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
41487         name comparison.
41488         (func_checker::compare_memory_operand): New function.
41489         (func_checker::compare_operand): Split case to newly
41490         added functions.
41491         (func_checker::compare_cst_or_decl): New function.
41492         (func_checker::compare_gimple_call): Identify
41493         memory operands.
41494         (func_checker::compare_gimple_assign): Likewise.
41495         * ipa-icf-gimple.h: New function.
41496
41497 2015-01-09  Martin Liska  <mliska@suse.cz>
41498
41499         PR ipa/64503
41500         * sreal.c (sreal::dump): Change unsigned format to signed for
41501         m_exp value.
41502         (sreal::to_double): Replace exp2 with scalbln.
41503
41504 2015-01-09  Martin Liska  <mliska@suse.cz>
41505
41506         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
41507         * ipa-icf.c (sem_function::equals_private): Add support for target and
41508         (sem_item_optimizer::merge_classes): Remove redundant function
41509         optimization flags comparison.
41510         * tree.h (target_opts_for_fn): New function.
41511
41512 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41513
41514         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
41515
41516 2015-01-09  Kito Cheng  <kito@0xlab.org>
41517
41518         PR rtl-optimization/64348
41519         * lra-constraints.c (split_reg): Fix caller-save store/restore
41520         instruction generation.
41521
41522 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
41523
41524         PR gcov-profile/61790
41525         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
41526         long long.  Fallback to int64_t if host doesn't have long long and
41527         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
41528
41529 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41530
41531         PR tree-optimization/63989
41532         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
41533         from 1000 to 10000.
41534         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
41535         (get_stridx): If we don't have a record for certain SSA_NAME,
41536         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
41537         constant offset, call get_stridx_plus_constant.
41538         (get_stridx_plus_constant): New function.
41539         (zero_length_string): Don't use get_stridx here.
41540
41541         PR target/55023
41542         PR middle-end/64388
41543         * dse.c (struct insn_info): Mention frame_read set also
41544         before reload for tail calls on some targets.
41545         (scan_insn): Revert 2014-12-22 change.  Set frame_read
41546         also before reload for tail calls if
41547         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
41548         instead of add_non_frame_wild_read for non-const/memset
41549         tail calls after reload.
41550
41551 2015-01-08  Jason Merrill  <jason@redhat.com>
41552
41553         * ubsan.c (do_ubsan_in_current_function): New.
41554         (pass_ubsan::gate): Use it.
41555         * ubsan.h: Declare it.
41556         * convert.c (convert_to_integer): Use it.
41557
41558 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41559
41560         PR target/64338
41561         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
41562         compare_code when it is unconditionally overwritten afterwards.
41563         Use ix86_reverse_condition instead of reverse_condition.  Don't
41564         change code if *reverse_condition* returned UNKNOWN and don't
41565         swap ct/cf and negate diff in that case.
41566
41567 2015-01-08  Mike Stump  <mikestump@comcast.net>
41568
41569         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
41570         (pass_tsan_O0::gate): Likewise.
41571         * extend.texi (Function Attributes): Add no_sanitize_thread
41572         documentation.
41573
41574 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
41575
41576         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
41577         for registering builtins.
41578         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
41579         add -fopenmp to the argv_obstack used when invoking
41580         compile_for_target.
41581
41582         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
41583         add "-m32" or "-m64" to argv_obstack.
41584         (generate_host_descr_file): Likewise, when invoking host_compiler.
41585         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
41586         ld.
41587
41588 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41589
41590         * config/sh/sh-mem.cc: Use constant as second operand when emitting
41591         tstsi_t insns.
41592
41593 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41594
41595         PR target/55212
41596         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
41597         constant load if constant operand fits into I08.
41598
41599 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41600
41601         PR sanitizer/64336
41602         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
41603         and TREE_THIS_VOLATILE for MEM_REFs.
41604         (build5_stat): Fix up initialization of TREE_READONLY and
41605         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
41606
41607 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
41608
41609         PR target/64533
41610         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
41611         of r for the second alternative of the destination operand.
41612
41613 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
41614
41615         PR target/36557
41616         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
41617
41618 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41619
41620         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
41621         keywords.
41622         ([-fivar-visibility], [-fvisibility]): Likewise.
41623
41624 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41625
41626         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
41627         the file where @code, @command, etc is more appropriate.
41628
41629 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
41630
41631         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
41632         of -mrecip= documentation.
41633
41634 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
41635
41636         PR target/64505
41637         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
41638         correct reload handler if -m32 -mpowerpc64 is used.
41639
41640 2015-01-06  Tom de Vries  <tom@codesourcery.com>
41641
41642         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
41643
41644 2015-01-08  Christian Bruel  <christian.bruel@st.com>
41645
41646         PR target/64507
41647         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
41648
41649 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41650
41651         PR tree-optimization/63259
41652         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
41653         if optab exists for 16bit byteswap.
41654
41655 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
41656
41657         * opts.c (common_handle_option): Add support for
41658         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
41659         * doc/invoke.texi: Document -fno-sanitize=all,
41660         -f{,no-}sanitize-recover=all.  Document that
41661         -fsanitize=float-cast-overflow is not enabled
41662         by -fsanitize=undefined.  Fix up documentation
41663         of -f{,no-}sanitize-recover.
41664
41665 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
41666
41667         * config.gcc: Add Visium support.
41668         * configure.ac: Likewise.
41669         * configure: Regenerate.
41670         * doc/extend.texi (interrupt attribute): Add Visium.
41671         * doc/invoke.texi: Document Visium options.
41672         * doc/install.texi: Document Visium target.
41673         * doc/md.texi: Document Visium constraints.
41674         * common/config/visium: New directory.
41675         * config/visium: Likewise.
41676
41677 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41678
41679         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
41680         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
41681
41682 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41683
41684         * combine.c (combine_validate_cost): Do not count the cost of a
41685         split I2 twice.  Do not display it twice in the dump, either.
41686
41687 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41688
41689         Revert parts of r219199.
41690         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
41691         <inttypes.h>.
41692         ([-Wtraditional]): Restore markup on <limits.h>.
41693
41694 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
41695
41696         PR c++/31397
41697         * doc/invoke.texi: Document -Wsuggest-override.
41698
41699 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
41700
41701         PR rtl-optimization/64287
41702         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
41703         (process_options): Disable flag_ipa_ra if profiling.
41704
41705 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41706
41707         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
41708
41709 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
41710
41711         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
41712         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
41713         put under #if TARGET_LOOPS guard.
41714
41715 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
41716
41717         * config/i386/i386.c (output_387_binary_op): Use std::swap.
41718
41719 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
41720
41721         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
41722         * rtl.h (refers_to_regno_p): Add overload.
41723         * cse.c: Use it.
41724         * bt-load.c: Likewise.
41725         * combine.c: Likewise.
41726         * df-scan.c: Likewise.
41727         * sched-deps.c: Likewise.
41728         * config/s390/s390.c: Likewise.
41729         * config/m32r/m32r.c: Likewise.
41730         * config/rs6000/spe.md: Likewise.
41731         * config/rs6000/rs6000.c: Likewise.
41732         * config/pa/pa.c: Likewise.
41733         * config/stormy16/stormy16.c: Likewise.
41734         * config/cris/cris.c: Likewise.
41735         * config/arc/arc.md: Likewise.
41736         * config/arc/arc.c: Likewise.
41737         * config/sh/sh.md: Likewise.
41738         * config/sh/sh.c: Likewise.
41739         * config/frv/frv.c: Likewise.
41740
41741 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41742
41743         PR sanitizer/64265
41744         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
41745         call as cleanup of the whole body.
41746         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
41747         * tsan.c (replace_func_exit): New function.
41748         (instrument_func_exit): Moved earlier.
41749         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
41750         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
41751         been found.
41752         (tsan_pass): Don't call instrument_func_exit.
41753         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
41754         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
41755         inlining.
41756
41757         PR sanitizer/64344
41758         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
41759         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
41760         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
41761         if the result is integer_zerop, return NULL_TREE.
41762         * convert.c (convert_to_integer): Pass expr as ARG.
41763
41764         PR tree-optimization/64465
41765         * tree-inline.c (redirect_all_calls): During inlining
41766         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
41767         changed the stmt to a non-throwing call.
41768
41769 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41770
41771         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
41772         etc markup throughout the file.
41773
41774 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41775
41776         Enable experimental TSAN support for Ada.
41777         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
41778
41779 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41780
41781         PR tree-optimization/64494
41782         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
41783         clear SSA_NAME_ANTI_RANGE_P flag.
41784
41785 2015-01-05  Marek Polacek  <polacek@redhat.com>
41786
41787         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
41788
41789 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41790
41791         Update copyright years.
41792
41793         * gcc.c (process_command): Update copyright notice dates.
41794         * gcov-dump.c: Ditto.
41795         * gcov.c: Ditto.
41796         * doc/cpp.texi: Bump @copying's copyright year.
41797         * doc/cppinternals.texi: Ditto.
41798         * doc/gcc.texi: Ditto.
41799         * doc/gccint.texi: Ditto.
41800         * doc/gcov.texi: Ditto.
41801         * doc/install.texi: Ditto.
41802         * doc/invoke.texi: Ditto.
41803
41804         * auto-profile.c, auto-profile.h: Fix up Copyright line.
41805
41806 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
41807
41808         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
41809         verb tense, etc.
41810         ([-fvtable-verify], [-fvtv-debug]): Likewise.
41811         ([-Wabi]): Likewise.
41812         ([-fmessage-length]): Likewise.
41813         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
41814         ([-Wno-discarded-qualifiers]): Likewise.
41815         ([-Wnodiscarded-array-qualifiers]): Likewise.
41816         ([-Wno-virtual-move-assign]): Likewise.
41817         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
41818         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
41819         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
41820         ([-fsanitize-undefined-trap-on-error]): Likewise.
41821         ([-floop-interchange]): Likewise.
41822         ([-ftree-coalesce-inlined-vars]): Likewise.
41823         ([-fvect-cost-model]): Likewise.
41824         ([-flto]): Likewise.
41825         ([--param]): Likewise.
41826         (Spec Files): Likewise.
41827         ([-mstrict-align]): Likewise.
41828         ([-mfix-cortex-a53-835769]): Likewise.
41829         ([-march], [-mtune]): Likewise.
41830         ([-mpic-register]): Likewise.
41831         ([-munaligned-access]): Likewise.
41832         ([-msp8]): Likewise.
41833         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
41834         (AVR Built-in Macros): Likewise.
41835         ([-mpreferred-stack-boundary]): Likewise.
41836         ([-mtune-crtl]): Likewise.
41837         ([-mashf]): Likewise.
41838         ([-mmcu=]): Likewise.
41839         ([-minrt]): Likewise.
41840         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
41841         ([-mupper-regs]): Likewise.
41842         ([-matomic-model]): Likewise.
41843         ([-mdiv]): Likewise.
41844         ([-mzdcbranch]): Likewise.
41845         ([-mdisable-callt]): Likewise.
41846         ([-msoft-float]): Likewise.
41847         ([-m8byte-align]): Likewise.
41848         ([-fstack-reuse]): Likewise.
41849
41850 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41851
41852         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
41853         Fix markup, light copy-editing.
41854         ([-fauto-profile]): Rewrite to fix formatting and content
41855         problems.
41856
41857 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41858
41859         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
41860         Copy-edit description.
41861         ([-fisolate-erroneous-paths-attribute]): Likewise.
41862         * common.opt (fisolate-erroneous-paths-dereference):
41863         Copy-edit description.
41864         (fisolate-erroneous-paths-attribute): Likewise.
41865
41866 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41867
41868         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
41869         tidy grammar.
41870
41871 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41872
41873         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
41874         ([-fvtv-debug]): Likewise.
41875         ([-Wc++-compat]): Likewise.
41876         ([-Wc++11-compat]): Likewise.
41877         ([-Wc++14-compat]): Likewise.
41878         ([-Wno-sized-deallocation]): Likewise.
41879         ([-femit-class-debug-always]): Likewise.
41880         ([-femit-struct-debug-detailed]): Likewise.
41881         ([-fno-keep-inline-dllexport]): Likewise.
41882         ([-fira-algorithm]): Likewise.
41883         ([-fira-region]): Likewise.
41884         ([-flra-remat]): Likewise.
41885         ([-fipa-ra]): Likewise.
41886         ([-fhoist-adjacent-loads]): Likewise.
41887         ([-fisolate-erroneous-paths-dereference]): Likewise.
41888         ([-fisolate-erroneous-paths-attribute]): Likewise.
41889         ([-ftree-switch-conversion]): Likewise.
41890         ([-ftree-tail-merge]): Likewise.
41891         ([-ftree-loop-if-convert]): Likewise.
41892         ([-ftree-loop-if-convert-stores]): Likewise.
41893         ([-ftree-loop-distribution]): Likewise.
41894         ([-ftree-loop-distribute-patterns]): Likewise.
41895         ([-flto-compression-level]): Likewise.
41896         ([-flto-report]): Likewise.
41897         ([-flto-report-wpa]): Likewise.
41898         ([-fuse-linker-plugin]): Likewise.
41899         ([-mfix-cortex-a53-835769]): Likewise.
41900         ([-mno-fix-cortex-a53-835769]): Likewise.
41901         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
41902         explicit listing; add a note to the discussion indicating they
41903         exist.  Reorder table to group similar options.  Add missing
41904         @opindex entries.  Add @need commands throughout the table to
41905         allow it to be split across multiple pages.
41906         ([-m8bit-idiv]): Fix @opindex.
41907         ([-mavx256-split-unaligned-load]): Likewise.
41908         ([-mavx256-split-unaligned-store]): Likewise.
41909         ([-mstack-protector-guard]): Likewise.
41910         ([-mcpu=]): Likewise.
41911         ([-mcpu]): Likewise.
41912         ([-mpointer-size=]): Likewise.
41913
41914 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
41915
41916         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
41917         instead of `m' constraint.  Likewise for unnamed movb comparison
41918         patterns using reg_before_reload_operand predicate.
41919         * config/pa/predicates.md (reg_before_reload_operand): Tighten
41920         predicate to reject register index and LO_SUM DLT memory forms
41921         after reload.
41922
41923 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41924
41925         * doc/invoke.texi (Option Summary): Fix spelling of
41926         -fdevirtualize-at-ltrans.
41927         ([-fdevirtualize]): Fix markup.
41928         ([-fdevirtualize-speculatively]): Fix typo.
41929         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
41930         implementor-speaky.
41931         * common.opt (fdevirtualize-at-ltrans): Likewise.
41932         * ipa-devirt.c: Fix typos in comments throughout the file.
41933         (ipa_devirt): Fix typos in format strings for dump output.
41934
41935 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41936
41937         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
41938         discussion of defaults, light copy-editing.
41939
41940 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41941
41942         * tsan.c (instrument_expr): corrected previous checkin.
41943
41944 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41945
41946         Instrument bit field and unaligned accesses for TSAN.
41947         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
41948         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
41949         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
41950         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
41951         unaligned memory regions.
41952
41953 2015-01-01  Anthony Green  <green@moxielogic.com>
41954
41955         * config/moxie/predicates.md (moxie_general_movsrc_operand):
41956         Restrict move source register offsets to 16 bits.
41957 \f
41958 Copyright (C) 2015 Free Software Foundation, Inc.
41959
41960 Copying and distribution of this file, with or without modification,
41961 are permitted in any medium without royalty provided the copyright
41962 notice and this notice are preserved.