b7e853d061df863e605349c5568f1d63f1c88933
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
2
3         PR tree-optimization/68432
4         * coretypes.h (optimization_type): New enum.
5         * doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
6         * doc/tm.texi: Regenerate.
7         * target.def (optab_supported_p): New hook.
8         * targhooks.h (default_optab_supported_p): Declare.
9         * targhooks.c (default_optab_supported_p): New function.
10         * predict.h (function_optimization_type): Declare.
11         (bb_optimization_type): Likewise.
12         * predict.c (function_optimization_type): New function.
13         (bb_optimization_type): Likewise.
14         * optabs-query.h (convert_optab_handler): Define an overload
15         that takes an optimization type.
16         (direct_optab_handler): Likewise.
17         * optabs-query.c (convert_optab_handler): Likewise.
18         (direct_optab_handler): Likewise.
19         * internal-fn.h (direct_internal_fn_supported_p): Take an
20         optimization_type argument.
21         * internal-fn.c (direct_optab_supported_p): Likewise.
22         (multi_vector_optab_supported_p): Likewise.
23         (direct_internal_fn_supported_p): Likewise.
24         * builtins.c (replacement_internal_fn): Update call to
25         direct_internal_fn_supported_p.
26         * gimple-match-head.c (build_call_internal): Likewise.
27         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
28         * tree-vect-stmts.c (vectorizable_internal_function): Likewise.
29         * tree.c (maybe_build_call_expr_loc): Likewise.
30         * config/i386/i386.c (ix86_optab_supported_p): New function.
31         (TARGET_OPTAB_SUPPORTED_P): Define.
32         * config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
33         (asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
34         (expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
35         (exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
36         (scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
37         (<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.
38
39 2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
40
41         * Makefile.in (GENSUPPORT_H): New macro.
42         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
43         (build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
44         (build/gencodes.o, build/genconditions.o, build/genconfig.o)
45         (build/genconstants.o, build/genextract.o, build/genflags.o)
46         (build/gentarget-def.o): Use it.
47         (build/genemit.o): Likewise.  Depend on internal-fn.def.
48         * genopinit.c: Move block comment to optabs.def.
49         (optab_tag, optab_def): Move to gensupport.h
50         (pattern): Likewise, renaming to optab_pattern.
51         (match_pattern): Move to gensupport.c
52         (gen_insn): Use find_optab.
53         (patterns, pattern_cmp): Replace pattern with optab_pattern.
54         (main): Likewise.  Use num_optabs.
55         * optabs.def: Add comment that was previously in genopinit.c.
56         * gensupport.h (optab_tag): Moved from genopinit.c
57         (optab_def): Likewise, expanding commentary.
58         (optab_pattern): Likewise, after renaming from pattern.
59         (optabs, num_optabs, find_optab): Declare.
60         * gensupport.c (optabs): Moved from genopinit.c.
61         (num_optabs): New variable.
62         (match_pattern): Moved from genopinit.c.
63         (find_optab): New function, extracted from genopinit.c:gen_insn.
64         * genemit.c (nofail_optabs): New variable.
65         (emit_c_code): New function.
66         (gen_expand): Check whether the instruction is an optab that isn't
67         allowed to fail.  Call emit_c_code.
68         (gen_split): Call emit_c_code here too.
69         (main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.
70
71 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
72
73         * config/s390/predicates.md (const_mask_operand): New predicate.
74         * config/s390/s390-builtins.def: Set a smaller bitmask for a few builtins.
75         * config/s390/vector.md: Change predicate from immediate_operand
76         to either const_int_operand or const_mask_operand.  Add special
77         insn conditions on patterns which have to exclude certain values.
78         * config/s390/vx-builtins.md: Likewise.
79
80 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
81
82         * config/s390/vector.md ("*vec_set<mode>"): Change shift count
83         mode from DI to SI.
84
85 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
86
87         * config/s390/s390-builtin-types.def: New builtin types added.
88         * config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
89         * config/s390/s390.c (s390_expand_builtin): Always truncate
90         constants to the mode in the pattern.
91         * config/s390/vecintrin.h: Let the vec_splat_* macros point to the
92         respective builtin __builtin_s390_vec_splat_*.
93
94 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
95
96         * config/s390/s390-builtin-types.def: Sort builtin types.
97
98 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
99
100         * config/s390/s390-c.c (s390_get_vstring_flags): Invert the
101         condition for the RT flag.
102
103 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
104
105         * config/s390/constraints.md ("jKK"): New constraint.
106         * config/s390/s390.c (tm-constrs.h): Include for
107         satisfies_constraint_*.
108         (s390_legitimate_constant_p): Allow jKK constants.  Use
109         satisfies_constraint_* also for the others.
110         (legitimate_reload_vector_constant_p): Likewise.
111         (print_operand): Allow h output modifier on vectors.
112         * config/s390/vector.md ("mov<mode>"): Add vrepi.
113
114 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
115
116         * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
117         latter I->K.
118
119 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
120
121         * config/s390/s390.md ("bswap<mode>2"): Add support for strv and
122         strvg.
123         ("bswaphi2"): New pattern.
124         New splitter for HI reg-reg bswap.
125
126 2015-11-27  Jiri Engelthaler  <engycz@gmail.com>
127
128         PR driver/68029
129         * opts-common.c (prune_options): Don't ignore -fdiagnostics-color 
130         if it is the first parameter.
131
132 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
133
134         PR tree-optimization/68577
135         * tree-vect-stmts.c (simple_integer_narrowing): New function.
136         (vectorizable_call): Restrict internal function handling
137         to NONE and NARROW cases, using simple_integer_narrowing
138         to test for the latter.  Add cost of narrowing operation
139         and insert it where necessary.
140
141 2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
142
143         * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
144         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
145         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
146
147 2015-12-01  Nathan Sidwell  <nathan@acm.org>
148
149         * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
150         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
151         ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
152         * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
153         (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
154         (init_output_initializer): Call write_var_marker.
155         (nvptx_output_aligned_decl): New.
156         (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
157
158 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
159
160         * c-common.c (parse_optimize_options): Do not silently ignore
161         -fstrict-aliasing changes.
162
163 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
164
165         * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
166         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
167         stream TYPE_ALIAS_SET.
168         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
169         stream TYPE_ALIAS_SET.
170
171 2015-12-01  Nathan Sidwell  <nathan@acm.org>
172
173         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
174         consider mode.
175
176 2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
177
178         * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
179         indirection for large and small code models.
180         (adjust_vperm): Likewise.
181
182 2015-12-01  Julian Brown  <julian@codesourcery.com>
183             Cesar Philippidis  <cesar@codesourcery.com>
184             James Norris  <James_Norris@mentor.com>
185
186         * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
187         support.
188         * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
189         (is_gimple_omp_oacc): Add support for above.
190         * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
191         (omp_notice_variable): Diagnose undefined implicit uses of
192         use_device variables in offloaded regions.
193         (gimplify_scan_omp_clauses): Add host_data, use_device
194         support. Diagnose undefined mapping of use_device variables in
195         OpenACC clauses.
196         (gimplify_omp_workshare): Add host_data support.
197         (gimplify_expr): Likewise.
198         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
199         * omp-low.c (lookup_decl_in_outer_ctx)
200         (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
201         host_data regions.
202         (scan_sharing_clauses): Support use_device.
203         (check_omp_nesting_restrictions): Support host_data.
204         (expand_omp_target): Support host_data.
205         (lower_omp_target): Skip over outer host_data regions when looking
206         up decls. Support use_device.
207         (make_gimple_omp_edges): Support host_data.
208         * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
209         clause.
210
211 2015-12-01  Marek Polacek  <polacek@redhat.com>
212
213         PR middle-end/68582
214         * cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
215         for VAR_DECLs.
216
217 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
218
219         PR tree-optimization/68474
220         * tree-call-cdce.c (use_internal_fn): Protect call to
221         gen_shrink_wrap_conditions.
222
223 2015-12-01  Christian Bruel  <christian.bruel@st.com>
224
225         PR target/68617
226         * config/arm/arm.opt (unaligned_access): Save.
227         * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
228         * config/arm/arm.c (arm_option_override): Move unaligned_access setting
229         (arm_option_override_internal): ... here.
230         * config/arm/arm.h (TARGET_32BIT_P): New macro.
231
232 2015-12-01  Richard Biener  <rguenther@suse.de>
233
234         PR tree-optimization/68379
235         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
236         always base loads on the first used DR of a group.
237         * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
238         Compute alignment of the first scalar element unconditionally.
239
240 2015-12-01  Richard Biener  <rguenther@suse.de>
241
242         PR middle-end/68590
243         * genmatch.c (struct capture_info): Add match_use_count.
244         (capture_info::walk_match): Increment match_use_count.
245         (dt_simplify::gen_1): For GENERIC, only wrap multi-use
246         replacements in a save_expr if they occur more often than
247         in the original expression.
248
249 2015-12-01  Richard Biener  <rguenther@suse.de>
250
251         PR ipa/68470
252         * ipa-split.c (split_function): Handle main part not returning.
253
254 2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
255
256         PR middle-end/68595
257         * tree-vect-stmts.c (vect_init_vector): Cast boolean
258         scalars to a proper value before building a vector.
259
260 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
261
262         * genattrtab.c (check_attr_test): Take an attr_desc instead of
263         an is_const flag.  Put the file_location argument first.
264         Update recursive calls.  Improve error messages.
265         (check_attr_value): Take a file location and use it instead
266         of attr->loc.  Improve error messages.  Update calls to
267         check_attr_test.
268         (check_defs): Update call to check_attr_value.
269         (make_canonical): Likewise.
270         (gen_attr): Likewise.
271         (main): Likewise.
272         (gen_insn_reserv): Update call to check_attr_test.
273
274 2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
275
276         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
277
278 2015-12-01  Richard Biener  <rguenther@suse.de>
279
280         PR middle-end/68590
281         * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
282
283 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
284
285         * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
286         odr_type_p): Move to ...
287         * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
288         odr_type_p): here; miscro-optimize.
289
290 2015-12-01  Bin Cheng  <bin.cheng@arm.com>
291
292         PR tree-optimization/68529
293         * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
294         Compute no-overflow information for control iv.
295         (number_of_iterations_lt, number_of_iterations_le): Add new param.
296         (number_of_iterations_cond): Pass new argument to above functions.
297
298 2015-11-30  Jan Hubicka  <hubicka@ucw.cz>
299
300         * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
301         inlining -fno-strict-aliasing into -fstrict-aliasing body.
302
303 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
304             Sebastian Pop  <s.pop@samsung.com>
305
306         PR tree-optimization/68565
307         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
308         codegen_error.  Fail when rhs of division operations is integer_zerop.
309         (ternary_op_to_tree): Early return on codegen_error.
310         (unary_op_to_tree): Same.
311         (nary_op_to_tree): Same.
312         (gcc_expression_from_isl_expr_op): Same.
313         (gcc_expression_from_isl_expression): Same.
314         (graphite_create_new_loop): On codegen_error continue generating
315         wrong code.
316         (graphite_create_new_loop_guard): Same.
317         (build_iv_mapping): Same.
318         (graphite_create_new_guard): Same.
319
320 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
321             Sebastian Pop  <s.pop@samsung.com>
322
323         * graphite-isl-ast-to-gimple.c: Fix dump messages.
324         * graphite-scop-detection.c: Same.
325         * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
326
327 2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
328
329         * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
330         OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
331         (convert_local_omp_clauses): Likewise.
332
333 2015-11-30  Tom de Vries  <tom@codesourcery.com>
334
335         PR tree-optimization/46032
336         * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
337         factored out of ...
338         (find_func_aliases_for_call): ... here.
339         (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
340         BUILT_IN_GOMP_PARALLEL.
341         (ipa_pta_execute): Same.  Handle node->parallelized_function as a local
342         function.
343
344 2015-11-30  Jakub Jelinek  <jakub@redhat.com>
345
346         PR tree-optimization/68501
347         * target.def (builtin_reciprocal): Replace the 3 arguments with
348         a gcall * one, adjust description.
349         * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
350         with a gcall * one.
351         * targhooks.c (default_builtin_reciprocal): Likewise.
352         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
353         targetm.builtin_reciprocal even on internal functions, adjust
354         the arguments and allow replacing an internal function with normal
355         built-in.
356         * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
357         with a gcall * one.  Handle internal fns too.
358         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
359         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
360         * doc/tm.texi (builtin_reciprocal): Document.
361
362 2015-11-30  Richard Biener  <rguenther@suse.de>
363
364         PR tree-optimization/68592
365         * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
366         on the pattern def sequence.
367
368 2015-11-30  Nathan Sidwell  <nathan@acm.org>
369
370         * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
371         (write_one_arg): Reorder parms, add 'sep' param.
372         (nvptx_write_function_decl): Rename to ...
373         (write_fn_proto): ... here.  Do name replacement. Emit linaer
374         comment marker. Deal with both decls and defns. Simplify argument
375         formatting.
376         (write_function_decl_and_comment): Delete.
377         (write_func_decl_from_insn): Rename to ...
378         (write_fn_proto_from_insn): ... here.  Don't do name replacement.
379         (nvptx_record_fndecl): Call write_fn_proto.
380         (nvptx_record_libfunc): Call write_fn_proto_from_insn.
381         (nvptx_declare_function_name): Adjust for write_fn_proto changes.
382         (nvotx_output_call_insn): Call write_fn_prot_from_insn.
383
384 2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>
385
386         * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
387         (define_insn "*k<logic><mode>"): Use new iterator.
388
389 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
390
391         PR target/28115
392         * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
393         (sparc_adjust_cost): Add missing space.
394
395 2015-11-30  Richard Biener  <rguenther@suse.de>
396
397         PR c/68162
398         * dwarf2out.c (gen_type_die_with_usage): Keep variant types
399         of arrays.
400
401 2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
402
403         * tree-if-conv.c (struct ifc_dr): Add new tree
404         base_predicate field.
405         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
406         base ref, DR pairs and store base_predicate for write type DRs.
407         (ifcvt_memrefs_wont_trap): Guard checks with
408         -ftree-loop-if-convert-stores flag.
409
410 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
411
412         * cgraph.c (cgraph_node::make_local): No name is unique during
413         incremental linking.
414         * cgraph.h (can_be_discarded_p): Update comment; also common and
415         WEAK in named sections can be discarded; when doing incremental
416         link do not rely on resolution being the final one.
417         * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
418         When symbol can be discarded, do not rely on resolution info.
419         * symtab.c (symtab_node::nonzero_address): Take into account that
420         symbol can be discarded.
421         * ipa-visibility.c (update_visibility_by_resolution_info): Handle
422         definition correctly.
423         (function_and_variable_visibility): Do not set unique_name when
424         incrementally linking.
425
426 2015-11-29  Nathan Sidwell  <nathan@acm.org>
427
428         * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
429         const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
430         (ctrap<mode>): Use const0_operand.
431
432 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
433
434         * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
435         dump
436
437 2015-11-29  David Edelsohn  <dje.gcc@gmail.com>
438
439         PR target/28115
440         * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
441         recog_memoized test for insn and check recog_memoized for dep_insn.
442
443 2015-11-28  Nathan Sidwell  <nathan@acm.org>
444
445         * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
446         (FRAME_POINTER_CFA_OFFSET): Define.
447         (struct nvptx_args): Use 'tree' type.
448         (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
449
450 2015-11-28  Tom de Vries  <tom@codesourcery.com>
451
452         * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
453
454 2015-11-27  Jonathan Wakely  <jwakely@redhat.com>
455
456         * doc/invoke.texi (Option Summary): Use negative form of
457         -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
458         sort alphabetically and re-justify.
459
460 2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>
461
462         PR rtl-optimization/68536
463         * lra.c (lra_emit_add): Add code for null base.
464         * lra-constraints.c (curr_insn_transform): Skip operators for
465         subreg reloads.
466
467 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
468
469         Revert
470         2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
471
472         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
473         multiple_sets.
474         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
475         are not modified by the final modified insns in the basic blocks.
476
477 2015-11-27  Nathan Sidwell  <nathan@acm.org>
478
479         * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
480         Don't declare.
481         * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
482         (nvptx_maybe_convert_symbolic_operand): Simplify.
483         (nvptx_addr_space_from_address): Delete.
484         (nvptx_print_operand): Adjust 'A' case.
485
486 2015-11-27  Richard Biener  <rguenther@suse.de>
487
488         PR tree-optimization/68559
489         * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
490         peeling for gap checks ...
491         * tree-vect-stmts.c (vectorizable_load): ... here and relax
492         for SLP.
493         * tree-vect-loop.c (vect_analyze_loop_2): Re-set
494         LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
495
496 2015-11-27  Nathan Sidwell  <nathan@acm.org>
497
498         * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
499         declare.
500         * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
501         (nvptx_record_fndecl): Don't return value, remove force
502         argument. Require fndecl.
503         (nvptx_record_libfunc): New.
504         (nvptx_record_needed_decl): Deteermine how to record decl here.
505         (nvptx_maybe_record_fnsym): New.
506         (nvptx_expand_call): Don't record libfuncs here,
507         (nvptx_maybe_convert_symbolic_operand): Use
508         nvptx_maye_record_fnsym.
509         (nvptx_assemble_integer): Reimplement with single switch.
510         (nvptx_output_call_insn): Register libfuncs here.
511         (nvptx_file_end): Adjust  nvptx_record_fndecl call.
512         * config/nvptx/nvptx.md (expand_movdi): Don't call
513         nvptx_record_needed_decl.
514
515 2015-11-27  Richard Biener  <rguenther@suse.de>
516
517         PR tree-optimization/68553
518         * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
519         generation for 1:1 permutations.
520         (vect_transform_slp_perm_load): Detect 1:1 permutations.
521
522 2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>
523
524         * gimple.h (nonbarrier_call_p): Declare.
525         * gimple.c (nonbarrier_call_p): New function.
526         * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
527         Also increment call phase for ASMs with vdef and potential barrier
528         calls.
529
530 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
531
532         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
533         multiple_sets.
534         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
535         are not modified by the final modified insns in the basic blocks.
536
537 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
538
539         PR rtl-optimization/68506
540         * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
541         first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
542         blocks.
543
544 2015-11-27  Martin Liska  <mliska@suse.cz>
545
546         PR c++/68312
547         * vec.h (release_vec_vec): New function.
548
549 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
550
551         PR tree-optimization/68552
552         * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
553         (expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
554         or whether v0 == v1.
555
556 2015-11-27  Martin Liska  <mliska@suse.cz>
557
558         * tree-ssa-uninit.c: Fix whitespaces in the source file.
559         The change is just automatical.
560
561 2015-11-27  Martin Liska  <mliska@suse.cz>
562
563         * tree-chkp.c (chkp_make_static_bounds): Release buffer
564         used for string.
565
566 2015-11-27  Martin Liska  <mliska@suse.cz>
567
568         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
569         Do not release memory for comp_alias_ddrs.
570         * tree-vect-loop.c (destroy_loop_vec_info): Release
571         the memory for all loop_vec_info.
572
573 2015-11-27  Martin Liska  <mliska@suse.cz>
574
575         * ipa-devirt.c (ipa_devirt): Use auto_vec instead
576         of a local-scope vec.
577         (struct final_warning_record): Use auto_vec instead
578         of vec.
579
580 2015-11-27  Richard Biener  <rguenther@suse.de>
581
582         PR tree-optimization/68553
583         * tree-vect-slp.c (vect_get_mask_element): Remove.
584         (vect_transform_slp_perm_load): Implement in a simpler way.
585
586 2015-11-26  Alexandre Oliva <aoliva@redhat.com>
587
588         PR rtl-optimization/67753
589         PR rtl-optimization/64164
590         * function.c (assign_parm_setup_block): Right-shift
591         upward-padded big-endian args when bypassing the stack slot.
592
593 2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
594
595         * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
596         `-mcompact-branches='.
597         (MIPS Options): Likewise.
598
599 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
600
601         * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
602
603 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
604
605         * doc/install.texi (Prerequisites): Increase ISL requirement to
606         0.14 or 0.15.
607
608 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
609
610         * config/aarch64/arm_neon.h
611         (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
612         (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
613         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
614         (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
615         (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
616         (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
617         (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
618         (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
619         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
620         (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
621         (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
622         (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
623
624 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
625
626         * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
627         (vqrdmlahq_s16, vqrdmlahq_s32): New.
628         (vqrdmlsh_s16, vqrdmlsh_s32): New.
629         (vqrdmlshq_s16, vqrdmlshq_s32): New.
630
631 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
632
633         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
634         ARM_FEATURE_QRDMX.
635
636 2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
637
638         PR debug/53927
639         * tree-nested.c (finalize_nesting_tree_1): Append a field to
640         hold the frame base address.
641         * dwarf2out.c (gen_subprogram_die): Generate for
642         DW_AT_static_link a location description that computes the value
643         of this field.
644
645 2015-11-26  Tom de Vries  <tom@codesourcery.com>
646
647         revert:
648         2015-11-25  Tom de Vries  <tom@codesourcery.com>
649
650         * cfgloop.c (find_single_latch): New function, factored out of ...
651         (flow_loops_find): ... here.
652         (verify_loop_structure): Improve verification of loop->latch.
653         * cfgloop.h (find_single_latch): Declare.
654         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
655
656 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
657
658         * config/aarch64/aarch64-simd-builtins.def:
659         Add missing changes from r230962.
660
661 2015-11-26  Nathan Sidwell  <nathan@acm.org>
662
663         * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
664         arg with name.  Don't deal with split regs.  Tweak formatting.
665         (nvptx_expand_call): Adjust write_func_decl_from_insn call.
666         (nvptx_output_call_insn): Don't deal with split regs here.
667
668 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
669
670         * config/aarch64/aarch64-simd-builtins.def
671         (sqrdmlah, sqrdmlsh): New.
672         (sqrdmlah_lane, sqrdmlsh_lane): New.
673         (sqrdmlah_laneq, sqrdmlsh_laneq): New.
674
675 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
676
677         * config/aarch64/aarch64-simd.md
678         (aarch64_sqmovun<mode>): Fix some white-space.
679         (aarch64_<sur>qmovun<mode>): Likewise.
680         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
681         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
682         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
683         * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
684         (UNSPEC_SQRDMLSH): New.
685         (SQRDMLH_AS): New.
686         (rdma_as): New.
687
688 2015-11-26  Richard Biener  <rguenther@suse.de>
689
690         PR tree-optimization/66721
691         * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
692         iteration cost earlier.  Re-do analysis without SLP when
693         vectorization using SLP fails and without has a chance to succeed.
694
695 2015-11-26  Richard Biener  <rguenther@suse.de>
696
697         * genmatch.c (dt_simplify::gen_1): For generic wrap all
698         multi-result-use captures in a SAVE_EXPR.
699
700 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
701
702         * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
703         (TARGET_SIMD_RDMA): New.
704
705 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
706
707         * combine.c (subst): Do not return clobber of zero in widening mult
708         case.  Just return x unchanged if it is a no-op substitution.
709
710 2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
711
712         PR target/68416
713         * config/i386/i386.h (enum reg_class): Add
714         bounds registers to ALL_REGS.
715
716 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
717
718         PR tree-optimization/68128
719         * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
720         * gimplify.c: Include gimple-walk.h.
721         (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
722         (omp_notice_variable): Set flags to n->value if n already
723         exists in target region, but we need to jump to do_outer.
724         (omp_shared_to_firstprivate_optimizable_decl_p,
725         omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
726         functions.
727         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
728         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
729         not modified in the body.  Call omp_mark_stores for outer
730         contexts on OMP_CLAUSE_SHARED clauses if they could be written
731         in the body or on OMP_CLAUSE_LASTPRIVATE.
732         (gimplify_adjust_omp_clauses): Add body argument, call
733         omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
734         Set OMP_CLAUSE_SHARED_READONLY
735         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
736         not modified in the body.  Call omp_mark_stores for outer
737         contexts on OMP_CLAUSE_SHARED clauses if they could be written
738         in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
739         without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
740         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
741         gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
742         gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
743         * tree-nested.c (convert_nonlocal_omp_clauses,
744         convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
745         non-local vars or local vars referenced from nested routines.
746         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
747         attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
748         TREE_READONLY, don't call use_pointer_for_field with non-NULL
749         second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
750
751 2015-11-26  Paolo Bonzini <bonzini@gnu.org>
752
753         * doc/implement-c.texi (Integers Implementation): Make GCC's promises
754         about signed left shift stronger and clarify the cases when they're
755         broken.
756
757 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
758             Bernd Schmidt  <bschmidt@redhat.com>
759
760         PR rtl-optimization/67226
761         * calls.c (store_one_arg): Take into account
762         crtl->args.pretend_args_size when checking for overlap between
763         arg->value and argblock + arg->locate.offset during sibcall
764         optimization.
765
766 2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>
767
768         * config/aarch64/aarch64.md (cbranch<mode>4): Use
769         aarch64_fp_compare_operand.
770         (store_pairsf): Use aarch64_reg_or_fp_zero.
771         (store_pairdf): Likewise.
772         (cstore<mode>4): Use aarch64_fp_compare_operand.
773         (cmov<mode>6): Likewise.
774         * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
775
776 2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
777             Sebastian Pop  <s.pop@samsung.com>
778
779         PR tree-optimization/68453
780         * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
781         not redirect edges already pointing to their destination.
782         (translate_isl_ast_node_for): Split edges after loops to create
783         basic blocks for close phi nodes.  Save merge points at the end of
784         a loop guard.
785         (translate_isl_ast_node_if): Save merge points at the end of the
786         if region.
787         (add_close_phis_to_outer_loops): New.
788         (add_close_phis_to_merge_points): New.
789         (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
790         (copy_bb_and_scalar_dependences): Do not split basic blocks on
791         loop close phi locations.
792
793 2015-11-25  Jan Hubicka  <jh@suse.cz>
794
795         * ipa-visibility.c (cgraph_externally_visible_p,
796         varpool_node::externally_visible_p): When doing incremental linking,
797         hidden symbols may be still used later.
798         (update_visibility_by_resolution_info): Do not drop weak during
799         incremental link.
800         (function_and_variable_visibility): Fix formating.
801         * flag-types.h (lto_linker_output): Declare.
802         * common.opt 9flag_incremental_link): New flag.
803
804 2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
805
806         * config/rs6000/constraints.md (wb constraint): New constraint for
807         ISA 3.0 d-form scalar addressing.
808
809         * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
810         for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
811         Altivec registers.  Add wb constraint for Altivec registers with
812         D-form addressing.  If we have ISA 3.0 d-form support, undo
813         secondary reload support for using FPR registers if we want to do
814         D-form addressing.
815         (rs6000_debug_reg_global): Likewise.
816         (rs6000_setup_reg_addr_masks): Likewise.
817         (rs6000_init_hard_regno_mode_ok): Likewise.
818         (rs6000_secondary_reload): Likewise.
819         (rs6000_preferred_reload_class): Likewise.
820         (rs6000_secondary_reload_class): Likewise.
821
822         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
823         constraint.
824
825         * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
826         for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
827         (f32_lm2): Likewise.
828         (f32_li2): Likewise.
829         (f32_sr2): Likewise.
830         (f32_sm2): Likewise.
831         (f32_si2): Likewise.
832         (f64_p9): Likewise.
833         (extendsfdf2_fpr): Likewise.
834         (mov<mode>_hardfloat): Likewise.
835         (mov<mode>_hardfloat32): Likewise.
836         (mov<mode>_hardfloat64): Likewise.
837
838         * doc/md.texi (RS/6000 constraints): Document wb constraint.
839         Fixup we constraint documentation.
840
841 2015-11-25  Tom de Vries  <tom@codesourcery.com>
842
843         * omp-low.c (pass_expand_omp_ssa::clone): New function.
844         * passes.def: Add pass_oacc_kernels pass group.
845         * tree-ssa-loop-ch.c (pass_ch::clone): New function.
846
847 2015-11-25  Tom de Vries  <tom@codesourcery.com>
848
849         * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
850         Declare.
851         * tree-ssa-loop.c (gate_oacc_kernels): New static function.
852         (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
853         (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
854         (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
855
856 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
857
858         * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
859         TV_IPA_LTO_OUTPUT): New.
860         * lto-compress.c: Include timevar.h
861         (lto_end_compression, lto_end_uncompression): Add timers.
862         * langhooks.c: Include timevar.h
863         (lhd_append_data): Add timer.
864
865 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
866
867         * varasm.c (default_elf_asm_output_limited_string,
868         default_elf_asm_output_ascii): Replace fprintf by putc.
869
870 2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
871
872         PR rtl-optimization/67954
873         * lra-constraints.c (curr_insn_transform): Add check on scratch
874         pseudo when change class to NO_REGS.  Add an assert.
875
876 2015-11-25  Nathan Sidwell  <nathan@acm.org>
877
878         * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
879         constraint is 'n'.
880         * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
881         number.
882         (nvptx_write_function_decl): Number args from 0.
883         (nvptx_declare_function_name): Likewise.
884         (nvptx_function_incoming_arg): Likewise.
885         (nvptx_output_call_insn): Correct formatting.
886
887 2015-11-25  David Sherwood  <david.sherwood@arm.com>
888
889         * optabs.def: Add new optabs fmax_optab/fmin_optab.
890         * internal-fn.def: Add new fmax/fmin internal functions.
891         * doc/md.texi: Add fmin and fmax patterns.
892
893 2015-11-25  Jason Merrill  <jason@redhat.com>
894
895         PR c++/68385
896         * tree.c (integer_zerop, integer_onep, integer_each_onep)
897         (integer_all_onesp, integer_minus_onep, integer_pow2p)
898         (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
899         (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
900
901 2015-11-25  Richard Biener  <rguenther@suse.de>
902
903         PR middle-end/68528
904         * fold-const.c (fold_binary_loc): Do not call negate_expr_p
905         on stripped operands.
906
907 2015-11-25  Nathan Sidwell  <nathan@acm.org>
908
909         * config/nvptx/nvptx.c (walk_args_for_params): Delete.
910         (nvptx_declare_function_name): Move assignments next to register
911         declarations, and process params here.
912
913 2015-11-25  David Edelsohn  <dje.gcc@gmail.com>
914
915         * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
916         both the symbol and the "dot" symbol for function descriptors. Fix
917         inversion for rename of symbols with dollar sign.
918
919 2015-11-25  Tom de Vries  <tom@codesourcery.com>
920
921         * cfgloop.c (find_single_latch): New function, factored out of ...
922         (flow_loops_find): ... here.
923         (verify_loop_structure): Improve verification of loop->latch.
924         * cfgloop.h (find_single_latch): Declare.
925         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
926
927 2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
928
929         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
930         (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
931         (STARTFILE_SPEC): Use %(startfile_vtv).
932         (ENDFILE_SPEC): Use %(endfile_vtv).
933         (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
934         ENDFILE_VTV_SPEC.
935
936         * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
937
938 2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>
939
940         * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
941         noce_can_store_speculate): Delete.
942         (noce_process_if_block): Don't try to handle single MEM stores.
943         * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
944         * alias.c (memory_must_be_modified_in_insn_p): Delete.
945
946 2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
947
948         PR rtl-optimization/68435
949         * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
950         for conflicts between a, b and the set destinations.
951
952 2015-11-25  Richard Biener  <rguenther@suse.de>
953
954         PR tree-optimization/68517
955         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
956         Properly handle zero-sized types.
957
958 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
959
960         * ipa-inline-analysis.c: Include gimplify.h
961         (set_cond_stmt_execution_predicate,
962         set_switch_stmt_execution_predicate): Be sure to not leak locations
963         to function body.
964
965 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
966
967         PR target/67089
968         * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
969         match_uaddsub_overflow): New functions.
970         (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
971
972 2015-11-25  Richard Biener  <rguenther@suse.de>
973
974         PR tree-optimization/68492
975         * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
976         op from scalars after operand swapping.
977
978 2015-11-25  Richard Biener  <rguenther@suse.de>
979
980         PR tree-optimization/68502
981         * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
982         check that the step is a multiple of the type size.
983
984 2015-11-24  Michael Collison  <michael.collison@linaro.org>
985
986         * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
987         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
988         * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
989
990 2015-11-24  Steve Ellcey  <sellcey@imgtec.com>
991
992         * frame-header-opt.c (gate): Check for optimize > 0.
993         (has_inlined_assembly): New function.
994         (needs_frame_header_p): Remove is_leaf_function check,
995         add argument type check.
996         (callees_functions_use_frame_header): Add is_leaf_function
997         and has_inlined_assembly calls..
998         (set_callers_may_not_allocate_frame): New function.
999         (frame_header_opt): Add is_leaf_function call, add
1000         set_callers_may_not_allocate_frame call.
1001         * config/mips/mips.c (mips_compute_frame_info): Add check
1002         to see if callee saved regs can be put in frame header.
1003         (mips_expand_prologue): Add check to see if step1 is zero,
1004         fix cfa restores when using frame header to store regs.
1005         (mips_can_use_return_insn): Check to see if registers are
1006         stored in frame header.
1007         * config/mips/mips.h (machine_function): Add
1008         callers_may_not_allocate_frame and
1009         use_frame_header_for_callee_saved_regs fields.
1010
1011 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1012
1013         PR rtl-optimization/68520
1014         * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
1015         its bit was already set in BB_WITH.
1016
1017 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1018
1019         * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
1020         double check that type is main variant.
1021         * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
1022         variant.
1023         (verify_type_variant): Verify that variants have no
1024         TYPE_ALIAS_SET_KNOWN_P set
1025         * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
1026         streaming so constant fields come first; stream TYPE_ALIAS_SET==0
1027         only for main variants; stream TYPE_ALIAS_SET as a bit.
1028         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
1029         accordingly.
1030
1031 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1032
1033         * tree.c (make_vector_type): Properly compute canonical type of the
1034         main variant.
1035         (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
1036         a main variant.
1037
1038 2015-11-24  Nathan Sidwell  <nathan@acm.org>
1039
1040         * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
1041         VOIDmode, don't alter incoming mode.
1042         (nvptx_split_reg_p): Delete.
1043         (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
1044         write_func_decl_from_insn, nvptx_output_call_insn): Adjust
1045         maybe_split_mode calls.
1046         (nvptx_print_operand): Use maybe_split_mode.
1047
1048 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1049
1050         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
1051         only for types where LTO sets them.
1052         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
1053         (make_vector_type): Likewise.
1054         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
1055         * tree.h (canonical_type_used_p): New inline.
1056         * alias.c (get_alias_set): Handle structural equality for all
1057         types that pass canonical_type_used_p.
1058         (record_component_aliases): Look through all types with
1059         record_component_aliases for possible pointers; sanity check that
1060         the alias sets match.
1061
1062 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1063
1064         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
1065
1066 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
1067
1068         * tree.c (free_node): New function.
1069         (type_hash_canon): Use it.
1070         * tree.h (free_node): Declare.
1071
1072 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
1073             Michael Meissner  <meissner@linux.vnet.ibm.com>
1074
1075         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
1076         (Fv2): New mode attribute to be used when ISA 2.07 instructions
1077         are used on SF values, and ISA 2.06 instructions on DF values.
1078         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
1079         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
1080         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
1081         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
1082         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
1083         (fre<Fs>): Use <Fv2> instead of <Fv>.
1084         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
1085         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
1086         (xsrdpi<mode>): Add support for the lround function.
1087         (lround<mode>di2): Likewise.
1088         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
1089         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
1090         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
1091         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
1092
1093 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
1094             Sebastian Pop  <s.pop@samsung.com>
1095
1096         PR tree-optimization/67984
1097         * graphite-isl-ast-to-gimple.c (is_constant): New.
1098         (get_rename): Call is_constant.
1099         (get_new_name): Same.
1100
1101 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
1102             Sebastian Pop  <s.pop@samsung.com>
1103
1104         * graphite-dependences.c: Only include graphite.h.
1105         * graphite-isl-ast-to-gimple.c: Same.
1106         * graphite-optimize-isl.c: Same.
1107         * graphite-poly.c: Same.
1108         * graphite-scop-detection.c: Same.
1109         * graphite-sese-to-poly.c: Same.
1110         * graphite.c: Same.
1111         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
1112         * graphite-poly.h: Same.
1113         * graphite-scop-detection.h: Same.
1114         * graphite.h: New.
1115
1116 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
1117
1118         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
1119         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
1120         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
1121         function already takes care of checking what it can emit.
1122
1123 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1124
1125         * doc/invoke.texi (-fpic): Add the AArch64 limit.
1126         (-fPIC): Add AArch64.
1127
1128 2015-11-24  Tom de Vries  <tom@codesourcery.com>
1129
1130         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
1131         (pass_lim::execute): Allow to run outside pass_tree_loop.
1132
1133 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
1134
1135         * config/aarch64/aarch64.md (add<mode>3):
1136         Block early expansion into 2 add instructions.
1137         (add<mode>3_pluslong): New pattern to combine complex
1138         immediates into 2 additions.
1139
1140 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1141
1142         PR target/66217
1143         PR target/67677
1144         PR target/68332
1145         * config/rs6000/predicates.md (and_operand): Check that the operand
1146         is a const_int before calling rs6000_is_valid_and_mask.
1147
1148 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1149
1150         * config/aarch64/aarch64.md (*condjump): Rename to...
1151         (condjump): ... This.
1152         (*compare_condjump<mode>): New define_insn_and_split.
1153         (*compare_cstore<mode>_insn): Likewise.
1154         (*cstore<mode>_insn): Rename to...
1155         (cstore<mode>_insn): ... This.
1156         * config/aarch64/iterators.md (CMP): Handle ne code.
1157         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
1158
1159 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
1160
1161         PR target/68497
1162         * config/i386/i386.c (output_387_binary_op): Fix assertion for
1163         -fno-checking case.
1164
1165 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1166
1167         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
1168         (val_ssa_equiv_hash_traits::remove): Likewise.
1169         (pass_uncprop::execute): Adjust.
1170
1171 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1172
1173         * hash-map-traits.h (simple_hashmap_traits ::remove): call
1174         destructors on values that are being removed.
1175         * mem-stats.h (hash_map): Pass type of values to
1176         simple_hashmap_traits.
1177         * tree-sra.c (sra_deinitialize): Remove work around for hash
1178         maps not destructing values.
1179         * genmatch.c (sinfo_hashmap_traits): Adjust.
1180         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
1181
1182 2015-11-24  Richard Biener  <rguenther@suse.de>
1183             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1184
1185         PR middle-end/68375
1186         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
1187         bogus assertion.
1188
1189 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
1190
1191         PR target/68483
1192         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
1193         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
1194         returns false.
1195         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
1196         whenever first is nelt or above.  Don't mask expected with
1197         2 * nelt - 1.
1198
1199 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
1200
1201         PR c/68337
1202         * gimple-fold.c: Include ipa-chkp.h.
1203         (gimple_fold_builtin_memory_op): Don't fold call if we
1204         are going to instrument it and it may copy pointers.
1205
1206 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
1207             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1208
1209         PR rtl-optimization/68194
1210         PR rtl-optimization/68328
1211         PR rtl-optimization/68185
1212         * ree.c (combine_reaching_defs): Reject copy_needed case if
1213         copies_list is not empty.
1214
1215 2015-11-24  Richard Biener  <rguenther@suse.de>
1216
1217         PR middle-end/68221
1218         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1219         use mem_ref_offset.
1220
1221 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1222
1223         PR rtl-optimization/68381
1224         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
1225         is poisoned.
1226
1227 2015-11-23  Nick Clifton  <nickc@redhat.com>
1228             Jeff Law  <law@redhat.com>
1229
1230         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
1231         the source/dest of the target extension require a different number of
1232         hard registers.
1233         (combine_set_extension): Remove #if 0 code.
1234
1235 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1236             Sebastian Pop  <s.pop@samsung.com>
1237
1238         PR tree-optimization/68314
1239         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
1240         * graphite-poly.c (new_scop): Remove original_schedule.
1241         (free_scop): Same.
1242         * graphite-poly.h (struct scop): Same.
1243         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
1244         (build_pbb_scattering_polyhedrons): Add back.
1245         (build_scop_minimal_scattering): Remove.
1246         (build_scop_scattering): Add back.
1247         (build_scop_original_schedule): Remove.
1248         (build_poly_scop): Revert to only call build_scop_scattering.
1249
1250 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1251             Sebastian Pop  <s.pop@samsung.com>
1252
1253         PR tree-optimization/68493
1254         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
1255         missing early return when codegen_error is set.
1256
1257 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1258             Sebastian Pop  <s.pop@samsung.com>
1259
1260         PR tree-optimization/68279
1261         * graphite-poly.c (new_scop): Remove poly_scop_p.
1262         * graphite-poly.h (struct scop): Same.
1263         (build_poly_scop): Declare.
1264         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
1265         (cleanup_loop_iter_dom): New.
1266         (build_loop_iteration_domains): Early return when scev analysis fails.
1267         (create_pw_aff_from_tree): Same.
1268         (add_condition_to_pbb): Same.
1269         (add_conditions_to_domain): Same.
1270         (add_conditions_to_constraints): Same.
1271         (build_scop_iteration_domain): Same.
1272         (build_poly_scop): Same.  Do not initialize poly_scop_p.
1273         * graphite-sese-to-poly.h: Remove.
1274         * graphite.c: Do not include graphite-sese-to-poly.h.
1275         (graphite_transform_loops): Stop before code generation when
1276         build_poly_scop fails.
1277         * sese.c (scalar_evolution_in_region): Add fixme note about scev
1278         analysis.
1279
1280 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1281             Sebastian Pop  <s.pop@samsung.com>
1282
1283         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
1284         Remove call to update_ssa.
1285         * sese.c (sese_insert_phis_for_liveouts): Same.
1286
1287 2015-11-23  Marek Polacek  <polacek@redhat.com>
1288
1289         PR tree-optimization/68455
1290         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
1291         extract_range_from_multiplicative_op_1 on symbolic ranges.
1292
1293 2015-11-23  Richard Henderson  <rth@redhat.com>
1294
1295         * optabs.def (uaddv4_optab, usubv4_optab): New.
1296         * internal-fn.c (expand_addsub_overflow): Use them.
1297         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
1298
1299         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
1300         to reversed operands.
1301         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
1302         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
1303         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
1304         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
1305         (*add<SWI>3_cconly_overflow_2): New.
1306         (*add<SWI>3_cc_overflow_2): New.
1307         (*addsi3_zext_cc_overflow_2): New.
1308
1309 2015-11-23  Richard Biener  <rguenther@suse.de>
1310
1311         PR tree-optimization/68465
1312         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
1313         Also record equalities from multiple predecessor blocks if
1314         only one non-backedge exists.
1315
1316 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1317
1318         PR target/68363
1319         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
1320         that are not INSN_P.
1321
1322 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
1323
1324         * config/aarch64/aarch64-builtins.c
1325         (aarch64_gimple_fold_builtin): Fold FMULX.
1326
1327 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
1328
1329         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
1330         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
1331         after GCC header files and before graphite header files.
1332         * graphite-dependences.c: Same.
1333         * graphite-isl-ast-to-gimple.c: Same.
1334         * graphite-optimize-isl.c: Same.
1335         * graphite-poly.c: Same.
1336         * graphite-scop-detection.c: Same.
1337         * graphite-sese-to-poly.c: Same.
1338         * graphite.c: Same.
1339
1340 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
1341             Jiong Wang  <jiong.wang@arm.com>
1342
1343         PR tree-optimization/68317
1344         PR tree-optimization/68326
1345         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
1346         final min and max are not infinity.
1347
1348 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
1349             Richard Biener  <rguenther@suse.de>
1350
1351         PR tree-optimization/68327
1352         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1353         compute vectype for non-relevant mask producers.
1354         * tree-vect-stmts.c (vectorizable_comparison): Check stmt
1355         relevance earlier.
1356
1357 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1358
1359         PR tree-optimization/68460
1360         * tree-parloops.c (gather_scalar_reductions): Also call
1361         free_stmt_vec_info_vec if simple_loop_info == NULL.
1362
1363 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
1364
1365         * opts.c (finish_options): Allow -fsanitize-recover=address for
1366         userspace sanitization.
1367         * asan.c (asan_expand_check_ifn): Redefine recover_p.
1368         * doc/invoke.texi (fsanitize-recover): Update documentation.
1369
1370 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1371
1372         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
1373
1374 2015-11-23  Richard Biener  <rguenther@suse.de>
1375
1376         PR tree-optimization/68445
1377         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
1378         two different strides.
1379
1380 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1381
1382         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
1383         * config/s390/s390.c (s390_check_symref_alignment): Use new
1384         symref flags, early abort on wrong alignment
1385         (s390_secondary_reload): Use new symref flags.
1386         (s390_encode_section_info): Likewise.
1387         * config/s390/predicates.md: Likewise.
1388
1389 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1390
1391         PR target/68390
1392         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
1393         for indirect function call.
1394
1395 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
1396
1397         * config/aarch64/aarch64-simd.md
1398         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
1399         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
1400         (*aarch64_mulx_elt_to_64v2df): Likewise.
1401         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
1402         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
1403         (vmulx_lane_f64): Likewise.
1404         (vmulxq_lane_f32): Refactored & moved.
1405         (vmulxq_lane_f64): Likewise.
1406         (vmulx_laneq_f32): New.
1407         (vmulx_laneq_f64): Likewise.
1408         (vmulxq_laneq_f32): Likewise.
1409         (vmulxq_laneq_f64): Likewise.
1410         (vmulxs_lane_f32): Likewise.
1411         (vmulxs_laneq_f32): Likewise.
1412         (vmulxd_lane_f64): Likewise.
1413         (vmulxd_laneq_f64): Likewise.
1414
1415 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
1416
1417         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
1418         In LTO we do not compute TYPE_CANONICAL of pointers.
1419         (gimple_canonical_types_compatible_p): Improve coments; sanity check
1420         that pointers do not have canonical type that would make us believe
1421         they are different.
1422         * alias.c (get_alias_set): Do structural type equality on pointers;
1423         enable pointer path for LTO; also glob pointer to vector with pointer
1424         to vector element; glob pointers and references for LTO; do more strict
1425         sanity checking about build_pointer_type returning the canonical type
1426         which is also the main variant.
1427         (record_component_aliases): When component type is pointer and we
1428         do LTO; record void_type_node alias set.
1429
1430 2015-11-21  Nathan Sidwell  <nathan@acm.org>
1431
1432         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
1433
1434         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
1435         leading blank line.
1436         (write_func_decl_from_insn): Likewise.
1437         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
1438         (nvptx_file_end): Likewise.
1439         (nvptx_function_end): Undent output.
1440         (nvptx_expand_call): Fix formatting.
1441         (nvptx_output_call_insn): Indent output.
1442         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
1443         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
1444
1445 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
1446
1447         PR debug/66432
1448         * tree-inline.c (copy_debug_stmt): If
1449         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
1450         in decl_debug_args, don't call remap_gimple_op_r on it.
1451
1452 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
1453
1454         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
1455         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
1456         Check that all record types are complete.
1457         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
1458         compare alias sets for types w/o alias sets.
1459
1460 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1461
1462         * config/sparc/sparc.md (umulxhi_vis): Move around.
1463         (*umulxhi_sp64): Likewise.
1464         (umulxhi_v8plus): Likewise.
1465         (xmulx_vis): Likewise.
1466         (*xmulx_sp64): Likewise.
1467         (xmulx_v8plus): Likewise.
1468         (xmulxhi_vis): Likewise.
1469         (*xmulxhi_sp64): Likewise.
1470         (xmulxhi_v8plus): Likewise.
1471
1472 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1473
1474         PR 62314
1475         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
1476         (class layout): Update comment
1477         (layout::print_any_fixits): New method.
1478         (layout::move_to_column): New method.
1479         (diagnostic_show_locus): Add call to layout.print_any_fixits.
1480
1481 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR middle-end/68221
1484         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
1485         has non-zero bias, subtract it in integer type instead of
1486         pointer plus of negated bias.
1487
1488         PR middle-end/68339
1489         * omp-low.c (expand_simd_clones): Call node->get_body () before
1490         allocating stuff in GC.
1491
1492 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
1493
1494         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
1495
1496 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
1497
1498         * config/aarch64/aarch64.md (predicated): Copy attribute from
1499         "arm.md".
1500         * config/arm/arm.md (predicated): Added description.
1501
1502 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1503
1504         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
1505         for unaligned_access.
1506         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
1507         from matching condition.
1508         (unaligned_loadhis): Likewise.
1509         (unaligned_loadhiu): Likewise.
1510         (unaligned_storesi): Likewise.
1511         (unaligned_storehi): Likewise.
1512
1513 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1514
1515         PR target/68149
1516         * config/arm/arm.md (unaligned_loaddi): Delete.
1517         (unaligned_storedi): Likewise.
1518         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
1519         unaligned DImode memory ops.  Instead perform two back-to-back
1520         unaligned SImode ops.
1521
1522 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
1523             James Norris  <jnorris@codesourcery.com>
1524
1525         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
1526         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
1527
1528 2015-11-20  Alan Hayward <alan.hayward@arm.com>
1529
1530         PR tree-optimization/68413
1531         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
1532         evolution base
1533         (vectorizable_reduction): Use cached base
1534
1535 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1536
1537         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
1538         dump-file string.
1539         (try_create_reduction_list): Same.  Fix typo in dump-file string.
1540
1541 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1542
1543         * doc/md.texi (Standard Names): Move entry for addptr3 around,
1544         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
1545         glitch in entries for cbranch4 and jump.
1546
1547 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1548
1549         PR tree-optimization/68373
1550         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
1551         of ...
1552         (scev_const_prop): ... here.
1553         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
1554         * tree-parloops.c (try_create_reduction_list): Call
1555         final_value_replacement_loop.
1556
1557 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
1558
1559         PR tree-optimization/52272
1560         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
1561         (struct iv_common_cand_hasher): New struct.
1562         (iv_common_cand_hasher::hash): New function.
1563         (iv_common_cand_hasher::equal): New function.
1564         (struct ivopts_data): New fields, iv_common_cand_tab and
1565         iv_common_cands.
1566         (tree_ssa_iv_optimize_init): Initialize above fields.
1567         (record_common_cand, common_cand_cmp): New functions.
1568         (add_iv_candidate_derived_from_uses): New function.
1569         (add_iv_candidate_for_use): Record iv_common_cands derived from
1570         iv use in hash table, instead of adding candidates directly.
1571         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
1572         (record_important_candidates): Add important candidates to iv uses'
1573         related_cands.  Always keep related_cands for future use.
1574         (try_add_cand_for): Use iv uses' related_cands.
1575         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
1576         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
1577
1578 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1579
1580         * config/s390/s390.md ("bswaphi2"): New pattern.
1581
1582 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1583
1584         * config/s390/s390.md (GPR1_REGNUM): New constant.
1585         ("*trunc<BFP:mode><DFP_ALL:mode>2")
1586         ("*trunc<DFP_ALL:mode><BFP:mode>2")
1587         ("trunc<BFP:mode><DFP_ALL:mode>2")
1588         ("trunc<DFP_ALL:mode><BFP:mode>2")
1589         ("*extend<BFP:mode><DFP_ALL:mode>2")
1590         ("*extend<DFP_ALL:mode><BFP:mode>2")
1591         ("extend<BFP:mode><DFP_ALL:mode>2")
1592         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
1593
1594 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1595             Sebastian Pop  <s.pop@samsung.com>
1596
1597         PR tree-optimization/68428
1598         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
1599         over basic blocks outside the scop.
1600
1601 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1602             Sebastian Pop  <s.pop@samsung.com>
1603
1604         PR tree-optimization/68341
1605         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
1606         gcc_unreachable and safely fail codegen.
1607         (copy_loop_close_phi_args): Do not insert merge phis in a basic
1608         block with loop phi nodes.
1609         (edge_for_new_close_phis): New.
1610         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
1611
1612 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1613
1614         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
1615         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
1616         (nvptx_declare_objec_name): Likewise.
1617
1618 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1619
1620         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
1621         (get_false_edge_from_guard_bb): Move...
1622         * sese.c (get_false_edge_from_guard_bb)
1623         (get_true_edge_from_guard_bb): ... here.
1624
1625 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
1626
1627         Revert
1628         2015-11-18  Alan Modra  <amodra@gmail.com>
1629
1630         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1631         type-limits warning.
1632
1633
1634 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1635
1636         * tree.h (desired_pro_or_demotion_p): New function.
1637         * tree-vrp.c (simplify_cond_using_ranges): Call it.
1638
1639 2015-11-19  Michael Matz  <matz@suse.de>
1640
1641         * fwprop.c (update_uses): Use flag_checking instead of
1642         gcc_checking_assert.
1643
1644 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1645
1646         * doc/gty.texi (Support for inheritance): Fix missing
1647         parentheses in example.
1648
1649 2015-11-19  Marek Polacek  <polacek@redhat.com>
1650
1651         PR tree-optimization/68431
1652         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
1653
1654 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1655
1656         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
1657         atomic_exchange<mode>): Input values can be immediates.
1658
1659 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1660
1661         PR lto/61313
1662         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
1663         by the user.
1664         * configure: Regenerate.
1665
1666 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1667
1668         PR target/68408
1669         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
1670         (DTORS_SECTION_ASM_OP): Likewise.
1671
1672 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1673
1674         PR rtl-optimization/68376
1675         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
1676         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
1677
1678 2015-11-19  Richard Biener  <rguenther@suse.de>
1679
1680         PR middle-end/68117
1681         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
1682         redirect_edge_var_map_destroy.
1683
1684 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1685
1686         PR target/67770
1687         * config/i386/i386.md (simple_return): Disable if
1688         ix86_static_chain_on_stack is true.
1689
1690 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
1691
1692         PR bootstrap/68393
1693         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
1694         destinations.
1695
1696 2015-11-18  Jeff Law  <law@redhat.com>
1697
1698         PR tree-optimization/68198
1699         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
1700         between threading a multi-way branch and a thread path that contains
1701         a multi-way branch.  Disallow the case where a path contains a
1702         multi-way branch and does not thread a multi-way branch.
1703         (thread_through_all_blocks): Update comment.
1704
1705 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
1706
1707         PR c/65083
1708         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
1709         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
1710         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
1711         functions before defining as macros.
1712
1713 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1714
1715         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
1716         (nvptx_record_offload_symbol): Remove code compensating for lack
1717         of default dimension handling.
1718         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
1719
1720 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1721
1722         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
1723         type to bool for early exit.
1724         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
1725         in case of error.
1726         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
1727         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
1728         predecessor dominates the other.
1729         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
1730         element is not found it returns -1.
1731         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
1732         out early when codegen fails.
1733         (graphite_regenerate_ast_isl): Remove codegen region when pending
1734         phis could not be generated.
1735
1736 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1737
1738         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
1739         semicolon.
1740         (class translate_isl_ast_to_gimple): Indentation.
1741         (translate_pending_phi_nodes): Comment.
1742         (add_parameters_to_ivs_params): Moved from sese.c inside class
1743         translate_isl_ast_to_gimple.
1744         (get_max_schedule_dimensions): Same.
1745         (generate_isl_context): Same.
1746         (extend_schedule): Same.
1747         (generate_isl_schedule): Same.
1748         (set_options): Same.
1749         (scop_to_isl_ast): Same.
1750         (is_valid_rename): Same.
1751         (get_rename): Same.
1752         (get_rename_from_scev): Same.
1753         (get_def_bb_for_const): Same.
1754         (get_new_name): Same.
1755         (collect_all_ssa_names): Same.
1756         (copy_loop_phi_args): Same.
1757         (copy_loop_phi_nodes): Same.
1758         (copy_loop_close_phi_args): Same.
1759         (copy_loop_close_phi_nodes): Same.
1760         (copy_cond_phi_args): Same.
1761         (copy_cond_phi_nodes): Same.
1762         (graphite_copy_stmts_from_block): Same.
1763         (copy_bb_and_scalar_dependences): Same.
1764         (add_phi_arg_for_new_expr): Same.
1765         (rename_uses): Same.
1766         (set_rename): Same.
1767         (set_rename_for_each_def): Same.
1768         (gsi_insert_earliest): Same.
1769         (rename_all_uses): Same.
1770         (codegen_error_p): Same.
1771         (print_isl_ast_node): Same.
1772         (translate_isl_ast_for_loop): Call function codegen_error_p.
1773         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
1774         (translate_isl_ast_node_user): Make nb_loops const and release
1775         iv_map before exit.
1776         (get_true_edge_from_guard_bb): Move all free-functions early.
1777         (get_false_edge_from_guard_bb): Same.
1778         (bb_contains_loop_close_phi_nodes): Same.
1779         (bb_contains_loop_phi_nodes): Same.
1780         (is_loop_closed_ssa_use):  Same.
1781         (number_of_phi_nodes): Same.
1782         (phi_uses_name): Same.
1783         (later_of_the_two): Same.
1784         (substitute_ssa_name):
1785         (get_edges): Same.
1786         (get_loc): Same.
1787         (get_loop_init_value): Same.
1788         (find_init_value): Same.
1789         (find_init_value_close_phi): Same.
1790         (ast_build_before_for): Same.
1791         (graphite_regenerate_ast_isl): Formatting changes.
1792         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
1793         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
1794         (set_rename): Same.
1795         (gsi_insert_earliest): Same.
1796         (collect_all_ssa_names): Same.
1797         (rename_all_uses): Same.
1798         (rename_uses): Same.
1799         (get_def_bb_for_const): Same.
1800         (copy_loop_phi_nodes): Same.
1801         (copy_loop_close_phi_args): Same.
1802         (copy_loop_close_phi_nodes): Same.
1803         (copy_cond_phi_args): Same.
1804         (copy_cond_phi_nodes): Same.
1805         (set_rename_for_each_def): Same.
1806         (graphite_copy_stmts_from_block): Same.
1807         (copy_bb_and_scalar_dependences): Same.
1808         (if_region_set_false_region): Same.
1809         (scev_analyzable_p): Same.
1810         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
1811
1812 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
1813
1814         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
1815         commit from r125920 for FreeBSD.
1816
1817 2015-11-18  Jason Merrill  <jason@redhat.com>
1818
1819         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
1820         to be vecs of vecs.
1821         (add_finalizer): Split out from ggc_internal_alloc.
1822         (ggc_handle_finalizers): Run finalizers for the current depth.
1823         (init_ggc, ggc_pch_read): Reserve space for finalizers.
1824
1825 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
1826
1827         PR target/68410
1828         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
1829         from || expression.
1830
1831 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1832
1833         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
1834         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
1835         and atmega328pb.
1836         * doc/avr-mmcu.texi: Regenerate.
1837
1838 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1839
1840         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
1841         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
1842         (struct bb_sese): New struct.
1843         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
1844         (BB_GET_SESE, BB_SET_SESE): Define.
1845         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
1846         (nvptx_find_sese): New.
1847         (nvptx_neuter_pars): Find SESE regions when optimizing.
1848
1849 2015-11-18  Alan Modra  <amodra@gmail.com>
1850
1851         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1852         type-limits warning.
1853
1854 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
1855
1856         PR bootstrap/68406
1857         * hash-set.h (hash_set::traverse): Expand Key typedef.
1858
1859 2015-11-18  Martin Liska  <mliska@suse.cz>
1860
1861         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
1862         options struct.
1863
1864 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1865
1866         * config/nvptx/nvptx.c (global_lock_var): New.
1867         (nvptx_global_lock_addr): New.
1868         (nvptx_lockless_update): Recomment and adjust for clarity.
1869         (nvptx_lockfull_update): New.
1870         (nvptx_reduction_update): New.
1871         (nvptx_goacc_reduction_fini): Call it.
1872
1873 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
1874
1875         * regrename.h (struct du_head): Add target_data_1 and target_data_2
1876         fields.
1877         * regrename.c (create_new_chain): Clear entire struct after allocating.
1878
1879         * config/i386/i386.opt (mmitigate-rop): New option.
1880         * doc/invoke.texi (mmitigate-rop): Document.
1881         * config/i386/i386.c: Include "regrename.h".
1882         (ix86_rop_should_change_byte_p, reg_encoded_number,
1883         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
1884         static functions.
1885         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
1886         * config/i386/i386.md (attr "modrm_class"): New.
1887         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
1888         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
1889         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
1890
1891 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1892
1893         PR target/68405
1894         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
1895
1896 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
1897
1898         PR tree-optimization/68157
1899         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
1900         pow_stmt or mul_stmt from stmt's uid.
1901         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
1902
1903 2015-11-18  Martin Liska  <mliska@suse.cz>
1904
1905         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
1906
1907 2015-11-18  Martin Liska  <mliska@suse.cz>
1908
1909         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1910         Fix GNU coding style.
1911         (find_def_preds): Use auto_vec.
1912         (destroy_predicate_vecs): Change signature of the function.
1913         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
1914         new signature.
1915         (simplify_preds_4): Use destroy_predicate_vecs instread of
1916         just releasing preds vector.
1917         (normalize_preds): Likewise.
1918         (is_use_properly_guarded): Use new signature of
1919         destroy_predicate_vecs.
1920         (find_uninit_use): Likewise.
1921
1922 2015-11-18  Richard Biener  <rguenther@suse.de>
1923
1924         PR tree-optimization/67790
1925         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
1926         IL rewrite for MINUS_EXPR reductions, rename back to ...
1927         (vect_is_simple_reduction): ... this, removing the wrapper.
1928         (vect_force_simple_reduction): Adjust.
1929         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
1930         reductions and make use if reduc_index in all places.  For
1931         the final reduction of MINUS_EXPR use PLUS_EXPR.
1932
1933 2015-11-18  Alan Modra  <amodra@gmail.com>
1934
1935         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
1936         to ld.
1937         * configure: Regenerate.
1938
1939 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1940
1941         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
1942
1943 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1944
1945         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
1946         uses of ssa_name with constant.
1947
1948 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1949
1950         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
1951         something changed.
1952
1953 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1954
1955         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
1956         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
1957         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
1958
1959 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
1960
1961         * regrename.c (regrename_find_superclass): New function, code moved
1962         from ...
1963         (rename_chains): ... here.  Call it.
1964         * regrename.h (regrename_find_superclass): Declare.
1965
1966         * regrename.c (record_out_operands): Terminate earlyclobbered
1967         operands here.
1968
1969         PR target/66785
1970         * regrename.c (record_operand_use): Keep track of failed operands
1971         and stop appending if we see any.
1972         * regrename.h (struct operand_rr_info): Add a failed field and shrink
1973         n_chains to short.
1974
1975 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1976
1977         PR 48568
1978         * doc/extend.texi (Common Function Attributes) [visibility]:
1979         Add cross-references to matching variable and type attributes.
1980         (Common Variable Attributes) [visibility]: Add missing entry.
1981
1982 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1983
1984         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
1985         entries that map directly to optabs.
1986
1987 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1988
1989         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
1990         entries that map directly to optabs.
1991
1992 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1993
1994         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
1995         * internal-fn.c (direct_internal_fn_array): Update accordingly.
1996         * tree-vectorizer.h (vectorizable_function): Delete.
1997         * tree-vect-stmts.c: Include internal-fn.h.
1998         (vectorizable_internal_function): New function.
1999         (vectorizable_function): Inline into...
2000         (vectorizable_call): ...here.  Explicitly reject calls that read
2001         from or write to memory.  Try using an internal function before
2002         falling back on the old vectorizable_function behavior.
2003
2004 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2005
2006         * target.def (builtin_vectorized_function): Take a combined_fn (in
2007         the form of an unsigned int) rather than a function decl.
2008         (builtin_md_vectorized_function): New.
2009         * targhooks.h (default_builtin_vectorized_function): Replace the
2010         fndecl argument with an unsigned int.
2011         (default_builtin_md_vectorized_function): Declare.
2012         * targhooks.c (default_builtin_vectorized_function): Replace the
2013         fndecl argument with an unsigned int.
2014         (default_builtin_md_vectorized_function): New function.
2015         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
2016         New hook.
2017         * doc/tm.texi: Regenerate.
2018         * tree-vect-stmts.c (vectorizable_function): Update call to
2019         builtin_vectorized_function, also passing internal functions.
2020         Call builtin_md_vectorized_function for target-specific builtins.
2021         * config/aarch64/aarch64-protos.h
2022         (aarch64_builtin_vectorized_function): Replace fndecl argument
2023         with an unsigned int.
2024         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
2025         (aarch64_builtin_vectorized_function): Update after above changes.
2026         Use CASE_CFN_*.
2027         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
2028         fndecl argument with an unsigned int.
2029         * config/arm/arm-builtins.c: Include case-cfn-macros.h
2030         (arm_builtin_vectorized_function): Update after above changes.
2031         Use CASE_CFN_*.
2032         * config/i386/i386.c: Include case-cfn-macros.h
2033         (ix86_veclib_handler): Take a combined_fn rather than a
2034         built_in_function.
2035         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
2036         mathfn_built_in rather than calling builtin_decl_implicit directly.
2037         (ix86_builtin_vectorized_function) Update after above changes.
2038         Use CASE_CFN_*.
2039         * config/rs6000/rs6000.c: Include case-cfn-macros.h
2040         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
2041         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
2042         than calling builtin_decl_implicit directly.
2043         (rs6000_builtin_vectorized_function): Update after above changes.
2044         Use CASE_CFN_*.  Move BUILT_IN_MD to...
2045         (rs6000_builtin_md_vectorized_function): ...this new function.
2046         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
2047
2048 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2049
2050         * tree-vect-patterns.c: Include internal-fn.h.
2051         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
2052
2053 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2054
2055         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
2056         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
2057
2058 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2059
2060         * builtins.c (expand_errno_check, expand_builtin_mathfn)
2061         (expand_builtin_mathfn_2): Delete.
2062         (expand_builtin): Remove handling of functions with
2063         internal function equivalents.
2064         * internal-fn.def (SET_EDOM): New internal function.
2065         * internal-fn.h (set_edom_supported_p): Declare.
2066         * internal-fn.c (expand_SET_EDOM): New function.
2067         (set_edom_supported_p): Likewise.
2068         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
2069         Rewrite comment at head of file.
2070         (is_call_dce_candidate): Rename to...
2071         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
2072         or gimple_call_builtin_p here.
2073         (edom_only_function): New function.
2074         (shrink_wrap_one_built_in_call_with_conds): New function, split out
2075         from...
2076         (shrink_wrap_one_built_in_call): ...here.
2077         (can_use_internal_fn, use_internal_fn): New functions.
2078         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
2079         for calls that have an lhs.
2080         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
2081         (pass_call_cdce::execute): Skip blocks that are optimized for size.
2082         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
2083         calls with an lhs.
2084         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
2085         at -O and above.
2086
2087 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2088
2089         * builtins.h (called_as_built_in): Declare.
2090         * builtins.c (called_as_built_in): Make external.
2091         * internal-fn.h (expand_internal_call): Define a variant that
2092         specifies the internal function explicitly.
2093         * internal-fn.c (expand_load_lanes_optab_fn)
2094         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
2095         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
2096         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
2097         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
2098         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
2099         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
2100         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
2101         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
2102         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
2103         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
2104         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
2105         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
2106         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
2107         argument.
2108         (internal_fn_expanders): Update prototype.
2109         (expand_internal_call): Define a variant that specifies the
2110         internal function explicitly. Use it to implement the previous
2111         interface.
2112         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
2113         functions as calls to internal functions.
2114
2115 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2116
2117         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
2118         (generated_files): Likewise.
2119         (s-cfn-operators, cfn-operators.pd): New rules.
2120         (s-match): Depend on cfn-operators.pd.
2121         * gencfn-macros.c: Expand comment to describe -o behavior.
2122         (print_define_operator_list): New function.
2123         (main): Accept -o.  Call print_define_operator_list.
2124         * genmatch.c (main): Add the current directory to the include path.
2125         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
2126         instead.
2127
2128 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2129
2130         * doc/match-and-simplify.texi: Document the "null" identifier.
2131         * genmatch.c (id_base::NULL_ID): New kind.
2132         (null_id): New variable.
2133         (get_operator): Add a parameter that says whether null identifiers
2134         are allowed.
2135         (contains_id): New function.
2136         (lower_for): Skip substitutions that would have a null_id in
2137         either the match or the result.
2138         (parser::parse_for): Allow the null identifier to be used.
2139         (parser::parse_operator_list): Likewise.
2140         (main): Initialize null_id.
2141
2142 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2143
2144         * match.pd: Use HYPOT and COS rather than hypot and cos.
2145         Use CASE_CFN_* macros.  Guard log/exp folds with
2146         SCALAR_FLOAT_TYPE_P.
2147         * genmatch.c (internal_fn): New enum.
2148         (fn_id::fn): Change to an unsigned int.
2149         (fn_id::fn_id): Accept internal_fn too.
2150         (add_builtin): Rename to...
2151         (add_function): ...this and turn into a template.
2152         (get_operator): Only try one variation if the original name fails.
2153         Only add _EXPR if the original name was all lower case.
2154         Try converting internal and built-in function names to their
2155         CFN equivalents.
2156         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
2157         (dt_simplify::gen_1): Likewise.
2158         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
2159         and get_call_combined_fn for generic.
2160         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
2161         (decision_tree::gen): Likewise.
2162         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
2163         Use add_function rather than add_builtin.  Register internal
2164         functions too.
2165         * generic-match-head.c: Include case-cfn-macros.h.
2166         * gimple-fold.c (replace_stmt_with_simplification): Use
2167         gimple_call_combined_fn to test whether we can keep an
2168         existing call.
2169         * gimple-match.h (code_helper): Replace built_in_function
2170         with combined_fn.
2171         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
2172         and case-fn-macros.h.
2173         (gimple_resimplify1): Use fold_const_call.
2174         (gimple_resimplify2, gimple_resimplify3): Likewise.
2175         (build_call_internal, build_call): New functions.
2176         (maybe_push_res_to_seq): Use them.
2177         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
2178         rather than a built-in function.
2179         * tree.h (build_call_expr_internal_loc): Declare.
2180         (maybe_build_call_expr_loc): Likewise.
2181         * tree.c (build_call_expr_internal_loc_array): New function.
2182         (maybe_build_call_expr_loc): Likewise.
2183
2184 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2185
2186         * builtins.h (mathfn_built_in): Add a variant that takes
2187         a combined_fn.
2188         * builtins.c: Include case-cfn-macros.h.
2189         (CASE_MATHFN): Use CASE_CFN_*.
2190         (CASE_MATHFN_REENT): Use CFN_ codes.
2191         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
2192         argument with a combined_fn.
2193         (mathfn_built_in): Add a variant that takes a combined_fn.
2194         (expand_builtin_int_roundingfn_2): Update callers accordingly.
2195         (fold_builtin_sincos, fold_builtin_classify): Likewise.
2196
2197 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2198
2199         * tree-vect-patterns.c: Include case-cfn-macros.h.
2200         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
2201
2202 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2203
2204         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
2205         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
2206         (pass_cse_sincos::execute): Likewise.
2207
2208 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2209
2210         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
2211         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
2212         (decrement_power, acceptable_pow_call): Likewise.
2213         (attempt_builtin_copysign): Likewise.
2214
2215 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2216
2217         * tree-vrp.c: Include case-cfn-macros.h.
2218         (extract_range_basic): Switch on combined_fn rather than handling
2219         built-in functions and internal functions separately.
2220
2221 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2222
2223         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
2224         than a built_in_function.
2225         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2226         a function decl.
2227         (integer_valued_real_call_p): Likewise.
2228         * fold-const.c: Include case-cfn-macros.h
2229         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
2230         (negate_expr_p): Update accordingly.
2231         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2232         a function decl.
2233         (integer_valued_real_call_p): Likewise.
2234         (tree_invalid_nonnegative_warnv_p): Update accordingly.
2235         (integer_valued_real_p): Likewise.
2236         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
2237         to tree_call_nonnegative_warnv_p.
2238         (gimple_call_integer_valued_real_p): Likewise
2239         integer_valued_real_call_p.
2240         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
2241         (backprop::process_builtin_call_use): Extend to combined_fn.
2242         (strip_sign_op_1): Likewise.
2243         (backprop::process_use): Don't check for built-in calls here.
2244         (backprop::execute): Likewise.
2245         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
2246
2247 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2248
2249         * fold-const-call.h (fold_const_call): Replace built_in_function
2250         arguments with combined_fn arguments.
2251         * fold-const-call.c: Include case-cfn-macros.h.
2252         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
2253         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
2254         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
2255         built_in_function arguments with combined_fn arguments.
2256         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
2257         (fold_builtin_3): Update calls to fold_const_call.
2258
2259 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2260
2261         * Makefile.in (HASH_TABLE_H): Add GGC_H.
2262         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
2263         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
2264         (build/gencfn-macros$(build_exeext): New rules.
2265         (genprogerr): Add cfn-macros.
2266         * hash-set.h (hash_set): Use the traits value_type as the key.
2267         * gencfn-macros.c: New file.
2268
2269 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2270
2271         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
2272         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
2273         * builtins.c (associated_internal_fn): Handle them.
2274
2275 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2276
2277         * builtins.h (associated_internal_fn): Declare.
2278         (replacement_internal_fn): Likewise.
2279         * builtins.c: Include internal-fn.h
2280         (associated_internal_fn, replacement_internal_fn): New functions.
2281         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
2282         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
2283         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
2284         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
2285         (LDEXP): New functions.
2286         * internal-fn.c: Include recog.h.
2287         (unary_direct, binary_direct): New macros.
2288         (expand_direct_optab_fn): New function.
2289         (expand_unary_optab_fn): New macro.
2290         (expand_binary_optab_fn): Likewise.
2291         (direct_unary_optab_supported_p): Likewise.
2292         (direct_binary_optab_supported_p): Likewise.
2293
2294 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2295
2296         * coretypes.h (tree_pair): New type.
2297         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
2298         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
2299         * internal-fn.h (direct_internal_fn_info): New structure.
2300         (direct_internal_fn_array): Declare.
2301         (direct_internal_fn_p, direct_internal_fn): New functions.
2302         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
2303         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
2304         (mask_store_direct, store_lanes_direct): New macros.
2305         (direct_internal_fn_array) New array.
2306         (get_multi_vector_move): Return the optab handler without asserting
2307         that it is available.
2308         (expand_LOAD_LANES): Rename to...
2309         (expand_load_lanes_optab_fn): ...this and add an optab argument.
2310         (expand_STORE_LANES): Rename to...
2311         (expand_store_lanes_optab_fn): ...this and add an optab argument.
2312         (expand_MASK_LOAD): Rename to...
2313         (expand_mask_load_optab_fn): ...this and add an optab argument.
2314         (expand_MASK_STORE): Rename to...
2315         (expand_mask_store_optab_fn): ...this and add an optab argument.
2316         (direct_internal_fn_types, direct_optab_supported_p)
2317         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
2318         (direct_internal_fn_supported_p): New functions.
2319         (direct_mask_load_optab_supported_p): New macro.
2320         (direct_load_lanes_optab_supported_p): Likewise.
2321         (direct_mask_store_optab_supported_p): Likewise.
2322         (direct_store_lanes_optab_supported_p): Likewise.
2323
2324 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2325
2326         * tree-core.h (internal_fn): Move immediately after the definition
2327         of built_in_function.
2328         (combined_fn): New enum.
2329         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
2330         (internal_fn_p, as_internal_fn): New functions.
2331         (get_call_combined_fn, combined_fn_name): Declare.
2332         * tree.c (get_call_combined_fn): New function.
2333         (combined_fn_name): Likewise.
2334         * gimple.h (gimple_call_combined_fn): Declare.
2335         * gimple.c (gimple_call_combined_fn): New function.
2336
2337 2015-11-17  Martin Sebor  <msebor@redhat.com>
2338
2339         PR c++/68308
2340         * cp/init.c (build_new_1): Check for expression constness
2341         the right way.
2342
2343 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
2344
2345         PR target/53587
2346         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
2347         option list.
2348         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
2349         discussion of the Microsoft structure layout details here from
2350         its former home in extend.texi.
2351         * doc/extend.texi (x86 Variable Attributes): Replace detailed
2352         discussion with pointer to its new location.  Add cross-reference
2353         to corresponding type attributes.
2354         (x86 Type Attributes): Add cross-references to command-line options
2355         and variable attributes.
2356
2357 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
2358
2359         PR middle-end/68134
2360         * targhooks.c (default_get_mask_mode): Filter out
2361         scalar modes returned by mode_for_vector.
2362
2363 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2364
2365         PR target/68143
2366         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
2367         offset from dstbase and use it appropriately in
2368         adjust_automodify_address.
2369         (arm_block_set_aligned_vect): Likewise.
2370
2371 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2372
2373         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
2374         (MULTILIB_DIRNAMES): Adjust accordingly.
2375
2376 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
2377
2378         * config/aarch64/aarch64-cores.def (cortex-a35): New.
2379         * config/aarch64/aarch64.c (cortexa35_tunings): New.
2380         * config/aarch64/aarch64-tune.md: Regenerate.
2381         * doc/invoke.texi (-mcpu): Add Cortex-A35
2382
2383 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
2384
2385         PR target/68263
2386         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
2387         to 32 for IAMCU.
2388         * config/i386/sse.md (*mov<mode>_internal): Always enable
2389         AVX and SSE unaligned moves for IAMCU.
2390
2391 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
2392
2393         * tree-if-conv.c: Include varasm.h
2394         (ref_DR_map): Define.
2395         (baseref_DR_map): Like wise
2396         (struct ifc_dr): Add new tree predicate field.
2397         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
2398         (memrefs_read_or_written_unconditionally): Remove.
2399         (write_memrefs_written_at_least_once): Remove.
2400         (ifcvt_memrefs_wont_trap): Use hash maps to query
2401         unconditional read/written information.
2402         (if_convertible_loop_p_1):  Initialize hash maps and predicates
2403         before hashing data references and delete hashmaps at the end.
2404
2405 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
2406
2407         PR 56036
2408         * doc/invoke.texi (Optimize Options): Move @end table to the right
2409         place.
2410
2411 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
2412
2413         PR 65129
2414         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
2415         return value.
2416
2417 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2418
2419         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
2420         128-bit types, just types that fit in a single vector.
2421         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
2422
2423 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
2424
2425         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
2426         in the user documentation.
2427         (define_peephole2, define_split): Similarly.
2428
2429 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
2430
2431         * lto-streamer-out.c (write_global_references): Adjust integer type.
2432         (lto_output_decl_state_refs): Likewise.
2433
2434 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2435
2436         * config/arm/arm-cores.def (cortex-a35): New.
2437         * config/arm/arm.c (arm_cortex_a35_tune): New.
2438         * config/arm/arm-tables.opt: Regenerate.
2439         * config/arm/arm-tune.md: Regenerate.
2440         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
2441         * config/arm/t-aprofile: Likewise.
2442         * doc/invoke.texi (-mcpu): Likewise.
2443
2444 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
2445
2446         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
2447         and qdf24xx and xgene1 to match -march=armv8-a.
2448
2449 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
2450
2451         PR rtl-optimization/68330
2452         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
2453         of LSHIFTRT by a non-zero constant integer.
2454
2455 2015-11-16  Richard Biener  <rguenther@suse.de>
2456
2457         PR tree-optimization/68306
2458         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
2459         bogus copying from verify_data_ref_alignment and use continue
2460         instead of return.
2461
2462 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
2463             Kaz Kojima  <kkojima@gcc.gnu.org>
2464
2465         PR target/68277
2466         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
2467         operands[2].
2468         (*addsi3): Add another insn_and_split variant for reload.
2469
2470 2015-11-16  Richard Biener  <rguenther@suse.de>
2471
2472         PR middle-end/68117
2473         * cfgexpand.c (pass_expand::execute): Destroy the edge
2474         redirection var map before setting RTL CFG hooks.
2475
2476 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
2477
2478         * config/i386/sse.md (reduc_splus_v8df): Rename to...
2479         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
2480
2481         (reduc_splus_v4df): Rename to...
2482         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
2483
2484         (reduc_splus_v2df): Rename to...
2485         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
2486
2487         (reduc_splus_v16sf): Rename to...
2488         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
2489
2490         (reduc_splus_v8sf): Rename to...
2491         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
2492
2493         (reduc_splus_v4sf): Rename to...
2494         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
2495
2496         (reduc_<code>_<mode>, all 3 variants): Rename each to...
2497         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
2498
2499         (reduc_umin_v8hf): Rename to...
2500         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
2501
2502 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2503
2504         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
2505         without additional conditions.
2506         * doc/extend.texi (@item simd): New.
2507
2508 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2509
2510         * passes.c (first_pass_instance): Remove variable.
2511         (execute_todo): Remove setting of first_pass_instance.
2512         * tree-pass.h (first_pass_instance): Remove declaration.
2513
2514 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2515
2516         * passes.def: Add arg to pass_ccp pass instantiation.
2517         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
2518         instead of first_pass_instance.
2519         (do_ssa_ccp): Add and handle param nonzero_p.
2520         (pass_ccp::pass_ccp): Initialize nonzero_p.
2521         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
2522         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
2523         (pass_ccp::nonzero_p): New private member.
2524
2525 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2526
2527         * passes.def: Add arg to pass_object_sizes pass instantiation.
2528         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
2529         insert_min_max_p.
2530         (pass_object_sizes::set_pass_param): New member function.  Set
2531         insert_min_max_p.
2532         (pass_object_sizes::insert_min_max_p): New private member.
2533         (pass_object_sizes::execute): Use insert_min_max_p instead of
2534         first_pass_instance.
2535
2536 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2537
2538         * passes.def: Add arg to pass_dominator pass instantiation.
2539         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
2540         of comment.
2541         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
2542         may_peel_loop_headers_p.
2543         (pass_dominator::set_pass_param): New member function.  Set
2544         may_peel_loop_headers_p.
2545         (pass_dominator::may_peel_loop_headers_p): New private member.
2546         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
2547         first_pass_instance.
2548
2549 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2550
2551         * passes.def: Add arg to pass_reassoc pass instantiation.
2552         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
2553         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
2554         of first_pass_instance.
2555         (execute_reassoc): Add and handle insert_powi_p parameter.
2556         (pass_reassoc::insert_powi_p): New private member.
2557         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
2558         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
2559         (pass_reassoc::execute): Call execute_reassoc with extra arg.
2560
2561 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2562
2563         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
2564         * gen-pass-instances.awk (handle_line): Same.
2565         * pass_manager.h (class pass_manager): Define and undefine
2566         NEXT_PASS_WITH_ARG.
2567         * passes.c (opt_pass::set_pass_param): New function.
2568         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
2569         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
2570         * tree-pass.h (gimple_opt::set_pass_param): Declare.
2571         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
2572         warn_array_bounds_p parameter.
2573         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
2574         (pass_vrp::set_pass_param): New function.
2575         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
2576         (pass_vrp::warn_array_bounds_p): New private member.
2577
2578 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2579
2580         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
2581         (output_probe_stack_range): Rotate the loop and simplify.
2582
2583 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2584
2585         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
2586         (output_probe_stack_range): Rotate the loop and simplify.
2587
2588 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2589
2590         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
2591         an lea instruction when possible.
2592         (output_adjust_stack_and_probe): Rotate the loop and simplify.
2593         (ix86_emit_probe_stack_range): Adjust.
2594         (output_probe_stack_range): Rotate the loop and simplify.
2595
2596 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2597
2598         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
2599         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
2600         with appropriate pragma GCC target.
2601
2602 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2603
2604         PR target/65837
2605         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
2606         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
2607
2608 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2609
2610         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
2611         (cortexa57_tunings): Use it.
2612
2613 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2614
2615         PR target/65837
2616         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
2617         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
2618         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
2619         undefine __ARM_FP.
2620         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
2621         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
2622         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
2623         * doc/extend.texi (-mfpu=): Describe attribute.
2624
2625 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2626
2627         PR target/65837
2628         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
2629         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
2630         arm_init_neon_builtins.
2631         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
2632         (arm_init_neon_builtins_internal)
2633         (arm_init_crypto_builtins_internal):
2634         Test and set neon_set_p, neon_crypto_set_p.
2635         (neon_set_p, neon_crypto_set_p): New static booleans.
2636
2637 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2638
2639         PR target/65837
2640         * config/arm/arm.c (arm_fpu_desc): Remove.
2641         (all_fpus): Make global.
2642         (arm_option_override): Use FPU TARGET accessors.
2643         (arm_declare_function_name): Likewise.
2644         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
2645         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
2646         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
2647         (TARGET_NEON): Likewise.
2648         (all_fpus): Declare extern.
2649         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
2650         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
2651
2652 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2653
2654         PR middle-end/68366
2655         * sdbout.c: Include emit-rtl.h and function.h.
2656
2657 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
2658
2659         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
2660         Remove support for FreeBSD 5 and earlier.
2661
2662 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2663
2664         * configure: Regenerate.
2665         * configure.ac: Always define ENABLE_OFFLOADING.
2666         * cgraph.c (cgraph_node::create): Adjust.
2667         * gcc.c (process_command): Likewise.
2668         * omp-low.c (create_omp_child_function): Likewise.
2669         (expand_omp_target): Likewise.
2670         * varpool.c (varpool_node::get_create): Likewise.
2671
2672 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2673
2674         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
2675         * df-scan.c (df_get_exit_block_use_set): Adjust.
2676         * except.c (expand_eh_return): Likewise.
2677
2678 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2679
2680         * config/i386/i386.h (TARGET_PECOFF): Remove define.
2681         * defaults.h (TARGET_PECOFF): New default definition.
2682         * varasm.c (handle_vtv_comdat_section): Adjust.
2683
2684 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2685
2686         * defaults.h: New definition of SDB_DEBUGGING_INFO.
2687         * doc/tm.texi: Regenerate.
2688         * doc/tm.texi.in: Adjust.
2689         * final.c (rest_of_clean_state): Remove check if
2690         SDB_DEBUGGING_INFO is defined.
2691         * function.c (number_blocks): Likewise.
2692         * output.h: Likewise.
2693         * sdbout.c: Likewise.
2694         * toplev.c (process_options): Likewise.
2695
2696 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2697
2698         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
2699         (enum sdb_masks): Likewise.
2700         * sdbout.c (plain_type_1): Likewise.
2701         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
2702
2703 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
2704
2705         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
2706         internal calls - 0 if ordered simd and 1 for ordered threads simd.
2707         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
2708         argument is 1, replace it with GOMP_ordered_* call instead of removing
2709         it.
2710
2711 2015-11-13  Rich Felker <dalias@libc.org>
2712
2713         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
2714         address loading hack for FDPIC targets.
2715
2716 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
2717             Jeff Law  <law@redhat.com>
2718
2719         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
2720         * common.opt (-fsplit-paths): New flag controlling path splitting.
2721         * doc/invoke.texi (fsplit-paths): Document.
2722         * opts.c (default_options_table): Add -fsplit-paths to -O2.
2723         * passes.def: Add split_paths pass.
2724         * timevar.def (TV_SPLIT_PATHS): New timevar.
2725         * tracer.c: Include "tracer.h"
2726         (ignore_bb_p): No longer static.
2727         (transform_duplicate): New function, broken out of tail_duplicate.
2728         (tail_duplicate): Use transform_duplicate.
2729         * tracer.h (ignore_bb_p): Declare
2730         (transform_duplicate): Likewise.
2731         * tree-pass.h (make_pass_split_paths): Declare.
2732         * gimple-ssa-split-paths.c: New file.
2733
2734 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
2735             Marek Polacek  <polacek@redhat.com>
2736             Jason Merrill  <jason@redhat.com>
2737
2738         * convert.c (maybe_fold_build1_loc): New.
2739         (maybe_fold_build2_loc): New.
2740         (convert_to_pointer_1): Split out from convert_to_pointer.
2741         (convert_to_pointer_nofold): New.
2742         (convert_to_real_1): Split out from convert_to_real.
2743         (convert_to_real_nofold): New.
2744         (convert_to_integer_1): Split out from convert_to_integer.
2745         (convert_to_integer_nofold): New.
2746         (convert_to_complex_1): Split out from convert_to_complex.
2747         (convert_to_complex_nofold): New.
2748         * convert.h: Declare new functions.
2749         * tree-complex.c (create_one_component_var): Break up line to
2750         avoid sequence point issues.
2751
2752 2015-11-13  Jason Merrill  <jason@redhat.com>
2753
2754         * fold-const.c (fold_convert_const): Fold changing cv-quals on
2755         VECTOR_CST.
2756
2757         * hash-map.h (hash_map::empty): New.
2758
2759 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2760
2761         * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
2762         (oacc_loop_fixed_partitions): Correct return type to bool.
2763         (oacc_loop_auto_partitions): New.
2764         (oacc_loop_partition): Take mask argument, call
2765         oacc_loop_auto_partitions.
2766         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
2767
2768 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2769
2770         * config/rs6000/constraints.md (we constraint): New constraint for
2771         64-bit power9 vector support.
2772         (wL constraint): New constraint for the element in a vector that
2773         can be addressed by the MFVSRLD instruction.
2774
2775         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
2776         declaration.
2777         (convert_int_to_float128): Likewise.
2778         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
2779         hardware support for IEEE 128-bit floating point.
2780         (rs6000_expand_float128_convert): Likewise.
2781         (convert_float128_to_int): Likewise.
2782         (convert_int_to_float128): Likewise.
2783
2784         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
2785         ISA 3.0 hardware IEEE 128-bit floating point.
2786         (UNSPEC_IEEE128_MOVE): Likewise.
2787         (UNSPEC_IEEE128_CONVERT): Likewise.
2788         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
2789         (Ff): Add support for DImode.
2790         (Fv): Likewise.
2791         (any_fix code iterator): New and updated iterators for IEEE
2792         128-bit floating point hardware support.
2793         (any_float code iterator): Likewise.
2794         (s code attribute): Likewise.
2795         (su code attribute): Likewise.
2796         (az code attribute): Likewise.
2797         (uns code attribute): Likewise.
2798         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
2799         floating point hardware support.
2800         (abs<mode>2, FLOAT128 iterator): Likewise.
2801         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
2802         floating point hardware.
2803         (sub<mode>3, IEEE128 iterator): Likewise.
2804         (mul<mode>3, IEEE128 iterator): Likewise.
2805         (div<mode>3, IEEE128 iterator): Likewise.
2806         (copysign<mode>3, IEEE128 iterator): Likewise.
2807         (sqrt<mode>2, IEEE128 iterator): Likewise.
2808         (neg<mode>2, IEEE128 iterator): Likewise.
2809         (abs<mode>2, IEEE128 iterator): Likewise.
2810         (nabs<mode>2, IEEE128 iterator): Likewise.
2811         (fma<mode>4_hw, IEEE128 iterator): Likewise.
2812         (fms<mode>4_hw, IEEE128 iterator): Likewise.
2813         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
2814         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
2815         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
2816         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
2817         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
2818         (fix_fixuns code attribute): Likewise.
2819         (float_floatuns code attribute): Likewise.
2820         (fix<uns>_<mode>si2_hw): Likewise.
2821         (fix<uns>_<mode>di2_hw): Likewise.
2822         (float<uns>_<mode>si2_hw): Likewise.
2823         (float<uns>_<mode>di2_hw): Likewise.
2824         (xscvqp<su>wz_<mode>): Likewise.
2825         (xscvqp<su>dz_<mode>): Likewise.
2826         (xscv<su>dqp_<mode): Likewise.
2827         (ieee128_mfvsrd): Likewise.
2828         (ieee128_mfvsrwz): Likewise.
2829         (ieee128_mtvsrw): Likewise.
2830         (ieee128_mtvsrd): Likewise.
2831         (trunc<mode>df2_odd): Likewise.
2832         (cmp<mode>_h): Likewise.
2833         (128-bit GPR splitters): Don't split a 128-bit move that is a
2834         direct move between GPR and vector registers using ISA 3.0 direct
2835         move instructions.
2836         (maddld4): Add support for the ISA 3.0 integer multiply-add
2837         instruction.
2838
2839         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
2840         debugging.
2841         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
2842         constraint.  Disable the VSX<->GPR direct move helpers if we have
2843         the MFVSRLD and MTVSRDD instructions.
2844         (rs6000_secondary_reload_simple_move): Add support for doing
2845         vector direct moves directly without additional scratch registers
2846         if we have ISA 3.0 instructions.
2847         (rs6000_secondary_reload_direct_move): Update comments.
2848         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
2849         instructions.
2850
2851         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
2852         direct move instructions.
2853         (vsx_movti_64bit): Likewise.
2854         (vsx_extract_<mode>): Likewise.
2855
2856         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
2857         macros for ISA 3.0 direct move instructions.
2858         (TARGET_DIRECT_MOVE_128): Likewise.
2859         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
2860         instruction.
2861
2862         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
2863         constraints.  Update wa documentation to say not to use %x<n> on
2864         instructions that only take Altivec registers.
2865
2866 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2867
2868         * Makefile.in (OBJS): Add gcc-rich-location.o.
2869         * diagnostic.c (diagnostic_append_note): Pass line_table to
2870         rich_location ctor.
2871         (emit_diagnostic): Likewise.
2872         (inform): Likewise.
2873         (inform_n): Likewise.
2874         (warning): Likewise.
2875         (warning_at): Likewise.
2876         (warning_n): Likewise.
2877         (pedwarn): Likewise.
2878         (permerror): Likewise.
2879         (error): Likewise.
2880         (error_n): Likewise.
2881         (error_at): Likewise.
2882         (sorry): Likewise.
2883         (fatal_error): Likewise.
2884         (internal_error): Likewise.
2885         (internal_error_no_backtrace): Likewise.
2886         (source_range::debug): Likewise.
2887         * gcc-rich-location.c: New file.
2888         * gcc-rich-location.h: New file.
2889         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
2890         (warning_at): Likewise.
2891         * gimple.h (gimple_set_block): Use set_block function.
2892         * input.c (dump_line_table_statistics): Dump stats on how many
2893         ranges were optimized vs how many needed ad-hoc table.
2894         (write_digit_row): Add "map" param; use its range_bits
2895         to calculate the per-character offset.
2896         (dump_location_info): Print the range and column bits for each
2897         ordinary map.  Use the range bits to calculate the per-character
2898         offset.  Pass the map as a new param to the various calls to
2899         write_digit_row.  Eliminate uses of
2900         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
2901         * print-tree.c (print_node): Print any source range information.
2902         * rtl-error.c (diagnostic_for_asm): Likewise.
2903         * toplev.c (general_init): Initialize line_table's
2904         default_range_bits.
2905         * tree-cfg.c (move_block_to_fn): Likewise.
2906         (move_block_to_fn): Likewise.
2907         * tree-inline.c (copy_phis_for_bb): Likewise.
2908         * tree.c (tree_set_block): Likewise.
2909         (get_pure_location): New function.
2910         (set_source_range): New functions.
2911         (set_block): New function.
2912         (set_source_range): New functions.
2913         * tree.h (CAN_HAVE_RANGE_P): New.
2914         (EXPR_LOCATION_RANGE): New.
2915         (EXPR_HAS_RANGE): New.
2916         (get_expr_source_range): New inline function.
2917         (DECL_LOCATION_RANGE): New.
2918         (set_source_range): New decls.
2919         (get_decl_source_range): New inline function.
2920
2921 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
2922
2923         PR tree-optimization/67682
2924         * tree-vect-slp.c (vect_split_slp_store_group): New.
2925         (vect_analyze_slp_instance): During basic block SLP, recurse on
2926         subgroups if vect_build_slp_tree fails after 1st vector.
2927
2928 2015-11-13  Christian Bruel  <christian.bruel@st.com>
2929
2930         PR target/65837
2931         * config/arm/arm.c (arm_option_override): Move NEON check...
2932         (arm_option_check_internal): here
2933         (arm_file_start): Move .fpu print...
2934         (arm_declare_function_name): here
2935         (arm_option_print): Dump current fpu name.
2936         * config/arm/arm.opt (arm_fpu_index): Mark Save.
2937
2938 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
2939             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2940
2941         * combine.c (subst): Don't substitute or simplify when
2942         handling register-wise widening multiply.
2943         (force_to_mode): Likewise.
2944
2945 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
2946
2947         PR tree-optimization/68264
2948         * tree-call-cdce.c (gen_one_condition): Update commentary.
2949         (gen_conditions_for_pow_int_base): Invert the sense of the tests
2950         passed to gen_one_condition.
2951         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
2952         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
2953         using EDGE_FALSE_VALUE for edges to the call block and
2954         EDGE_TRUE_VALUE for the others.
2955
2956 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2957
2958         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
2959         complex types.
2960
2961 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2962
2963         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
2964
2965 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2966
2967         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
2968         len_of_prefix.
2969
2970 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2971
2972         * gen-pass-instances.awk (handle_line): Add args_str variable.
2973
2974 2015-11-13  Martin Liska  <mliska@suse.cz>
2975
2976         * graphite-poly.c (free_scop): Release scop->drs vector.
2977         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
2978         Release dom vector.
2979         (try_generate_gimple_bb): Use vNULL as a default initialization
2980         for vectors.
2981
2982 2015-11-13  Martin Liska  <mliska@suse.cz>
2983
2984         PR ipa/68311
2985         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
2986         Replace array initialization (using a variable post-increment)
2987         that possible triggers multiple unsequenced modifications
2988         with a pair of pushes to a vector.
2989
2990 2015-11-13  Richard Biener  <rguenther@suse.de>
2991
2992         PR tree-optimization/68306
2993         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
2994         loop related checks ...
2995         (vect_verify_datarefs_alignment): ... here.
2996         (vect_slp_analyze_and_verify_node_alignment): Compute and
2997         verify alignment of the single DR that it matters.
2998         * tree-vect-stmts.c (vectorizable_store): Add an assert.
2999         (vectorizable_load): Add a comment.
3000         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
3001         for determining load cost.
3002
3003 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3004
3005         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
3006         mix of boolean and integer vectors in a single statement.
3007         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
3008         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
3009         determine constant type.
3010         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
3011         for loop invariants.
3012
3013 2015-11-13  Alan Hayward <alan.hayward@arm.com>
3014
3015         PR tree-optimization/66558
3016         * tree-vect-loop.c (is_integer_induction):Add.
3017         (vectorizable_reduction): Add integer induction checks.
3018
3019 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
3020
3021         Revert [ARM] Remove neon-testgen.ml and generated tests.
3022
3023         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3024
3025         [ARM] Remove neon-testgen.ml and generated tests.
3026
3027         * config/arm/neon-testgen.ml: Remove.
3028
3029 2015-11-13  Richard Biener  <rguenther@suse.de>
3030
3031         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
3032         Signal fatal failure if early checks fail.
3033         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
3034         do not bother testing further vector sizes.
3035
3036 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
3037
3038         * config/i386/predicates.md (misaligned_operand): Return true if
3039         operand is aligned to less than its natural alignmnet.
3040
3041 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3042
3043         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
3044         (vec_cmpu@var{m}@var{n}): New item.
3045         (vcond@var{m}@var{n}): Specify comparison is signed.
3046         (vcondu@var{m}@var{n}): New item.
3047         (vcond_mask_@var{m}@var{n}): New item.
3048         (maskload@var{m}@var{n}): New item.
3049         (maskstore@var{m}@var{n}): New item.
3050
3051 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
3052
3053         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
3054         types of stored value and storage are compatible.
3055
3056 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
3057
3058         * gcc.c (POST_LINK_SPEC): Define if not already defined.
3059         (LINK_COMMAND_SPEC): Use post_link.
3060         (post_link_spec): New, initialize to POST_LINK_SPEC.
3061         (post_link): Initialize new static spec.
3062         * doc/tm.texi.in (POST_LINK_SPEC): Document.
3063         * doc/tm.texi: Regenerated.
3064
3065 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
3066
3067         PR driver/67613
3068         * Makefile.in (GCC_OBJS): Add spellcheck.o.
3069         (OBJS): Add spellcheck-tree.o.
3070         * gcc.c: Include "spellcheck.h".
3071         (suggest_option): New function.
3072         (driver::handle_unrecognized_options): Call suggest_option to
3073         provide a hint about misspelled options.
3074         * spellcheck.c: Update file comment.
3075         (levenshtein_distance): Convert 4-param implementation from static
3076         to extern scope.  Remove note about unit tests from leading
3077         comment for const char * implementation.  Move tree
3078         implementation to...
3079         * spellcheck-tree.c: New file.
3080         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
3081
3082 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
3083
3084         * Makefile.in (OBJS): Add spellcheck.o.
3085         * spellcheck.c: New file.
3086         * spellcheck.h: New file.
3087
3088 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
3089
3090         * config/ft32/ft32.md (*sne): New insn pattern.
3091
3092 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
3093
3094         * cprop.c (is_too_expensive): Remove.
3095         (gcse.h): Include.
3096         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
3097         is_too_expensive.
3098         * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
3099         * gcse.c (is_too_expensive): Rename to ...
3100         (gcse_or_cprop_is_too_expensive): ... this.
3101         Expand warning to add required size of max-gcse-memory.
3102         (one_pre_gcse_pass): Use it.
3103         (one_code_hoisting_pass): Use it.
3104         * params.def (max-gcse-memory): Increase from 50MB to 128MB.
3105
3106 2015-11-12  James Norris  <jnorris@codesourcery.com>
3107             Joseph Myers  <joseph@codesourcery.com>
3108
3109         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
3110         GF_OMP_TARGET_KIND_OACC_DECLARE.
3111         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
3112         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3113         * gimplify.c (oacc_declare_returns): New.
3114         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
3115         (device_resident_p): New function.
3116         (oacc_default_clause): Handle device_resident clause.
3117         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
3118         (gimplify_expr): Handle OACC_DECLARE.
3119         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
3120         * omp-low.c (expand_omp_target): Handle
3121         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
3122         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
3123         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
3124         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
3125         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3126         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
3127         GOMP_MAP_DEVICE_RESIDENT.
3128
3129 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3130
3131         [ARM] Remove neon-testgen.ml and generated tests.
3132
3133         * config/arm/neon-testgen.ml: Remove.
3134
3135 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
3136
3137         * config/aarch64/aarch64-cores.def (qdf24xx): New.
3138         * config/aarch64/aarch64-tune.md: Regenerated.
3139         * config/arm/arm-cores.def (qdf24xx): New.
3140         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
3141         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
3142         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
3143         (ARM Options/-mtune): Likewise.
3144
3145 2015-11-12  Martin Liska  <mliska@suse.cz>
3146
3147         * config/i386/i386.c (ix86_valid_target_attribute_p):
3148         Finalize options at the of the function.
3149         * gcc.c (driver_get_configure_time_options): Call newly
3150         introduced init_opts_obstack.
3151         * lto-wrapper.c (main): Likewise.
3152         * opts.c (init_opts_obstack): New function.
3153         (init_options_struct): Call newly introduced init_opts_obstack.
3154         * opts.h (init_options_struct): Declare.
3155
3156 2015-11-12  Martin Liska  <mliska@suse.cz>
3157
3158         PR ipa/68035
3159         * ipa-icf.c (void sem_item::set_hash): New function.
3160         (sem_function::get_hash): Use renamed m_hash member variable.
3161         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
3162         (sem_item::update_hash_by_local_refs): Likewise.
3163         (sem_variable::get_hash): Use renamed m_hash member variable.
3164         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
3165         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
3166         (sem_item_optimizer::build_graph): As the hash value of an item
3167         is lazy initialized, force the calculation.
3168         * ipa-icf.h (set_hash): Declare new function and rename hash member
3169         variable to m_hash.
3170
3171 2015-11-12  Richard Biener  <rguenther@suse.de>
3172
3173         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
3174         Rename to vect_slp_analyze_instance_dependence.
3175         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
3176         Remove WAR special-case.
3177         (vect_slp_analyze_node_dependences): Instead add more specific
3178         code here, not relying on other instances being vectorized.
3179         (vect_slp_analyze_instance_dependence): Adjust accordingly.
3180         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
3181         vertical space in dump files.
3182         (vect_print_slp_tree): Likewise.
3183         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
3184         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
3185         not vectorized stmts until after dependence analysis removed
3186         instances.  Merge alignment and dependence checks.
3187         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
3188         flag on all stmts.
3189
3190 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
3191
3192         * config/aarch64/aarch64-protos.h (tune_params): Add new members
3193         "max_case_values" and "cache_line_size".
3194         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
3195         function.
3196         (aarch64_override_options_internal): Tune heuristics based on new
3197         members in "tune_params".
3198         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3199
3200 2015-11-12  Richard Biener  <rguenther@suse.de>
3201
3202         PR tree-optimization/68306
3203         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
3204         relevant and vectorizable checks here.
3205         (vect_verify_datarefs_alignment): Add relevant check here.
3206
3207 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3208
3209         * gimplify.c (oacc_default_clause): New.
3210         (omp_notice_variable): Call it.
3211
3212 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3213
3214         PR tree-optimization/68305
3215         * tree-vect-slp.c (vect_get_constant_vectors): Support
3216         COND_EXPR with SSA_NAME as a condition.
3217
3218 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3219
3220         * config/visium/visium-protos.h (notice_update_cc): Delete.
3221         (print_operand): Likewise.
3222         (print_operand_address): Likewise.
3223
3224 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
3227         FUNCTION_VALUE_REGNO_P): Remove.
3228         * config/alpha/alpha-protos.h (function_value): Remove.
3229         * config/alpha/alpha.c (function_value): Rename to...
3230         (alpha_function_value_1): ... this.  Make static.
3231         (alpha_function_value, alpha_libcall_value,
3232         alpha_function_value_regno_p): New functions.
3233         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3234         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3235
3236 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3237
3238         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3239         * config/alpha/alpha.c (alpha_memory_latency): Make static.
3240         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
3241         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3242
3243 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3244
3245         PR target/67265
3246         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
3247         assertion on the CFA register.
3248
3249 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3250
3251         * expr.c (do_store_flag): Expand vector comparison as
3252         VEC_COND_EXPR if vector comparison is not supported by target.
3253
3254 2015-11-12  Renlin Li  <renlin.li@arm.com>
3255
3256         * config/arm/arm.md (addsi3_compare_op2): Make the order of
3257         assembly pattern consistent with constraint order.
3258
3259 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3260
3261         * gen-pass-instances.awk (handle_line): Simplify match regexp.
3262
3263 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3264
3265         * gen-pass-instances.awk (handle_line): Simplify init of
3266         postfix_starts_at.
3267
3268 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3269
3270         * gen-pass-instances.awk (handle_line): Rename var where to
3271         call_starts_at.
3272
3273 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
3274
3275         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
3276         do not expand to rtl.
3277
3278 2015-11-12  Richard Biener  <rguenther@suse.de>
3279
3280         PR tree-optimization/58497
3281         * tree-vect-generic.c: Include gimplify.h.
3282         (tree_vec_extract): Lookup constant/constructor DEFs.
3283         (do_cond): Unshare cond.
3284
3285 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3286
3287         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
3288         combined insn if the alignment of vector mode memory operand
3289         is less than ssememalign.
3290
3291 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3292
3293         * gen-pass-instances.awk (handle_line): Print parentheses and
3294         pass_name explicitly.
3295
3296 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3297
3298         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
3299         and postfix vars.
3300
3301 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3302
3303         * gen-pass-instances.awk (handle_line): Add comments.
3304
3305 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3306
3307         * gen-pass-instances.awk (handle_line): Rename len_of_end to
3308         len_of_close.
3309
3310 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3311
3312         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
3313
3314 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3315
3316         * gen-pass-instances.awk (handle_line): Restructure using early-out.
3317
3318 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3319
3320         * gen-pass-instances.awk (handle_line): Unify semicolon use.
3321
3322 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3323
3324         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
3325
3326 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3327
3328         * gen-pass-instances.awk: Add emacs indent setting.
3329
3330 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3331
3332         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
3333         to match.pd.
3334         Move Convert A/(B/C) to (A/B)*C to match.pd.
3335         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
3336         Move Optimize (X & (-A)) / A where A is a power of 2, to
3337         X >> log2(A) to match.pd.
3338
3339         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
3340         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
3341         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
3342         New simplifier.
3343         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
3344
3345 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
3346
3347         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
3348         variable.
3349         (neon_vst2_lane<mode>): Likewise.
3350         (neon_vld3_lane<mode>): Likewise.
3351         (neon_vst3_lane<mode>): Likewise.
3352         (neon_vld4_lane<mode>): Likewise.
3353         (neon_vst4_lane<mode>): Likewise.
3354
3355 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
3356             Sebastian Pop  <s.pop@samsung.com>
3357
3358         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3359         New member codegen_error
3360         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
3361         early return.
3362         (translate_isl_ast_node_user): Early return in case of error.
3363         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
3364         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
3365         (add_parameters_to_ivs_params): Remove macro.
3366         (graphite_regenerate_ast_isl): Add if_region pointer to region.
3367         * graphite-poly.c (new_poly_dr): Remove macro.
3368         (print_pdr): Same.
3369         (new_gimple_poly_bb): Same.
3370         (free_gimple_poly_bb): Same.
3371         (print_scop_params): Same.
3372         * graphite-poly.h (struct poly_dr): Same.
3373         (struct poly_bb): Add new_bb.
3374         (gbb_from_bb): Remove dead code.
3375         (pbb_from_bb): Same.
3376         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
3377         (parameter_index_in_region): Same.
3378         (find_scop_parameters): Same.
3379         (build_cross_bb_scalars_def): New.
3380         (build_cross_bb_scalars_use): New.
3381         (graphite_find_cross_bb_scalar_vars): New
3382         (try_generate_gimple_bb): Reads and Writes.
3383         (build_alias_set): Move.
3384         (gather_bbs::before_dom_children): Gather bbs visited.
3385         (build_scops): call build_alias_set.
3386         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
3387         (remove_simple_copy_phi): Delete.
3388         (remove_invariant_phi): Delete.
3389         (simple_copy_phi_p): Delete.
3390         (reduction_phi_p): Delete.
3391         (isl_id_for_dr): Remove unused param.
3392         (parameter_index_in_region_1): Remove macro usage.
3393         (set_scop_parameter_dim): Same.
3394         (add_param_constraints): Same.
3395         (add_conditions_to_constraints): Same
3396         (build_scop_iteration_domain): Same.
3397         (pdr_add_alias_set): Comment.
3398         (add_scalar_version_numbers): New.
3399         (build_poly_dr): ISL id.
3400         (build_scop_drs): Move.
3401         (build_poly_sr_1): Same.
3402         (insert_stmts): Remove.
3403         (build_poly_sr): New.
3404         (new_pbb_from_pbb): Delete.
3405         (insert_out_of_ssa_copy_on_edge): Delete.
3406         (create_zero_dim_array): Delete.
3407         (scalar_close_phi_node_p): Delete.
3408         (propagate_expr_outside_region): Delete.
3409         (rewrite_close_phi_out_of_ssa): Delete.
3410         (rewrite_phi_out_of_ssa): Delete.
3411         (rewrite_degenerate_phi): Delete.
3412         (rewrite_reductions_out_of_ssa): Delete.
3413         (rewrite_cross_bb_scalar_dependence): Delete.
3414         (handle_scalar_deps_crossing_scop_limits):
3415         (rewrite_cross_bb_scalar_deps): Delete.
3416         (build_poly_scop): Remove calls to out-of-ssa functions.
3417         * graphite.c (graphite_transform_loops): Early return in case of
3418         codegen error.
3419         * sese.c (debug_rename_map_1): Delete.
3420         (debug_rename_map): Delete.
3421         (sese_record_loop): Remove macro.
3422         (build_sese_loop_nests): Same.
3423         (new_sese_info): Same.
3424         (free_sese_info): Same.
3425         (sese_insert_phis_for_liveouts):
3426         (is_loop_closed_ssa_use): New.
3427         (number_of_phi_nodes): New.
3428         (bb_contains_loop_close_phi_nodes): New.
3429         (bb_contains_loop_phi_nodes): New.
3430         (phi_uses_name): New.
3431         (is_valid_rename):
3432         (get_rename): Add old_bb and loop_phi for more precise matching of
3433         exprs.
3434         (set_rename): Pass region.
3435         (later_of_the_two): New.
3436         (gsi_insert_earliest): New.
3437         (collect_all_ssa_names): New.
3438         (substitute_ssa_name): New.
3439         (rename_all_uses): New.
3440         (get_rename_from_scev): New.
3441         (rename_uses): Pass old_bb for more precise matching of exprs.
3442         (get_def_bb_for_const): New.
3443         (get_new_name): New.
3444         (get_loc): New.
3445         (get_edges): New.
3446         (copy_loop_phi_args): New.
3447         (copy_loop_phi_nodes): New.
3448         (get_loop_init_value): New.
3449         (find_init_value): New.
3450         (find_init_value_close_phi): New.
3451         (copy_loop_close_phi_args): New.
3452         (copy_loop_close_phi_nodes): New.
3453         (add_phi_arg_for_new_expr): New.
3454         (copy_cond_phi_args): New.
3455         (copy_cond_phi_nodes): New.
3456         (copy_phi_nodes): New.
3457         (should_copy_to_new_region): New.
3458         (set_rename_for_each_def): New.
3459         (graphite_copy_stmts_from_block): Early return in case of error.
3460         (copy_bb_and_scalar_dependences): Same.
3461         * sese.h (vec_find): New.
3462         (SESE_PARAMS): Delete.
3463         (SESE_LOOPS): Delete.
3464         (SESE_LOOP_NEST): Delete.
3465         (sese_contains_loop): Remove macro usage.
3466         (sese_nb_params): Same.
3467         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
3468
3469 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3470
3471         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
3472         isl_union_map_add_map on every pbb->schedule.
3473
3474 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3475
3476         * tree-parloops.c (create_parallel_loop): Return void.
3477
3478 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3479
3480         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
3481         block only when needed.
3482
3483 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
3484
3485         * config/alpha/alpha-protos.h (print_operand): Remove.
3486         (print_operand_address): Remove.
3487         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
3488         (PRINT_OPERAND_ADDRESS): Remove.
3489         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
3490         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
3491         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
3492         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
3493         (print_operand_address): Rename to...
3494         (alpha_print_operand_address): ...this and make static.
3495         (print_operand): Rename to...
3496         (alpha_print_operand): ...this and make static.
3497         (alpha_print_operand_punct_valid_p): New static function.
3498
3499 2015-11-11  Richard Biener  <rguenther@suse.de>
3500
3501         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
3502         Declare.
3503         (vect_analyze_data_refs_alignment): Make loop vect specific.
3504         (vect_verify_datarefs_alignment): Likewise.
3505         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
3506         Add missing continue.
3507         (vect_compute_data_ref_alignment): Export.
3508         (vect_compute_data_refs_alignment): Merge into...
3509         (vect_analyze_data_refs_alignment): ... this.
3510         (verify_data_ref_alignment): Split out from ...
3511         (vect_verify_datarefs_alignment): ... here.
3512         (vect_slp_analyze_and_verify_node_alignment): New function.
3513         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
3514         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
3515         misplaced checks on alignment.
3516         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
3517         alignment analysis after SLP discovery and do it per instance.
3518         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
3519         bother to re-try using different vector sizes.
3520
3521 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3522             Cesar Philippidis  <cesar@codesourcery.com>
3523
3524         * gimplify.c (enum omp_region_type): Add ORT_ACC,
3525         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
3526         (gimple_add_tmp_var): Add ORT_ACC checks.
3527         (gimplify_var_or_parm_decl): Likewise.
3528         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
3529         (omp_add_variable): Look in outer contexts for openacc and allow
3530         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
3531         (omp_notice_variable, omp_is_private, omp_check_private): Add
3532         ORT_ACC checks.
3533         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
3534         Permit private openacc reductions.
3535         (gimplify_oacc_cache): Specify ORT_ACC.
3536         (gimplify_omp_workshare): Adjust OpenACC region types.
3537         (gimplify_omp_target_update): Likewise.
3538         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
3539         (lower-rec_input_clauses): Don't handle openacc firstprivate
3540         references here.
3541         (lower_omp_target): Emit initializers for openacc firstprivate vars.
3542
3543 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3544
3545         PR target/67265
3546         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
3547         frame pointer for stack checking if non-call exceptions aren't used.
3548         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
3549
3550 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
3551
3552         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
3553         [LA]SHIFTRT.
3554
3555 2015-11-11  Martin Liska  <mliska@suse.cz>
3556             Richard Biener  <rguenther@suse.de>
3557
3558         PR rtl-optimization/68287
3559         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
3560         number of elements.
3561
3562 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
3563
3564         * config/mips/mips.c (mips_breakable_sequence_p): New function.
3565         (mips_break_sequence): New function.
3566         (mips_reorg_process_insns): Use them. Use compact branches in selected
3567         situations.
3568
3569 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
3570
3571         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
3572
3573 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
3574             Jim Wilson  <wilson@gcc.gnu.org>
3575
3576         PR target/67305
3577         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
3578         be true and eliminable registers mentioned.
3579
3580 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
3581
3582         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
3583         options.
3584         * config/arc/arc-opts.h: Add ARCv2 CPUs.
3585         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
3586         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
3587         situation, and store instructions with large offsets.
3588         (arc_secondary_reload_conv): New function.
3589         (arc_init): Add ARCv2 options.
3590         (arc_conditional_register_usage): Select the proper register usage
3591         for ARCv2 processors.
3592         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
3593         architecture.
3594         (arc_compute_function_type): Likewise.
3595         (arc_print_operand): Handle new ARCv2 punctuation characters.
3596         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
3597         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
3598         function.
3599         (arc_reorg, arc_hazard): Use it.
3600         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
3601         (ASM_SPEC): Add ARCv2 options.
3602         (TARGET_NORM): ARC HS has norm instructions by default.
3603         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
3604         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
3605         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
3606         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
3607         Likewise.
3608         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
3609         (TARGET_LP_WR_INTERLOCK): Likewise.
3610         * config/arc/arc.md
3611         (commutative_binary_mult_comparison_result_used, movsicc_insn)
3612         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
3613         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
3614         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
3615         Use it for ARCv2.
3616         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
3617         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
3618         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
3619         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
3620         (extzvsi): New pattern.
3621         * config/arc/arc.opt: New ARCv2 options.
3622         * config/arc/arcEM.md: New file.
3623         * config/arc/arcHS.md: Likewise.
3624         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
3625         values.
3626         (Cm2): A signed 9-bit integer constant constraint.
3627         (C62): An unsigned 6-bit integer constant constraint.
3628         (C16): A signed 16-bit integer constant constraint.
3629         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
3630         (short_const_int_operand): New predicate.
3631         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
3632         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
3633         -mcode-density and -mdiv-rem.
3634
3635 2015-11-11  Julia Koval  <julia.koval@intel.com>
3636
3637         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
3638
3639 2015-11-11  Julia Koval  <julia.koval@intel.com>
3640
3641         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
3642
3643 2015-11-11  Martin Liska  <mliska@suse.cz>
3644
3645         * gimple-ssa-strength-reduction.c (create_phi_basis):
3646         Use auto_vec.
3647         * passes.c (release_dump_file_name): New function.
3648         (pass_init_dump_file): Used from this function.
3649         (pass_fini_dump_file): Likewise.
3650         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
3651         * var-tracking.c (vt_initialize): Use pool_allocator.
3652
3653 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
3654             Jiong Wang      <jiong.wang@arm.com>
3655
3656         PR tree-optimization/68234
3657         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
3658         node which estimiated to be VR_VARYING initially.
3659
3660 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
3661
3662         * regname.c (scan_rtx_reg): Check the matching number of consecutive
3663         registers when tying chains.
3664         (build_def_use): Move terminated_this_insn earlier in the function.
3665
3666 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
3667
3668         * configure.ac: Use = with test and not ==.
3669         * configure: Regenerated.
3670
3671 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
3672
3673         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
3674         machine asserts.  Update defines for 64 bit.
3675
3676 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3677
3678         PR target/63870
3679         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
3680         lane number.
3681         (neon_vst1_lane<mode>): Likewise.
3682         (neon_vld2_lane<mode>): Likewise.
3683         (neon_vst2_lane<mode>): Likewise.
3684         (neon_vld3_lane<mode>): Likewise.
3685         (neon_vst3_lane<mode>): Likewise.
3686         (neon_vld4_lane<mode>): Likewise.
3687         (neon_vst4_lane<mode>): Likewise.
3688
3689 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3690
3691         PR target/63870
3692         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
3693         qualifier_struct_load_store_lane_index.
3694         (arm_storestruct_lane_qualifiers) Likewise.
3695         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
3696         big-endian.
3697         (neon_vst1_lane<mode>) Likewise.
3698         (neon_vld2_lane<mode>) Likewise.
3699         (neon_vst2_lane<mode>) Likewise.
3700         (neon_vld3_lane<mode>) Likewise.
3701         (neon_vst3_lane<mode>) Likewise.
3702         (neon_vld4_lane<mode>) Likewise.
3703         (neon_vst4_lane<mode>) Likewise.
3704
3705 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3706
3707         PR target/63870
3708         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
3709         qualifier_struct_load_store_lane_index.
3710         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3711         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
3712         argument qualifiers.
3713         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
3714         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
3715
3716 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3717
3718         * config/nvptx/nvptx.opt (moptimize): New flag.
3719         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
3720         default.
3721         (nvptx_optimize_inner): New.
3722         (nvptx_process_pars): Call it when optimizing.
3723         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
3724
3725 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3726
3727         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3728         Remove redundant code.
3729
3730 2015-11-10  Jeff Law  <law@redhat.com>
3731
3732         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
3733         call to output_address.
3734         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
3735         Add unnamed machine_mode argument.
3736
3737 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3738
3739         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
3740         default to 64-bit.
3741
3742 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3743
3744         * config/i386/i386.md (*movabs<mode>_1): Add explicit
3745         size directives for -masm=intel.
3746         (*movabs<mode>_2): Ditto.
3747
3748 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3749
3750         * config/i386/i386.c (ix86_print_operand): Remove dead code that
3751         tried to avoid (%rip) for call operands.
3752
3753 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3754
3755         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
3756         argument.  Do not use RIP relative addressing when no_rip is set.
3757         (ix86_print_operand): Update call to ix86_print_operand_address_as.
3758         (ix86_print_operand_address): Ditto.
3759         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
3760         absolute movabs operand 0.  Add square braces for -masm=intel.
3761         (*movabs<mode>_2): Ditto for operand 1.
3762
3763 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3764
3765         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
3766         combine_vcvtf2i pattern.
3767
3768 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3769
3770         * config/arm/arm.c (neon_valid_immediate): Remove integer
3771         CONST_DOUBLE handling.  It should never occur.
3772
3773 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
3774
3775         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
3776         (ATOMIC_LDOP): Likewise.
3777         (atomic_ldop): Likewise.
3778         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
3779         (ATOMIC_LDOP): Likewise.
3780         (atomic_ldop): Likewise.
3781
3782 2015-11-10  Martin Liska  <mliska@suse.cz>
3783
3784         * alloc-pool.h (allocate_raw): New function.
3785         (operator new (size_t, object_allocator<T> &a)): Use the
3786         function instead of object_allocator::allocate).
3787
3788 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3789
3790         * config/i386/sse.md (HALFMASKMODE): New attribute.
3791         (DOUBLEMASKMODE): New attribute.
3792         (vec_pack_trunc_qi): New.
3793         (vec_pack_trunc_<mode>): New.
3794         (vec_unpacks_lo_hi): New.
3795         (vec_unpacks_lo_si): New.
3796         (vec_unpacks_lo_di): New.
3797         (vec_unpacks_hi_hi): New.
3798         (vec_unpacks_hi_<mode>): New.
3799
3800 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3801
3802         * optabs.c (expand_binop_directly): Allow scalar mode for
3803         vec_pack_trunc_optab.
3804         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
3805         boolean vector producers from pattern sequence when computing VF.
3806         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
3807         vect_recog_mask_conversion_pattern.
3808         (search_type_for_mask): Choose the smallest
3809         type if different size types are mixed.
3810         (build_mask_conversion): New.
3811         (vect_recog_mask_conversion_pattern): New.
3812         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
3813         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
3814         load with pattern.
3815         (vectorizable_conversion): Support boolean vectors.
3816         (free_stmt_vec_info): Allow patterns for statements with no lhs.
3817         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
3818
3819 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3820
3821         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
3822         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
3823         Cast mask to FP mode if required.
3824         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
3825         (vcond_mask_<mode><avx512fmaskmodelower>): New.
3826         (vcond_mask_<mode><sseintvecmodelower>): New.
3827         (vcond_mask_<mode><sseintvecmodelower>): New.
3828         (vcond_mask_v2div2di): New.
3829         (vcond_mask_<mode><sseintvecmodelower>): New.
3830         (vcond_mask_<mode><sseintvecmodelower>): New.
3831
3832 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3833
3834         * optabs-query.h (get_vcond_mask_icode): New.
3835         * optabs-tree.c (expand_vec_cond_expr_p): Use
3836         get_vcond_mask_icode for VEC_COND_EXPR with mask.
3837         * optabs.c (expand_vec_cond_mask_expr): New.
3838         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
3839         * optabs.def (vcond_mask_optab): New.
3840         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
3841         generate redundant comparison for COND_EXPR.
3842         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
3843         as a condition.
3844         (vectorizable_condition): Likewise.
3845         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
3846         cond_exp with no embedded comparison.
3847         (vect_build_slp_tree_1): Likewise.
3848
3849 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3850
3851         * config/i386/sse.md (maskload<mode>): Rename to ...
3852         (maskload<mode><sseintvecmodelower>): ... this.
3853         (maskstore<mode>): Rename to ...
3854         (maskstore<mode><sseintvecmodelower>): ... this.
3855         (maskload<mode><avx512fmaskmodelower>): New.
3856         (maskstore<mode><avx512fmaskmodelower>): New.
3857
3858 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3859
3860         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
3861         (expand_MASK_STORE): Adjust to maskstore optab changes.
3862         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
3863          Adjust to maskload, maskstore optab changes.
3864         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
3865         * optabs.def (maskload_optab): Transform into convert optab.
3866         (maskstore_optab): Likewise.
3867         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
3868         can_vec_mask_load_store_p signature change.
3869         (predicate_mem_writes): Use boolean mask.
3870         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
3871         can_vec_mask_load_store_p signature change.  Allow invariant masks.
3872         (vectorizable_operation): Ignore type precision for boolean vectors.
3873
3874 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3875
3876         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
3877         (const_vector_mask_from_tree): New.
3878         (const_vector_from_tree): Use const_vector_mask_from_tree
3879         for boolean vectors.
3880         * optabs-query.h (get_vec_cmp_icode): New.
3881         * optabs-tree.c (expand_vec_cmp_expr_p): New.
3882         * optabs-tree.h (expand_vec_cmp_expr_p): New.
3883         * optabs.c (vector_compare_rtx): Add OPNO arg.
3884         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
3885         (expand_vec_cmp_expr): New.
3886         * optabs.def (vec_cmp_optab): New.
3887         (vec_cmpu_optab): New.
3888         * optabs.h (expand_vec_cmp_expr): New.
3889         * tree-vect-generic.c (expand_vector_comparison): Add vector
3890         comparison optabs check.
3891         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
3892         operations for VF.  Add mask type computation.
3893         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
3894         (vectorizable_comparison): New.
3895         (vect_analyze_stmt): Add vectorizable_comparison.
3896         (vect_transform_stmt): Likewise.
3897         (vect_init_vector): Support boolean vector invariants.
3898         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3899         (vectorizable_condition): Directly provide vectype for invariants
3900         used in comparison.
3901         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
3902         (enum vect_var_kind): Add vect_mask_var.
3903         (enum stmt_vec_info_type): Add comparison_vec_info_type.
3904         (vectorizable_comparison): New.
3905         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3906         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
3907         (vect_create_destination_var): Likewise.
3908         * tree-vect-patterns.c (check_bool_pattern): Check fails
3909         if we can vectorize comparison directly.
3910         (search_type_for_mask): New.
3911         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
3912         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
3913         comparison statements.
3914         (vect_get_constant_vectors): Support boolean vector constants.
3915         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
3916         (ix86_expand_int_vec_cmp): New.
3917         (ix86_expand_fp_vec_cmp): New.
3918         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
3919         op_true and op_false.
3920         (ix86_int_cmp_code_to_pcmp_immediate): New.
3921         (ix86_fp_cmp_code_to_pcmp_immediate): New.
3922         (ix86_cmp_code_to_pcmp_immediate): New.
3923         (ix86_expand_mask_vec_cmp): New.
3924         (ix86_expand_fp_vec_cmp): New.
3925         (ix86_expand_int_sse_cmp): New.
3926         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
3927         (ix86_expand_int_vec_cmp): New.
3928         (ix86_get_mask_mode): New.
3929         (TARGET_VECTORIZE_GET_MASK_MODE): New.
3930         * config/i386/sse.md (avx512fmaskmodelower): New.
3931         (vec_cmp<mode><avx512fmaskmodelower>): New.
3932         (vec_cmp<mode><sseintvecmodelower>): New.
3933         (vec_cmpv2div2di): New.
3934         (vec_cmpu<mode><avx512fmaskmodelower>): New.
3935         (vec_cmpu<mode><sseintvecmodelower>): New.
3936         (vec_cmpuv2div2di): New.
3937
3938 2015-11-10  Richard Biener  <rguenther@suse.de>
3939
3940         PR tree-optimization/68240
3941         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
3942         properly.
3943         (visit_phi): For PHIs with just a single executable edge
3944         take its value directly.
3945         (expressions_equal_p): Handle VN_TOP properly.
3946
3947 2015-11-10  Richard Biener  <rguenther@suse.de>
3948
3949         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
3950         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
3951         conservatively.
3952
3953 2015-11-10  Richard Biener  <rguenther@suse.de>
3954
3955         PR tree-optimization/56118
3956         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
3957         cost favor vectorized version.
3958
3959 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3960
3961         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
3962         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
3963         (neg_not_op): New code attribute.
3964
3965 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3966
3967         * ifcvt.c (noce_try_inverse_constants): New function.
3968         (noce_process_if_block): Call it.
3969         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
3970         * optabs.def (negcc_optab, notcc_optab): Declare.
3971         * optabs.c (emit_conditional_neg_or_complement): New function.
3972         * doc/tm.texi (Standard Names): Document negcc, notcc names.
3973
3974 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3975
3976         PR rtl-optimization/68236
3977         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
3978         if insn_queue doesn't exist.
3979         (haifa_sched_finish): Reset insn_queue to NULL.
3980
3981 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
3982
3983         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
3984         (build_def_use): Initialize terminated_this_insn.
3985         (find_best_rename_reg): Pick and check register from the tied chain.
3986         (regrename_do_replace): Mark head as renamed.
3987         (struct du_head *terminated_this_insn). New static variable.
3988         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
3989         * regrename.h (struct du_head): Add tied_chain, renamed members.
3990
3991 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3992
3993         PR bootstrap/68256
3994         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
3995         Return false.
3996
3997 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3998
3999         PR target/57845
4000         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
4001         not promote the mode for aggregate types.
4002
4003 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4004
4005         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
4006         * omp-low.c (build_oacc_routine_dims): New.
4007
4008 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4009
4010         * config/rs6000/constraints.md (wF constraint): New constraints
4011         for power9/toc fusion.
4012         (wG constraint): Likewise.
4013
4014         * config/rs6000/predicates.md (u6bit_cint_operand): New
4015         predicate, recognize 0..63.
4016         (upper16_cint_operand): New predicate for power9 and toc fusion.
4017         (fpr_reg_operand): Likewise.
4018         (toc_fusion_or_p9_reg_operand): Likewise.
4019         (toc_fusion_mem_raw): Likewise.
4020         (toc_fusion_mem_wrapped): Likewise.
4021         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
4022         address range.
4023         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
4024         instead.
4025         (fusion_addis_mem_combo_load): Add support for power9 fusion of
4026         floating point loads, floating point stores, and gpr stores.
4027         (fusion_addis_mem_combo_store): Likewise.
4028         (fusion_offsettable_mem_operand): Likewise.
4029
4030         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
4031         (emit_fusion_load_store): Likewise.
4032         (fusion_p9_p): Likewise.
4033         (expand_fusion_p9_load): Likewise.
4034         (expand_fusion_p9_store): Likewise.
4035         (emit_fusion_p9_load): Likewise.
4036         (emit_fusion_p9_store): Likewise.
4037         (fusion_wrap_memory_address): Likewise.
4038
4039         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
4040         elements for power9 fusion.
4041         (rs6000_debug_print_mode): Rework debug information to print more
4042         information about fusion.
4043         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
4044         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
4045         offsettable memory address.
4046         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
4047         (emit_fusion_gpr_load): Move most of the code from
4048         emit_fusion_gpr_load into emit_fusion-addis that handles both
4049         power8 and power9 fusion.
4050         (emit_fusion_addis): Likewise.
4051         (emit_fusion_load_store): Likewise.
4052         (fusion_wrap_memory_address): Add support for TOC fusion.
4053         (fusion_split_address): Likewise.
4054         (fusion_p9_p): Add support for power9 fusion.
4055         (expand_fusion_p9_load): Likewise.
4056         (expand_fusion_p9_store): Likewise.
4057         (emit_fusion_p9_load): Likewise.
4058         (emit_fusion_p9_store): Likewise.
4059
4060         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
4061         new instructions in ISA 3.0.
4062         (TARGET_CTZ): Likewise.
4063         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
4064         (TARGET_TOC_FUSION_FP): Likewise.
4065
4066         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
4067         fusion unspecs.
4068         (UNSPEC_FUSION_ADDIS): Likewise.
4069         (QHSI mode iterator): New iterator for power9 fusion.
4070         (GPR_FUSION): Likewise.
4071         (FPR_FUSION): Likewise.
4072         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
4073         (umod<mode>3): Likewise.
4074         (divmod peephole): Likewise.
4075         (udivmod peephole): Likewise.
4076         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
4077         instructions.
4078         (ctz<mode>2_h): Likewise.
4079         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
4080         (ashdi3_extswsli_dot): Likewise.
4081         (ashdi3_extswsli_dot2): Likewise.
4082         (power9 fusion splitter): New power9/toc fusion support.
4083         (toc_fusionload_<mode>): Likewise.
4084         (toc_fusionload_di): Likewise.
4085         (fusion_gpr_load_<mode>): Update predicate function.
4086         (power9 fusion peephole2s): New power9/toc fusion support.
4087         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
4088         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
4089         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
4090         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
4091         (fusion_p9_<mode>_constant): Likewise.
4092
4093 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
4094
4095         * optabs.c (prepare_libcall_arg): New function.
4096         (expand_fixed_convert): Add call to prepare_libcall_arg.
4097
4098 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
4099
4100         * sched-int.h (dump_rgn_dependencies_dot): Declare
4101         * sched-rgn.c (dump_rgn_dependencies_dot): New function
4102         * print-rtl.h (print_insn): Add prototype
4103
4104         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
4105         * common.opt (-fsched-verbose): Set default value to 1.
4106         * invoke.texi (-fsched-verbose): Update the option's description.
4107
4108 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4109
4110         * config/visium/visium.h (PRINT_OPERAND): Delete.
4111         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
4112         (PRINT_OPERAND_ADDRESS): Likewise.
4113         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
4114         to...
4115         (visium_print_operand_punct_valid_p): ...this.  New function.
4116         (TARGET_PRINT_OPERAND): Define to...
4117         (print_operand): Rename to...
4118         (visium_print_operand): ...this.
4119         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
4120         (visium_output_address): Rename to...
4121         (visium_print_operand_address): ...this.
4122         (print_operand_address): Delete.
4123
4124 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4125
4126         PR middle-end/68259
4127         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
4128         Check that the type of the first operand is an aggregate type.
4129
4130 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4131
4132         * omp-low.c: Fix some OpenACC comment typos.
4133         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
4134         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
4135         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
4136
4137 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
4138
4139         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
4140
4141 2015-11-09  Jeff Law  <law@redhat.com>
4142
4143         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
4144         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
4145         Fix comment typo.
4146
4147 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4148             Peter Bergner  <bergner@vnet.ibm.com>
4149
4150         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
4151         ISA 3.0 (power9).
4152         (-mpower9-vector): Likewise.
4153         (-mpower9-dform): Likewise.
4154         (-mpower9-minmax): Likewise.
4155         (-mtoc-fusion): Likewise.
4156         (-mmodulo): Likewise.
4157         (-mfloat128-hardware): Likewise.
4158
4159         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
4160         mask for ISA 3.0 (power9).
4161         (POWERPC_MASKS): Add new ISA 3.0 switches.
4162         (power9 cpu): Add power9 cpu.
4163
4164         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
4165         (ASM_CPU_SPEC): Likewise.
4166         (EXTRA_SPECS): Likewise.
4167
4168         * config/rs6000/rs6000-opts.h (enum processor_type): Add
4169         PROCESSOR_POWER9.
4170
4171         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
4172         (rs6000_debug_reg_global): Add support for power9 fusion.
4173         (rs6000_setup_reg_addr_masks): Cache mode size.
4174         (rs6000_option_override_internal): Until real power9 tuning is
4175         added, use -mtune=power8 for -mcpu=power9.
4176         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
4177         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
4178         of Altivec registers.
4179         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
4180         (rs6000_loop_align): Add support for power9 cpu.
4181         (rs6000_file_start): Likewise.
4182         (rs6000_adjust_cost): Likewise.
4183         (rs6000_issue_rate): Likewise.
4184         (insn_must_be_first_in_group): Likewise.
4185         (insn_must_be_last_in_group): Likewise.
4186         (force_new_group): Likewise.
4187         (rs6000_register_move_cost): Likewise.
4188         (rs6000_opt_masks): Likewise.
4189
4190         * config/rs6000/rs6000.md (cpu attribute): Add power9.
4191         * config/rs6000/rs6000-tables.opt: Regenerate.
4192
4193         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4194         _ARCH_PWR9 if power9 support is available.
4195
4196         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
4197         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
4198
4199         * configure.ac: Determine if the assembler supports the ISA 3.0
4200         instructions.
4201         * config.in (HAVE_AS_POWER9): Likewise.
4202         * configure: Regenerate.
4203
4204         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
4205         switches.
4206
4207 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4208
4209         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
4210         Remove integer CONST_DOUBLE handling.  It should never occur.
4211
4212 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4213
4214         PR target/68129
4215         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
4216         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
4217         Delete VOIDmode case.  Assert that mode is not VOIDmode.
4218         * config/aarch64/predicates.md (const0_operand): Remove const_double
4219         match.
4220
4221 2015-11-09  Martin Liska  <mliska@suse.cz>
4222
4223         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
4224         body_info release function.
4225         * ipa-prop.c (ipa_release_body_info): New function.
4226         (ipa_analyze_node): Call the function.
4227         (ipa_node_params::~ipa_node_params): Release known_csts.
4228         * ipa-prop.h (ipa_release_body_info): Declare.
4229
4230 2015-11-09  Martin Liska  <mliska@suse.cz>
4231
4232         * gcc.c (record_temp_file): Release name string.
4233         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
4234         * lra-lives.c (free_live_range_list): Utilize
4235         lra_live_range_pool for allocation and deallocation.
4236         (create_live_range): Likewise.
4237         (copy_live_range): Likewise.
4238         (lra_merge_live_ranges): Likewise.
4239         (remove_some_program_points_and_update_live_ranges): Likewise.
4240         (lra_create_live_ranges_1): Release point_freq_vec that can
4241         be not freed from previous iteration of the function.
4242         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
4243         * tree-sra.c (sra_deinitialize): Release all vectors in
4244         base_access_vec.
4245         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
4246         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
4247         Release edge_info for a removed edge.
4248         (thread_through_all_blocks): Free region vector.
4249         * tree-ssa.h (free_dom_edge_info): Declare function extern.
4250
4251 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
4252
4253         * optabs.c (expand_vec_cond_expr): Always get sign from type.
4254         * tree.c (wide_int_to_tree): Support negative values for boolean.
4255         (build_nonstandard_boolean_type): Use signed type for booleans.
4256
4257 2015-11-09  Richard Biener  <rguenther@suse.de>
4258
4259         PR tree-optimization/68248
4260         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
4261
4262 2015-11-09  Richard Biener  <rguenther@suse.de>
4263
4264         PR tree-optimization/56118
4265         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
4266         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
4267         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
4268         function.
4269         (vect_slp_analyze_data_ref_dependences): Instead of computing
4270         all dependences of the region DRs just analyze the code motions
4271         SLP vectorization will perform.  Remove SLP instances that
4272         cannot have their store/load motions applied.
4273         (vect_analyze_data_refs): Allow DRs without a vectype
4274         in BB vectorization.
4275
4276 2015-11-09  Julian Brown  <julian@codesourcery.com>
4277
4278         * final.c (output_asm_insn): Pass VOIDmode to output_address.
4279         (output_address): Add MODE argument. Pass to print_operand_address
4280         hook.
4281         * targhooks.c (default_print_operand_address): Add MODE argument.
4282         * targhooks.h (default_print_operand_address): Update prototype.
4283         * output.h (output_address): Update prototype.
4284         * target.def (print_operand_address): Add MODE argument.
4285         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
4286         output_address.
4287         (print_operand): Pass access mode to output_address.
4288         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
4289         argument.
4290         (mcore_print_operand): Update calls to mcore_print_operand_address.
4291         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
4292         output_address.
4293         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
4294         output_address.
4295         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
4296         global.
4297         (tilegx_print_operand): Don't set above global. Update calls to
4298         output_address.
4299         (tilegx_print_operand_address): Add MODE argument. Use instead of
4300         output_memory_reference_mode global.
4301         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
4302         (frv_print_operand): Pass mode to frv_print_operand_address calls.
4303         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
4304         output_address.
4305         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
4306         (cris_print_operand): Pass mode to output_address calls.
4307         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
4308         * config/aarch64/aarch64.h (aarch64_print_operand)
4309         (aarch64_print_operand_address): Remove prototypes.
4310         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
4311         global.
4312         (aarch64_print_operand): Make static. Update calls to output_address.
4313         (aarch64_print_operand_address): Add MODE argument. Use instead of
4314         aarch64_memory_reference_mode global.
4315         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
4316         hooks.
4317         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4318         Delete macro definitions.
4319         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
4320         * config/xtensa/xtensa.c (print_operand): Pass mode in
4321         output_address calls.
4322         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
4323         argument.
4324         (h83000_print_operand): Update calls to h8300_print_operand_address
4325         and output_address.
4326         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
4327         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
4328         global.
4329         (tilepro_print_operand): Pass mode to output_address.
4330         (tilepro_print_operand_address): Add MODE argument. Use instead of
4331         output_memory_reference_mode.
4332         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
4333         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
4334         to output_address calls.
4335         (nvptx_print_operand_address): Add MODE argument.
4336         * config/alpha/alpha.c (print_operand): Pass mode argument in
4337         output_address calls.
4338         * config/m68k/m68k.c (print_operand): Pass mode argument in
4339         output_address call.
4340         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
4341         (avr_print_operand): Update calls to avr_print_operand_address.
4342         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
4343         argument. Update calls to output_address.
4344         (sparc_print_operand): Pass mode to output_address.
4345         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
4346         argument.
4347         (iq2000_print_operand): Pass mode in output_address calls.
4348         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
4349         MODE argument.
4350         (xstormy16_print_operand): Pass mode to
4351         xstormy16_print_operand_address calls.
4352         * config/mips/mips.c (mips_print_operand): Update calls to
4353         output_address.
4354         (mips_print_operand_address): Add MODE argument.
4355         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
4356         to output_address.
4357         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
4358         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
4359         output_address.
4360         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
4361         (rx_print_operand): Update calls to output_address,
4362         rx_print_operand_address.
4363         * config/nds32/nds32.c (nds32_print_operand): Update calls to
4364         output_address.
4365         (nds32_print_operand_address): Add MODE argument.
4366         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
4367         output_address calls.
4368         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
4369         output_address call.
4370         (c6x_print_address_operand): Update calls to output_address.
4371         (c6x_print_operand_address): Pass mode to above.
4372         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
4373         (v850_print_operand): Pass mode to v850_print_operand_address,
4374         output_address.
4375         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
4376         (mmix_print_operand): Pass mode in output_address calls.
4377         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
4378         (sh_print_operand): Pass mem mode to output_address,
4379         sh_print_operand_address.
4380         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
4381         (cr16_print_operand): Pass mode to output_address,
4382         cr16_print_operand_address.
4383         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
4384         output_address.
4385         * config/microblaze/microblaze.c (print_operand): Pass mode to
4386         output_address.
4387         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
4388         output_address.
4389         (nios2_print_operand_address): Add MODE argument. Update call to
4390         nios2_print_operand_address.
4391         * config/s390/s390.c (print_operand): Pass mode to output_address.
4392         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
4393         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
4394         output_address.
4395         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
4396         Use instead of output_memory_reference_mode.
4397         (output_memory_reference_mode): Delete global.
4398         (arm_print_operand): Pass mem mode to output_address.
4399         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
4400         (m32r_print_operand): Pass mode to output_address.
4401         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
4402         argument.
4403         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
4404         * config/i386/i386.c (ix86_print_operand): Pass mode to
4405         output_address calls.
4406         (ix86_print_operand_address): Add MODE argument.
4407
4408 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4409
4410         PR middle-end/68251
4411         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
4412         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
4413         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
4414         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4415
4416 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4417
4418         PR rtl-optimization/67749
4419         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
4420         case before emitting the two blocks.  Instead modify the register
4421         in the corresponding final insn of the basic block.
4422
4423 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4424
4425         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
4426         assembler syntax.
4427         Support Solaris ld.
4428         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
4429
4430         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
4431         HAVE_INITFINI_ARRAY_SUPPORT.
4432         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
4433
4434         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
4435         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
4436         Don't check HAVE_AS_SPARC_NOBITS.
4437         Heed SECTION_NOTYPE.
4438
4439         * configure: Regenerate.
4440         * config.in: Regenerate.
4441
4442 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4443
4444         PR middle-end/68253
4445         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
4446
4447 2015-11-09  Richard Henderson  <rth@redhat.com>
4448
4449         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
4450         __SEG_GS, __SEG_TLS.
4451         (ix86_register_pragmas): Register address spaces __seg_fs,
4452         __seg_gs, __seg_tls.
4453         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
4454         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
4455         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
4456         * config/i386/i386.c (ix86_decompose_address): Likewise.
4457         (ix86_legitimate_address_p): Likewise.
4458         (memory_address_length): Likewise.  Check mem address space too.
4459         (ix86_print_operand): Use ix86_print_operand_address_as.
4460         (ix86_print_operand_address_as): Rename from
4461         ix86_print_operand_address, add new addr_space_t parameter.
4462         Validate that either the parameter or the ix86_address segment
4463         is default address space.  Handle ADDR_SPACE_SEG_TLS.
4464         (ix86_print_operand_address): New.
4465         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
4466         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
4467         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
4468         (ix86_addr_space_zero_address_valid): New.
4469         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4470         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
4471         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
4472         * config/i386/predicates.md (address_no_seg_operand): Likewise.
4473         (vsib_address_operand): Likewise.
4474         (address_mpx_no_base_operand): Likewise.
4475         (address_mpx_no_index_operand): Likewise.
4476         * doc/extend.texi (x86 Named Address Spaces): New section.
4477
4478         * config/i386/i386.c (ix86_check_no_addr_space): New.
4479         (decide_alg): Add have_as parameter.
4480         (alg_usable_p): Likewise; disable rep algorithms if set.
4481         (ix86_expand_set_or_movmem): Notice if either MEM has a
4482         non-default address space.
4483         (ix86_expand_strlen): Likewise.
4484         * config/i386/i386.md (strmov, strset): Likewise.
4485         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
4486         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
4487         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
4488         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
4489         *cmpstrnqi_1, *strlenqi_1): Likewise.
4490
4491         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
4492         (*movabs<mode>_2): Likewise.
4493
4494         * dwarf2out.c (modified_type_die): Pass the address space number
4495         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
4496         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
4497         * targhooks.c (default_addr_space_debug): New.
4498         * targhooks.h (default_addr_space_debug): Declare.
4499         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
4500         * doc/tm.texi: Rebuild.
4501
4502         * gimple.c (check_loadstore): Return false when 0 is a valid address.
4503         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
4504         null when 0 is valid in the source address space.
4505         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4506         * targhooks.c (default_addr_space_zero_address_valid): New.
4507         * targhooks.h (default_addr_space_zero_address_valid): Declare.
4508         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
4509         * doc/tm.texi: Rebuild.
4510
4511         * cselib.c (add_mem_for_addr): Compare address spaces when
4512         matching memories.
4513         (cselib_lookup_mem): Likewise.
4514         * fold-const.c (operand_equal_p): Check address spaces of
4515         pointer types before checking integer constants.
4516
4517         PR tree-opt/66768
4518         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
4519         the correct type for the base.
4520
4521 2015-11-09  Jeff Law  <law@redhat.com>
4522
4523         * tree-into-ssa.c (names_to_release): No longer static.
4524         * tree-into-ssa.h (names_to_release): Declare.
4525         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
4526         (release_free_names_and_compact_live_names): New function extracted
4527         from pass_release_ssa_names::execute.
4528         (pass_release_ssa_names::execute): Use it.
4529
4530 2015-11-09  Alan Modra  <amodra@gmail.com>
4531
4532         * gensupport.c (add_mnemonic_string): Make len param a size_t.
4533         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
4534         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
4535         return value.
4536
4537 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
4538
4539         PR rtl-optimization/68182
4540         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
4541         branch with only one successor just like unconditional branches.
4542
4543 2015-11-08  Jeff Law  <law@redhat.com>
4544
4545         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
4546         non-FSM path has no edges marked with EDGE_DFS_BACK.
4547         (ssa_redirect_edges): No longer call mark_loop_for_removal.
4548         (thread_single_edge, def_split_header_continue_p): Remove.
4549         (bb_ends_with_multiway_branch): Likewise.
4550         (thread_through_loop_header): Remove cases of threading from
4551         latch through the header.  Simplify knowing we won't thread
4552         the latch.
4553         (thread_through_all_blocks): Simplify knowing that only the FSM
4554         threader needs to handle backedges.
4555
4556 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4557
4558         * doc/extend.texi (type attributes): Document scalar_storage_order.
4559         (Structure-Packing Pragmas): Rename into...
4560         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
4561         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
4562         (Warnings): Document -Wno-scalar-storage-order.
4563         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
4564         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
4565         extract_bit_field and store_bit_field.
4566         (initialize_argument_information): Adjust call to store_expr.
4567         (load_register_parameters): Adjust call to extract_bit_field.
4568         * expmed.c (check_reverse_storage_order_support): New function.
4569         (check_reverse_float_storage_order_support): Likewise.
4570         (flip_storage_order): Likewise.
4571         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
4572         of the value if it is true.  Pass REVERSE to recursive call after
4573         adjusting the target offset.
4574         Do not use extraction or movstrict instruction if REVERSE is true.
4575         Pass REVERSE to store_fixed_bit_field.
4576         (store_bit_field): Add REVERSE parameter and pass to it to above.
4577         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
4578         store_split_bit_field and store_fixed_bit_field_1.
4579         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
4580         order of the value if it is true and adjust the target offset.
4581         (store_split_bit_field): Add REVERSE parameter and pass it to
4582         store_fixed_bit_field.  Adjust the target offset if it is true.
4583         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
4584         of the value if it is true.  Pass REVERSE to recursive call after
4585         adjusting the target offset.
4586         Do not use extraction or subreg instruction if REVERSE is true.
4587         Pass REVERSE to extract_fixed_bit_field.
4588         (extract_bit_field): Add REVERSE parameter and pass to it to above.
4589         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
4590         extract_split_bit_field and extract_fixed_bit_field_1.
4591         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
4592         order of the value if it is true and adjust the target offset.
4593         (extract_split_bit_field): Add REVERSE parameter and pass it to
4594         extract_fixed_bit_field.  Adjust the target offset if it is true.
4595         * expmed.h (flip_storage_order): Declare.
4596         (store_bit_field): Adjust prototype.
4597         (extract_bit_field): Likewise.
4598         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
4599         (emit_group_store): Adjust call to store_bit_field.
4600         (copy_blkmode_from_reg): Likewise.
4601         (copy_blkmode_to_reg): Likewise.
4602         (write_complex_part): Likewise.
4603         (read_complex_part): Likewise.
4604         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
4605         that it isn't true if the target is a register.
4606         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
4607         and flip the storage order of the value.
4608         <BIT_IOR_EXPR>: Flip the storage order of the value.
4609         (get_bit_range): Adjust call to get_inner_reference.
4610         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
4611         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
4612         with reverse storage order.
4613         (store_expr_with_bounds): Add REVERSE parameter and pass it to
4614         recursive calls and call to store_bit_field.  Force the value into a
4615         register if it is true and then flip the storage order of the value.
4616         (store_expr): Add REVERSE parameter and pass it to above.
4617         (categorize_ctor_elements_1): Adjust call to
4618         initializer_constant_valid_p.
4619         (store_constructor_field): Add REVERSE parameter and pass it to
4620         recursive calls and call to store_field.
4621         (store_constructor): Add REVERSE parameter and pass it to calls to
4622         store_constructor_field and store_expr.  Set it to true for an
4623         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
4624         (store_field): Add REVERSE parameter and pass it to recursive calls
4625         and calls to store_expr and store_bit_field.  Temporarily flip the
4626         storage order of the value with record type and integral mode and
4627         adjust the shift if it is true.
4628         (get_inner_reference): Add PREVERSEP parameter and set it to true
4629         upon encoutering a reference with reverse storage order.
4630         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
4631         (expand_constructor): Adjust call to store_constructor.
4632         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
4633         of the union type to store_expr in the MEM case and assert that it
4634         isn't set in the REG case.  Adjust call to store_field.
4635         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
4636         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
4637         get_inner_reference and extract_bit_field. Temporarily flip the
4638         storage order of the value with record type and integral mode and
4639         adjust the shift if it is true.  Flip the storage order of the value
4640         at the end if it is true.
4641         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
4642         get_inner_reference.  Do not fetch an inner reference if it is true.
4643         * expr.h (store_expr_with_bounds): Ajust prototype.
4644         (store_expr): Likewise.
4645         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
4646         REF_REVERSE_STORAGE_ORDER on the reference according to it.
4647         (optimize_bit_field_compare): Deal with reverse storage order.
4648         Adjust calls to get_inner_reference and make_bit_field_ref.
4649         (decode_field_reference): Add PREVERSEP parameter and adjust call to
4650         get_inner_reference.
4651         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
4652         to decode_field_reference and make_bit_field_ref.
4653         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
4654         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
4655         (fold_comparison): Adjust call to get_inner_reference.
4656         (split_address_to_core_and_offset): Adjust call to
4657         get_inner_reference.
4658         * gimple-expr.c (useless_type_conversion_p): Return false for array
4659         types with different TYPE_REVERSE_STORAGE_ORDER flag.
4660         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
4661         REF_REVERSE_STORAGE_ORDER flag.
4662         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
4663         * output.h (assemble_real): Adjust prototype.
4664         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
4665         * stor-layout.c (finish_record_layout): Propagate the
4666         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
4667         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
4668         (TYPE_SATURATING): Adjust.
4669         (REF_REVERSE_STORAGE_ORDER): Document.
4670         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
4671         set it to true upon encoutering a reference with reverse storage order.
4672         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
4673         * tree-inline.c (remap_gimple_op_r): Propagate the
4674         REF_REVERSE_STORAGE_ORDER flag.
4675         (copy_tree_body_r): Likewise.
4676         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
4677         store_expr.
4678         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
4679         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
4680         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4681         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
4682         REF_REVERSE_STORAGE_ORDER flag.
4683         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
4684         (gimple_canonical_types_compatible_p): Likewise.
4685         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
4686         (TYPE_SATURATING): Adjust.
4687         (REF_REVERSE_STORAGE_ORDER): New flag.
4688         (reverse_storage_order_for_component_p): New inline predicate.
4689         (storage_order_barrier_p): Likewise.
4690         (get_inner_reference): Adjust prototype.
4691         * varasm.c: Include expmed.h.
4692         (assemble_variable_contents): Adjust call to output_constant.
4693         (assemble_real): Add REVERSE parameter.  Flip the storage
4694         order of the value if REVERSE is true.
4695         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
4696         (assemble_constant_contents): Adjust call to output_constant.
4697         (output_constant_pool_2): Adjust call to assemble_real.
4698         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
4699         TYPE_REVERSE_STORAGE_ORDER.
4700         (initializer_constant_valid_p): Add REVERSE parameter.
4701         (output_constant): Add REVERSE parameter.
4702         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
4703         <REAL_TYPE>: Adjust call to assemble_real.
4704         <COMPLEX_TYPE>: Pass it to recursive calls.
4705         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
4706         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
4707         (struct oc_local_state): Add REVERSE field.
4708         (output_constructor_array_range): Adjust calls to output_constant.
4709         (output_constructor_regular_field): Likewise.
4710         (output_constructor_bitfield): Adjust call to output_constructor.
4711         Flip the storage order of the value if REVERSE is true.
4712         (output_constructor): Add REVERSE parameter.  Set it to true for an
4713         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
4714         output_constructor_bitfield.
4715         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
4716         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
4717         * builtins.c (get_object_alignment_2): Likewise.
4718         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
4719         and get_ref_base_and_extent.
4720         * dbxout.c (dbxout_expand_expr): Likewise.
4721         * dwarf2out.c (add_var_loc_to_decl): Likewise.
4722         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
4723         (loc_list_from_tree): Likewise.
4724         (fortran_common): Likewise.
4725         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
4726         get_ref_base_and_extent.
4727         (get_base_constructor): Likewise.
4728         (fold_const_aggregate_ref_1): Likewise.
4729         * gimple-laddress.c (pass_laddress::execute): Adjust call to
4730         get_inner_reference.
4731         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
4732         get_inner_reference and bail out on reverse storage order.
4733         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
4734         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
4735         build_ref_for_offset.
4736         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
4737         get_ref_base_and_extent.
4738         (ipa_polymorphic_call_context): Likewise.
4739         (extr_type_from_vtbl_ptr_store): Likewise.
4740         (check_stmt_for_type_change): Likewise.
4741         (get_dynamic_type): Likewise.
4742         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
4743         get_ref_base_and_extent.
4744         (compute_complex_assign_jump_func): Likewise.
4745         (get_ancestor_addr_info): Likewise.
4746         (compute_known_type_jump_func): Likewise.
4747         (determine_known_aggregate_parts): Likewise.
4748         (ipa_get_adjustment_candidate): Likewise.
4749         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
4750         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
4751         (build_ref_for_offset): Adjust prototype.
4752         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
4753         get_inner_reference.
4754         * tree-affine.c (tree_to_aff_combination): Adjust call to
4755         get_inner_reference.
4756         (get_inner_reference_aff): Likewise.
4757         * tree-data-ref.c (split_constant_offset_1): Likewise.
4758         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
4759         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
4760         get_inner_reference.
4761         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
4762         (dump_access): Print new fields.
4763         (create_access): Adjust call to get_ref_base_and_extent and set the
4764         REVERSE flag according to the result.
4765         (completely_scalarize_record): Set the REVERSE flag.
4766         (scalarize_elem): Add REVERSE parameter.
4767         (build_access_from_expr_1): Preserve storage order barriers.
4768         (build_accesses_from_assign): Likewise.
4769         (build_ref_for_offset): Add REVERSE parameter and set the
4770         REF_REVERSE_STORAGE_ORDER flag accordingly.
4771         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
4772         the REF_REVERSE_STORAGE_ORDER flag if there are components.
4773         (analyze_access_subtree): Likewise.
4774         (create_artificial_child_access): Set the REVERSE flag.
4775         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
4776         (turn_representatives_into_adjustments): Propagate REVERSE flag.
4777         (ipa_sra_check_caller): Adjust call to get_inner_reference.
4778         * tree-ssa-alias.c (ao_ref_base): Adjust call to
4779         get_ref_base_and_extent.
4780         (aliasing_component_refs_p): Likewise.
4781         (stmt_kills_ref_p_1): Likewise.
4782         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4783         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
4784         Return true if reverse storage order.
4785         <BIT_FIELD_REF>: Likewise.
4786         <COMPONENT_REF>: Likewise.
4787         <ARRAY_REF>: Likewise.
4788         <ARRAY_RANGE_REF>: Likewise.
4789         (split_address_cost): Likewise.  Bail out if reverse storage order.
4790         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
4791         get_inner_reference.  Bail out if reverse storage order.
4792         (bswap_replace): Adjust call to get_inner_reference.
4793         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
4794         the REF_REVERSE_STORAGE_ORDER flag.
4795         <BIT_FIELD_REF>: Likewise.
4796         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
4797         barriers.
4798         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
4799         to the REF_REVERSE_STORAGE_ORDER flag.
4800         <BIT_FIELD_REF>: Likewise.
4801         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
4802         (contains_storage_order_barrier_p): New predicate.
4803         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
4804         Punt on storage order barriers if necessary.
4805         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
4806         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
4807         call to get_ref_base_and_extent.
4808         (do_structure_copy): Likewise.
4809         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
4810         get_inner_reference.
4811         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
4812         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
4813         * ubsan.c (instrument_bool_enum_load): Likewise.
4814         (instrument_object_size): Likewise.
4815         * var-tracking.c (track_expr_p): Adjust call to
4816         get_ref_base_and_extent.
4817         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
4818         get_inner_reference.
4819         * config/s390/s390.c (s390_expand_atomic): Adjust call to
4820         store_bit_field.
4821         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
4822         extract_bit_field.
4823         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
4824
4825 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4826
4827         * config/sparc/sparc.opt (mfix-at697f): Add final period.
4828
4829 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
4830
4831         PR rtl-optimization/67864
4832         * common/config/i386/i386-common.c (ix86_option_optimization_table)
4833         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
4834         at -Os and up.
4835
4836 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4837
4838         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
4839         internal functions.
4840
4841 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4842
4843         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
4844         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
4845
4846 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4847
4848         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
4849         * internal-fn.c: Don't undef it here.
4850         * tree-core.h: Likewise.
4851
4852 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4853
4854         * builtins.c (fold_builtin_nan): Delete.
4855         (fold_builtin_memcmp): Remove case where both arguments are constant.
4856         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
4857         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
4858         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
4859         * fold-const-call.c: Include fold-const.h.
4860         (host_size_t_cst_p): New function.
4861         (build_cmp_result, fold_const_builtin_nan): Likewise.
4862         (fold_const_call_1): New function, split out from...
4863         (fold_const_call): ...here (for all three interfaces).  Handle
4864         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
4865
4866 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4867
4868         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
4869         (fold_builtin_1): Don't call them.
4870         * fold-const-call.c: Include tm.h.
4871         (fold_const_call_ss): New variant for integer-to-integer folds.
4872         (fold_const_call): Call it.
4873
4874 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4875
4876         * builtins.c (fold_builtin_classify): Move constant cases to...
4877         * fold-const-call.c (fold_const_call_ss): ...here.
4878
4879 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4880
4881         * builtins.h (c_getstr): Move to...
4882         * fold-const.h (c_getstr): ...here.
4883         * builtins.c (c_getstr): Move to...
4884         * fold-const.c (c_getstr): ...here.
4885
4886 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4887
4888         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
4889         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
4890
4891 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4892
4893         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
4894         the dominance info; free it if we can't.
4895         (pass_call_cdce::execute): Don't free the dominance info here.
4896
4897 2015-11-06  Jeff Law <law@redhat.com>
4898
4899         * tree-ssa-threadedge.c (dummy_simplify): Remove.
4900         (thread_around_empty_blocks): Remove backedge_seen_p argument.
4901         If we thread to a backedge, then return false.  Update recursive
4902         call to eliminate backedge_seen_p argument.
4903         (thread_through_normal_block): Remove backedge_seen_p argument.
4904         Remove backedge_seen_p argument from calls to
4905         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
4906         If we thread to a backedge, then return 0.
4907         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
4908         pass it to thread_through_normal_block or thread_through_empty_blocks.
4909         For joiner handling, if we see a backedge, do not try normal
4910         threading.
4911
4912 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4913
4914         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
4915         * graphite-poly.c (new_scop): Initialize original_schedule.
4916         (free_scop): Free original_schedule.
4917         * graphite-poly.h (struct scop): Add field original_schedule.
4918         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
4919         (build_poly_scop): Call build_scop_original_schedule.
4920
4921 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4922
4923         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
4924         (build_pbb_minimal_scattering_polyhedrons): New.
4925         (build_scop_scattering): Remove.
4926         (build_scop_minimal_scattering): New.
4927         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
4928         (build_poly_scop): Call build_scop_minimal_scattering.
4929
4930 2015-11-06  Jeff Law <law@redhat.com>
4931
4932         * cfg-flags.def (IGNORE): New edge flag.
4933         * tree-vrp.c (identify_jump_threads): Mark and clear edges
4934         scheduled for removal with EDGE_IGNORE around call into
4935         jump threader.  Do no thread across edges with EDGE_IGNORE,
4936         but do allow threading across those with EDGE_DFS_BACK.
4937
4938 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
4939
4940         * doc/md.texi (multi-alternative constraints): Don't document
4941         alternatives inherently tied to reload for the user documentation.
4942
4943 2015-11-06  Michael Collison  <michael.collison@linaro.org>
4944             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4945
4946         Revert:
4947         2015-08-01  Michael Collison  <michael.collison@linaro.org
4948                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4949
4950         * config/arm/arm.md (*arm_smin_cmp): New pattern.
4951         (*arm_umin_cmp): Likewise.
4952
4953 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
4954
4955         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
4956         * omp-low.c (check_omp_nesting_restrictions): Update for the
4957         various new OpenMP 4.5 nesting restrictions, clarified
4958         nesting glossary, closely nested region relationship clarified
4959         to mean explicit or implicit parallel regions (target/teams),
4960         use %</%> or %qs where appropriate.
4961
4962 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4963             Sebastian Pop  <s.pop@samsung.com>
4964
4965         * graphite-scop-detection.c (loop_is_valid_scop): Call
4966         optimize_loop_nest_for_speed_p.
4967
4968 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4969             Sebastian Pop  <s.pop@samsung.com>
4970
4971         * graphite-optimize-isl.c (optimize_isl): Call
4972         isl_options_set_schedule_maximize_band_depth.
4973
4974 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4975             Sebastian Pop  <s.pop@samsung.com>
4976
4977         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
4978         and exit edges should not be a part of irreducible loop.
4979         (scop_detection::can_represent_loop_1): Loops should not be
4980         irreducible.
4981         (scop_detection::harmful_stmt_in_region): All the basic block
4982         should belong to reducible loops.
4983
4984 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
4985
4986         * config/aarch64/aarch64-simd-builtins.def: Update builtins
4987         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
4988         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
4989         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
4990         (aarch64_tbx4v8qi): Rename to...
4991         aarch64_tbx4<mode>): ... this.
4992         (aarch64_qtbl3<mode>): New pattern.
4993         (aarch64_qtbx3<mode>): New pattern.
4994         (aarch64_qtbl4<mode>): New pattern.
4995         (aarch64_qtbx4<mode>): New pattern.
4996         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
4997         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
4998         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
4999         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
5000         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
5001         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
5002         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
5003         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
5004         functions.
5005
5006 2015-11-06  Mike Stump  <mikestump@comcast.net>
5007
5008         PR debug/66728
5009         * dwarf2out.c (get_full_len): Return a value based upon the actual
5010         precision needed for the value.
5011         (add_const_value_attribute): Use a maximal wide-int for
5012         CONST_WIDE_INTs, not VOIDmode.
5013         (output_die): Don't ever output NULL with printf.
5014
5015         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
5016         BLKmode nor VOIDmode values.
5017
5018 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5019
5020         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
5021         and "range2".
5022         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
5023         * diagnostic-core.h (warning_at_rich_loc): New declaration.
5024         (error_at_rich_loc): New declaration.
5025         (permerror_at_rich_loc): New declaration.
5026         (inform_at_rich_loc): New declaration.
5027         * diagnostic-show-locus.c (adjust_line): Delete.
5028         (struct point_state): New struct.
5029         (class colorizer): New class.
5030         (class layout_point): New class.
5031         (class layout_range): New class.
5032         (struct line_bounds): New.
5033         (class layout): New class.
5034         (colorizer::colorizer): New ctor.
5035         (colorizer::~colorizer): New dtor.
5036         (layout::layout): New ctor.
5037         (layout::print_source_line): New method.
5038         (layout::print_annotation_line): New method.
5039         (layout::get_state_at_point): New method.
5040         (layout::get_x_bound_for_row): New method.
5041         (diagnostic_show_locus): Reimplement in terms of class layout.
5042         (diagnostic_print_caret_line): Delete.
5043         * diagnostic.c (diagnostic_initialize): Replace
5044         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
5045         (diagnostic_set_info_translated): Convert param from location_t
5046         to rich_location *.  Eliminate calls to set_location on the
5047         message in favor of storing the rich_location ptr there.
5048         (diagnostic_set_info): Convert param from location_t to
5049         rich_location *.
5050         (diagnostic_build_prefix): Break out array into...
5051         (diagnostic_kind_color): New variable.
5052         (diagnostic_get_color_for_kind): New function.
5053         (diagnostic_report_diagnostic): Colorize the option_text
5054         using the color for the severity.
5055         (diagnostic_append_note): Update for change in signature of
5056         diagnostic_set_info.
5057         (diagnostic_append_note_at_rich_loc): New function.
5058         (emit_diagnostic): Update for change in signature of
5059         diagnostic_set_info.
5060         (inform): Likewise.
5061         (inform_at_rich_loc): New function.
5062         (inform_n): Update for change in signature of diagnostic_set_info.
5063         (warning): Likewise.
5064         (warning_at): Likewise.
5065         (warning_at_rich_loc): New function.
5066         (warning_n): Update for change in signature of diagnostic_set_info.
5067         (pedwarn): Likewise.
5068         (permerror): Likewise.
5069         (permerror_at_rich_loc): New function.
5070         (error): Update for change in signature of diagnostic_set_info.
5071         (error_n): Likewise.
5072         (error_at): Likewise.
5073         (error_at_rich_loc): New function.
5074         (sorry): Update for change in signature of diagnostic_set_info.
5075         (fatal_error): Likewise.
5076         (internal_error): Likewise.
5077         (internal_error_no_backtrace): Likewise.
5078         (source_range::debug): New function.
5079         * diagnostic.h (struct diagnostic_info): Eliminate field
5080         "override_column".  Add field "richloc".
5081         (struct diagnostic_context): Add field "colorize_source_p".
5082         (diagnostic_override_column): Delete.
5083         (diagnostic_set_info): Convert param from location_t to
5084         rich_location *.
5085         (diagnostic_set_info_translated): Likewise.
5086         (diagnostic_append_note_at_rich_loc): New function.
5087         (diagnostic_num_locations): New function.
5088         (diagnostic_expand_location): Get the location from the
5089         rich_location.
5090         (diagnostic_print_caret_line): Delete.
5091         (diagnostic_get_color_for_kind): New declaration.
5092         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
5093         (error_cb): Update for change in signature of "error" callback.
5094         (fatal_at): Likewise.
5095         (warning_at): Likewise.
5096         * input.c (linemap_client_expand_location_to_spelling_point): New.
5097         * pretty-print.c (text_info::set_range): New method.
5098         (text_info::get_location): New method.
5099         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
5100         (struct text_info): Eliminate "locations" array in favor of
5101         "m_richloc", a rich_location *.
5102         (textinfo::set_location): Add a "caret_p" param, and reimplement
5103         in terms of a call to set_range.
5104         (textinfo::get_location): Eliminate inline implementation in favor of
5105         an out-of-line reimplementation.
5106         (textinfo::set_range): New method.
5107         * rtl-error.c (diagnostic_for_asm): Update for change in signature
5108         of diagnostic_set_info.
5109         * tree-diagnostic.c (default_tree_printer): Update for new
5110         "caret_p" param for textinfo::set_location.
5111         * tree-pretty-print.c (percent_K_format): Likewise.
5112
5113 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5114
5115         Properly apply.
5116         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5117         * config/aarch64/aarch64.c
5118         (aarch64_can_use_per_function_literal_pools_p): New.
5119         (aarch64_use_blocks_for_constant_p): Adjust declaration
5120         and use aarch64_can_use_function_literal_pools_p.
5121         (aarch64_select_rtx_section): Update.
5122
5123 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5124
5125         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
5126         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
5127         (arm_output_multireg_pop): Likewise.
5128         (output_move_double):  Likewise.
5129         (output_move_quad):  Likewise.
5130         (output_return_instruction): Likewise.
5131         (arm_print_operand): Remove support for %( and %. print modifiers.
5132         (arm_output_shift): Make unified asm.
5133         (arm_declare_function_name): Likewise.
5134         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
5135         (ASM_APP_OFF): Adjust.
5136         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
5137         (ASM_OUTPUT_REG_POP): Likewise.
5138         * config/arm/arm.md: Adjust uses of %., %(, %)
5139         * config/arm/sync.md: Likewise.
5140         * config/arm/thumb2.md: Likewise.
5141         * config/arm/ldmstm.md: Regenerate.
5142         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
5143         * doc/invoke.texi (masm-unified-syntax): Update documentation.
5144
5145 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5146
5147         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
5148
5149 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5150
5151         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
5152         add OEP_MATCH_SIDE_EFFECTS.
5153         * fold-const.c (operand_equal_p): Update documentation; handle
5154         OEP_MATCH_SIDE_EFFECTS.
5155         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
5156         OEP_MATCH_SIDE_EFFECTS.
5157
5158 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
5159             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5160
5161         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
5162         * config/aarch64/aarch64-protos.h: Declare.
5163         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
5164         frsqrts.
5165         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
5166         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
5167         code when applicable.
5168         * config/aarch64/aarch64.md: Added enum entries.
5169         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
5170
5171 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5172
5173         PR ipa/68057
5174         PR ipa/68220
5175         * ipa-polymorphic-call.c
5176         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
5177         issue when offset is out of range.
5178         (contains_type_p): Fix out of range check, clear dynamic flag.
5179
5180 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
5181
5182         * config.gcc (e6500): Fix cpu_is_64bit typo.
5183
5184 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
5185
5186         * tree-sra.c (completely_scalarize): Properly handle negative array
5187         indices using offset_int.
5188
5189 2015-11-06  Richard Biener  <rguenther@suse.de>
5190
5191         * alloc-pool.h (object_allocator::allocate): Default-initialize
5192         object.
5193
5194 2015-11-06  Richard Biener  <rguenther@suse.de>
5195
5196         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
5197         * lra.c (init_reg_info): Truncate copy_vec instead of
5198         re-allocating a new one and leaking the old.
5199         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
5200         bb_infos vec.
5201         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
5202         * postreload-gcse.c (free_mem): Free modify_mem_list and
5203         canon_modify_mem_list.
5204
5205 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
5206
5207         PR tree-optimization/68145
5208         * tree-vect-stmts.c (vectorizable_operation): Fix
5209         determination for booleans.
5210
5211 2015-11-06  Tom de Vries  <tom@codesourcery.com>
5212
5213         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
5214         cond_jump, instead of split after last nondebug insn before cond_jump.
5215         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
5216         returning.
5217
5218 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5219
5220         PR target/68088
5221         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
5222         subregs from accumulator and make sure it's a register.
5223
5224 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
5225
5226         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
5227         low part to scalar.
5228         (reduc_uplus_<mode>): Remove.
5229         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
5230         loongson_extract_lo_<mode>.
5231         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
5232         reduc_smax_<mode>, reduc_smax_<mode>, use vec
5233         loongson_extract_lo_<mode>.
5234         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
5235
5236 2015-11-06  Richard Biener  <rguenther@suse.de>
5237
5238         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
5239         members.
5240         (vect_stmt_in_region_p): Declare.
5241         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
5242         (destroy_bb_vec_info): Likewise.
5243         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
5244         (vect_get_and_check_slp_defs): Likewise.
5245         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
5246         (vect_slp_bb): Likewise.
5247         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
5248         in terms of vect_stmt_in_region_p.
5249         (vect_pattern_recog): Iterate over the BB region.
5250         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
5251         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
5252         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
5253         * config/i386/i386.c: Include gimple-iterator.h.
5254         * config/aarch64/aarch64.c: Likewise.
5255
5256 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
5257
5258         PR rtl-optimization/67753
5259         PR rtl-optimization/64164
5260         * function.c (assign_parm_setup_block): Avoid allocating a
5261         stack slot if we don't have an ABI-reserved one.  Emit the
5262         copy to target_reg in the conversion seq if the copy from
5263         entry_parm is in it too.  Don't use the conversion seq to copy
5264         a PARALLEL to a REG or a CONCAT.
5265
5266 2015-11-06  Richard Biener  <rguenther@suse.de>
5267
5268         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
5269         equal_keys.
5270
5271 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
5272             Thomas Schwinge  <thomas@codesourcery.com>
5273             James Norris  <jnorris@codesourcery.com>
5274
5275
5276         * gimplify.c (gimplify_scan_omp_clauses): Add support for
5277         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
5278         (gimplify_adjust_omp_clauses): Likewise.
5279         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
5280         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
5281         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
5282         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
5283         (omp_clause_code_name): Likewise.
5284         (walk_tree_1): Handle OMP_CLAUSE_TILE.
5285         * tree.h (OMP_TILE_LIST): New macro.
5286
5287 2015-11-05  Martin Sebor  <msebor@redhat.com>
5288
5289         PR c++/67942
5290         * doc/invoke.texi (-Wplacement-new): Document new option.
5291
5292 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
5293
5294         PR tree-optimization/65963
5295         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
5296         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
5297
5298 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
5299
5300         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
5301         (noce_convert_multiple_sets): Likewise.
5302         (noce_process_if_block): Call them.
5303
5304 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5305
5306         * gimple-fold.c: Include omp-low.h.
5307         (fold_internal_goacc_dim): New.
5308         (gimple_fold_call): Call it.
5309
5310 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
5311             Ilya Verbin  <ilya.verbin@intel.com>
5312
5313         * builtin-types.def
5314         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
5315         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
5316         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
5317         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
5318         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
5319         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
5320         (struct cgraph_simd_clone_arg): Adjust comment.
5321         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
5322         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
5323         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
5324         to GOMP_target_data_ext.
5325         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
5326         to GOMP_target_update_ext.
5327         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
5328         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
5329         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
5330         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
5331         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
5332         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
5333         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
5334         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
5335         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
5336         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
5337         * tree-core.h (enum omp_clause_schedule_kind): Add
5338         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
5339         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
5340         OMP_CLAUSE_SCHEDULE_LAST value.
5341         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
5342         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
5343         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
5344         OMP_FOR_CHECK.  Remove comment.
5345         * tree-pretty-print.c (dump_omp_clause): Handle
5346         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
5347         Simplify.  Print schedule clause modifiers.
5348         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
5349         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
5350         cases.
5351         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
5352         (omp_default_clause): Tweak for
5353         private/firstprivate/is_device_ptr variables on target
5354         construct and use_device_ptr on target data.
5355         (omp_check_private): Likewise.
5356         (omp_notice_variable): For references check whether what it refers
5357         to has mappable type, rather than the reference itself.
5358         (omp_is_private): Diagnose linear iteration variables on non-simd
5359         constructs.
5360         (omp_no_lastprivate): Return true only for Fortran.
5361         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
5362         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
5363         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
5364         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
5365         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
5366         lastprivate and linear when combined with distribute.  Gimplify
5367         variable low-bound for array reduction.  Look through
5368         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
5369         reductions.
5370         (gimplify_adjust_omp_clauses_1): For implicit references to
5371         variables with reference type and when not ref to scalar or
5372         ref to pointer, map what they refer to using tofrom and
5373         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
5374         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
5375         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
5376         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
5377         Diagnose the same var on both firstprivate and lastprivate on
5378         distribute construct.
5379         (gimplify_omp_for): Fix up handling of predetermined
5380         lastprivate or linear iter vars when combined with distribute.
5381         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
5382         functions.
5383         (gimplify_omp_workshare): Call optimize_target_teams.
5384         * omp-low.c (struct omp_region): Add sched_modifiers field.
5385         (struct omp_for_data): Likewise.
5386         (omp_any_child_fn_dumped): New variable.
5387         (extract_omp_for_data): Fill in sched_modifiers, and mask out
5388         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
5389         from sched_kind.
5390         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
5391         bits of OMP_CLAUSE_SCHED_KIND.
5392         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
5393         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
5394         for array section reductions.
5395         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
5396         for distribute parallel for, if there are lastprivate clauses on the
5397         for.
5398         (lower_rec_input_clauses): Handle non-zero low-bound on array
5399         section reductions.
5400         (lower_reduction_clauses): Likewise.
5401         (lower_send_clauses): Look through POINTER_PLUS_EXPR
5402         for array section reductions.
5403         (expand_parallel_call): Use nonmonotonic entrypoints for
5404         nonmonotonic: dynamic/guided.
5405         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
5406         child_fn if current_function_decl has assembler name set, but child_fn
5407         does not.  Dump the header and IL of the child function when not in SSA
5408         form.
5409         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
5410         arguments to BUILT_IN_GOMP_TARGET.
5411         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
5412         Initialize the extra _looptemp_ clause to fd->loop.n2.
5413         (expand_omp_for): Use nonmonotonic entrypoints for
5414         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
5415         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
5416         again if we have dumped any child functions.
5417         (lower_omp_for_lastprivate): Determine the right count variable
5418         for distribute simd, or distribute parallel for{, simd}.
5419         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
5420         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
5421         support.
5422         (simd_clone_clauses_extract): Handle variable step
5423         for references and arguments passed by reference.
5424         (simd_clone_mangle): Mangle ref/uval/val variable steps.
5425         (simd_clone_adjust_argument_types): Handle
5426         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
5427         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
5428         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
5429         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
5430         (simd_clone_linear_addend): New function.
5431         (simd_clone_adjust): Handle variable step like similarly
5432         to constant step, use simd_clone_linear_addend to determine
5433         the actual step at runtime.
5434
5435 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5436
5437         * target.def (goacc.dim_limit): New hook.
5438         * targhooks.h (default_goacc_dim_limit): Declare.
5439         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
5440         * doc/tm.texi: Rebuilt.
5441         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
5442         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
5443         (default_goacc_dim_limit): New.
5444         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5445         (nvptx_goacc_dim_limit) New.
5446         (TARGET_GOACC_DIM_LIMIT): Override.
5447         * tree-vrp.c: Include omp-low.h, target.h.
5448         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
5449         IFN_GOACC_DIM_POS.
5450
5451 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5452
5453         * tree-vect-generic.c (do_compare): Use -1 for true
5454         result instead of 1.
5455
5456 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5457
5458         * config/aarch64/aarch64.c
5459         (aarch64_can_use_per_function_literal_pools_p): New.
5460         (aarch64_use_blocks_for_constant_p): Adjust declaration
5461         and use aarch64_can_use_function_literal_pools_p.
5462         (aarch64_select_rtx_section): Update.
5463
5464 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5465
5466         * targhooks.c (default_get_mask_mode): Use BLKmode in
5467         case target doesn't support required vector mode.
5468         * stor-layout.c (layout_type); Check for BLKmode.
5469
5470 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5471             Sebastian Pop  <s.pop@samsung.com>
5472
5473         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
5474         Remove use of parameter_rename_map.
5475         (copy_def): Remove.
5476         (copy_internal_parameters): Remove.
5477         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
5478         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
5479         (free_sese_info): Do not free parameter_rename_map.
5480         (set_rename): Do not use parameter_rename_map.
5481         (rename_uses): Update call to set_rename.
5482         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
5483         * sese.h (parameter_rename_map_t): Remove.
5484         (struct sese_info_t): Remove field parameter_rename_map.
5485
5486 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5487             Sebastian Pop  <s.pop@samsung.com>
5488
5489         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
5490         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
5491         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
5492         anonymous namespace.
5493         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
5494         (isl_id_for_pbb): Use a buffer of size 10.
5495         (isl_id_for_ssa_name): Same.
5496         * sese.c (set_rename): Add more dumps.
5497
5498 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5499
5500         * omp-low.c (struct omp_context): Remove reduction_map field.
5501         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
5502         (new_omp_context, delete_omp_context, scan_omp_target): Remove
5503         reduction_map handling.
5504         (lower_omp_target): Remove obsolete openacc reduction handling.
5505
5506 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5507
5508         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
5509
5510 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5511             Cesar Philippidis  <cesar@codesourcery.com>
5512
5513         * config/nvptx/nvptx.c: Include gimple headers.
5514         (worker_red_size, worker_red_align, worker_red_name,
5515         worker_red_sym): New.
5516         (nvptx_option_override): Initialize worker reduction buffer.
5517         (nvptx_file_end): Write out worker reduction buffer var.
5518         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
5519         nvptx_expand_cmp_swap): New builtin expanders.
5520         (enum nvptx_builtins): New.
5521         (nvptx_builtin_decls): New.
5522         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
5523         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5524         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
5525         nvptx_lockless_update): New helpers.
5526         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
5527         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
5528         (nvptx_goacc_reduction): New.
5529         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
5530         TARGET_BUILTIN_DECL): Override.
5531         (TARGET_GOACC_REDUCTION): Override.
5532
5533 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5534             Cesar Philippidis  <cesar@codesourcery.com>
5535
5536         * internal-fn.def (GOACC_REDUCTION): New.
5537         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
5538         * internal-fn.c (expand_GOACC_REDUCTION): New.
5539         * target.def (goacc.reduction): New OpenACC hook.
5540         * targhooks.h (default_goacc_reduction): Declare.
5541         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
5542         * doc/tm.texi: Rebuilt.
5543         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
5544         scan_sharing_clauses): Remove oacc reduction handling here.
5545         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
5546         (oacc_lower_reduction_var_helper): Delete.
5547         (lower_oacc_reductions): New.
5548         (lower_reduction_clauses): Don't handle OpenACC reductions here.
5549         (lower_oacc_head_tail): Call lower_oacc_reductions.
5550         (oacc_gimple_assign, oacc_init_reduction_array,
5551         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
5552         oacc_process_reduction_data): Delete.
5553         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
5554         dummy OpenACC gang reduction for reductions at outer level.
5555         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
5556         (default_goacc_reduction): New.
5557         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
5558
5559 2015-11-04  Martin Liska  <mliska@suse.cz>
5560
5561         * cgraphunit.c (cgraph_node::expand_thunk): Call
5562         allocate_struct_function before init_function_start.
5563         (cgraph_node::expand): Use push_cfun and pop_cfun.
5564         * config/i386/i386.c (ix86_code_end): Call
5565         allocate_struct_function before init_function_start.
5566         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
5567         * function.c (init_function_start): Move preamble to all
5568         callers.
5569         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
5570         (execute_one_pass): Handle newly added TODO_discard_function.
5571         (execute_pass_list_1): Terminate if cfun equals to NULL.
5572         (execute_pass_list): Do not push and pop cfun, expect that
5573         cfun is set.
5574         * tree-pass.h (TODO_discard_function): Define.
5575
5576 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
5577
5578         * cfganal.c (inverted_post_order_compute): Remove conditional
5579         compilation, use flag_checking.
5580         * config.in: Regenerate.
5581         * configure: Regenerate.
5582         * configure.ac: Remove ENABLE_CHECKING.
5583         * genconditions.c: Do not #undef ENABLE_CHECKING.
5584         * sese.h (bb_in_region): Comment out broken check.
5585         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
5586         conditional compilation, use flag_checking.
5587
5588 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5589
5590         PR tree-optimization/67742
5591         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
5592         field.
5593         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
5594         (create_variable_info_for_1): Add and handle handle_param parameter.
5595         Add restrict handling.
5596         (create_variable_info_for): Call create_variable_info_for_1 with extra
5597         arg.
5598         (make_param_constraints): Drop restrict_name parameter.  Ignore
5599         vi->only_restrict_pointers.
5600         (intra_create_variable_infos): Call create_variable_info_for_1 with
5601         extra arg.  Remove restrict handling.  Call make_param_constraints with
5602         one fewer arg.
5603
5604 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5605
5606         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
5607         variable.
5608
5609 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5610
5611         * config/arm/coff.h: Remove.
5612
5613 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5614
5615         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
5616         check for aggregate types and beef up comment for mode check.
5617
5618 2015-11-03  Richard Biener  <rguenther@suse.de>
5619
5620         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
5621         data references here.
5622         * tree-vect-loop.c: Include cgraph.h.
5623         (vect_analyze_loop_2): Collect data references here.
5624         * tree-vect-slp.c (find_bb_location): Inline ...
5625         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
5626         Factor in vect_slp_transform_bb.
5627         (vect_slp_transform_bb): Removed.
5628         (vect_slp_analyze_bb_1): Collect data references here.
5629         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
5630         vect_slp_bb.
5631         * tree-vectorizer.h (vect_slp_bb): Declare.
5632         (vect_slp_analyze_bb): Remove.
5633         (vect_slp_transform_bb): Remove.
5634         (find_bb_location): Remove.
5635         (vect_analyze_data_refs): Remove stmt count reference parameter.
5636
5637 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
5638
5639         * multiple_target.c (create_dispatcher_calls): Add target check
5640         on ifunc.
5641         (create_target_clone): Change assembler name for versioned declarations.
5642
5643 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
5644             Chung-Lin Tang  <cltang@codesourcery.com>
5645
5646         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
5647         * omp-low.c (check_omp_nesting_restrictions): Allow
5648         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
5649         contexts.
5650
5651 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
5652
5653         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
5654         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
5655         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
5656         builtin.
5657         (vmulxq_f32): Likewise.
5658         (vmulx_f64): New.
5659         (vmulxq_f64): Rewrite to call fmulx builtin.
5660         (vmulxs_f32): Likewise.
5661         (vmulxd_f64): Likewise.
5662         (vmulx_lane_f32): Remove.
5663         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
5664
5665 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
5666
5667         * config/aarch64/aarch64.md (*movhf_aarch64): Use
5668         aarch64_reg_or_fp_zero for second operand.
5669
5670 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
5671
5672         * gimple-expr.c: Include hash-set.h and rtl.h.
5673         (mark_addressable_queue): New var.
5674         (mark_addressable): Factor actual marking into...
5675         (mark_addressable_1): ... this.  Queue it up during expand.
5676         (mark_addressable_2): New.
5677         (flush_mark_addressable_queue): New.
5678         * gimple-expr.h (flush_mark_addressable_queue): Declare.
5679         * cfgexpand.c: Include gimple-expr.h.
5680         (pass_expand::execute): Flush mark_addressable queue.
5681
5682 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
5683
5684         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
5685         bb_no_side_effects_p tests...
5686         (tree_ssa_ifcombine_bb): ... here.
5687
5688         PR tree-optimization/68083
5689         * tree-ssa-ifcombine.c: Include tree-ssa.h.
5690         (bb_no_side_effects_p): Test for undefined uses too.
5691         * tree-ssa.c (gimple_uses_undefined_value_p): New.
5692         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
5693
5694 2015-11-02  Jeff Law <law@redhat.com>
5695
5696         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
5697         cases where the loop latch edge is in the middle of an FSM path.
5698
5699 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5700
5701         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
5702         (make_param_constraints): ... this.  Add and handle restrict_name
5703         parameter.  Handle is_full_var case.
5704         (intra_create_variable_infos): Use make_param_constraints.
5705
5706 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5707
5708         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
5709         make_copy_constraint call with make_constraint_from call.
5710
5711 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
5712
5713         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
5714         PIE executables.
5715
5716 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
5717
5718         * builtins.h (fold_fma): Move to fold-const-call.h.
5719         * builtins.c: Include fold-const-call.h.
5720         (mathfn_built_in_2): New function, split out from...
5721         (mathfn_built_in_1): ...here.
5722         (do_real_to_int_conversion, fold_const_builtin_pow)
5723         (fold_const_builtin_logb, fold_const_builtin_significand)
5724         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
5725         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
5726         (fold_builtin_sincos): Use fold_const_call to handle constants.
5727         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
5728         checks for ERROR_MARK.  Use fold_const_call to handle constant
5729         folds for math functions.
5730         (fold_fma): Move to fold-const-call.c.
5731         * fold-const.c: Include fold-const-call.h.
5732         * Makefile.in (OBJS): Add fold-const-call.o.
5733         (PLUGIN_HEADERS): Add fold-const-call.h.
5734         * realmpfr.h (real_from_mpfr): Allow the format to be specified
5735         directly.
5736         * realmpfr.c (real_from_mpfr): Likewise.
5737         * fold-const-call.h, fold-const-call.c: New files.
5738
5739 2015-11-02  Julian Brown  <julian@codesourcery.com>
5740
5741         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
5742         brackets and semicolon.
5743
5744 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
5745
5746         Revert:
5747         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
5748
5749         PR tree-optimization/65963
5750         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
5751         LSHIFT_EXPRs as equivalent MULT_EXPRs.
5752
5753 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
5754
5755         PR middle-end/68166
5756         * fold-const.c: Include "md5.h".
5757
5758 2015-11-01  Jeff Law <law@redhat.com>
5759
5760         * vmsdbgout.c: Revert unused header file reduction patch.
5761
5762         * config/mcore/mcore.c: Include regs.h.
5763
5764 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5765
5766         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
5767
5768 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5769
5770         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
5771         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
5772         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
5773
5774 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
5775
5776         * ggc-common.c: Restore needed header for checking=release.
5777
5778 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5779
5780         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
5781
5782 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5783
5784         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
5785         existing varinfo for arguments.
5786
5787 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5788
5789         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
5790         create_function_info_for.  Dump constraints generated during
5791         create_function_info_for. Move intra_create_variable_infos call and
5792         function-return-values-escape bit to ...
5793         (create_function_info_for): ... here, and merge
5794         intra_create_variable_infos call with argument loop.  Add and handle
5795         nonlocal_p parameter.
5796
5797 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5798
5799         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
5800         updating is alap, and seperated from preceding code.  Make sure
5801         insert_vi_for_tree is seperated from surrounding code.
5802
5803 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5804
5805         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
5806
5807 2015-10-30  Jeff Law <law@redhat.com>
5808             Nathan Sidwell  <nathan@acm.org>
5809
5810         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
5811         args.
5812         (MOVE_MAX): Set to 8.
5813
5814 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
5815
5816         * cgraph.c: Include context.h for offloading.
5817         * varpool.c: Include context.h and omp-low.h.
5818
5819 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
5820
5821         * rtl.h (contains_symbol_ref_p): Declare.
5822         (SYMBOL_REF_P): Define.
5823         * rtlanal.c (contains_symbol_ref_p: New function.
5824         * lra-constraints.c (contains_symbol_ref_p): Remove.
5825         * var-tracking.c (contains_symbol_ref): Remove.
5826         (track_expr_p): Use contains_symbol_ref_p instead of
5827         contains_symbol_ref.
5828
5829 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5830
5831         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
5832         * fold-const.c (get_array_ctor_element_at_index): New.
5833         (fold): Remove binary-search through CONSTRUCTOR, call previous.
5834
5835         * fold-const.h (get_array_ctor_element_at_index): New.
5836
5837 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
5838
5839         * Makefile.in (OBJS): Add multiple_target.o.
5840         * attrib.c (make_attribute): Moved from config/i386/i386.c
5841         * config/i386/i386.c (make_attribute): Deleted.
5842         * multiple_target.c (create_dispatcher_calls): New.
5843         (get_attr_len): Ditto.
5844         (get_attr_str): Ditto.
5845         (separate_attrs): Ditto.
5846         (is_valid_asm_symbol): Ditto.
5847         (create_new_asm_name): Ditto.
5848         (create_target_clone): Ditto.
5849         (expand_target_clones): Ditto.
5850         (ipa_target_clone): Ditto.
5851         (ipa_dispatcher_calls): Ditto.
5852         * passes.def (pass_target_clone): Two new ipa passes.
5853         * tree-pass.h (make_pass_target_clone): Ditto.
5854         * doc/extend.texi (target_clones): New attribute description.
5855
5856 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
5857
5858         PR rtl-optimization/68106
5859         * lra-remat.c (input_regno_present_p): Process hard regs
5860         explicitly present in machine description insns.
5861         (call_used_input_regno_present_p): Ditto.
5862         (calculate_gen_cands): Ditto.
5863         (do_remat): Ditto.
5864
5865 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
5866
5867         * config/arm/neon-testgen.ml: Fix comment typo.
5868
5869 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5870
5871         * rtlanal.c (reg_set_p): Expand function comment.
5872
5873 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
5874
5875         * alias.c: Remove unused headers.
5876         * asan.c: Likewise.
5877         * attribs.c: Likewise.
5878         * auto-inc-dec.c: Likewise.
5879         * auto-profile.c: Likewise.
5880         * bb-reorder.c: Likewise.
5881         * bitmap.c: Likewise.
5882         * bt-load.c: Likewise.
5883         * builtins.c: Likewise.
5884         * caller-save.c: Likewise.
5885         * calls.c: Likewise.
5886         * ccmp.c: Likewise.
5887         * cfg.c: Likewise.
5888         * cfganal.c: Likewise.
5889         * cfgbuild.c: Likewise.
5890         * cfgcleanup.c: Likewise.
5891         * cfgexpand.c: Likewise.
5892         * cfghooks.c: Likewise.
5893         * cfgloop.c: Likewise.
5894         * cfgloopanal.c: Likewise.
5895         * cfgloopmanip.c: Likewise.
5896         * cfgrtl.c: Likewise.
5897         * cgraph.c: Likewise.
5898         * cgraphbuild.c: Likewise.
5899         * cgraphclones.c: Likewise.
5900         * cgraphunit.c: Likewise.
5901         * cilk-common.c: Likewise.
5902         * combine-stack-adj.c: Likewise.
5903         * combine.c: Likewise.
5904         * compare-elim.c: Likewise.
5905         * convert.c: Likewise.
5906         * coverage.c: Likewise.
5907         * cppbuiltin.c: Likewise.
5908         * cprop.c: Likewise.
5909         * cse.c: Likewise.
5910         * cselib.c: Likewise.
5911         * data-streamer-in.c: Likewise.
5912         * data-streamer-out.c: Likewise.
5913         * data-streamer.c: Likewise.
5914         * dbxout.c: Likewise.
5915         * dce.c: Likewise.
5916         * ddg.c: Likewise.
5917         * debug.c: Likewise.
5918         * df-core.c: Likewise.
5919         * df-problems.c: Likewise.
5920         * df-scan.c: Likewise.
5921         * dfp.c: Likewise.
5922         * dojump.c: Likewise.
5923         * dominance.c: Likewise.
5924         * domwalk.c: Likewise.
5925         * double-int.c: Likewise.
5926         * dse.c: Likewise.
5927         * dumpfile.c: Likewise.
5928         * dwarf2asm.c: Likewise.
5929         * dwarf2cfi.c: Likewise.
5930         * dwarf2out.c: Likewise.
5931         * emit-rtl.c: Likewise.
5932         * except.c: Likewise.
5933         * explow.c: Likewise.
5934         * expmed.c: Likewise.
5935         * expr.c: Likewise.
5936         * final.c: Likewise.
5937         * fixed-value.c: Likewise.
5938         * fold-const.c: Likewise.
5939         * function.c: Likewise.
5940         * fwprop.c: Likewise.
5941         * gcse.c: Likewise.
5942         * generic-match-head.c: Likewise.
5943         * ggc-common.c: Likewise.
5944         * gimple-builder.c: Likewise.
5945         * gimple-expr.c: Likewise.
5946         * gimple-fold.c: Likewise.
5947         * gimple-iterator.c: Likewise.
5948         * gimple-low.c: Likewise.
5949         * gimple-match-head.c: Likewise.
5950         * gimple-pretty-print.c: Likewise.
5951         * gimple-ssa-isolate-paths.c: Likewise.
5952         * gimple-ssa-strength-reduction.c: Likewise.
5953         * gimple-streamer-in.c: Likewise.
5954         * gimple-streamer-out.c: Likewise.
5955         * gimple-walk.c: Likewise.
5956         * gimple.c: Likewise.
5957         * gimplify-me.c: Likewise.
5958         * gimplify.c: Likewise.
5959         * godump.c: Likewise.
5960         * graph.c: Likewise.
5961         * graphds.c: Likewise.
5962         * haifa-sched.c: Likewise.
5963         * hw-doloop.c: Likewise.
5964         * ifcvt.c: Likewise.
5965         * init-regs.c: Likewise.
5966         * internal-fn.c: Likewise.
5967         * ipa-chkp.c: Likewise.
5968         * ipa-comdats.c: Likewise.
5969         * ipa-cp.c: Likewise.
5970         * ipa-devirt.c: Likewise.
5971         * ipa-icf-gimple.c: Likewise.
5972         * ipa-icf.c: Likewise.
5973         * ipa-inline-analysis.c: Likewise.
5974         * ipa-inline-transform.c: Likewise.
5975         * ipa-inline.c: Likewise.
5976         * ipa-polymorphic-call.c: Likewise.
5977         * ipa-profile.c: Likewise.
5978         * ipa-prop.c: Likewise.
5979         * ipa-pure-const.c: Likewise.
5980         * ipa-ref.c: Likewise.
5981         * ipa-reference.c: Likewise.
5982         * ipa-split.c: Likewise.
5983         * ipa-utils.c: Likewise.
5984         * ipa-visibility.c: Likewise.
5985         * ipa.c: Likewise.
5986         * ira-build.c: Likewise.
5987         * ira-color.c: Likewise.
5988         * ira-conflicts.c: Likewise.
5989         * ira-costs.c: Likewise.
5990         * ira-emit.c: Likewise.
5991         * ira-lives.c: Likewise.
5992         * ira.c: Likewise.
5993         * jump.c: Likewise.
5994         * langhooks.c: Likewise.
5995         * lcm.c: Likewise.
5996         * lists.c: Likewise.
5997         * loop-doloop.c: Likewise.
5998         * loop-init.c: Likewise.
5999         * loop-invariant.c: Likewise.
6000         * loop-iv.c: Likewise.
6001         * loop-unroll.c: Likewise.
6002         * lower-subreg.c: Likewise.
6003         * lra-assigns.c: Likewise.
6004         * lra-coalesce.c: Likewise.
6005         * lra-constraints.c: Likewise.
6006         * lra-eliminations.c: Likewise.
6007         * lra-lives.c: Likewise.
6008         * lra-remat.c: Likewise.
6009         * lra-spills.c: Likewise.
6010         * lra.c: Likewise.
6011         * lto-cgraph.c: Likewise.
6012         * lto-compress.c: Likewise.
6013         * lto-opts.c: Likewise.
6014         * lto-section-in.c: Likewise.
6015         * lto-section-out.c: Likewise.
6016         * lto-streamer-in.c: Likewise.
6017         * lto-streamer-out.c: Likewise.
6018         * lto-streamer.c: Likewise.
6019         * mcf.c: Likewise.
6020         * mode-switching.c: Likewise.
6021         * modulo-sched.c: Likewise.
6022         * optabs.c: Likewise.
6023         * opts-global.c: Likewise.
6024         * passes.c: Likewise.
6025         * plugin.c: Likewise.
6026         * postreload-gcse.c: Likewise.
6027         * postreload.c: Likewise.
6028         * predict.c: Likewise.
6029         * print-tree.c: Likewise.
6030         * profile.c: Likewise.
6031         * real.c: Likewise.
6032         * realmpfr.c: Likewise.
6033         * recog.c: Likewise.
6034         * ree.c: Likewise.
6035         * reg-stack.c: Likewise.
6036         * regcprop.c: Likewise.
6037         * reginfo.c: Likewise.
6038         * regrename.c: Likewise.
6039         * regstat.c: Likewise.
6040         * reload.c: Likewise.
6041         * reload1.c: Likewise.
6042         * reorg.c: Likewise.
6043         * resource.c: Likewise.
6044         * rtl-chkp.c: Likewise.
6045         * rtl-error.c: Likewise.
6046         * rtlanal.c: Likewise.
6047         * rtlhooks.c: Likewise.
6048         * sanopt.c: Likewise.
6049         * sched-deps.c: Likewise.
6050         * sched-ebb.c: Likewise.
6051         * sched-rgn.c: Likewise.
6052         * sdbout.c: Likewise.
6053         * sel-sched-dump.c: Likewise.
6054         * sel-sched-ir.c: Likewise.
6055         * sel-sched.c: Likewise.
6056         * sese.c: Likewise.
6057         * shrink-wrap.c: Likewise.
6058         * simplify-rtx.c: Likewise.
6059         * stack-ptr-mod.c: Likewise.
6060         * statistics.c: Likewise.
6061         * stmt.c: Likewise.
6062         * stor-layout.c: Likewise.
6063         * store-motion.c: Likewise.
6064         * stringpool.c: Likewise.
6065         * symtab.c: Likewise.
6066         * target-globals.c: Likewise.
6067         * targhooks.c: Likewise.
6068         * toplev.c: Likewise.
6069         * tracer.c: Likewise.
6070         * trans-mem.c: Likewise.
6071         * tree-affine.c: Likewise.
6072         * tree-call-cdce.c: Likewise.
6073         * tree-cfg.c: Likewise.
6074         * tree-cfgcleanup.c: Likewise.
6075         * tree-chkp-opt.c: Likewise.
6076         * tree-chkp.c: Likewise.
6077         * tree-chrec.c: Likewise.
6078         * tree-complex.c: Likewise.
6079         * tree-data-ref.c: Likewise.
6080         * tree-dfa.c: Likewise.
6081         * tree-diagnostic.c: Likewise.
6082         * tree-dump.c: Likewise.
6083         * tree-eh.c: Likewise.
6084         * tree-emutls.c: Likewise.
6085         * tree-if-conv.c: Likewise.
6086         * tree-inline.c: Likewise.
6087         * tree-into-ssa.c: Likewise.
6088         * tree-iterator.c: Likewise.
6089         * tree-loop-distribution.c: Likewise.
6090         * tree-nested.c: Likewise.
6091         * tree-nrv.c: Likewise.
6092         * tree-object-size.c: Likewise.
6093         * tree-outof-ssa.c: Likewise.
6094         * tree-parloops.c: Likewise.
6095         * tree-phinodes.c: Likewise.
6096         * tree-predcom.c: Likewise.
6097         * tree-pretty-print.c: Likewise.
6098         * tree-profile.c: Likewise.
6099         * tree-scalar-evolution.c: Likewise.
6100         * tree-sra.c: Likewise.
6101         * tree-ssa-address.c: Likewise.
6102         * tree-ssa-alias.c: Likewise.
6103         * tree-ssa-ccp.c: Likewise.
6104         * tree-ssa-coalesce.c: Likewise.
6105         * tree-ssa-copy.c: Likewise.
6106         * tree-ssa-dce.c: Likewise.
6107         * tree-ssa-dse.c: Likewise.
6108         * tree-ssa-forwprop.c: Likewise.
6109         * tree-ssa-ifcombine.c: Likewise.
6110         * tree-ssa-live.c: Likewise.
6111         * tree-ssa-loop-ch.c: Likewise.
6112         * tree-ssa-loop-im.c: Likewise.
6113         * tree-ssa-loop-ivcanon.c: Likewise.
6114         * tree-ssa-loop-ivopts.c: Likewise.
6115         * tree-ssa-loop-manip.c: Likewise.
6116         * tree-ssa-loop-niter.c: Likewise.
6117         * tree-ssa-loop-prefetch.c: Likewise.
6118         * tree-ssa-loop-unswitch.c: Likewise.
6119         * tree-ssa-loop.c: Likewise.
6120         * tree-ssa-math-opts.c: Likewise.
6121         * tree-ssa-operands.c: Likewise.
6122         * tree-ssa-phiopt.c: Likewise.
6123         * tree-ssa-phiprop.c: Likewise.
6124         * tree-ssa-pre.c: Likewise.
6125         * tree-ssa-propagate.c: Likewise.
6126         * tree-ssa-reassoc.c: Likewise.
6127         * tree-ssa-scopedtables.c: Likewise.
6128         * tree-ssa-sink.c: Likewise.
6129         * tree-ssa-strlen.c: Likewise.
6130         * tree-ssa-structalias.c: Likewise.
6131         * tree-ssa-tail-merge.c: Likewise.
6132         * tree-ssa-ter.c: Likewise.
6133         * tree-ssa-threadupdate.c: Likewise.
6134         * tree-ssa-uncprop.c: Likewise.
6135         * tree-ssa-uninit.c: Likewise.
6136         * tree-ssa.c: Likewise.
6137         * tree-ssanames.c: Likewise.
6138         * tree-stdarg.c: Likewise.
6139         * tree-streamer-in.c: Likewise.
6140         * tree-streamer-out.c: Likewise.
6141         * tree-streamer.c: Likewise.
6142         * tree-switch-conversion.c: Likewise.
6143         * tree-tailcall.c: Likewise.
6144         * tree-vect-data-refs.c: Likewise.
6145         * tree-vect-generic.c: Likewise.
6146         * tree-vect-loop-manip.c: Likewise.
6147         * tree-vect-loop.c: Likewise.
6148         * tree-vect-patterns.c: Likewise.
6149         * tree-vect-slp.c: Likewise.
6150         * tree-vect-stmts.c: Likewise.
6151         * tree-vectorizer.c: Likewise.
6152         * tree-vrp.c: Likewise.
6153         * tree.c: Likewise.
6154         * tsan.c: Likewise.
6155         * ubsan.c: Likewise.
6156         * value-prof.c: Likewise.
6157         * var-tracking.c: Likewise.
6158         * varasm.c: Likewise.
6159         * varpool.c: Likewise.
6160         * vmsdbgout.c: Likewise.
6161         * vtable-verify.c: Likewise.
6162         * web.c: Likewise.
6163         * wide-int-print.cc: Likewise.
6164         * wide-int.cc: Likewise.
6165         * xcoffout.c: Likewise.
6166
6167 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
6168
6169         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
6170         between pass numbering and execution order.
6171
6172 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6173
6174         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
6175         check for dependencies.
6176
6177 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6178
6179         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
6180         CDI_DOMINATORS.
6181
6182 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6183
6184         * real.h (format_helper): New.
6185         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
6186         (real_from_target, real_nan, real_2expN, real_value_truncate)
6187         (significand_size, real_from_string2, exact_real_inverse)
6188         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
6189         (real_round, real_isinteger, real_from_integer): Replace
6190         machine_mode arguments with format_helper arguments.
6191         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
6192         (real_from_integer, real_nan, real_2expN, real_convert)
6193         (real_value_truncate, exact_real_truncate, real_to_target)
6194         (real_from_target, significand_size, real_powi, real_trunc)
6195         (real_floor, real_ceil, real_round, real_isinteger): Replace
6196         machine_mode arguments with format_helper arguments.
6197         (real_to_target_fmt, real_from_target_fmt): Delete.
6198         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
6199         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
6200         argument with real_format.
6201         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
6202
6203 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6204
6205         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
6206         (fixed_to_decimal, fixed_convert_from_real)
6207         (real_convert_from_fixed): Fix mode arguments to real_2expN.
6208
6209 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6210
6211         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
6212         SCALAR_FLOAT_MODE_P.
6213
6214 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
6215
6216         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
6217         (completely_scalarize): Comment zero-length arrays.
6218         (get_access_replacement): Correct comment re. precondition.
6219
6220 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6221
6222         * config/i386/i386.c (get_builtin_code_for_version): Set priority
6223         for PROCESSOR_ZNVER1.
6224         (enum processor_model): Add M_AMDFAM17H_znver1.
6225         (struct arch_names_table): Likewise.
6226         * doc/extend.texi: ADD znver1.
6227
6228 2015-10-30  Richard Biener  <rguenther@suse.de>
6229
6230         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
6231         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
6232         zeros to be folded to VECTOR_CSTs.
6233         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
6234         * fold-const.c (fold): Use build_vector_from_ctor.
6235
6236 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
6237
6238         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
6239         "mov %0.h[0], %1.h[0] to "neon_move".
6240         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
6241         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
6242         "mov_imm".
6243         (*cmovsi_insn_uxtw): Likewise.
6244
6245 2015-10-30  Tom de Vries  <tom@codesourcery.com>
6246
6247         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
6248         unsigned, and initialize, and use initial value instead of hardcoded
6249         constant.  Add generic constraints dumping section.  Don't dump global
6250         initializers constraints dumping section if empty.  Don't update
6251         variable from if unused.
6252
6253 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6254
6255         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
6256         flag_checking and/or CHECKING_P to eliminate conditional compilation
6257         on ENABLE_CHECKING.
6258         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
6259         * config/bfin/bfin.c (hwloop_optimize): Likewise.
6260         * config/i386/i386.c (ix86_print_operand_address): Likewise.
6261         (output_387_binary_op): Likewise.
6262         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
6263         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
6264         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
6265         Likewise.
6266         * config/rs6000/rs6000.h: Likewise.
6267         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
6268
6269 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6270
6271         * config/sh/sh.opt (mfdpic): Add missing period.
6272
6273 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6274
6275         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6276         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
6277         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6278         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
6279         mcore_base_register_rtx_p, mcore_legitimate_index_p,
6280         mcore_legitimate_address_p): New functions.
6281         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6282
6283 2015-10-29  Jeff Law  <law@redhat.com>
6284
6285         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
6286         method.
6287         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
6288         * tree-ssa-threadedge.c
6289         (record_temporary_equivalences_from_stmts_at_dest): Remove
6290         backedge_seen argument and associated code which invalidated
6291         equivalences based on the value of that argument.
6292         (thread_through_normal_block): Corresponding changes.
6293
6294 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6295
6296         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
6297         function earlier in the file.
6298         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
6299         df_regs_ever_live_p.
6300
6301 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6302
6303         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
6304         by ignoring it.
6305
6306 2015-10-29  Richard Henderson  <rth@redhat.com>
6307
6308         PR target/68124
6309         PR rtl-opt/67609
6310         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
6311         sse check to the exact conditions of PR 67609.
6312
6313 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6314
6315         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
6316         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
6317         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
6318         of the traditional names that TFmode uses for handling IEEE
6319         extended double. If -mfloat128, add KFmode functions for all of
6320         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
6321         make TFmode use the same emulation functions as KFmode.
6322         (init_float128_ibm): Likewise.
6323         (init_float128_ieee): Likewise.
6324         (rs6000_generate_compare): For IEEE 128-bit floating point
6325         comparisons, call the unordered comparison function instead of the
6326         ordered comparison function.
6327         (rs6000_expand_float128_convert): Deal with operands that are
6328         memory operands. Restructure the code to use a switch statement on
6329         the mode. Add support for TFmode defaulting to either IBM extended
6330         double or IEEE 128-bit floating point. If the underlying types are
6331         the same, use a move instead of a conversion function.
6332         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
6333         use for IEEE 128-bit floating point constants with -mfloat128.
6334         (rs6000_c_mode_for_suffix): Likewise.
6335         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
6336         128-bit floating point with IBM extended double floating point.
6337         (rs6000_invalid_binary_op): Likewise.
6338         (rs6000_gen_le_vsx_permute): On little endian systems generate a
6339         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
6340         types that can go in vector registers.
6341         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
6342         point types that can go in vector registers on little endian
6343         PowerPC systems.
6344         (mark_swaps_for_removal): Likewise.
6345         (rs6000_analyze_swaps): Likewise.
6346         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
6347
6348         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
6349         rework IEEE 128-bit floating point insns to deal with TFmode being
6350         either IBM extended double or IEEE 128-bit floating point.
6351         (IFKF): Likewise.
6352         (IBM128): Update iterator to add condition that the mode is IBM
6353         extended double.
6354         (IEEE128): New iterator for IEEE 128-bit floating point.
6355         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
6356         (FLOAT128): Likewise.
6357         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
6358         iterator.
6359         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
6360         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
6361         instead of hard coding TFmode or KFmode.
6362         (negtf2_internal): Likewise.
6363         (neg<mode>2_internal): Likewise.
6364         (abs<mode>2): Likewise.
6365         (abstf2_internal): Likewise.
6366         (abs<mode>2_internal): Likewise.
6367         (ieee_128bit_neg<mode>2): Likewise.
6368         (ieee_128bit_neg<mode>2_internal): Likewise.
6369         (ieee_128bit_abs<mode>2): Likewise.
6370         (ieee_128bit_abs<mode>2_internal): Likewise.
6371         (ieee_128bit_nabs<mode>2): Likewise.
6372         (ieee_128bit_nabs<mode>2_internal): Likewise.
6373         (extendiftf2): Add explicit conversions between 128-bit floating
6374         point types. Drop the old conversions that had become unwieldy.
6375         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
6376         (extendifkf2): Likewise.
6377         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
6378         (extendtfkf2): Likewise.
6379         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
6380         (trunciftf2): Likewise.
6381         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
6382         (truncifkf2): Likewise.
6383         (float<SDI:mode><IFKF:mode>2): Likewise.
6384         (trunckftf2): Likewise.
6385         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
6386         (trunctfif2): Likewise.
6387         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
6388         (extenddftf2): Rework 128-bit floating point conversions to
6389         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
6390         KFmode expanders into one function.
6391         (extenddf<mode>2): Likewise.
6392         (extenddftf2_fprs): Likewise.
6393         (extenddf<mode>2_fprs): Likewise.
6394         (extenddftf2_vsx): Likewise.
6395         (extenddf<mode>2_vsx): Likewise.
6396         (extendsftf2): Likewise.
6397         (extendsf<mode>2): Likewise.
6398         (trunctfdf2): Likewise.
6399         (trunc<mode>df2): Likewise.
6400         (trunctfdf2_internal1): Likewise.
6401         (trunc<mode>df2_internal1): Likewise.
6402         (trunctfdf2_internal2): Likewise.
6403         (trunc<mode>df2_internal2): Likewise.
6404         (trunctfsf2): Likewise.
6405         (trunc<mode>sf2): Likewise.
6406         (trunctfsf2_fprs): Likewise.
6407         (trunc<mode>sf2_fprs): Likewise.
6408         (floatsit2f): Likewise.
6409         (floatsi<mode>2): Likewise.
6410         (fix_trunc_helper): Likewise.
6411         (fix_trunc_helper<mode>): Likewise.
6412         (fix_trunctfsi2): Likewise.
6413         (fix_trunc<mode>si2): Likewise.
6414         (fix_trunctfsi2_fprs): Likewise.
6415         (fix_trunc<mode>si2_fprs): Likewise.
6416         (fix_trunctfsi2_internal): Likewise.
6417         (fix_trunc<mode>si2_internal): Likewise.
6418         (fix_trunctfdi2): Likewise.
6419         (fix_trunc<mode>di2): Likewise.
6420         (fixuns_trunctf<mode>2): Likewise.
6421         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6422         (floatditf2): Likewise.
6423         (floatdi<mode>2): Likewise.
6424         (floatuns<mode>tf2): Likewise.
6425         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
6426         (cmptf_internal1): Use a mode iterator to add support for both
6427         types (IFmode, TFmode) that support IBM extended double.
6428         (cmp<mode>_internal1): Likewise.
6429         (cmptf_internal2): Likewise.
6430         (cmp<mode>_internal2): Likewise.
6431
6432         * doc/extend.texi (Floating Types): Document __ibm128 and
6433         __float128 on PowerPC.
6434
6435         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6436         -mfloat128 and -mno-float128.
6437
6438 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6439
6440         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
6441         floating point modes that can go in vector registers.
6442         (MODES_TIEABLE_P): Move tests for vector modes before tests for
6443         scalar floating point, so that IEEE 128-bit floating point that
6444         can go in vector registers bind with vectors and not FP.
6445         (struct rs6000_args): Add libcall field.
6446
6447         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
6448         and -mfloat128-software switches.  Replace them with a binary
6449         -mfloat128 switch.
6450         (-mfloat128): Likewise.
6451
6452         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
6453         128-bit floating point types in GPRs, even if the appropriate
6454         option enabling the type was not used.
6455         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
6456         debugging.
6457         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
6458         pre-decrement on IEEE 128-bit floating point values.
6459         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
6460         is IEEE 128-bit floating point.
6461         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
6462         128-bit floating point types that can go in vector registers.
6463         (rs6000_option_override_internal): Change -mfloat128-none and
6464         -mfloat128-software to -mfloat128, and move code to be near other
6465         VSX option handling.
6466         (rs6000_option_override_internal): Disable -mfloat128 if we don't
6467         have the Altivec ABI.
6468         (rs6000_init_builtins): Don't make TFmode use either IFmode or
6469         KFmode floating point nodes. Instead, have three separate nodes.
6470         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
6471         eventually moving the long double default to IEEE 128-bit floating
6472         point.
6473         (rs6000_opt_masks): Add -mfloat128.
6474         (struct rs6000_opt_var): Fix typo in comment.
6475         (init_cumulative_args): Initialize libcall field in
6476         CUMULATIVE_ARGS.
6477         (rs6000_function_arg): Treat library functions as if they had
6478         prototypes to prevent IEEE 128-bit support functions from passing
6479         arguments in both GPRs and vector registers.
6480         (rs6000_arg_partial_bytes): Likewise.
6481
6482         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
6483         an option that can be turned on via -mcpu=<xxx>.
6484
6485         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
6486         longer used.
6487
6488         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6489         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
6490         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
6491         double is IBM extended double.
6492
6493         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
6494         SUBREGs.
6495
6496 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6497
6498         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
6499         * genconditions.c: Define CHECKING_P in the generated code.
6500         * genextract.c: Use flag_checking in insn_extract.
6501         * gengtype.c (main): Remove conditional compilation.
6502         * gengtype.h: Likewise.
6503
6504 2015-10-29  Jeff Law  <law@redhat.com>
6505
6506         PR tree-optimization/67892
6507         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
6508         in comment.
6509         (thread_through_normal_block): If we have seen a backedge, then
6510         do nothing.  No longer call find_jump_threads_backwards here.
6511         (thread_across_edge): Use find_jump_threads_backwards to find
6512         jump threads if the old style threader was not successful.
6513         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
6514         gsi_last_nondebug_bb.  Return NULL if the block does not end
6515         with a control statement.
6516         (find_jump_threads_backwards): Setup code moved here from
6517         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
6518         single edge argument instead of name & block.
6519         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
6520         prototype.
6521
6522 2015-10-29  Tom de Vries  <tom@codesourcery.com>
6523
6524         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
6525         types.
6526
6527 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
6528
6529         * omp-low.c (lower_omp_target): Remove unreachable code & merge
6530         ifs.
6531
6532 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
6533
6534         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
6535
6536 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6537
6538         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6539         guard_bb0 and use guard_bb throughout.
6540
6541 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6542
6543         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6544         unnecessary label.
6545
6546 2015-10-29  Richard Biener  <rguenther@suse.de>
6547
6548         PR middle-end/68142
6549         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
6550         overflow.
6551
6552 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
6553
6554         * alias.c: Reorder #include statements and remove duplicates.
6555         * asan.c: Likewise.
6556         * attribs.c: Likewise.
6557         * auto-inc-dec.c: Likewise.
6558         * auto-profile.c: Likewise.
6559         * bb-reorder.c: Likewise.
6560         * bt-load.c: Likewise.
6561         * builtins.c: Likewise.
6562         * caller-save.c: Likewise.
6563         * calls.c: Likewise.
6564         * ccmp.c: Likewise.
6565         * cfg.c: Likewise.
6566         * cfganal.c: Likewise.
6567         * cfgbuild.c: Likewise.
6568         * cfgcleanup.c: Likewise.
6569         * cfgexpand.c: Likewise.
6570         * cfghooks.c: Likewise.
6571         * cfgloop.c: Likewise.
6572         * cfgloopanal.c: Likewise.
6573         * cfgloopmanip.c: Likewise.
6574         * cfgrtl.c: Likewise.
6575         * cgraph.c: Likewise.
6576         * cgraphbuild.c: Likewise.
6577         * cgraphclones.c: Likewise.
6578         * cgraphunit.c: Likewise.
6579         * cilk-common.c: Likewise.
6580         * combine-stack-adj.c: Likewise.
6581         * combine.c: Likewise.
6582         * compare-elim.c: Likewise.
6583         * convert.c: Likewise.
6584         * coverage.c: Likewise.
6585         * cppbuiltin.c: Likewise.
6586         * cprop.c: Likewise.
6587         * cse.c: Likewise.
6588         * cselib.c: Likewise.
6589         * data-streamer-in.c: Likewise.
6590         * data-streamer-out.c: Likewise.
6591         * data-streamer.c: Likewise.
6592         * dbxout.c: Likewise.
6593         * dce.c: Likewise.
6594         * ddg.c: Likewise.
6595         * debug.c: Likewise.
6596         * df-core.c: Likewise.
6597         * df-problems.c: Likewise.
6598         * df-scan.c: Likewise.
6599         * dfp.c: Likewise.
6600         * dojump.c: Likewise.
6601         * dominance.c: Likewise.
6602         * double-int.c: Likewise.
6603         * dse.c: Likewise.
6604         * dumpfile.c: Likewise.
6605         * dwarf2asm.c: Likewise.
6606         * dwarf2cfi.c: Likewise.
6607         * dwarf2out.c: Likewise.
6608         * emit-rtl.c: Likewise.
6609         * except.c: Likewise.
6610         * explow.c: Likewise.
6611         * expmed.c: Likewise.
6612         * expr.c: Likewise.
6613         * final.c: Likewise.
6614         * fixed-value.c: Likewise.
6615         * fold-const.c: Likewise.
6616         * function.c: Likewise.
6617         * fwprop.c: Likewise.
6618         * gcse.c: Likewise.
6619         * generic-match-head.c: Likewise.
6620         * ggc-common.c: Likewise.
6621         * gimple-builder.c: Likewise.
6622         * gimple-expr.c: Likewise.
6623         * gimple-fold.c: Likewise.
6624         * gimple-iterator.c: Likewise.
6625         * gimple-low.c: Likewise.
6626         * gimple-match-head.c: Likewise.
6627         * gimple-pretty-print.c: Likewise.
6628         * gimple-ssa-isolate-paths.c: Likewise.
6629         * gimple-ssa-strength-reduction.c: Likewise.
6630         * gimple-streamer-in.c: Likewise.
6631         * gimple-streamer-out.c: Likewise.
6632         * gimple-walk.c: Likewise.
6633         * gimple.c: Likewise.
6634         * gimplify-me.c: Likewise.
6635         * gimplify.c: Likewise.
6636         * godump.c: Likewise.
6637         * graph.c: Likewise.
6638         * graphite-poly.c: Likewise.
6639         * haifa-sched.c: Likewise.
6640         * hw-doloop.c: Likewise.
6641         * ifcvt.c: Likewise.
6642         * incpath.c: Likewise.
6643         * init-regs.c: Likewise.
6644         * internal-fn.c: Likewise.
6645         * ipa-chkp.c: Likewise.
6646         * ipa-comdats.c: Likewise.
6647         * ipa-cp.c: Likewise.
6648         * ipa-devirt.c: Likewise.
6649         * ipa-icf-gimple.c: Likewise.
6650         * ipa-icf.c: Likewise.
6651         * ipa-inline-analysis.c: Likewise.
6652         * ipa-inline-transform.c: Likewise.
6653         * ipa-inline.c: Likewise.
6654         * ipa-polymorphic-call.c: Likewise.
6655         * ipa-profile.c: Likewise.
6656         * ipa-prop.c: Likewise.
6657         * ipa-pure-const.c: Likewise.
6658         * ipa-ref.c: Likewise.
6659         * ipa-reference.c: Likewise.
6660         * ipa-split.c: Likewise.
6661         * ipa-utils.c: Likewise.
6662         * ipa-visibility.c: Likewise.
6663         * ipa.c: Likewise.
6664         * ira-build.c: Likewise.
6665         * ira-color.c: Likewise.
6666         * ira-conflicts.c: Likewise.
6667         * ira-costs.c: Likewise.
6668         * ira-emit.c: Likewise.
6669         * ira-lives.c: Likewise.
6670         * ira.c: Likewise.
6671         * jump.c: Likewise.
6672         * langhooks.c: Likewise.
6673         * lcm.c: Likewise.
6674         * lists.c: Likewise.
6675         * loop-doloop.c: Likewise.
6676         * loop-init.c: Likewise.
6677         * loop-invariant.c: Likewise.
6678         * loop-iv.c: Likewise.
6679         * loop-unroll.c: Likewise.
6680         * lower-subreg.c: Likewise.
6681         * lra-assigns.c: Likewise.
6682         * lra-coalesce.c: Likewise.
6683         * lra-constraints.c: Likewise.
6684         * lra-eliminations.c: Likewise.
6685         * lra-lives.c: Likewise.
6686         * lra-remat.c: Likewise.
6687         * lra-spills.c: Likewise.
6688         * lra.c: Likewise.
6689         * lto-cgraph.c: Likewise.
6690         * lto-compress.c: Likewise.
6691         * lto-opts.c: Likewise.
6692         * lto-section-in.c: Likewise.
6693         * lto-section-out.c: Likewise.
6694         * lto-streamer-in.c: Likewise.
6695         * lto-streamer-out.c: Likewise.
6696         * lto-streamer.c: Likewise.
6697         * mode-switching.c: Likewise.
6698         * modulo-sched.c: Likewise.
6699         * omp-low.c: Likewise.
6700         * optabs.c: Likewise.
6701         * opts-global.c: Likewise.
6702         * passes.c: Likewise.
6703         * plugin.c: Likewise.
6704         * postreload-gcse.c: Likewise.
6705         * postreload.c: Likewise.
6706         * predict.c: Likewise.
6707         * print-tree.c: Likewise.
6708         * profile.c: Likewise.
6709         * real.c: Likewise.
6710         * realmpfr.c: Likewise.
6711         * recog.c: Likewise.
6712         * ree.c: Likewise.
6713         * reg-stack.c: Likewise.
6714         * regcprop.c: Likewise.
6715         * reginfo.c: Likewise.
6716         * regrename.c: Likewise.
6717         * regstat.c: Likewise.
6718         * reload.c: Likewise.
6719         * reload1.c: Likewise.
6720         * reorg.c: Likewise.
6721         * resource.c: Likewise.
6722         * rtl-chkp.c: Likewise.
6723         * rtl-error.c: Likewise.
6724         * rtlanal.c: Likewise.
6725         * rtlhooks.c: Likewise.
6726         * sanopt.c: Likewise.
6727         * sched-deps.c: Likewise.
6728         * sched-ebb.c: Likewise.
6729         * sched-rgn.c: Likewise.
6730         * sese.c: Likewise.
6731         * shrink-wrap.c: Likewise.
6732         * simplify-rtx.c: Likewise.
6733         * stack-ptr-mod.c: Likewise.
6734         * statistics.c: Likewise.
6735         * stmt.c: Likewise.
6736         * stor-layout.c: Likewise.
6737         * store-motion.c: Likewise.
6738         * stringpool.c: Likewise.
6739         * symtab.c: Likewise.
6740         * target-globals.c: Likewise.
6741         * targhooks.c: Likewise.
6742         * toplev.c: Likewise.
6743         * tracer.c: Likewise.
6744         * trans-mem.c: Likewise.
6745         * tree-affine.c: Likewise.
6746         * tree-call-cdce.c: Likewise.
6747         * tree-cfg.c: Likewise.
6748         * tree-cfgcleanup.c: Likewise.
6749         * tree-chkp-opt.c: Likewise.
6750         * tree-chkp.c: Likewise.
6751         * tree-chrec.c: Likewise.
6752         * tree-complex.c: Likewise.
6753         * tree-data-ref.c: Likewise.
6754         * tree-dfa.c: Likewise.
6755         * tree-diagnostic.c: Likewise.
6756         * tree-dump.c: Likewise.
6757         * tree-eh.c: Likewise.
6758         * tree-emutls.c: Likewise.
6759         * tree-if-conv.c: Likewise.
6760         * tree-inline.c: Likewise.
6761         * tree-into-ssa.c: Likewise.
6762         * tree-iterator.c: Likewise.
6763         * tree-loop-distribution.c: Likewise.
6764         * tree-nested.c: Likewise.
6765         * tree-nrv.c: Likewise.
6766         * tree-object-size.c: Likewise.
6767         * tree-outof-ssa.c: Likewise.
6768         * tree-parloops.c: Likewise.
6769         * tree-phinodes.c: Likewise.
6770         * tree-predcom.c: Likewise.
6771         * tree-pretty-print.c: Likewise.
6772         * tree-profile.c: Likewise.
6773         * tree-scalar-evolution.c: Likewise.
6774         * tree-sra.c: Likewise.
6775         * tree-ssa-address.c: Likewise.
6776         * tree-ssa-alias.c: Likewise.
6777         * tree-ssa-ccp.c: Likewise.
6778         * tree-ssa-coalesce.c: Likewise.
6779         * tree-ssa-copy.c: Likewise.
6780         * tree-ssa-dce.c: Likewise.
6781         * tree-ssa-dom.c: Likewise.
6782         * tree-ssa-dse.c: Likewise.
6783         * tree-ssa-forwprop.c: Likewise.
6784         * tree-ssa-ifcombine.c: Likewise.
6785         * tree-ssa-live.c: Likewise.
6786         * tree-ssa-loop-ch.c: Likewise.
6787         * tree-ssa-loop-im.c: Likewise.
6788         * tree-ssa-loop-ivcanon.c: Likewise.
6789         * tree-ssa-loop-ivopts.c: Likewise.
6790         * tree-ssa-loop-manip.c: Likewise.
6791         * tree-ssa-loop-niter.c: Likewise.
6792         * tree-ssa-loop-prefetch.c: Likewise.
6793         * tree-ssa-loop-unswitch.c: Likewise.
6794         * tree-ssa-loop.c: Likewise.
6795         * tree-ssa-math-opts.c: Likewise.
6796         * tree-ssa-operands.c: Likewise.
6797         * tree-ssa-phiopt.c: Likewise.
6798         * tree-ssa-phiprop.c: Likewise.
6799         * tree-ssa-pre.c: Likewise.
6800         * tree-ssa-propagate.c: Likewise.
6801         * tree-ssa-reassoc.c: Likewise.
6802         * tree-ssa-sccvn.c: Likewise.
6803         * tree-ssa-scopedtables.c: Likewise.
6804         * tree-ssa-sink.c: Likewise.
6805         * tree-ssa-strlen.c: Likewise.
6806         * tree-ssa-structalias.c: Likewise.
6807         * tree-ssa-tail-merge.c: Likewise.
6808         * tree-ssa-ter.c: Likewise.
6809         * tree-ssa-threadedge.c: Likewise.
6810         * tree-ssa-threadupdate.c: Likewise.
6811         * tree-ssa-uncprop.c: Likewise.
6812         * tree-ssa-uninit.c: Likewise.
6813         * tree-ssa.c: Likewise.
6814         * tree-ssanames.c: Likewise.
6815         * tree-stdarg.c: Likewise.
6816         * tree-streamer-in.c: Likewise.
6817         * tree-streamer-out.c: Likewise.
6818         * tree-streamer.c: Likewise.
6819         * tree-switch-conversion.c: Likewise.
6820         * tree-tailcall.c: Likewise.
6821         * tree-vect-data-refs.c: Likewise.
6822         * tree-vect-generic.c: Likewise.
6823         * tree-vect-loop-manip.c: Likewise.
6824         * tree-vect-loop.c: Likewise.
6825         * tree-vect-patterns.c: Likewise.
6826         * tree-vect-slp.c: Likewise.
6827         * tree-vect-stmts.c: Likewise.
6828         * tree-vectorizer.c: Likewise.
6829         * tree-vrp.c: Likewise.
6830         * tree.c: Likewise.
6831         * tsan.c: Likewise.
6832         * ubsan.c: Likewise.
6833         * value-prof.c: Likewise.
6834         * var-tracking.c: Likewise.
6835         * varasm.c: Likewise.
6836         * varpool.c: Likewise.
6837         * vtable-verify.c: Likewise.
6838         * web.c: Likewise.
6839         * wide-int-print.cc: Likewise.
6840         * wide-int.cc: Likewise.
6841         * xcoffout.c: Likewise.
6842
6843 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
6844
6845         * Makefile.in (NO_PIE_CFLAGS): New.
6846         (NO_PIE_FLAG): Likewise.
6847         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6848         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6849         (BUILD_NO_PIE_CFLAGS): Likewise.
6850         (BUILD_NO_PIE_FLAG): Likewise.
6851         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
6852         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
6853         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
6854         $(BUILD_NO_PIE_CFLAGS).
6855         (BUILD_CXXFLAGS): Likewise.
6856         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
6857         $(BUILD_NO_PIE_FLAG).
6858         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
6859         (BUILD_NO_PIE_FLAG): Likewise.
6860         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6861         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6862         * configure: Regenerated.
6863
6864 2015-10-29  Richard Biener  <rguenther@suse.de>
6865
6866         PR middle-end/56956
6867         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
6868         unsigned conditonal negation to ABS_EXPR.
6869
6870 2015-10-29  Richard Biener  <rguenther@suse.de>
6871
6872         * gimple-match-head.c (gimple_simplify): Remove premature checking
6873         of builtin_decl_implicit of function calls we simplify.
6874
6875 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
6876
6877         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
6878         (get_computation_cost_at): Ditto.
6879         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
6880         and inv_expr_id.
6881
6882 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6883
6884         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
6885         superfluous code.
6886
6887 2015-10-28  Jason Merrill  <jason@redhat.com>
6888
6889         * Makefile.in (TAGS): Include libcpp and libiberty.
6890
6891 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6892
6893         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
6894         (extract_omp_for_data): Remove OpenACC special handling of
6895         chunking.
6896
6897         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
6898         (struct parallel): Update comment.
6899         (nvptx_reorg): Likewise.
6900         (nvptx_neuter): Cleanup whitespace.
6901
6902 2015-10-28  Richard Henderson  <rth@redhat.com>
6903
6904         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
6905
6906 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6907
6908         PR target/67839
6909         * config/avr/predicates.md (low_io_address_operand): Don't
6910         consider MODE when computing upper bound.
6911         (io_address_operand): Likewise.
6912
6913 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
6914
6915         * fold-const.c (operand_equal_p): Do not verify that types are
6916         compatible for MEM_REFs.
6917
6918 2015-10-28  Richard Biener  <rguenther@suse.de>
6919
6920         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
6921         in simplifying VEC_COND_EXPR conditions.
6922
6923 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6924
6925         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
6926         into vi_next of a full_var.
6927
6928 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6929
6930         * tree-ssa-structalias.c (new_var_info, make_heapvar)
6931         (make_constraint_from_restrict, make_constraint_from_global_restrict)
6932         (create_function_info_for, create_variable_info_for_1)
6933         (create_variable_info_for): Add and handle add_id parameter.
6934         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
6935         (init_base_vars): Add extra argument to calls to new_var_info.
6936         (get_vi_for_tree): Add extra argument to call to
6937         create_variable_info_for.
6938         (process_constraint, do_deref, process_all_all_constraints): Add extra
6939         argument to calls to new_scalar_tmp_constraint_exp.
6940         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
6941         argument to calls to make_heapvar.
6942         (make_restrict_var_constraints): Add extra argument to call to
6943         make_constraint_from_global_restrict.
6944         (intra_create_variable_infos): Add extra argument to call to
6945         create_variable_info_for_1.
6946         (ipa_pta_execute): Add extra argument to call to
6947         create_function_info_for.
6948
6949 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6950
6951         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
6952         (sibcall_value): Likewise.
6953
6954 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6955
6956         * config/nvptx/nvptx.h (struct machine_function): Add
6957         axis_predicate.
6958         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
6959         nvptx_expand_oacc_join): Declare.
6960         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
6961         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
6962         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
6963         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
6964         UNSPECV_JOINING, UNSPECV_JOIN): New.
6965         (BITS, BITD): New mode iterators.
6966         (br_true_uni, br_false_uni): New.
6967         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
6968         (oacc_dim_size, oacc_dim_pos): New.
6969         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
6970         (oacc_fork, oacc_join): New.
6971         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
6972         (worker_load<mode>, worker_store<mode>): New.
6973         (nvptx_barsync): New.
6974         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
6975         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
6976         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
6977         worker_bcast_sym): New.
6978         (nvptx_option_override): Initialize worker broadcast buffer.
6979         (nvptx_emit_forking, nvptx_emit_joining): New.
6980         (nvptx_init_axis_predicate): New.
6981         (nvptx_declare_function_name): Init axis predicates.
6982         (nvptx_expand_call): Add fork/join markers around routine call.
6983         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
6984         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
6985         (nvptx_gen_vcast): New.
6986         (struct wcast_data_t): New.
6987         (enum propagate_mask): New.
6988         (nvptx_gen_wcast): New.
6989         (nvptx_print_operand): Add 'S' case.
6990         (struct parallel): New.
6991         (parallel::parallel, parallel::~parallel): New.
6992         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
6993         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
6994         nvptx_find_par, nvptx_discover_pars): New.
6995         (nvptx_propagate): New.
6996         (vprop_gen, nvptx_vpropagate): New.
6997         (wprop_gen, nvptx_wpropagate): New.
6998         (nvptx_wsync): New.
6999         (nvptx_single, nvptx_skip_par): New.
7000         (nvptx_process_pars, nvptx_neuter_pars): New.
7001         (ntptx_reorg): Split blocks, generate parallel structure, apply
7002         neutering.
7003         (nvptx_cannot_copy_insn_p): New.
7004         (nvptx_file_end): Emit worker broadcast decl.
7005         (nvptx_goacc_fork_join): New.
7006         (TARGET_CANNOT_COPY_INSN_P): Override.
7007         (TARGET_GOACC_FORK_JOIN): Override.
7008
7009 2015-10-28  Richard Biener  <rguenther@suse.de>
7010
7011         * fold-const.c (negate_expr_p): Adjust the division case to
7012         properly avoid introducing undefined overflow.
7013         (fold_negate_expr): Likewise.
7014
7015 2015-10-28  Richard Biener  <rguenther@suse.de>
7016
7017         PR tree-optimization/65962
7018         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7019         Avoid creating loop carried dependences also for outer loops
7020         of the loop a use to replace is in.
7021
7022 2015-10-28  Richard Biener  <rguenther@suse.de>
7023
7024         * common.opt (fchecking): New flag controlling flag_checking.
7025         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
7026         * timevar.c (timer::print): Adjust output.
7027         * doc/invoke.texi (fchecking): Document.
7028
7029 2015-10-28  Richard Biener  <rguenther@suse.de>
7030
7031         PR middle-end/68067
7032         * fold-const.c (negate_expr_p): We cannot negate plus or minus
7033         if overflow is not wrapping.  Likewise multiplication unless
7034         one operand is constant and not power of two.
7035         (fold_negate_expr): Adjust accordingly.
7036
7037 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7038
7039         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
7040         fields.
7041         (is_oacc_parallel, is_oacc_kernels): New.
7042         (enclosing_target_ctx): May return NULL.
7043         (ctx_in_oacc_kernels_region): New.
7044         (check_oacc_kernel_gwv): New.
7045         (oacc_loop_or_target_p): Delete.
7046         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
7047         operands.  Strip reductions fro kernels.
7048         (scan_omp_target): Don't calculate gwv mask.
7049         (lower_oacc_head_mark, lower_oacc_loop_marker,
7050         lower_oacc_head_tail): New.
7051         (struct oacc_collapse): New.
7052         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
7053         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
7054         Remove OpenACC handling.
7055         (expand_oacc_for): New.
7056         (expand_omp_for): Call expand_oacc_for.
7057         (lower_omp_for): Call lower_oacc_head_tail.
7058
7059 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
7060
7061         * attribs.c (check_attribute_tables): New function, broken out from...
7062         (init_attributes): Use it.
7063         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
7064         gcc_checking_assert and checking_* functions to eliminate
7065         ENABLE_CHECKING conditionals.
7066         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
7067         (pass_expand::execute): Likewise.
7068         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
7069         * cgraphunit.c (mark_functions_to_output): Likewise.
7070         (cgraph_node::expand_thunk): Likewise.
7071         (symbol_table::compile): Likewise.
7072         * ddg.c (add_cross_iteration_register_deps): Likewise.
7073         (create_ddg_all_sccs): Likewise.
7074         * df-core.c (df_finish_pass, df_analyze): Likewise.
7075         * diagnostic-core.h: Likewise.
7076         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
7077         * dominance.c (calculate_dominance_info): Likewise.
7078         * dwarf2out.c (add_AT_die_ref): Likewise.
7079         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
7080         (loc_list_from_tree, gen_lexical_block_die): Likewise.
7081         gen_type_die_with_usage, gen_type_die): Likewise.
7082         (dwarf2out_decl): Likewise.
7083         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
7084         * except.c (duplicate_eh_regions): Likewise.
7085         * fwprop.c (register_active_defs, update_df_init): Likewise.
7086         (fwprop_init, fwprop_done): Likewise.
7087         (update_uses): Likewise.
7088         * ggc-page.c (ggc_grow): Likewise.
7089         * gimplify.c (gimplify_body): Likewise.
7090         (gimplify_hasher::equal): Likewise.
7091         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
7092         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
7093         Likewise.
7094         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
7095         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
7096         * hash-table.h (::find_empty_slot_for_expand): Likewise.
7097         * ifcvt.c (if_convert): Likewise.
7098         * ipa-cp.c (ipcp_propagate_stage): Likewise.
7099         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
7100         (odr_type_p, odr_types_equivalent_p): Likewise.
7101         (add_type_duplicate, get_odr_type): Likewise.
7102         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
7103         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
7104         (sem_item_optimizer::verify_classes): Likewise.
7105         (sem_item_optimizer::traverse_congruence_split): Likewise.
7106         (sem_item_optimizer::checking_verify_classes): New.
7107         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
7108         method.
7109         * cfgrtl.c (commit_edge_insertions): Likewise.
7110         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
7111         (rtl_flow_call_edges_add): Likewise.
7112         * cgraph.c (symbol_table::create_edge): Likewise.
7113         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
7114         * cgraph.h (symtab_node): Likewise.
7115         (symtab_node::checking_verify_symtab_nodes): Define.
7116         (cgraph_node::checking_verify_cgraph_nodes): Define.
7117         * cfghooks.h (checking_verify_flow_info): Define.
7118         * cfgloop.h (checking_verify_loop_structure): Define.
7119         * dominance.h (checking_verify_dominators): Define.
7120         * et-forest.c: Fix comment.
7121         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
7122         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7123         ENABLE_CHECKING conditionals.
7124         * ipa-inline-transform.c (save_inline_function_body): Likewise.
7125         * ipa-inline.c (inline_small_functions): Likewise.
7126         (early_inliner): Likewise.
7127         * ipa-inline.h (estimate_edge_growth): Likewise.
7128         * ipa-visibility.c (function_and_variable_visibility): Likewise.
7129         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
7130         (ipa_single_use): Likewise.
7131         * ira-int.h: Likewise.
7132         * ira.c (ira): Likewise.
7133         * loop-doloop.c (doloop_optimize_loops): Likewise.
7134         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
7135         * loop-invariant.c (move_loop_invariants): Likewise.
7136         * lra-assigns.c (lra_assign): Likewise.
7137         * lra-constraints.c (lra_constraints): Likewise.
7138         * lra-eliminations.c (lra_eliminate): Likewise.
7139         * lra-int.h (struct lra_reg): Likewise.
7140         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7141         (lra_create_live_ranges_1): Likewise.
7142         * lra-remat.c (create_remat_bb_data): Likewise.
7143         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
7144         (lra): Likewise.
7145         (check_rtl): Always define. Remove incorrect guard around
7146         extract_constrain_insn call.
7147         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
7148         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7149         ENABLE_CHECKING conditionals.
7150         * lto-streamer-out.c (DFS::DFS): Likewise.
7151         (lto_output): Likewise.
7152         * lto-streamer.c (lto_streamer_init): Likewise.
7153         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
7154         expand_omp_target, execute_expand_omp): Likewise.
7155         (lower_omp_target): Likewise.
7156         * passes.c (execute_function_todo): Likewise.
7157         (execute_todo, execute_one_pass): Likewise.
7158         (verify_curr_properties): Always define.
7159         * predict.c (tree_estimate_probability: Use flag_checking,
7160         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7161         ENABLE_CHECKING conditionals.
7162         (propagate_freq): Likewise.
7163         * pretty-print.c (pp_format): Likewise.
7164         * real.c (real_to_decimal_for_mode): Likewise.
7165         * recog.c (split_all_insns): Likewise.
7166         * regcprop.c (kill_value_one_regno): Likewise.
7167         (copy_value): Likewise.
7168         (validate_value_data): Define unconditionally.
7169         * reload.c: Fix comment.
7170         * timevar.c: Include options.h
7171         * tree-ssa.h (checking_verify_ssa): Define.
7172         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
7173         * sched-deps.c (CHECK): Remove unused macro.
7174         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
7175         gcc_checking_assert and checking_* functions to eliminate
7176         ENABLE_CHECKING conditionals.
7177         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
7178         * sel-sched.c (struct moveop_static_params): Likewise.
7179         (find_best_reg_for_expr, move_cond_jump): Likewise.
7180         (move_op_orig_expr_not_found): Likewise.
7181         (code_motion_process_successors, move_op): Likewise.
7182         * ssa-iterators.h (first_readonly_imm_use): Likewise.
7183         (next_readonly_imm_use): Likewise.
7184         * store-motion.c (compute_store_table): Likewise.
7185         * symbol-summary.h (function_summary::function_summary): Likewise.
7186         * target.h (cumulative_args_t): Likewise.
7187         (get_cumulative_args, pack_cumulative_args): Likewise.
7188         * timevar.c: (timer::print): Likewise.
7189         * trans-mem.c (ipa_tm_execute): Likewise.
7190         * tree-cfg.c (move_stmt_op): Likewise.
7191         (move_sese_region_to_fn): Likewise.
7192         (gimple_flow_call_edges_add): Likewise.
7193         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
7194         Likewise.
7195         * tree-eh.c (remove_unreachable_handlers): Likewise.
7196         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
7197         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
7198         * tree-into-ssa.c (update_ssa): Likewise.
7199         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
7200         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
7201         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
7202         * tree-predcom.c (suitable_component_p): Likewise.
7203         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
7204         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
7205         * tree-ssa-live.c (verify_live_on_entry): Likewise.
7206         * tree-ssa-live.h (register_ssa_partition): Likewise.
7207         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
7208         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
7209         (tree_transform_and_unroll_loop): Likewise.
7210         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7211         * tree-ssa-operands.c (get_expr_operands): Likewise.
7212         * tree-ssa-propagate.c (replace_exp_1): Likewise.
7213         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
7214         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7215         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
7216         * tree-ssanames.c (release_ssa_name_fn): Likewise.
7217         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
7218         * tree-vect-loop-manip.c
7219         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7220         (slpeel_checking_verify_cfg_after_peeling): Likewise.
7221         (vect_do_peeling_for_loop_bound): Likewise.
7222         (vect_do_peeling_for_alignment): Likewise.
7223         * tree-vrp.c (supports_overflow_infinity): Likewise.
7224         (set_value_range): Likewise.
7225         * tree.c (free_lang_data_in_cgraph): Likewise.
7226         * value-prof.c (gimple_remove_histogram_value): Likewise.
7227         (free_hist): Likewise.
7228         * var-tracking.c (canonicalize_values_star): Likewise.
7229         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
7230
7231 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7232
7233         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
7234         IFN_GOACC_LOOP): New.
7235         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
7236         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
7237         IFN_UNIQUE_OACC_TAIL_MARK.
7238         (enum ifn_goacc_loop_kind): New.
7239         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
7240         IFN_UNIQUE_OACC_JOIN cases.
7241         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
7242         (expand_GOACC_LOOP): New.
7243         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
7244         * omp-low.c: Include gimple-pretty-print.h.
7245         (struct oacc_loop): New.
7246         (enum oacc_loop_flags): New.
7247         (oacc_thread_numbers): New.
7248         (oacc_xform_loop): New.
7249         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
7250         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
7251         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
7252         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
7253         oacc_loop_discovery): New.
7254         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
7255         oacc_loop_process): New.
7256         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
7257         (execute_oacc_device_lower): Discover & process loops.  Process
7258         internal fns.
7259         * target.def (goacc.fork_join): Change sense of hook, clarify
7260         documentation.
7261         * doc/tm.texi: Regenerated.
7262
7263 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7264
7265         * target-insns.def (oacc_fork, oacc_join): Define.
7266         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
7267         (goacc.fork_join): New GOACC hook.
7268         * targhooks.h (default_goacc_fork_join): Declare.
7269         * omp-low.c (default_goacc_forkjoin): New.
7270         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
7271         * doc/tm.texi: Regenerate.
7272
7273 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7274
7275         * omp-low.c (oacc_init_rediction_array): New.
7276         (oacc_initialize_reduction_data): Initialize array.
7277
7278 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7279
7280         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
7281
7282 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7283
7284         * internal-fn.c (expand_UNIQUE): New.
7285         * internal-fn.h (enum ifn_unique_kind): New.
7286         * internal-fn.def (IFN_UNIQUE): New.
7287         * target-insns.def (unique): Define.
7288         * gimple.h (gimple_call_internal_unique_p): New.
7289         * gimple.c (gimple_call_same_target_p): Check internal fn
7290         uniqueness.
7291         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
7292         * tree-ssa-threadedge.c
7293         (record_temporary_equivalences_from_stmts): Likewise.
7294         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
7295
7296 2015-10-27  Richard Henderson  <rth@redhat.com>
7297
7298         PR rtl-opt/67609
7299         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
7300         narrowing subregs on SSE and MMX registers.
7301         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
7302         appear to be sub-words of multi-register pseudos must be rejected.
7303         * doc/tm.texi: Regenerate.
7304
7305 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7306
7307         PR target/68102
7308         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
7309         operands[0] is a reg before taking its REGNO in split condition.
7310         (*movdi_aarch64): Likewise.
7311
7312 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7313
7314         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
7315         Handle floating point inner modes properly.
7316
7317 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
7318
7319         * tree-vect-looop.c
7320         (vectorizable_live_operation): Change iterator.
7321
7322 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7323             Aditya Kumar  <aditya.k7@samsung.com>
7324
7325         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
7326           function to schedule based on isl_schedule_node.
7327         (get_schedule_map_st): New schedule optimizer based on
7328         isl_schedule_node.
7329         (scop_get_domains): New. Return the isl_union_set containing the
7330         domains of all the pbbs.
7331         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
7332
7333 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7334
7335         PR target/67215
7336         * calls.c (prepare_call_address): Don't handle -fno-plt here.
7337         * config/i386/i386.c (ix86_expand_call): Generate indirect call
7338         via GOT for -fno-plt.  Support indirect call via GOT for x32.
7339         * config/i386/predicates.md (sibcall_memory_operand): Allow
7340         GOT memory operand.
7341
7342 2015-10-27  Richard Biener  <rguenther@suse.de>
7343
7344         PR tree-optimization/68104
7345         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7346         strided access check ...
7347         (vect_compute_data_refs_alignment): ... here.
7348
7349 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
7350             Joseph Myers  <joseph@codesourcery.com>
7351             Mark Shinwell  <shinwell@codesourcery.com>
7352             Andrew Stubbs  <ams@codesourcery.com>
7353             Rich Felker <dalias@libc.org>
7354
7355         * config.gcc: Handle --enable-fdpic.
7356         * config/sh/constraints.md (Ccl): New constraint.
7357         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
7358         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
7359         __SH_FDPIC__.
7360         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
7361         library functions.
7362         * config/sh/sh-protos.h (function_symbol_result): New struct.
7363         (function_symbol): Return function_symbol_result.
7364         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
7365         declarations.
7366         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
7367         target hook.
7368         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
7369         (sh_option_override): Force -fPIC if FDPIC is in effect.
7370         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
7371         UNSPEC_GOTOFFFUNCDESC cases.
7372         (prepare_move_operands): Use FDPIC initial GOT register for
7373         TLS-related GOT access; inhibit cross-section address offset constants
7374         for FDPIC.
7375         (sh_assemble_integer): New function.
7376         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
7377         PC-relative call sites.
7378         (expand_ashiftrt): Adapt invocation of function_symbol.
7379         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
7380         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
7381         UNSPEC_GOTOFFFUNCDESC.
7382         (legitimize_pic_address): Resolve function symbols to function
7383         descriptors for FDPIC.  Do not use GOT-relative addressing for local
7384         data that may be read-only on FDPIC.
7385         (sh_emit_storesi, sh_emit_storehi): New functions.
7386         (sh_trampoline_init): Generate FDPIC trampolines.
7387         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
7388         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
7389         (sh_output_mi_thunk): Generate FDPIC call.
7390         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
7391         FDPIC, generate call site labels to use PC-relative addressing rather
7392         than GOT-relative addressing.
7393         (sh_conditional_register_usage): Make PIC register fixed and call used
7394         when FDPIC is in effect.
7395         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
7396         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
7397         sh_get_fdpic_reg_initial_val): New functions.
7398         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
7399         Handle -mfdpic.
7400         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
7401         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
7402         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
7403         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
7404         FDPIC_SELF_SPECS.
7405         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
7406         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
7407         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
7408         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
7409         constants.
7410         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
7411         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
7412         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
7413         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
7414         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
7415         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
7416         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
7417         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
7418         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
7419         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
7420         block_move_real, block_lump_real, block_move_real_i4,
7421         block_lump_real_i4): Add support for FDPIC calls.
7422         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
7423         call_value_pop): Adjust for new function_symbol signature.
7424         * config/sh/sh.opt (-mfdpic): New option.
7425         * doc/install.texi (Options specification): Document --enable-fdpic.
7426         * doc/invoke.texi (SH Options): Document -mfdpic.
7427
7428
7429 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
7430
7431         PR tree-optimization/65963
7432         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
7433         LSHIFT_EXPRs as equivalent MULT_EXPRs.
7434
7435 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7436
7437         PR target/67929
7438         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
7439         * config/arm/constraints.md (Dp): Update callsite.
7440         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
7441
7442 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7443
7444         * builtins.c (fold_builtin_load_exponent): Rename to...
7445         (fold_const_builtin_load_exponent): ...this and only handle
7446         constant arguments.
7447         (fold_builtin_2): Update accordingly.
7448         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
7449
7450 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7451
7452         * builtins.c (fold_builtin_logb): Rename to...
7453         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
7454         (fold_builtin_significand): Rename to...
7455         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
7456         (fold_builtin_1): Update accordingly.
7457
7458 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7459
7460         * builtins.c (fold_builtin_fmin_fmax): Delete.
7461         (fold_builtin_2): Handle constant fmin and fmax arguments here.
7462         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
7463
7464 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
7465
7466         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
7467         for register extension into sign and zero register extension.
7468         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
7469         for sign and zero register extension.
7470         (cortexa57_addrcost_table): Likewise.
7471         (xgene1_addrcost_table): Likewise.
7472
7473 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7474
7475         * fold-const.c (fold_minmax): Delete.
7476         (fold_binary_loc): Don't call it.
7477         * match.pd: Add rules previously handled by fold_minmax.
7478
7479 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7480
7481         * builtins.c (fold_builtin_fma): Remove constant handling.
7482         (fold_builtin_3): Handle constant fma arguments here.
7483
7484 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7485
7486         * builtins.c (fold_builtin_fabs): Remove constant handling.
7487         (fold_builtin_abs): Likewise.
7488
7489 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7490
7491         * builtins.c (fold_builtin_copysign): Delete.
7492         (fold_builtin_2): Handle constant copysign arguments here.
7493         * match.pd: Add rules previously handled by fold_builtin_copysign.
7494
7495 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7496
7497         * builtins.c (fold_builtin_signbit): Delete.
7498         (fold_builtin_2): Handle constant signbit arguments here.
7499         * match.pd: Add rules previously handled by fold_builtin_signbit.
7500
7501 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7502
7503         * match.pd: Handle sqrt(x) cmp 0 specially.
7504
7505 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
7506
7507         * tree-vect-generic.c (expand_vector_operations_1): Check
7508         optab type before using it.
7509
7510 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7511
7512         * config/aarch64/aarch64-protos.h
7513         (struct tune_params): Add autoprefetcher_model field.
7514         * config/aarch64/aarch64.c: Include params.h
7515         (generic_tunings): Specify autoprefetcher_model value.
7516         (cortexa53_tunings): Likewise.
7517         (cortexa57_tunings): Likewise.
7518         (cortexa72_tunings): Likewise.
7519         (thunderx_tunings): Likewise.
7520         (xgene1_tunings): Likewise.
7521         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
7522         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
7523         (aarch64_override_options_internal): Set
7524         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
7525
7526 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7527
7528         * builtins.c (fold_builtin_exponent): Delete.
7529         (fold_builtin_2): Handle constant expN arguments here.
7530         * match.pd: Fold expN(logN(x)) -> x.
7531
7532 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7533
7534         * builtins.c (fold_builtin_powi): Delete.
7535         (fold_builtin_2): Handle constant powi arguments here.
7536         * match.pd: Add rules previously handled by fold_builtin_powi.
7537
7538 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7539
7540         * builtins.c (fold_builtin_pow): Delete in favor of...
7541         (fold_const_builtin_pow): ...this new function.  Only handle constant
7542         arguments.
7543         (fold_builtin_2): Update accordingly.
7544         * match.pd: Add rules previously handled by fold_builtin_pow.
7545
7546 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7547
7548         * builtins.c (fold_builtin_hypot): Delete.
7549         (fold_builtin_2): Handle constant hypot arguments here.
7550         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
7551         hypot(x, x) to fabs(x)*sqrt(2).
7552
7553 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7554
7555         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
7556         instead of make_ssa_name if not yet in SSA form.
7557
7558 2015-10-27  Richard Biener  <rguenther@suse.de>
7559
7560         * cfg.c (free_edge): Add function argument and use it instead of cfun.
7561         (clear_edges): Likewise.
7562         * cfg.h (clear_edges): Adjust prototype.
7563         * cfgexpand.c (pass_expand::execute): Adjust.
7564         * cfgloop.c (release_recorded_exits): Add function argument and use
7565         it instead of cfun.
7566         * cfgloop.h (release_recorded_exits): Adjust prototype.
7567         (loops_state_satisfies_p): Add overload with function argument.
7568         (loops_state_set): Likewise.
7569         (loops_state_clear): Likewise.
7570         (struct loop_iterator): Add function argument to constructor
7571         and iterator and use it instead of cfun.
7572         (FOR_EACH_LOOP_FN): New macro.
7573         (loop_optimizer_finalize): Add overload with function argument.
7574         * loop-init.c (loop_optimizer_init): Adjust.
7575         (fix_loop_structure): Likewise.
7576         (loop_optimizer_finaliz): Add function argument and use it
7577         instead of cfun.
7578         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
7579         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
7580         * cgraph.c (release_function_body): Do not push/pop cfun.
7581         * final.c (rest_of_clean_state): Adjust.
7582         * graphite.c (graphite_finalize): Likewise.
7583         * tree-ssa-copy.c (fini_copy_prop): Likewise.
7584         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
7585         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
7586         (tree_unroll_loops_completely): Likewise.
7587         (pass_complete_unrolli::execute): Likewise.
7588         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
7589         Add function argument and use it instead of cfun.
7590         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
7591         Adjust prototype.
7592         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
7593         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
7594         instead of cfun.
7595         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
7596         * tree-ssanames.c (fini_ssanames): Add function argument and use it
7597         instead of cfun.
7598         * tree-ssanames.c (fini_ssanames): Adjust prototype.
7599         * tree-vrp.c (execute_vrp): Adjust.
7600         * value-prof.c (free_histograms): Add function argument and use it
7601         instead of cfun.
7602         * value-prof.h (free_histograms): Adjust prototype.
7603
7604 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
7605
7606         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
7607         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
7608         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
7609
7610 2015-10-27  Tom de Vries  <tom@codesourcery.com>
7611
7612         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
7613         field_type.
7614
7615 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
7616
7617         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
7618         (inv_can_prop_to_addr_use): New function.
7619         (record_use): Call can_prop_to_addr_uses, set the new field.
7620         (get_inv_cost): Count cost if inv can't be propagated into its
7621         address uses.
7622
7623 2015-10-26  Doug Evans  <dje@google.com>
7624
7625         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
7626
7627 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
7628
7629         * match.pd (fold_widened_comparison): Apply simplifications to all
7630         integral types.
7631
7632 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
7633
7634         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
7635         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
7636         * doc/tm.texi: Regenerated.
7637         * reorg.c (dbr_schedule): Use new hook.
7638         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
7639
7640 2015-10-26  Jeff Law  <law@redhat.com>
7641
7642         PR tree-optimization/68013
7643         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7644         Make sure the first block in the path is in VISITED_BBs.
7645
7646 2015-10-26  Richard Biener  <rguenther@suse.de>
7647         Dominik Vogt  <vogt@linux.vnet.ibm.com>
7648
7649         PR middle-end/67443
7650         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
7651         Properly prune ref->ref for accesses outside of ref.
7652
7653 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7654
7655         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
7656         new statements to be inserted if inplace.  Allow calls to have
7657         nonempty sequences.
7658
7659 2015-10-26  Richard Biener  <rguenther@suse.de>
7660
7661         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
7662         (do_valueize): New function.
7663         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
7664         replace_uses_by.
7665         * tree-ssa-threadedge.c: Remove builtins.h include, include
7666         gimple-fold.h
7667         (fold_assignment_stmt): Remove.
7668         (threadedge_valueize): New function.
7669         (record_temporary_equivalences_from_stmts): Use
7670         gimple_fold_stmt_to_constant_1, note additional cleanup
7671         opportunities.
7672
7673 2015-10-26  Richard Biener  <rguenther@suse.de>
7674
7675         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
7676         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
7677
7678 2015-10-26  Alan Hayward <alan.hayward@arm.com>
7679
7680         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
7681         VEC_COND_EXPR types.
7682
7683 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7684
7685         * auto-inc-dec.c (insert_move_insn_before): Delete.
7686         (attempt_change): Remember to cost the simple move in the
7687         FORM_PRE_ADD and FORM_POST_ADD cases.
7688
7689 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7690
7691         PR target/68091
7692         * config/sh/sh.c (sh_vector_mode_supported_p): Use
7693         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
7694
7695 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7696
7697         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
7698         factored out of ...
7699         (intra_create_variable_infos): ... here.
7700
7701 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7702
7703         * tree-ssa-structalias.c (intra_create_variable_infos): Add
7704         restrict_pointer_p and recursive_restrict_p variables.
7705
7706 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7707
7708         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
7709         get_vi_for_tree call.
7710
7711 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7712
7713         PR middle-end/67989
7714         * optabs.c (expand_atomic_compare_and_swap): Handle case when
7715         ptarget_oval or ptarget_bool are const0_rtx.
7716
7717 2015-10-26  Christian Bruel  <christian.bruel@st.com>
7718
7719         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
7720         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
7721         * cp/method.c (implicitly_declare_fn): Likewise.
7722         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
7723         * java/class.c (add_method_1): Likewise.
7724
7725 2015-10-26  Richard Biener  <rguenther@suse.de>
7726
7727         * alloc-pool.h (base_pool_allocator): Use placement new.
7728         (base_pool_allocator::remove): Likewise.  Compute size outside of
7729         flag_checking.
7730
7731 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7732
7733         * builtins.c (do_real_to_int_conversion): New function.
7734         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
7735         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
7736         arguments here.
7737         * match.pd: Add rules previously handled by fold_fixed_mathfn
7738         and fold_builtin_int_roundingfn.
7739
7740 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7741
7742         * match.pd: Use macros to define built-in operator lists.
7743
7744 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
7745             Richard Biener  <rguenther@suse.de>
7746
7747         * genmatch.c (dt_simplify::gen): Skip captures that are
7748         part of the result.
7749         (parser::parse_expr): Allow captures in results too.
7750         * builtins.c (fold_builtin_cexp): Delete.
7751         (fold_builtin_1): Handle constant cexp arguments here.
7752         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
7753
7754 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
7755
7756         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
7757         conditional compilation.
7758         (base_pool_allocator::remove): Use flag_checking.
7759
7760 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
7761
7762         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
7763
7764         PR middle-end/68079
7765         * dojump.c (do_compare_and_jump): Canonicalize both function and
7766         method types.
7767
7768 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
7769
7770         PR target/68084
7771         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
7772         for =@ccae.
7773
7774 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7775
7776         PR ipa/pr67600
7777         * ipa-polymorphic-call.c
7778         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
7779         instance offset with offset of outer type.
7780
7781 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7782
7783         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
7784
7785 2015-10-23  Caroline Tice  <cmtice@google.com>
7786
7787         (from Richard Biener
7788         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
7789         call to iterative_hash_host_wide_int.
7790
7791 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7792
7793         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
7794         Define as yes.
7795
7796 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7797
7798         * tree-vect-generic.c (expand_vector_operations_1): Check
7799         optab exists before use it.
7800
7801 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7802
7803         * tree-vect-generic.c (expand_vector_condition): Avoid
7804         uninitialized variable warning.
7805
7806 2015-10-23  Jeff Law  <law@redhat.com>
7807
7808         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
7809         here.  Instead...
7810         (execute_todo): Call it here.
7811         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
7812         statistics
7813         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
7814
7815 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7816             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7817
7818         * config.gcc (enable_secureplt): Add *-linux*-musl*.
7819
7820 2015-10-23  Jeff Law  <law@redhat.com>
7821
7822         PR tree-optimization/67830
7823         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
7824         Explicitly verify the mask has no bits outside the type of
7825         the innermost operands.
7826
7827 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7828             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7829
7830         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
7831         (MUSL_DYNAMIC_LINKER64): Define.
7832         (GNU_USER_DYNAMIC_LINKER32): Update.
7833         (GNU_USER_DYNAMIC_LINKER64): Update.
7834         (CHOOSE_DYNAMIC_LINKER): Update.
7835
7836         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
7837         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
7838         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
7839         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
7840         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
7841         (CHOOSE_DYNAMIC_LINKER): Update.
7842         (INCLUDE_DEFAULTS): Redefine.
7843
7844         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
7845
7846 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7847
7848         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
7849         comparing addresses.
7850
7851 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7852
7853         * fold-const.c (operand_equal_p): Handle matching of vector
7854         constructors.
7855
7856 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7857
7858         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
7859
7860 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
7861             Andrew Pinski  <apinski@cavium.com>
7862
7863         PR rtl-optimization/67736
7864         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
7865         of gen_lowpart.
7866
7867 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7868
7869         PR middle-end/68066
7870         * tree.c (build_truth_vector_type): Support BLK mode
7871         returned for boolean vector.
7872
7873 2015-10-23  Alan Hayward <alan.hayward@arm.com>
7874
7875         PR tree-optimization/65947
7876         * tree-vect-loop.c
7877         (vect_is_simple_reduction_1): Find condition reductions.
7878         (vect_model_reduction_cost): Add condition reduction costs.
7879         (get_initial_def_for_reduction): Add condition reduction initial var.
7880         (vect_create_epilog_for_reduction): Add condition reduction epilog.
7881         (vectorizable_reduction): Condition reduction support.
7882         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
7883         * doc/sourcebuild.texi (Vector-specific attributes): Document
7884         vect_max_reduc
7885
7886 2015-10-23  Richard Biener  <rguenther@suse.de>
7887
7888         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
7889         and builtins.def.
7890
7891 2015-10-23  Richard Biener  <rguenther@suse.de>
7892             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7893
7894         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
7895         into (A ^ B) - B to match.pd
7896         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
7897
7898         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
7899         New simplifier.
7900         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
7901         New simplifier.
7902         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
7903         New simplifier.
7904         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
7905         New simplifier.
7906         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
7907         INTEGER_CST@1)): New simplifier.
7908
7909 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
7910
7911         * builtins.c (integer_valued_real_p): Move to fold-const.c.
7912         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
7913         (fold_builtin_ceil, fold_builtin_round): Delete.
7914         (fold_builtin_1): Handle constant trunc, floor, ceil and round
7915         arguments here.
7916         * convert.c (convert_to_real): Remove narrowing of rounding
7917         functions.
7918         * fold-const.h (integer_valued_real_unary_p)
7919         (integer_valued_real_binary_p, integer_valued_real_call_p)
7920         (integer_valued_real_single_p, integer_valued_real_p): Declare.
7921         * fold-const.c (tree_single_nonnegative_warnv_p): Move
7922         name_registered_for_update_p check to SSA_NAME case statement.
7923         Don't call tree_simple_nonnegative_warnv_p for SSA names.
7924         (integer_valued_real_unary_p, integer_valued_real_binary_p)
7925         (integer_valued_real_call_p, integer_valued_real_single_p)
7926         (integer_valued_real_invalid_p): New functions.
7927         (integer_valued_real_p): Move from fold-const.c and rework
7928         to call the functions above.  Handle SSA names.
7929         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
7930         * gimple-fold.c (gimple_assign_integer_valued_real_p)
7931         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
7932         (gimple_stmt_integer_valued_real_p): New functions.
7933         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
7934         Fold f(x)->x for the same f if x is known to be integer-valued.
7935         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
7936         the result.  Canonicalize floor(x) as trunc(x) if x is
7937         nonnegative.
7938
7939 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7940
7941         * tree-ssa-structalias.c (intra_create_variable_infos): Use
7942         make_constraint_from.
7943
7944 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7945
7946         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
7947         setting of is_full_var in case of a single field.
7948
7949 2015-10-22  Martin Sebor  <msebor@redhat.com>
7950
7951         PR driver/68043
7952         * config/i386/i386.opt: Add missing periods to the ends of sentences.
7953         * config/msp430/msp430.opt: Same.
7954
7955 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7956
7957         * doc/extend.exp (Global Register Variables): Rewrite.
7958
7959 2015-10-22  Jeff Law  <law@redhat.com>
7960
7961         * genattrtab.c (main): If we do not have any annul-true or annul-false
7962         slots, then write out a dummy eligible_for_annul_true or
7963         eligible_for_annul_false as needed.
7964
7965 2015-10-22  Nick Clifton  <nickc@redhat.com>
7966
7967         * config/msp430/msp430.opt: Add -msilicon-errata and
7968         -msilicon-errata-warn.
7969         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
7970         assembler.
7971         * doc/invoke.texi: Document new options.
7972
7973 2015-10-22  Richard Biener  <rguenther@suse.de>
7974
7975         PR tree-optimization/58497
7976         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
7977         (expand_vector_operations_1): Use it.  Lower operations on
7978         all uniform vectors to scalar operations if the HW supports it.
7979
7980 2015-10-22  Richard Biener  <rguenther@suse.de>
7981
7982         PR tree-optimization/19049
7983         PR tree-optimization/65962
7984         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
7985         to strided accesses if single-element interleaving doesn't work.
7986
7987 2015-10-22  Richard Biener  <rguenther@suse.de>
7988
7989         PR middle-end/68046
7990         PR middle-end/61893
7991         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
7992         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
7993         (expand_unop): Likewise.
7994
7995 2015-10-22  Richard Biener  <rguenther@suse.de>
7996
7997         * fold-const.c (fold_addr_of_array_ref_difference): Properly
7998         convert operands before folding a MINUS_EXPR.
7999         (fold_binary_loc): Move simplification of MINUS_EXPR on
8000         converted POINTER_PLUS_EXPRs ...
8001         * match.pd: ... here.
8002
8003 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
8004
8005         * builtins.c (fold_builtin_tan): Delete.
8006         (fold_builtin_1): Handle constant tan arguments here.
8007         * match.pd: Simplify (tan (atan x)) to x.
8008
8009 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
8010
8011         * builtins.c (fold_builtin_cproj): Delete.
8012         (fold_builtin_1): Handle constant arguments here.
8013         (build_complex_cproj): Move and rename to...
8014         * tree.c: (build_complex_inf): ...this.
8015         * tree.h (build_complex_inf): Declare.
8016         * match.pd: Fold cproj(x)->x if x has no infinity.
8017         Use build_complex_inf for existing cproj rules.
8018
8019 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8020
8021         PR target/68015
8022         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
8023         already have a comparison result.
8024
8025 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8026
8027         PR target/63304
8028         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
8029         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
8030         (aarch64_classify_address): Likewise.
8031         (aarch64_secondary_reload): Likewise.
8032         (aarch64_override_options_after_change_1): Adjust.
8033         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
8034         Use aarch64_nopcrelative_literal_loads.
8035         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
8036         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
8037         Declare.
8038
8039 2015-10-21  Martin Sebor  <msebor@redhat.com>
8040
8041         PR driver/68043
8042         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
8043         (print_filtered_help): Reference aliased option's name and encourage
8044         readers to use it in preference to the alias if the former is not
8045         documented.  Mention when using an option is diagnosed.
8046         * gcc.c (display_help): End each sentence with a period.
8047
8048         * common.opt: End each sentence that describes an option with
8049         a period.
8050         * config/aarch64/aarch64.opt: Same.
8051         * config/alpha/alpha.opt: Same.
8052         * config/arc/arc.opt: Same.
8053         * config/arm/arm.opt: Same.
8054         * config/avr/avr.opt: Same.
8055         * config/bfin/bfin.opt: Same.
8056         * config/c6x/c6x.opt: Same.
8057         * config/cr16/cr16.opt: Same.
8058         * config/cris/cris.opt: Same.
8059         * config/cris/linux.opt: Same.
8060         * config/darwin.opt: Same.
8061         * config/epiphany/epiphany.opt: Same.
8062         * config/fr30/fr30.opt: Same.
8063         * config/frv/frv.opt: Same.
8064         * config/ft32/ft32.opt: Same.
8065         * config/g.opt: Same.
8066         * config/h8300/h8300.opt: Same.
8067         * config/i386/cygming.opt: Same.
8068         * config/i386/djgpp.opt: Same.
8069         * config/i386/i386.opt: Same.
8070         * config/i386/interix.opt: Same.
8071         * config/i386/mingw-w64.opt: Same.
8072         * config/i386/mingw.opt: Same.
8073         * config/ia64/ia64.opt: Same.
8074         * config/ia64/ilp32.opt: Same.
8075         * config/iq2000/iq2000.opt: Same.
8076         * config/linux.opt: Same.
8077         * config/lm32/lm32.opt: Same.
8078         * config/lynx.opt: Same.
8079         * config/m32c/m32c.opt: Same.
8080         * config/m32r/m32r.opt: Same.
8081         * config/m68k/ieee.opt: Same.
8082         * config/m68k/m68k.opt: Same.
8083         * config/mcore/mcore.opt: Same.
8084         * config/mep/mep.opt: Same.
8085         * config/microblaze/microblaze.opt: Same.
8086         * config/mips/mips.opt: Same.
8087         * config/mmix/mmix.opt: Same.
8088         * config/mn10300/mn10300.opt: Same.
8089         * config/moxie/moxie.opt: Same.
8090         * config/msp430/msp430.opt: Same.
8091         * config/nios2/elf.opt: Same.
8092         * config/nios2/nios2.opt: Same.
8093         * config/nvptx/nvptx.opt: Same.
8094         * config/pa/pa-hpux.opt: Same.
8095         * config/pa/pa-hpux1010.opt: Same.
8096         * config/pa/pa-hpux1111.opt: Same.
8097         * config/pa/pa-hpux1131.opt: Same.
8098         * config/pa/pa.opt: Same.
8099         * config/pa/pa64-hpux.opt: Same.
8100         * config/pdp11/pdp11.opt: Same.
8101         * config/rl78/rl78.opt: Same.
8102         * config/rs6000/476.opt: Same.
8103         * config/rs6000/aix64.opt: Same.
8104         * config/rs6000/darwin.opt: Same.
8105         * config/rs6000/linux64.opt: Same.
8106         * config/rs6000/rs6000.opt: Same.
8107         * config/rs6000/sysv4.opt: Same.
8108         * config/s390/s390.opt: Same.
8109         * config/s390/tpf.opt: Same.
8110         * config/sh/sh.opt: Same.
8111         * config/sol2.opt: Same.
8112         * config/sparc/long-double-switch.opt: Same.
8113         * config/sparc/sparc.opt: Same.
8114         * config/spu/spu.opt: Same.
8115         * config/stormy16/stormy16.opt: Same.
8116         * config/tilegx/tilegx.opt: Same.
8117         * config/tilepro/tilepro.opt: Same.
8118         * config/v850/v850.opt: Same.
8119         * config/vax/vax.opt: Same.
8120         * config/visium/visium.opt: Same.
8121         * config/vms/vms.opt: Same.
8122         * config/vxworks.opt: Same.
8123         * config/xtensa/xtensa.opt: Same.
8124
8125 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8126             Sebastian Pop  <s.pop@samsung.com>
8127
8128         * graphite-scop-detection.c (parameter_index_in_region): Update call to
8129         invariant_in_sese_p_rec.
8130         * graphite-sese-to-poly.c (extract_affine): Same.
8131         * sese.c (invariant_in_sese_p_rec): Pass in an extra
8132         parameter has_vdefs.
8133         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
8134         variable depends on virtual definitions in the current region.
8135         * sese.h (invariant_in_sese_p_rec): Update declaration.
8136
8137 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8138             Sebastian Pop  <s.pop@samsung.com>
8139
8140         * graphite-scop-detection.c (build_scops): Do not handle scops
8141         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
8142         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
8143
8144 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
8145
8146         * config.in: Regenerate.
8147         * configure: Regenerate.
8148         * configure.ac (CHECKING_P): Define.
8149         * system.h: Use CHECKING_P.
8150
8151 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8152
8153         PR ipa/67056
8154         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
8155         is negative we don't know the type.
8156         (check_stmt_for_type_change): Skip constructors of non-polymorphic
8157         types as those won't help devirutalization.
8158
8159 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8160
8161         * fold-const.c (operand_equal_p): Add code matching empty constructors.
8162
8163 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8164
8165         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
8166         comments.
8167         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
8168         Add comments on sign of the result.
8169         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
8170         Recurse on operand #1 instead of operand #0.
8171         <CEIL_MOD_EXPR>: Do not recurse.
8172         <ROUND_MOD_EXPR>: Likewise.
8173
8174 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8175
8176         * cfgrtl.c (pass_free_cfg::execute): Adjust.
8177         * final.c (dbr_sequence_length): Always define.
8178         (shorten_branches): Adjust.
8179         * genattr-common.c (main): Always define DELAY_SLOTS.
8180         * genattr.c (main): Unconditionally declare functions and define
8181         macros related to delay slots.
8182         * genattrtab.c (write_eligible_delay): Adjust.
8183         (main): Always write out delay slot functions.
8184         * opts.c (default_options_table): Adjust.
8185         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
8186         (redirect_with_delay_list_safe_p): Likewise.
8187         (fill_simple_delay_slots): Likewise.
8188         (fill_slots_from_thread): Likewise.
8189         (make_return_insns): Likewise.
8190         (dbr_schedule): Likewise.
8191         (rest_of_handle_delay_slots): Likewise.
8192         (pass_delay_slots::gate): Likewise.
8193         * toplev.c (process_options): Likewise.
8194
8195 2015-10-21  Richard Henderson  <rth@redhat.com>
8196
8197         * targhooks.c (default_addr_space_pointer_mode): Remove check
8198         for generic address space.
8199         (default_addr_space_address_mode): Likewise.
8200         (default_addr_space_valid_pointer_mode): Likewise.
8201         (default_addr_space_legitimate_address_p): Likewise.
8202         (default_addr_space_legitimize_address): Likewise.
8203         * target.def (addr_space.pointer_mode): Update documentation
8204         of default behavior.
8205         (addr_space.address_mode): Likewise.
8206         * tm.texi: Update.
8207
8208         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
8209         address spaces.
8210
8211 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8212
8213         * builtins.c (fold_builtin_cabs): Delete.
8214         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8215         * match.pd: Add rules previously handled by fold_builtin_cabs.
8216
8217 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8218
8219         * fold-const.h (fold_strip_sign_ops): Delete.
8220         * fold-const.c (fold_strip_sign_ops): Likewise.
8221         (fold_unary_loc, fold_binary_loc): Remove calls to it.
8222         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
8223         (fold_builtin_ccos): Delete.
8224         (fold_builtin_pow): Don't call fold_strip_sign_ops.
8225         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
8226         Remove fndecl argument.
8227         (fold_builtin_1): Update calls accordingly.  Handle constant
8228         cos, cosh, ccos and ccosh here.
8229
8230 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8231
8232         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
8233         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
8234         * common.opt (fssa-backprop): New option.
8235         * fold-const.h (negate_mathfn_p): Declare.
8236         * fold-const.c (negate_mathfn_p): Make public.
8237         * timevar.def (TV_TREE_BACKPROP): New.
8238         * tree-pass.h (make_pass_backprop): Declare.
8239         * passes.def (pass_backprop): Add.
8240         * gimple-ssa-backprop.c: New file.
8241
8242 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8243             Sebastian Pop  <s.pop@samsung.com>
8244
8245         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
8246         Do not call create_empty_if_region_on_edge when cond_expr is true.
8247         (translate_isl_ast_node_for): Check whether a guard has been generated.
8248
8249 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8250
8251         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
8252         (operator=): Removed.
8253         (dr_info): Make alias_set number the last argument with default
8254         value of invalid_alias_set.
8255         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
8256         of dr_info.
8257         (rewrite_reductions_out_of_ssa): Iterate only through the
8258         basic blocks which are inside region.
8259         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
8260         * sese.h (struct sese_l): Removed assignment operator.
8261         (split_region_for_bb): Removed dead code.
8262
8263 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8264
8265         * graphite-poly.h (struct dr_info): Removed conversion constructor.
8266         (struct scop): Renamed scop::region to scop::scop_info
8267         (scop_set_region): Same.
8268         (SCOP_REGION): Removed
8269         (SCOP_CONTEXT): Removed.
8270         (POLY_SCOP_P): Removed.
8271         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
8272         Rename scop->region to scop->scop_info.
8273         (add_parameters_to_ivs_params): Same.
8274         (graphite_regenerate_ast_isl): Same.
8275         * graphite-poly.c (new_scop): Same.
8276         (free_scop): Same.
8277         (print_scop_params): Same.
8278         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
8279         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
8280         (dot_all_scops_1): Rename scop->region to scop->scop_info.
8281         (scop_detection::nb_pbbs_in_loops): Same.
8282         (find_scop_parameters): Same.
8283         (try_generate_gimple_bb): Same.
8284         (gather_bbs::before_dom_children): Same.
8285         (gather_bbs::after_dom_children): Same.
8286         (build_scops): Same.
8287         * graphite-sese-to-poly.c (build_scop_scattering): Same.
8288         (extract_affine_chrec): Same.
8289         (extract_affine): Same.
8290         (set_scop_parameter_dim): Same.
8291         (build_loop_iteration_domains): Same.
8292         (create_pw_aff_from_tree): Same.
8293         (add_param_constraints): Same.
8294         (build_scop_iteration_domain): Same.
8295         (build_scop_drs): Same.
8296         (analyze_drs_in_stmts): Same.
8297         (insert_out_of_ssa_copy_on_edge): Same.
8298         (rewrite_close_phi_out_of_ssa):Same.
8299         (rewrite_reductions_out_of_ssa):Same.
8300         (handle_scalar_deps_crossing_scop_limits):Same.
8301         (rewrite_cross_bb_scalar_deps):Same.
8302         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
8303         (build_poly_scop):Same.
8304         (build_alias_set): Use pointer to dr_info.
8305         * graphite.c (print_graphite_scop_statistics):
8306         (graphite_transform_loops):
8307         * sese.h (struct sese_l): Remove conversion constructor.
8308
8309 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8310
8311         PR middle-end/67966
8312         * tree.c (verify_type): Verify that TYPE_MODE match
8313         between TYPE_CANONICAL and type.
8314         * expr.c (store_expr_with_bounds): Revert my previous change.
8315         * expmed.c (store_bit_field_1): Revert prevoius change.
8316         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
8317         to match for all types.
8318
8319 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
8320
8321         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
8322         nesting.
8323
8324 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8325
8326         * doc/tm.texi: Regenerated.
8327         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
8328         * stor-layout.c (layout_type): Use mode to get vector mask size.
8329         * target.def (get_mask_mode): New.
8330         * targhooks.c (default_get_mask_mode): New.
8331         * targhooks.h (default_get_mask_mode): New.
8332         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
8333         for boolean vector.
8334         * tree.c (MAX_BOOL_CACHED_PREC): New.
8335         (nonstandard_boolean_type_cache): New.
8336         (build_nonstandard_boolean_type): New.
8337         (make_vector_type): Vector mask has no canonical type.
8338         (build_truth_vector_type): New.
8339         (build_same_sized_truth_vector_type): New.
8340         (truth_type_for): Support vector masks.
8341         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
8342         (build_truth_vector_type): New.
8343         (build_same_sized_truth_vector_type): New.
8344         (build_nonstandard_boolean_type): New.
8345         * tree-cfg.c (verify_gimple_comparison) Require boolean
8346         vector type for vector comparison.
8347         (verify_gimple_assign_ternary): Likewise.
8348         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
8349         condition operand.
8350         * tree-vect-stmts.c (vectorizable_condition): Use boolean
8351         vector type for vector comparison.
8352         * tree-vect-generic.c (elem_op_func): Add new operand to hold
8353         vector type.
8354         (do_unop): Adjust to modified function type.
8355         (do_binop): Likewise.
8356         (do_plus_minus): Likewise.
8357         (do_negate); Likewise.
8358         (expand_vector_piecewise): Likewise.
8359         (do_cond): Likewise.
8360         (do_compare): Use comparison instead of condition.
8361         (expand_vector_divmod): Use boolean vector type for comparison.
8362         (expand_vector_operations_1): Skip scalar mask operations.
8363
8364 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8365
8366         * omp-low.c (simd_clone_create): Set in_other_partition
8367         for created clones.
8368
8369 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
8370
8371         * doc/extend.exp (Local Register Variables): Rewrite.
8372
8373 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8374
8375         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
8376         and x*x in cases where the operands are sign ops.  Extend these
8377         rules to handle copysign as a sign op (including for cos, cosh
8378         and pow, which already treated negate and abs as sign ops).
8379
8380 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
8381
8382         PR target/68018
8383         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
8384         for 64-bit MS_ABI targets also when default incoming stack boundary
8385         is overriden.
8386
8387 2015-10-21  Richard Biener  <rguenther@suse.de>
8388
8389         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
8390         cond stmts, enhanced and split out from ...
8391         (vn_phi_eq): ... here.
8392
8393 2015-10-21  Richard Biener  <rguenther@suse.de>
8394
8395         PR middle-end/68031
8396         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
8397         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
8398         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
8399         make sure they are not registered for update.
8400
8401 2015-10-21  Richard Biener  <rguenther@suse.de>
8402
8403         PR tree-optimization/68026
8404         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
8405         unsigned VARYING values.
8406
8407 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
8408
8409         * asan.c (asan_emit_stack_protection): Don't pass local stack to
8410         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
8411         NULL and use local stack than.
8412         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
8413         in addition to __asan_init.
8414         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
8415         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
8416         * asan.h (asan_intercepted_p): Handle new string builtins.
8417         * ubsan.c (ubsan_use_new_style_p): New function.
8418         (ubsan_instrument_float_cast): If location is unknown, assign
8419         input_location to loc. Propagate loc to ubsan_create_data if
8420         ubsan_use_new_style_p returned true.
8421
8422 2015-10-21  Jeff Law  <law@redhat.com>
8423
8424         * Makefile.in (OBJS): Remove sched-vis.c
8425         * sched-vis.c: Removed.  Code moved into...
8426         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
8427         * rtl.h: Remove prototypes for functions now living in print-rtl.c
8428         * print-rtl.h Add prototypes for new functions in print-rtl.c.
8429         * auto-inc-dec.c: Include print-rtl.h
8430         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
8431         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
8432
8433         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
8434         ATTRIBUTE_UNUSED.
8435
8436 2015-10-21  Richard Biener  <rguenther@suse.de>
8437             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8438
8439         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
8440         to match.pd.
8441 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
8442 about signed left shift stronger and clarify the cases when they're
8443 broken.
8444         Move (a * (1 << b)) is (a << b) to match.pd.
8445         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
8446         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
8447         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
8448
8449         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
8450         New simplifier.
8451         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
8452         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
8453         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
8454         : New simplifier.
8455         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
8456         New simplifier.
8457         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
8458
8459 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
8460             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8461             Alan Modra  <amodra@gmail.com>
8462
8463         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
8464         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
8465         (LINK_SPEC): Add %(link_secure_plt).
8466         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
8467         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
8468
8469 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
8470             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8471
8472         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
8473         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
8474
8475 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8476
8477         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
8478         New function.
8479         (fusion_load_store): Use it.
8480         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
8481         ldp and stp in VD modes.
8482         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
8483         (store_pair<mode>, VD): Likewise.
8484
8485 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8486
8487         PR rtl-optimization/67609
8488         * lra-splill.c (lra_final_code_change): Don't remove all
8489         sub-registers.
8490
8491 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8492
8493         * simplify-rtx.c (simplify_binary_operation): If either operand was
8494         a constant pool reference use them if all other simplifications failed.
8495
8496 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8497
8498         * config/aarch64/aarch64.md
8499         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
8500         * config/aarch64/aarch64-simd.md
8501         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
8502         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
8503         (aarch64_fpconst_pow_of_2): New function.
8504         (aarch64_vec_fpconst_pow_of_2): Likewise.
8505         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
8506         prototype.
8507         (aarch64_vec_fpconst_pow_of_2): Likewise.
8508         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
8509         (aarch64_fp_vec_pow2): Likewise.
8510
8511 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
8512
8513         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
8514         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
8515         * config/alpha/alpha.c (alpha_function_arg_advance): Update
8516         ALPHA_ARG_SIZE usage.
8517         (alpha_arg_partial_bytes): Ditto.
8518
8519 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8520
8521         PR target/66810
8522         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
8523         error_mark_node decls.
8524
8525 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8526
8527         PR target/67963
8528         PR target/67985
8529         * common/config/i386/i386-common.c (ix86_handle_option): Remove
8530         OPT_miamcu handling.
8531         * config/i386/i386.c (PTA_NO_80387): New macro.
8532         (processor_alias_table): Add PTA_NO_80387 to lakemont.
8533         (ix86_option_override_internal): Update MASK_80387 from
8534         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
8535         SSE math only if 80387 is supported.  Don't change
8536         MASK_FLOAT_RETURNS.
8537         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
8538         80387 is supported.
8539         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
8540         if TARGET_80387 is true and TARGET_IAMCU is false.
8541         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
8542         is true and TARGET_IAMCU_P is false.
8543
8544 2015-10-20  Richard Biener  <rguenther@suse.de>
8545
8546         PR tree-optimization/68017
8547         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
8548
8549 2015-10-20  Martin Liska  <mliska@suse.cz>
8550
8551         * cgraphclones.c (cgraph_node::create_virtual_clone):
8552         Verify cgraph_node.local.versionable instead of calling
8553         tree_versionable_function_p.
8554         * ipa-cp.c (determine_versionability): Save the information
8555         to ipa_node_params summary.
8556         (ipcp_versionable_function_p): Use it.
8557         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
8558         (ipcp_generate_summary): Do not compute cgraph_node
8559         versionability.
8560         * ipa-inline-analysis.c (inline_generate_summary): Compute
8561         versionability for all cgraph nodes.
8562         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
8563         ipa_node_params::versionability.
8564         * ipa-prop.h (struct ipa_node_params): Declare it.
8565
8566 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8567
8568         PR other/67868
8569         * varasm.c (assemble_variable): Move special vtv handling to..
8570         (handle_vtv_comdat_sections): .. here. New function.
8571         (output_object_block): Handle vtv sections.
8572
8573 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8574
8575         PR target/66912
8576         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
8577
8578 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
8579
8580         * doc/extend.texi: Update documentation WRT inline functions.
8581
8582 2015-10-20  Alan Modra  <amodra@gmail.com>
8583
8584         PR go/66870
8585         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
8586         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8587         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
8588
8589 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
8590
8591         PR rtl-optimization/66790
8592         * df.h (DF_MIR): New macro.
8593         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
8594         (DF_MIR_INFO_BB): New macro.
8595         (DF_MIR_IN, DF_MIR_OUT): New macros.
8596         (struct df_mir_bb_info): New.
8597         (df_mir): New macro.
8598         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
8599         declarations.
8600         (df_mir_get_bb_info): New.
8601         * df-problems.c (struct df_mir_problem_data): New.
8602         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
8603         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
8604         df_mir_confluence_0, df_mir_confluence_n,
8605         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
8606         df_mir_bottom_dump, df_mir_verify_solution_start,
8607         df_mir_verify_solution_end): New.
8608         (problem_MIR): New.
8609         (df_mir_add_problem, df_mir_simulate_one_insn): New.
8610         * timevar.def (TV_DF_MIR): New.
8611         * ree.c: Include bitmap.h
8612         (add_removable_extension): Add an INIT_REGS parameter.  Use it
8613         to skip zero-extensions that may get an uninitialized register.
8614         (find_removable_extensions): Compute must-initialized registers
8615         using the MIR dataflow problem. Update the call to
8616         add_removable_extension.
8617         (find_and_remove_re): Call df_mir_add_problem.
8618
8619 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
8620
8621         * common/config/mn10300/mn10300-common.c
8622         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
8623         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
8624
8625 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
8626
8627         * doc/extend.texi (Explicit Register Variables): Simplify and
8628         avoid unnecessary and confusion abbreviations.  Update cross
8629         references.
8630         doc/implement-c.tex: Update cross reference.
8631
8632 2015-10-19  Jeff Law  <law@redhat.com>
8633
8634         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
8635         that create irreducible loops unless the path elimiantes a multiway
8636         branch.
8637
8638 2015-10-19  Richard Biener  <rguenther@suse.de>
8639
8640         PR tree-optimization/67975
8641         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
8642         * tree-cfg.c (extract_true_false_controlled_edges): Split out
8643         core worker from ...
8644         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
8645         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
8646         instead of block number for PHIs with two or one args.
8647         (vn_phi_eq): Compare edge predicates of PHIs that are in different
8648         blocks.
8649
8650 2015-10-19  Richard Biener  <rguenther@suse.de>
8651
8652         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
8653         (gimple_stmt_nonnegative_warnv_p): Use it.
8654         * match.pd (CPROJ): New operator list.
8655         (cproj (complex ...)): Move simplifications from ...
8656         * builtins.c (fold_builtin_cproj): ... here.
8657
8658 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8659
8660         * config/i386/i386.c (ix86_expand_vector_move): Use
8661         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
8662         alignment.
8663
8664 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8665
8666         * doc/invoke.texi: Replace @optindex with @opindex.
8667
8668 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8669
8670         PR target/67995
8671         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
8672         arch= is set,  clear all bits in x_ix86_isa_flags, except for
8673         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
8674
8675 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
8676
8677         PR middle-end/68002
8678         * common.opt (fkeep-static-functions): New option.
8679         * doc/invoke.texi: Document it.
8680         * cgraphunit.c (cgraph_node::finalize_function): Use it.
8681
8682 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8683
8684         * sched-int.h (struct autopref_multipass_data_): Remove offset
8685         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
8686         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
8687         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
8688         (autopref_rank_data): New function.
8689         (autopref_rank_for_schedule): Use it.
8690         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
8691
8692 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
8693
8694         PR other/65800
8695         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
8696
8697 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8698
8699         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
8700         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
8701         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
8702         (STANDARD_STARTFILE_PREFIX_1): New.
8703         (STANDARD_STARTFILE_PREFIX_2): New.
8704
8705 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8706
8707         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
8708         (darwin_driver_init): Note a version-min when provided on the c/l.
8709         * config/darwin.h (%darwin_minversion): Remove.
8710         * config/i386/darwin.h: Likewise.
8711         * config/rs6000/darwin.h: Likewise.
8712         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
8713         rather than an arbitrary constant.
8714
8715 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8716
8717         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
8718         PPC, detect conflicts between -arch and multilib settings.  Detect
8719         and warn about conflicts between multiple -arch definitions.
8720
8721 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8722
8723         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
8724
8725 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8726
8727         * lra-constraints.c (add_next_usage_insn): Change argument type
8728         from rtx to rtx_insn *.
8729
8730 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
8731
8732         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
8733         for Lakemont.
8734
8735 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
8736
8737         * config/tilepro/gen-mul-tables.cc: Adjust include files.
8738         * config/tilegx/mul-tables.c: Regenerate.
8739         * config/tilepro/mul-tables.c: Regenerate.
8740
8741         * config/tilegx/tilegx-c.c: Adjust include files.
8742         * config/tilegx/tilegx.c: Likewise.
8743         * config/tilepro/tilepro-c.c: Likewise.
8744         * config/tilepro/tilepro.c: Likewise.
8745         * config/aarch64/aarch64-builtins.c: Likewise.
8746         * config/aarch64/aarch64.c: Likewise.
8747         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8748         * config/alpha/alpha.c: Likewise.
8749         * config/arc/arc.c: Likewise.
8750         * config/arm/aarch-common.c: Likewise.
8751         * config/arm/arm-builtins.c: Likewise.
8752         * config/arm/arm-c.c: Likewise.
8753         * config/arm/arm.c: Likewise.
8754         * config/avr/avr-c.c: Likewise.
8755         * config/avr/avr-devices.c: Likewise.
8756         * config/avr/avr-log.c: Likewise.
8757         * config/avr/avr.c: Likewise.
8758         * config/bfin/bfin.c: Likewise.
8759         * config/c6x/c6x.c: Likewise.
8760         * config/cr16/cr16.c: Likewise.
8761         * config/cris/cris.c: Likewise.
8762         * config/darwin-c.c: Likewise.
8763         * config/darwin-driver.c: Likewise.
8764         * config/darwin.c: Likewise.
8765         * config/default-c.c: Likewise.
8766         * config/epiphany/epiphany.c: Likewise.
8767         * config/epiphany/mode-switch-use.c: Likewise.
8768         * config/epiphany/resolve-sw-modes.c: Likewise.
8769         * config/fr30/fr30.c: Likewise.
8770         * config/frv/frv.c: Likewise.
8771         * config/ft32/ft32.c: Likewise.
8772         * config/glibc-c.c: Likewise.
8773         * config/h8300/h8300.c: Likewise.
8774         * config/i386/host-cygwin.c: Likewise.
8775         * config/i386/host-mingw32.c: Likewise.
8776         * config/i386/i386-c.c: Likewise.
8777         * config/i386/i386.c: Likewise.
8778         * config/i386/msformat-c.c: Likewise.
8779         * config/i386/winnt-cxx.c: Likewise.
8780         * config/i386/winnt-stubs.c: Likewise.
8781         * config/i386/winnt.c: Likewise.
8782         * config/ia64/ia64-c.c: Likewise.
8783         * config/ia64/ia64.c: Likewise.
8784         * config/iq2000/iq2000.c: Likewise.
8785         * config/lm32/lm32.c: Likewise.
8786         * config/m32c/m32c-pragma.c: Likewise.
8787         * config/m32c/m32c.c: Likewise.
8788         * config/m32r/m32r.c: Likewise.
8789         * config/mcore/mcore.c: Likewise.
8790         * config/mep/mep-pragma.c: Likewise.
8791         * config/mep/mep.c: Likewise.
8792         * config/microblaze/microblaze-c.c: Likewise.
8793         * config/microblaze/microblaze.c: Likewise.
8794         * config/mips/mips-tables.opt
8795         * config/mips/mips.c: Likewise.
8796         * config/mmix/mmix.c: Likewise.
8797         * config/mn10300/mn10300.c: Likewise.
8798         * config/moxie/moxie.c: Likewise.
8799         * config/msp430/msp430-c.c: Likewise.
8800         * config/msp430/msp430.c: Likewise.
8801         * config/nds32/nds32-cost.c: Likewise.
8802         * config/nds32/nds32-fp-as-gp.c: Likewise.
8803         * config/nds32/nds32-intrinsic.c: Likewise.
8804         * config/nds32/nds32-isr.c: Likewise.
8805         * config/nds32/nds32-md-auxiliary.c: Likewise.
8806         * config/nds32/nds32-memory-manipulation.c: Likewise.
8807         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8808         * config/nds32/nds32-predicates.c: Likewise.
8809         * config/nds32/nds32.c: Likewise.
8810         * config/nios2/nios2.c: Likewise.
8811         * config/nvptx/mkoffload.c: Likewise.
8812         * config/nvptx/nvptx.c: Likewise.
8813         * config/pa/pa.c: Likewise.
8814         * config/pdp11/pdp11.c: Likewise.
8815         * config/rl78/rl78-c.c: Likewise.
8816         * config/rl78/rl78.c: Likewise.
8817         * config/rs6000/host-darwin.c: Likewise.
8818         * config/rs6000/rs6000-c.c: Likewise.
8819         * config/rs6000/rs6000-linux.c: Likewise.
8820         * config/rs6000/rs6000.c: Likewise.
8821         * config/rx/rx.c: Likewise.
8822         * config/s390/s390-c.c: Likewise.
8823         * config/s390/s390.c: Likewise.
8824         * config/sh/sh-c.c: Likewise.
8825         * config/sh/sh-mem.cc: Likewise.
8826         * config/sh/sh.c: Likewise.
8827         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8828         * config/sh/sh_treg_combine.cc: Likewise.
8829         * config/sol2-c.c: Likewise.
8830         * config/sol2-cxx.c: Likewise.
8831         * config/sol2-stubs.c: Likewise.
8832         * config/sol2.c: Likewise.
8833         * config/sparc/sparc-c.c: Likewise.
8834         * config/sparc/sparc.c: Likewise.
8835         * config/spu/spu-c.c: Likewise.
8836         * config/spu/spu.c: Likewise.
8837         * config/stormy16/stormy16.c: Likewise.
8838         * config/v850/v850-c.c: Likewise.
8839         * config/v850/v850.c: Likewise.
8840         * config/vax/vax.c: Likewise.
8841         * config/visium/visium.c: Likewise.
8842         * config/vms/vms-c.c: Likewise.
8843         * config/vms/vms.c: Likewise.
8844         * config/vxworks.c: Likewise.
8845         * config/winnt-c.c: Likewise.
8846         * config/xtensa/xtensa.c: Likewise.
8847
8848 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8849
8850         PR target/67745
8851         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
8852         (FUNCTION_BOUNDARY_P): New macro:
8853         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
8854         New hook.
8855         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
8856         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
8857         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
8858         * function.c (allocate_struct_function): Call
8859         relayout_function hook.
8860         * passes.c (rest_of_decl_compilation): Likewise.
8861
8862 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8863
8864         PR target/67745
8865         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
8866         * config/arm/arm.c (arm_option_override_internal): Call
8867         arm_override_options_after_change_1.
8868         (arm_override_options_after_change): New function.
8869         (arm_override_options_after_change_1): Likewise.
8870         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
8871
8872 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8873
8874         Revert:
8875         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8876         empty constructors.
8877
8878 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8879
8880         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
8881         argument is an ADDR_EXPR.
8882
8883 2015-10-16  Richard Biener  <rguenther@suse.de>
8884
8885         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
8886         and get rid of force_gimple_operand_gsi.
8887         (gimple_fold_builtin_memory_chk): Likewise.
8888         (gimple_fold_builtin_stxcpy_chk): Likewise.
8889         (rewrite_to_defined_overflow): Likewise.
8890         (gimple_convert_to_ptrofftype): New function.
8891         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
8892
8893 2015-10-16  Richard Biener  <rguenther@suse.de>
8894
8895         * tree-nested.h (build_addr): Adjust prototype.
8896         * tree-nested.c (build_addr): Remove context argument and use
8897         mark_addressable.
8898         (get_static_chain): Adjust calls to build_addr.
8899         (convert_nl_goto_reference): Likewise.
8900         (convert_tramp_reference_op): Likewise.
8901         (finalize_nesting_tree_1): Likewise.
8902         * value-prof.c (gimple_ic): Likewise.
8903         * gimple-low.c (lower_builtin_setjmp): Likewise.
8904         * tree-parloops.c (take_address_of): Likewise.
8905         (create_call_for_reduction_1): Likewise.
8906         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
8907         (gimple_gen_ic_func_profiler): Likewise.
8908
8909 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8910
8911         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8912         empty constructors.
8913
8914 2015-10-16  Michael Collison  <michael.collison@linaro.org>
8915             Andrew Pinski <andrew.pinski@caviumnetworks.com>
8916
8917         * match.pd ((x < y) && (x < z) -> x < min (y,z),
8918         (x > y) and (x > z) -> x > max (y,z))
8919
8920 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
8921             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8922
8923         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
8924         (DYNAMIC_LINKER): Renamed to ...
8925         (GLIBC_DYNAMIC_LINKER): This.
8926         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
8927
8928 2015-10-15  Marek Polacek  <polacek@redhat.com>
8929
8930         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
8931         gimple_call_builtin instead of is_gimple_call.
8932
8933 2015-10-15  Richard Biener  <rguenther@suse.de>
8934
8935         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
8936
8937 2015-10-15  Richard Biener  <rguenther@suse.de>
8938
8939         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
8940         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
8941         * tree-vect-loop.c (get_initial_def_for_induction): Drop
8942         use of force_gimple_operand in favor of gimple_build.
8943         Use vect_get_new_ssa_name.
8944         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
8945         (vectorizable_mask_load_store): Likewise.
8946         (vectorizable_call): Likewise.
8947         (vectorizable_store): Likewise.
8948         (vectorizable_load): Likewise.
8949         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
8950
8951 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
8952
8953         PR tree-optimization/67945
8954         * tree-pass.h (PROP_gimple_opt_math): New property flag.
8955         * generic-match-head.c (canonicalize_math_p): New function.
8956         * gimple-match-head.c: Include tree-pass.h.
8957         (canonicalize_math_p): New function.
8958         * match.pd: Group math built-in rules into simplifications
8959         and canonicalizations.  Guard the latter with canonicalize_math_p.
8960         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
8961         PROP_gimple_opt_math property.
8962
8963 2015-10-15  Marek Polacek  <polacek@redhat.com>
8964
8965         PR tree-optimization/67953
8966         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
8967
8968 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
8969
8970         * config.gcc: Recognize "." in architecture base name for AArch64.
8971
8972 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8973
8974         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
8975         ROUND_UP macro.
8976         * config/mips/mips.c (mips_setup_incoming_varargs): Use
8977         ROUND_DOWN to calculate off.
8978         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
8979         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
8980         rounded_size.
8981
8982 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8983
8984         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
8985
8986 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
8987             Torvald Riegel  <triegel@redhat.com>
8988
8989         PR target/67281
8990         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
8991         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8992         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
8993         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
8994         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
8995         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8996         trechkpt, treclaim, tsr, ttest): New define_expands.
8997         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8998         __TM_FENCE__ for htm.
8999         * doc/extend.texi: Update documentation for htm builtins.
9000
9001 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
9002
9003         PR target/67967
9004         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
9005         REG_CFA_EXPRESSION to aligned SSE stores.
9006
9007 2015-10-14  Jeff Law  <law@redhat.com>
9008
9009         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
9010         num_threaded_edges for successful FSM threads too.
9011
9012 2015-10-14  Richard Biener  <rguenther@suse.de>
9013
9014         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
9015         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
9016         (vect_get_vec_def_for_operand): Remove unused parameter.
9017         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
9018         (vect_create_epilog_for_reduction): Likewise.
9019         (vectorizable_reduction): Likewise.
9020         (vectorizable_live_operation): Likewise.
9021         * tree-vect-patterns.c (type_conversion_p): Likewise.
9022         (vect_recog_vector_vector_shift_pattern): Likewise.
9023         (check_bool_pattern): Likewise.
9024         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
9025         (vect_analyze_slp_cost_1): Likewise.
9026         * tree-vect-stmts.c (process_use): Likewise.
9027         (vect_get_vec_def_for_operand): Do not handle reductions.
9028         (vect_get_vec_defs): Adjust.
9029         (vectorizable_mask_load_store): Likewise.
9030         (vectorizable_call): Likewise.
9031         (vectorizable_simd_clone_call): Likewise.
9032         (vect_get_loop_based_defs): Likewise.
9033         (vectorizable_conversion): Likewise.
9034         (vectorizable_assignment): Likewise.
9035         (vectorizable_shift): Likewise.
9036         (vectorizable_operation): Likewise.
9037         (vectorizable_store): Likewise.
9038         (vectorizable_load): Likewise.
9039         (vect_is_simple_cond): Likewise.
9040         (vectorizable_condition): Likewise.
9041         (vect_is_simple_use): Remove unused parameters.
9042         (vect_is_simple_use_1): Adjust and rename.
9043
9044 2015-10-14  Richard Biener  <rguenther@suse.de>
9045
9046         PR tree-optimization/67915
9047         * match.pd: Handle comparisons of addresses of STRING_CSTs.
9048         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
9049         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
9050         stmt folding in favor of GIMPLE one.
9051
9052 2015-10-14  Marek Polacek  <polacek@redhat.com>
9053
9054         PR tree-optimization/67815
9055         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
9056         (reassociate_bb): Call it.
9057
9058 2015-10-14  Richard Biener  <rguenther@suse.de>
9059
9060         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9061         Reset info at start.
9062         (vect_analyze_group_access_1): Add debug print.
9063         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
9064         (vect_compute_single_scalar_iteration_cost): ... to this.
9065         (vect_analyze_loop_2): Adjust.
9066         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
9067         * tree-vectorizer.h: ... here.
9068         (add_stmt_info_to_vec): Remove.
9069         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
9070
9071 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9072
9073         * targhooks.c (default_target_option_pragma_parse): Do not warn if
9074         called on behalf of "#pragma GCC pop_options".
9075
9076 2015-10-14  Tom de Vries  <tom@codesourcery.com>
9077
9078         * cfganal.c (verify_no_unreachable_blocks): New function.
9079         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
9080         verify_no_unreachable_blocks.
9081         cfganal.h (verify_no_unreachable_blocks): Declare.
9082
9083 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
9084
9085         * common.opt: Add flag_checking.
9086         * system.h (CHECKING_P): Define.
9087
9088 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
9089             Aldy Hernandez  <aldyh@redhat.com>
9090             Ilya Verbin  <ilya.verbin@intel.com>
9091
9092         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
9093         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
9094         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
9095         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
9096         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
9097         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
9098         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
9099         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
9100         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
9101         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
9102         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
9103         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
9104         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
9105         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
9106         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
9107         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
9108         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
9109         (struct cgraph_simd_clone_arg): Adjust comment.
9110         * coretypes.h (struct gomp_ordered): New forward decl.
9111         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
9112         set critical clauses to it.
9113         (gimple_build_omp_ordered): Return gomp_ordered * instead of
9114         gimple *.  Add CLAUSES argument, set ordered clauses to it.
9115         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
9116         GIMPLE_OMP_ORDERED.
9117         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
9118         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
9119         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
9120         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
9121         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
9122         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
9123         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
9124         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
9125         renumber
9126         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
9127         (gomp_critical): Add clauses field.
9128         (gomp_ordered): New struct.
9129         (is_a_helper <gomp_ordered *>::test): New inline.
9130         (gimple_build_omp_critical): Add CLAUSES argument.
9131         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
9132         instead of gimple *.
9133         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
9134         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
9135         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
9136         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
9137         inline functions.
9138         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
9139         (dump_gimple_omp_target): Handle enter data and exit data.
9140         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
9141         (dump_gimple_omp_critical): Print clauses.
9142         (dump_gimple_omp_ordered): New function.
9143         (dump_gimple_omp_task): Handle taskloop.
9144         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
9145         GIMPLE_OMP_ORDERED.
9146         * gimple-walk.c (walk_gimple_op): Walk clauses on
9147         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
9148         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
9149         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
9150         (struct gimplify_omp_ctx): Add loop_iter_var,
9151         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
9152         and target_firstprivatize_array_bases fields.
9153         (delete_omp_context): Release loop_iter_var.
9154         (gimplify_bind_expr): Handle ORT_NONE.
9155         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
9156         ORT_COMBINED_TARGET.
9157         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
9158         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
9159         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
9160         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
9161         ctx->target_map_scalars_firstprivate.
9162         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
9163         data sharing clauses.  For data sharing clause with VLA decl
9164         on omp target/target data don't add firstprivate for the pointer.
9165         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
9166         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
9167         the addition of ORT_COMBINED_TARGET.
9168         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
9169         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
9170         pointers as zero length array sections and
9171         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
9172         data sharing.
9173         (omp_check_private): Handle omp_member_access_dummy_var vars.
9174         (find_decl_expr): New function.
9175         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
9176         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
9177         Handle OMP_CLAUSE_GANG separately.  Handle
9178         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9179         clauses.  Diagnose linear clause on combined
9180         distribute {, parallel for} simd construct, unless it is the loop
9181         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
9182         Handle map clauses with COMPONENT_REF.  Initialize
9183         ctx->target_map_scalars_firstprivate,
9184         ctx->target_firstprivatize_array_bases and
9185         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
9186         linear clause even to target region if combined.  Remove
9187         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
9188         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
9189         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
9190         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
9191         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
9192         For linear clause on worksharing loop combined with parallel add
9193         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
9194         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
9195         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
9196         taskloop if needed.
9197         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
9198         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
9199         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
9200         GOMP_MAP_POINTER.
9201         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
9202         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
9203         in target body.  Handle removal of struct mapping if struct is not
9204         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
9205         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
9206         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
9207         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
9208         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
9209         clause appear together.  Handle
9210         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
9211         clause if it has map-type-modifier always.  Handle
9212         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9213         clauses.
9214         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
9215         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
9216         callers.
9217         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
9218         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
9219         iterators in doacross loops.
9220         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
9221         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
9222         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
9223         for the addition of ORT_COMBINED_TARGET.
9224         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
9225         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
9226         and OMP_TARGET_EXIT_DATA.
9227         (gimplify_omp_ordered): New function.
9228         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
9229         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
9230         Gimplify clauses on OMP_CRITICAL.
9231         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
9232         expand_GOMP_SIMD_ORDERED_END): New functions.
9233         * internal-fn.def (GOMP_SIMD_ORDERED_START,
9234         GOMP_SIMD_ORDERED_END): New internal functions.
9235         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
9236         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
9237         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
9238         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
9239         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
9240         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
9241         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
9242         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
9243         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
9244         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
9245         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
9246         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
9247         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
9248         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
9249         adjust type.
9250         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
9251         GOMP_target_data_41, adjust type.
9252         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
9253         GOMP_target_update_41, adjust type.
9254         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
9255         field.
9256         (struct omp_for_data): Add ordered and simd_schedule fields.
9257         (omp_member_access_dummy_var, unshare_and_remap_1,
9258         unshare_and_remap, is_taskloop_ctx): New functions.
9259         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
9260         (extract_omp_for_data): Handle taskloops and doacross loops
9261         and simd schedule modifier.
9262         (omp_adjust_chunk_size): New function.
9263         (get_ws_args_for): Use it.
9264         (lookup_sfield): Change first argument to splay_tree_key,
9265         add overload with first argument tree.
9266         (maybe_lookup_field): Likewise.
9267         (use_pointer_for_field): Handle omp_member_access_dummy_var.
9268         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
9269         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
9270         (build_outer_var_ref): Add LASTPRIVATE argument, handle
9271         taskloops and omp_member_access_dummy_var vars.
9272         (build_sender_ref): Change first argument to splay_tree_key,
9273         add overload with first argument tree.
9274         (install_var_field): For mask & 8 use &DECL_UID as key instead
9275         of the tree itself.
9276         (fixup_child_record_type): Const qualify *.omp_data_i.
9277         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
9278         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
9279         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
9280         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
9281         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
9282         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
9283         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
9284         kinds.
9285         (add_taskreg_looptemp_clauses): New function.
9286         (scan_omp_parallel): Use it.
9287         (scan_omp_task): Likewise.
9288         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9289         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
9290         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9291         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
9292         sandwiched taskloop constructs.  Type check
9293         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
9294         region.  Diagnose depend(source) or depend(sink:...) on
9295         target constructs or task/taskloop.
9296         (handle_simd_reference): Use get_name.
9297         (lower_rec_input_clauses): Likewise.  Ignore all
9298         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
9299         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
9300         before passing it to omp_clause_{default,copy}_ctor.  Handle
9301         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
9302         lastprivate_firstprivate flag for linear that needs copyin and
9303         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
9304         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
9305         on taskloop lookup decl in outer context.  Pass true to
9306         build_outer_var_ref lastprivate argument.  Handle
9307         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
9308         outside of outer taskloop for.
9309         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
9310         OMP_CLAUSE_DECL.
9311         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
9312         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
9313         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
9314         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
9315         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
9316         abstract origin.  Handle omp_member_access_dummy_var vars.
9317         (expand_parallel_call): Use expand_omp_build_assign.
9318         (expand_task_call): Handle taskloop construct expansion.  Add
9319         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
9320         integers.  Add priority argument to GOMP_task* calls.  Or in
9321         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
9322         GOMP_task call.
9323         (expand_omp_build_assign): Add prototype.  Add AFTER
9324         argument, if true emit statements after *GSI_P and continue linking.
9325         (expand_omp_taskreg): Adjust expand_task_call caller.
9326         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
9327         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
9328         zero_iter2_bb and first_zero_iter2 arguments, handle computation
9329         of counts even for ordered loops.
9330         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
9331         (expand_omp_ordered_source, expand_omp_ordered_sink,
9332         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
9333         functions.
9334         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
9335         clauses on worksharing loop.  Handle DOACROSS loop expansion.
9336         (expand_omp_for_static_nochunk): Handle linear clauses on
9337         worksharing loop.  Adjust expand_omp_for_init_counts
9338         callers.
9339         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
9340         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
9341         expand_omp_for_init_counts callers.
9342         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
9343         functions.
9344         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
9345         Handle doacross loops.
9346         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9347         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
9348         GOMP_target_{41,update_41,enter_exit_data} libcalls.
9349         (expand_omp): Don't expand ordered depend constructs here, record
9350         ord_stmt instead for later expand_omp_for_generic.
9351         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9352         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9353         clause as stand-alone directive.
9354         (lower_omp_ordered_clauses): New function.
9355         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
9356         don't lower anything.
9357         (lower_omp_for_lastprivate): Use last _looptemp_ clause
9358         on taskloop for comparison.
9359         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
9360         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
9361         expansion for linear adjustments.
9362         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9363         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
9364         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
9365         to tree * pointing to the stmt's clauses.
9366         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
9367         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9368         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
9369         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
9370         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
9371         clauses.  Always use short kind and 8-bit align shift.
9372         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
9373         (struct lower_omp_regimplify_operands_data): New type.
9374         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
9375         New functions.
9376         (lower_omp_1): Use lower_omp_regimplify_operands instead of
9377         gimple_regimplify_operands.
9378         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9379         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9380         clause as stand-alone directive.
9381         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
9382         (simd_clone_mangle): Mangle the various linear kinds
9383         per the new ABI.
9384         (simd_clone_adjust_argument_types): Handle
9385         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
9386         (simd_clone_init_simd_arrays): Don't do anything for uval.
9387         (simd_clone_adjust): Handle
9388         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9389         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
9390         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
9391         * omp-low.h (omp_member_access_dummy_var): New prototype.
9392         * passes.def (pass_simduid_cleanup): Schedule another copy of the
9393         pass after all optimizations.
9394         * tree.c (omp_clause_code_name): Add entries for
9395         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9396         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9397         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
9398         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
9399         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
9400         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
9401         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9402         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
9403         clauses.
9404         * tree-core.h (enum omp_clause_linear_kind): New.
9405         (struct tree_omp_clause): Change type of map_kind
9406         from unsigned char to unsigned int.  Add subcode.if_modifier
9407         and subcode.linear_kind fields.
9408         (enum omp_clause_code): Add
9409         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9410         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9411         (OMP_CLAUSE_REDUCTION): Document
9412         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9413         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
9414         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
9415         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
9416         operand.
9417         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
9418         operand.
9419         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
9420         codes.
9421         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
9422         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
9423         char.
9424         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
9425         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
9426         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
9427         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
9428         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
9429         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
9430         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
9431         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
9432         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
9433         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
9434         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
9435         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
9436         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
9437         * tree-inline.c (remap_gimple_stmt): Handle clauses on
9438         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
9439         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
9440         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
9441         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9442         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9443         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9444         (convert_local_omp_clauses): Likewise.
9445         * tree-pretty-print.c (dump_omp_clause): Handle
9446         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9447         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9448         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
9449         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
9450         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
9451         GOMP_MAP_FORCE_DEALLOC.  Handle
9452         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
9453         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
9454         and clauses on OMP_ORDERED and OMP_CRITICAL.
9455         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
9456         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
9457         (vectorize_loops): Adjust comments.
9458         (pass_simduid_cleanup::execute): Likewise.
9459         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9460         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
9461         * wide-int.h (wi::gcd): New.
9462
9463 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9464
9465         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
9466         (ix86_function_arg_advance): Ditto.
9467         (ix86_function_arg): Ditto.
9468         (ix86_gimplify_va_arg): Ditto.
9469         (ix86_class_max_nregs): Ditto.
9470         (inline_memory_move_cost): Ditto.
9471         (ix86_set_reg_reg_cost): Ditto.
9472         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
9473
9474 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
9475
9476         PR middle-end/67912
9477         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
9478
9479 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9480
9481         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
9482         ROUND_UP macro and UNITS_PER_WORD * 2.
9483         * config/sparc/sparc.c (sparc_compute_frame_size):
9484         Use ROUND_UP and ROUND_DOWN macros where applicable.
9485         (function_arg_record_value, function_arg_record_value_1)
9486         (function_arg_record_value_1): Ditto.
9487         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
9488         alignment to double-word.
9489         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
9490         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
9491         rounded_size.
9492
9493 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
9494
9495         * rtl.h (print_insn): Fix prototype.
9496
9497 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9498
9499         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
9500         -1.  Add assert that returned entry matches phi argument.
9501         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
9502         free_stmt_vec_info_vec ...
9503         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
9504         with -1.
9505
9506 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
9507
9508         PR tree-optimization/67909, 67947
9509         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
9510         really skip the inner loop.
9511
9512 2015-10-13  Jeff Law  <law@redhat.com>
9513
9514         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9515         Allow single block jump threading paths.
9516
9517 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9518
9519         PR tree-optimization/67476
9520         * doc/invoke.texi (@item parloops-schedule): New item.
9521         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
9522         * tree-parloops.c: Include params-enum.h.
9523         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
9524
9525 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9526
9527         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
9528         * params-enum.h: New file.
9529         * opts.c (handle_param): Handle case that param arg is a string.
9530         * params-list.h: Handle DEFPARAMENUM5 in params.def.
9531         * params.c (find_param): New function, factored out of ...
9532         (set_param_value): ... here.
9533         (param_string_value_p): New function.
9534         * params.h (struct param_info): Add value_names field.
9535         (find_param, param_string_value_p): Declare.
9536
9537 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9538
9539         PR tree-optimization/67476
9540         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
9541
9542 2015-10-13  Richard Biener  <rguenther@suse.de>
9543
9544         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
9545         the data dependence vector.
9546         (vect_peeling_hash_insert): Get the peeling hash table as argument.
9547         (vect_peeling_hash_get_lowest_cost): Likewise.
9548         (vect_enhance_data_refs_alignment): Adjust.
9549         (struct _vect_peel_info, struct _vect_peel_extended_info,
9550         struct peel_info_hasher): Move from ...
9551         * tree-vectorizer.h: ... here.
9552         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
9553         (LOOP_VINFO_PEELING_HTAB): Likewise.
9554         (struct _loop_vec_info): Remove min_profitable_iters and
9555         peeling_htab members.
9556         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
9557         here.
9558         (destroy_loop_vec_info): Adjust.
9559         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
9560         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
9561         to estimate alias versioning cost.
9562         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
9563
9564 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
9565
9566         * real.h (real_isinteger): Declare.
9567         * real.c (real_isinteger): New function.
9568         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
9569         if y is an even integer.
9570
9571 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9572
9573         revert:
9574         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9575         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9576         counts when these are more informative.
9577
9578 2015-10-12  Jeff Law  <law@redhat.com>
9579
9580         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
9581         (fsm_find_control_stmt_paths): Change name of first argument to
9582         more accurately relfect what it really is.  Handle simplification
9583         of GIMPLE_COND after finding a thread path for NAME.
9584         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
9585         nontrivial conditions to be handled by FSM threader.
9586         (thread_through_normal_block): Extract the name to looup via
9587         FSM threader from COND_EXPR.
9588
9589         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
9590         restriction that traced SSA_NAME is a user variable.
9591
9592 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9593
9594         PR tree-optimization/67476
9595         * omp-low.c (expand_omp_for_generic): Add missing phis.
9596
9597 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9598
9599         PR tree-optimization/67476
9600         * omp-low.c (expand_omp_for_generic): Handle simple latch.
9601
9602 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
9603
9604         * config/aarch64/aarch64-simd-builtins.def: Update builtins
9605         tables: add tbl3 and tbx4.
9606         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
9607         (aarch64_tbx4v8qi): New.
9608         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
9609         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
9610         Rewrite using builtin functions.
9611         * config/aarch64/iterators.md (UNSPEC_TBX): New.
9612
9613 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9614
9615         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
9616         ROUND_UP macro.
9617         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
9618         Use ROUND_UP and ROUND_DOWN macros where applicable.
9619         (rs6000_darwin64_record_arg_flush): Ditto.
9620         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
9621         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
9622         rounded_size.
9623
9624 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9625
9626         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
9627         (AARCH64_ROUND_DOWN): Ditto.
9628         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
9629
9630 2015-10-12  Richard Biener  <rguenther@suse.de>
9631
9632         PR ipa/67783
9633         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
9634         code that analyzes IVs on each stmt but in a cheaper way avoiding
9635         quadratic behavior.
9636
9637 2015-10-12  Nick Clifton  <nickc@redhat.com>
9638
9639         * config/msp430/msp430.c (msp430_mcu_names): Rename to
9640         msp430_mcu_data, add fields for ISA and hardware multiply
9641         support.  Import latest data from the devices.csv file.
9642         (msp430_override_option): Use the data from the new array.
9643         (msp430_use_f5_series_hwmult): Likewise.
9644         (use_32bit_hwmult): Likewise.
9645         (msp430_no_hwmult): Likewise.
9646         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
9647         MCU names.
9648         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
9649         not recognised then no hardware multiply support is assumed and
9650         that only the MSP430 ISA is allowed.
9651
9652 2015-10-12  Richard Biener  <rguenther@suse.de>
9653
9654         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
9655         related code ...
9656         (vect_analyze_loop_2): ... here.
9657
9658 2015-10-11  Jason Merrill  <jason@redhat.com>
9659
9660         PR c++/67557
9661         * expr.c (store_field): Call store_constructor directly when
9662         storing a CONSTRUCTOR into a target smaller than its type.
9663         Guard against unsafe bitwise copy.
9664
9665 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9666
9667         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9668         counts when these are more informative.
9669
9670 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9671
9672         * tree-profile.c (tree_profiling): Do not clear
9673         pure/const when not instrumenting.
9674         (pass tree_profile): Add dump of symtab.
9675
9676 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9677
9678         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
9679         addresses.
9680         (fold_addr_of_array_ref_difference): Likewise.
9681
9682 2015-10-11  Jeff Law  <law@redhat.com>
9683
9684         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
9685         tree-ssa-threadbackward.c.
9686         (fsm_find_control_statement_thread_paths): Likewise.
9687         (thread_through_normal_block): Break out FSM bits and move them
9688         into a new function in tree-ssa-threadbackward.c.  Call new function
9689         instead.
9690         Minimize header file usage.
9691         * tree-ssa-threadbackward.h: New file.
9692         * tree-ssa-threadbackward.c: Likewise.
9693         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
9694
9695 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
9696
9697         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
9698
9699 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
9700
9701         PR rtl-optimization/67864
9702         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
9703         fallthrough edges for conditional jumps.  Don't sort candidate
9704         edges if not optimizing for speed.
9705
9706 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9707
9708         * defaults.h (REVERSE_CONDITION): New default definition.
9709         * jump.c (reversed_comparison_code_parts): Adjust.
9710
9711 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9712
9713         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
9714         check HARD_FRAME_POINTER_IS_ARG_POINTER.
9715
9716 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9717
9718         * defaults.h (FRAME_ADDR_RTX): New default definition.
9719         * builtins.c (expand_builtin_return_addr): Adjust.
9720
9721 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9722
9723         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
9724         * builtins.c (expand_builtin_return_addr): Adjust.
9725
9726 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9727
9728         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
9729         * builtins.c (expand_builtin_return_addr): Adjust.
9730         * doc/tm.texi: Likewise.
9731         * doc/tm.texi.in: Likewise.
9732         * except.c (expand_builtin_unwind_init): Likewise.
9733
9734 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9735
9736         * builtins.c (expand_builtin_return_addr): Adjust.
9737         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
9738
9739 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9740
9741         * tree.c (type_with_interoperable_signedness): New.
9742         (gimple_canonical_types_compatible_p): Use it.
9743         * tree.h (type_with_interoperable_signedness): Declare
9744
9745 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9746
9747         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
9748         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
9749         when OEP_ADDRESS_OF is se.
9750
9751 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9752             Sebastian Pop  <s.pop@samsung.com>
9753
9754         * graphite-dependences.c (scop_get_dependences): Add dump of the
9755         data dependence graph.
9756         * graphite-poly.c (print_isl_union_map): New.
9757         (debug_isl_union_map): New.
9758         * graphite-poly.h (print_isl_union_map): Declare.
9759         (debug_isl_union_map): Declare.
9760
9761 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9762             Sebastian Pop  <s.pop@samsung.com>
9763
9764         * graphite-poly.c (print_iteration_domain): Remove verbosity.
9765         Remove OpenScop formatting.
9766         (print_iteration_domains): Same.
9767         (debug_iteration_domain): Same.
9768         (debug_iteration_domains): Same.
9769         (print_pdr): Same.
9770         (debug_pdr): Same.
9771         (dump_gbb_cases): Same.
9772         (dump_gbb_conditions): Same.
9773         (print_pdrs): Same.
9774         (debug_pdrs): Same.
9775         (print_pbb_body): Same.
9776         (print_pbb): Same.
9777         (print_scop_params): Same.
9778         (print_scop_context): Same.
9779         (print_scop): Same.
9780         (debug_pbb_domain): Same.
9781         (debug_pbb): Same.
9782         (debug_scop_context): Same.
9783         (debug_scop): Same.
9784         (debug_scop_params): Same.
9785         * graphite-poly.h: Same.
9786         * graphite.c (graphite_transform_loops): Same.
9787
9788 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9789
9790         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
9791         call that isn't needed.
9792
9793 2015-10-09  Jeff Law  <law@redhat.com>
9794
9795         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
9796         rather than moving each name to the freelist individually.
9797
9798 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
9799
9800         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
9801         * frame-header-opt.c: New file.
9802         * config/mips/mips-proto.h (mips_register_frame_header_opt):
9803         Add prototype.
9804         * config/mips/mips.c (mips_compute_frame_info): Check
9805         optimize_call_stack flag.
9806         (mips_option_override): Register new frame_header_opt pass.
9807         (mips_frame_info, mips_int_mask, mips_shadow_set,
9808         machine_function): Move these types to...
9809         * config/mips/mips.h: here.
9810         (machine_function): Add does_not_use_frame_header and
9811         optimize_call_stack fields.
9812         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
9813         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
9814         Document new flags.
9815         * config/mips/mips.opt (mframe-header-opt): Add new option.
9816
9817 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
9818
9819         * config/i386/i386.c
9820         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
9821         ROUND_DOWN where applicable.
9822
9823 2015-10-09  Jeff Law  <law@redhat.com>
9824
9825         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
9826         correct statement.
9827
9828 2015-10-09  Renlin Li  <renlin.li@arm.com>
9829
9830         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
9831         operands[0] and operands[2].
9832         (neon_vtrn<mode>_insn): Likewise.
9833         (neon_vzip<mode>_insn): Likewise.
9834
9835 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9836
9837         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
9838         ((X & C2) << C1): Expand to...
9839         (X {&,^,|} C2 << C1): ...This.
9840         ((X & C2) >> C1): Expand to...
9841         (X {&,^,|} C2 >> C1): ...This.
9842
9843 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
9844
9845         PR target/67895
9846         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
9847         Adjust embedded rounding/SAE specifier position.
9848         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
9849         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
9850         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
9851         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
9852         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
9853         Likewise.
9854         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
9855
9856 2015-10-09  Martin Jambor  <mjambor@suse.cz>
9857
9858         tree-optimization/67794
9859         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
9860         between types of state,ents but accept original definitions as a
9861         parameter.
9862         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
9863         iterate over definitions.
9864
9865 2015-10-09  James Norris  <jnorris@codesourcery.com>
9866
9867         * config/rs6000/rs6000.c (rs6000_offload_options): New.
9868         (TARGET_OFFLOAD_OPTIONS): New.
9869
9870 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
9871
9872         PR middle-end/67891
9873         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
9874
9875         PR middle-end/67766
9876         * function.c (expand_function_end): Move return value
9877         promotion past the handling of PARALLELs and CONCATs.
9878
9879         PR rtl-optimization/67828
9880         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
9881         (tree_may_unswitch_on): Don't unswitch on expressions
9882         involving undefined values.
9883
9884 2015-10-09  Richard Biener  <rguenther@suse.de>
9885
9886         * genmatch.c (print_operand): Fix formatting.
9887         (dt_node::append_simplify): Warn for multiple simplifiers
9888         that match the same pattern.
9889         * match.pd (log (exp @0)): Remove duplicates.
9890
9891 2015-10-09  Richard Biener  <rguenth@suse.de>
9892
9893         PR target/67366
9894         * gimple-fold.c (optabs-query.h): Include
9895         (gimple_fold_builtin_memory_op): Allow unaligned stores
9896         when movmisalign_optabs are available.
9897
9898 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9899
9900         PR target/67366
9901         * config/arm/arm.md (movmisalign<mode>): New.
9902         * config/arm/iterators.md (HSI): New.
9903
9904 2015-10-09  Richard Biener  <rguenther@suse.de>
9905
9906         PR tree-optimization/67891
9907         * gimple-match.h (gimple_simplified_result_is_gimple_val):
9908         New helper.
9909         (gimple_resimplify1): Declare.
9910         (gimple_resimplify2): Likewise.
9911         (gimple_resimplify3): Likewise.
9912         * gimple-match-head.c (gimple_resimplify1): Export.
9913         (gimple_resimplify2): Likewise.
9914         (gimple_resimplify3): Likewise.
9915         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
9916         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
9917         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
9918         to avoid creating stmts without VN info.
9919
9920 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
9921
9922         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
9923         of availability.
9924
9925 2015-10-08  Jeff Law  <law@redhat.com>
9926
9927         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
9928         and release_ssa_name in two places.
9929         (gimple_stringop_fixed_value): Similarly.
9930
9931         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
9932         release_defs.
9933
9934         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
9935         unlink_stmt_vdef and release_ssa_name_fn.
9936
9937         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
9938         release_defs.
9939
9940 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9941
9942         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
9943         SSE register save area to 16 bytes only if the incoming stack
9944         boundary is no less than 16 bytes.
9945
9946 2015-10-08  Jeff Law  <law@redhat.com>
9947
9948         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
9949         release_ssa_name.  Fix typo in comment.
9950
9951 2015-10-08  Nathan Sidwell  <nathan@acm.org>
9952
9953         * config/nvptx/nvptx.h (struct machine_function): Add comment.
9954         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
9955         may return pointer as well as in memory.
9956         (nvptx_output_return): Likewise.
9957
9958 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9959
9960         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
9961         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
9962         * match.pd: Add rules previously handled by fold_builtin_sqrt
9963         and fold_builtin_cbrt.
9964
9965 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9966
9967         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
9968         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
9969         * fold-const.h (tree_unary_nonnegative_warnv_p)
9970         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9971         (tree_expr_nonnegative_warnv_p): Add depth parameters.
9972         * fold-const.c: Include gimple-fold.h and params.h.
9973         (tree_ssa_name_nonnegative_warnv_p): New function.
9974         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
9975         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9976         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
9977         Add a depth parameter and increment it for recursive calls to
9978         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
9979         to handle SSA names.
9980         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
9981         (gimple_stmt_nonnegative_warnv_p): Declare.
9982         * tree-vrp.c (remove_range_assertions): Remove assert that condition
9983         cannot be proven false.
9984         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
9985         (gimple_stmt_nonnegative_warnv_p): Move to...
9986         * gimple-fold.c: ...here.  Add depth parameters and pass them
9987         down to the tree routines.  Accept statements that aren't
9988         assignments or calls but just return false for them.
9989         (gimple_val_nonnegative_real_p): Delete.
9990         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
9991         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
9992         Check HONOR_NANs first.
9993
9994 2015-10-08  Martin Jambor  <mjambor@suse.cz>
9995
9996         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
9997         unnecessary MIN.
9998
9999 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
10000
10001         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
10002         in the tail of outer-loop.
10003
10004 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
10005
10006         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
10007         return UI_NONE.
10008
10009 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
10010
10011         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
10012         "cfghooks.h", add prototypes for introduced new functions.
10013         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
10014         checks on ability of loop unswitching to tree_unswitch_single_loop;
10015         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
10016         on innermost loop check.
10017         (tree_unswitch_single_loop): Add all required checks on ability of
10018         loop unswitching under zero recursive level guard.
10019         (tree_unswitch_outer_loop): New function.
10020         (find_loop_guard): Likewise.
10021         (empty_bb_without_guard_p): Likewise.
10022         (used_outside_loop_p): Likewise.
10023         (get_vop_from_header): Likewise.
10024         (hoist_guard): Likewise.
10025         (check_exit_phi): Likewise.
10026
10027 2015-10-08  Marek Polacek  <polacek@redhat.com>
10028
10029         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
10030         ops element.
10031
10032 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10033
10034         PR c/65345
10035         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
10036         create_tmp_var_raw instead of create_tmp_var.
10037
10038 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
10039
10040         * expr.c (store_expr_with_bounds): Handle aggregate moves from
10041         BLKmode.
10042         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
10043         to define gimple type system; compare aggregates only by size.
10044
10045 2015-10-07  Jeff Law  <law@redhat.com>
10046
10047         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
10048         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
10049         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
10050         unnecessarily.
10051
10052 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10053             Sebastian Pop  <s.pop@samsung.com>
10054
10055         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
10056         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
10057         (generate_isl_schedule): Same.
10058         * graphite-optimize-isl.c (scop_get_domains): Same.
10059         (apply_schedule_map_to_scop): Same.
10060         * graphite-poly.c (print_iteration_domains): Same.
10061         (remove_gbbs_in_scop): Same.
10062         (new_scop): Same.
10063         (free_scop): Same.
10064         (print_scop): Same.
10065         * graphite-poly.h (struct scop): Rename bbs to pbbs.
10066         (SCOP_BBS): Remove.
10067         * graphite-scop-detection.c (compare_bb_depths): Remove.
10068         (graphite_sort_dominated_info): Remove.
10069         (try_generate_gimple_bb): Move out of scop_detection.
10070         (all_non_dominated_preds_marked_p): Remove.
10071         (build_scop_bbs_1): Remove.
10072         (build_scop_bbs): Remove.
10073         (nb_pbbs_in_loops): Do not use SCOP_BBS.
10074         (find_scop_parameters): Same.
10075         (sese_dom_walker): Rename gather_bbs.
10076         (before_dom_children): Call try_generate_gimple_bb and collect gbb
10077         and pbb.
10078         (build_scops): Call gather_bbs.
10079         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
10080         (add_conditions_to_constraints): Same.
10081         (build_scop_iteration_domain): Same.
10082         (build_scop_drs): Same.
10083         (new_pbb_from_pbb): Same.
10084         * sese.c (new_sese_info): Create bbs.
10085         * sese.h (struct sese_info_t): Add bbs.
10086
10087 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
10088
10089         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
10090         encoding in 64-bit mode.
10091
10092 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
10093
10094         PR target/66697
10095         * config/i386/i386.c (ix86_option_override_internal): Always use
10096         8-byte minimum stack boundary in 64-bit mode.
10097         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
10098         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
10099         Add a REG_CFA_EXPRESSION note if needed.
10100         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
10101         (ix86_handle_force_align_arg_pointer_attribute): New.
10102         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
10103         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
10104         with ix86_handle_force_align_arg_pointer_attribute.
10105         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
10106
10107 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10108             Sebastian Pop  <s.pop@samsung.com>
10109
10110         * graphite-scop-detection.c (parameter_index_in_region): Remove
10111         use of SESE_ADD_PARAMS.
10112         (find_scop_parameters): Same.
10113         * sese.c (new_sese_info): Same.
10114         * sese.h (struct sese_info_t): Remove add_params.
10115         (SESE_ADD_PARAMS): Remove.
10116
10117 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10118             Sebastian Pop  <s.pop@samsung.com>
10119
10120         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
10121         an sese_info_p.
10122         (copy_def): Same.
10123         (copy_internal_parameters): Same.
10124         (translate_isl_ast_to_gimple): Use an sese_l.
10125         (build_iv_mapping): Same.
10126         * graphite-poly.c (new_sese): Rename new_sese_info.
10127         (free_sese): Rename free_sese_info.
10128         * graphite-poly.h (struct scop): Use an sese_info_p.
10129         (scop_set_region): Same.
10130         * graphite-scop-detection.c (struct sese_l): Moved...
10131         (get_entry_bb): Moved...
10132         (get_exit_bb): Moved...
10133         (parameter_index_in_region_1): Use an sese_info_p.
10134         (parameter_index_in_region): Same.
10135         (scan_tree_for_params): Same.
10136         (find_params_in_bb): Same.
10137         (sese_dom_walker): Use an sese_l.
10138         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
10139         (reduction_phi_p): Same.
10140         (parameter_index_in_region_1): Use an sese_info_p.
10141         (propagate_expr_outside_region): Use an sese_l.
10142         * graphite.c: Replace uses of SCOP_REGION.
10143         * sese.c (sese_record_loop): Use an sese_info_p.
10144         (build_sese_loop_nests): Same.
10145         (sese_build_liveouts_use): Same.
10146         (sese_build_liveouts_bb): Same.
10147         (sese_build_liveouts_bb): Same.
10148         (sese_bad_liveouts_use): Same.
10149         (sese_reset_debug_liveouts_bb): Same.
10150         (sese_build_liveouts): Same.
10151         (new_sese): Renamed new_sese_info.
10152         (free_sese): Renamed free_sese_info.
10153         (set_rename): Use an sese_info_p.
10154         (graphite_copy_stmts_from_block): Same.
10155         (copy_bb_and_scalar_dependences): Same.
10156         (outermost_loop_in_sese_1): Use an sese_l.
10157         (outermost_loop_in_sese): Same.
10158         (if_region_set_false_region): Use an sese_info_p.
10159         (move_sese_in_condition): Same.
10160         (scalar_evolution_in_region): Use an sese_l.
10161         * sese.h (struct sese_l): ... here.
10162         (SESE_ENTRY): Remove.
10163         (SESE_ENTRY_BB): Remove.
10164         (SESE_EXIT): Remove.
10165         (SESE_EXIT_BB): Remove.
10166         (sese_contains_loop): Use an sese_info_p.
10167         (sese_nb_params): Same.
10168         (bb_in_sese_p): Use an sese_l.
10169         (stmt_in_sese_p): Same.
10170         (defined_in_sese_p): Same.
10171         (loop_in_sese_p): Same.
10172         (sese_loop_depth): Same.
10173         (struct ifsese_s): Use an sese_info_p.
10174         (gbb_loop_at_index): Use an sese_l.
10175         (nb_common_loops): Same.
10176         (scev_analyzable_p): Same.
10177
10178 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10179
10180         * config/i386/i386.c (ix86_conditional_register_usage): Use
10181         CALL_USED_REGISTERS_MASK.
10182         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
10183
10184 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10185
10186         PR bootstrap/67385
10187         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
10188         * configure: Regenerated.
10189
10190 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10191
10192         PR target/67850
10193         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
10194         (ix86_set_current_function): This.
10195         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
10196
10197 2015-10-07  Richard Biener  <rguenther@suse.de>
10198
10199         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
10200         (vinfo_for_stmt): Adjust.
10201         (set_vinfo_for_stmt): Likewise.
10202         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
10203         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
10204         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
10205         of inner loop.
10206         (vect_analyze_loop_1): Remove.
10207         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
10208         inner loop when vectorizing an outer loop by splitting out from ...
10209         (vect_analyze_loop_form): ... here.
10210
10211 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10212
10213         PR c/65345
10214         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
10215         Use create_tmp_var_raw instead of create_tmp_var.
10216
10217 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
10218
10219         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
10220         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
10221         * real.c (CACHED_FRACTION): New helper macro.
10222         (dconst_third_ptr): Use it.
10223         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
10224         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
10225         dconst_sixth.
10226         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
10227
10228 2015-10-06  Jeff Law  <law@redhat.com>
10229
10230         PR tree-optimization/67816
10231         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
10232         from remove_jump_threads_starting_at.  Accept an edge rather than
10233         a basic block.
10234         * tree-ssa-threadupdate.c (removed_edges): New hash table.
10235         (remove_jump_threads_including): Note edges that get removed from
10236         the CFG for later pruning of jump threading paths including them.
10237         (thread_through_all_blocks): Remove paths which include edges that
10238         have been removed.
10239         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
10240         on each outgoing edges when optimizing away a control statement.
10241
10242 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10243
10244         * reorg.c (emit_delay_sequence): Store list of delay slot insns
10245         in a vector instead of rtx_insn_list.
10246         (add_to_delay_list): Likewise.
10247         (delete_from_delay_slot): Likewise.
10248         (optimize_skip): Likewise.
10249         (redirect_with_delay_list_safe_p): Likewise.
10250         (check_annul_list_true_false): Likewise.
10251         (steal_delay_list_from_target): Likewise.
10252         (steal_delay_list_from_fallthrough): Likewise.
10253         (redundant_insn): Likewise.
10254         (fill_simple_delay_slots): Likewise.
10255         (fill_slots_from_thread): Likewise.
10256         (fill_eager_delay_slots): Likewise.
10257         (relax_delay_slots): Likewise.
10258
10259 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
10260
10261         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
10262         For -mgpopt=local, also exclude unintialized common symbols.
10263         * doc/invoke.texi (Nios II Options): Document the change.
10264
10265 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10266
10267         * config/aarch64/iterators.md (vwcore): Add missing cases for
10268          V4HF/V8HF modes.
10269
10270 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10271             Sebastian Pop  <s.pop@samsung.com>
10272
10273         * graphite-poly.c (new_scop): Initialize drs.
10274         * graphite-poly.h (struct dr_info): New.
10275         (struct scop): Add drs.
10276         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
10277         (pdr_add_memory_accesses): Same.
10278         (build_poly_dr): Same.
10279         (build_alias_set): Same.
10280         (build_scop_drs): Same.
10281         (build_pbb_drs): Remove.
10282         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
10283         * tree-data-ref.h (data_reference): Remove alias_set.
10284
10285 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10286             Sebastian Pop  <s.pop@samsung.com>
10287
10288         * graphite-poly.c (free_data_refs_aux): Remove.
10289         (free_gimple_poly_bb): Do not call free_data_refs_aux.
10290         * graphite-poly.h (struct base_alias_pair): Remove.
10291         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
10292         base_alias_pair and dr->aux.
10293         (build_alias_set): Same.
10294         * tree-data-ref.c (create_data_ref): Initialize alias_set.
10295         * tree-data-ref.h (data_reference): Add alias_set.
10296
10297 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10298             Sebastian Pop  <s.pop@samsung.com>
10299
10300         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
10301         Do not set PDR_BASE_OBJECT_SET.
10302         * graphite-poly.h (poly_dr): Same.
10303         (PDR_BASE_OBJECT_SET): Remove.
10304         (new_poly_dr): Update decl.
10305         * graphite-sese-to-poly.c (build_poly_dr): Update call to
10306         new_poly_dr.
10307         (write_alias_graph_to_ascii_dimacs): Remove.
10308         (write_alias_graph_to_ascii_dot): Remove.
10309         (write_alias_graph_to_ascii_ecc): Remove.
10310         (dr_same_base_object_p): Remove.
10311         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
10312         code.
10313         (build_base_obj_set_for_drs): Remove.
10314         (dump_alias_graphs): Remove.
10315         (build_scop_drs): Remove dead code.
10316
10317 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10318             Peter Bergner  <bergner@vnet.ibm.com>
10319
10320         PR target/67808
10321         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
10322         allow registers, but provide insns for the combiner to create for
10323         loads from memory. Separate VSX code from non-VSX code. For
10324         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
10325         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
10326         so that registers come before memory operations. Drop support from
10327         converting DFmode to TFmode, if the DFmode value is in a GPR
10328         register.
10329         (extenddftf2_fprs): Likewise.
10330         (extenddftf2_internal): Likewise.
10331         (extenddftf2_vsx): Likewise.
10332         (extendsftf2): In the expander, only allow registers, but provide
10333         insns for the combiner to create for stores and loads.
10334
10335 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10336
10337         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
10338         from the decl parameter.
10339
10340 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
10341
10342         PR 67861
10343         * gimple-fold.c (gimple_fold_builtin): Add break after
10344         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
10345
10346 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
10347
10348         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
10349         to scop->isl_context.
10350
10351 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10352
10353         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
10354         (output_probe_stack_range): Rotate the loop and simplify.
10355         (thumb1_expand_prologue): Tweak sorry message.
10356         * config/arm/arm.md (probe_stack): Use bare string.
10357
10358 2015-10-06  Nick Clifton  <nickc@redhat.com>
10359
10360         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
10361
10362 2015-10-06  Nick Clifton  <nickc@redhat.com>
10363
10364         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
10365         (ATTR_PERSIST): New constant.
10366         (msp430_data_attr): New function - verifies an attribute that only
10367         applies to variables.
10368         (msp430_attributes): Add noinit and persistent attributes.
10369         (noinit_section): New variable.
10370         (presis_section): New variable.
10371         (TARGET_ASM_INIT_SECTIONS): Define.
10372         (msp430_init_sections): New function - initialises the noinit and
10373         persist section variables.
10374         (msp430_select_section): Add support for noinit and persist
10375         attributes.
10376         (msp430_section_type_flags): Likewise.
10377         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
10378         and persistent attributes.
10379
10380 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10381             Sebastian Pop  <s.pop@samsung.com>
10382
10383         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
10384         (no_violations): Remove.
10385         (subtract_commutative_associative_deps): Remove.
10386         (compute_deps): Do not call subtract_commutative_associative_deps.
10387         (transform_is_safe): Remove.
10388         (graphite_legal_transform): Remove.
10389         * graphite-poly.h (graphite_legal_transform): Remove.
10390
10391 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
10392
10393         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
10394         which are in this region are passed so gcc_assert and remove redundant
10395         computation.
10396         * sese.c (sese_build_liveouts): Pass only those bbs which are not
10397         in region.
10398         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
10399         gcc_assert on that and remove unnecessary computation.
10400         (sese_build_liveouts_use): Same.
10401
10402 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10403
10404         * graphite-dependences.c (scop_get_reads): Renamed scop->context
10405         to scop->param_context.
10406         (scop_get_must_writes): Same.
10407         (scop_get_may_writes): Same.
10408         (scop_get_original_schedule): Same.
10409         (scop_get_transformed_schedule): Same.
10410         (subtract_commutative_associative_deps): Same.
10411         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
10412         (generate_isl_context): Same.
10413         (generate_isl_schedule): Same.
10414         (scop_to_isl_ast): Same.
10415         (graphite_regenerate_ast_isl): Same.
10416         * graphite-optimize-isl.c (scop_get_domains): Same.
10417         (optimize_isl): Renamed scop->context to scop->param_context.
10418         * graphite-poly.c (new_poly_bb): Change the type of argument to
10419         gimple_poly_bb_p.
10420         (new_scop): Renamed scop->context to scop->param_context.
10421         (free_scop): Same.
10422         (print_scop_context): Same.
10423         * graphite-poly.h (new_poly_dr): Change the type of argument from
10424         void* to data_reference_p.
10425         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
10426         (new_poly_bb): Change the type of argument from void* to
10427         gimple_poly_bb_p.
10428         (pbb_set_black_box): Same.
10429         (struct scop): Rename context to param_context, ctx to isl_context.
10430         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
10431         Move declarations closer to assignment.
10432         (find_params_in_bb): Same.
10433         (find_scop_parameters): Same.
10434         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
10435         Global to be used for statement IDs.
10436         (isl_id_for_pbb): Use ssa_name_version_typesize.
10437         (simple_copy_phi_p): Move declarations closer to assignment.
10438         (build_pbb_scattering_polyhedrons): Same.
10439         (build_scop_scattering): Same.
10440         (isl_id_for_ssa_name): Same.
10441         (extract_affine_name): Same.
10442         (extract_affine_int): Same.
10443         (extract_affine): Same.
10444         (set_scop_parameter_dim): Use renamed member.
10445         (build_loop_iteration_domains): Same.
10446         (add_param_constraints): Same.
10447         (build_scop_iteration_domain): Same.
10448         (pdr_add_data_dimensions): Same.
10449         (build_poly_dr): Same.
10450         (build_scop_drs): Move declarations closer to assignment.
10451         (analyze_drs_in_stmts): Same.
10452         (insert_out_of_ssa_copy): Same.
10453         (insert_out_of_ssa_copy_on_edge): Same.
10454         (propagate_expr_outside_region): Same.
10455         (rewrite_phi_out_of_ssa): Same.
10456         (rewrite_degenerate_phi): Same.
10457         (rewrite_reductions_out_of_ssa): Same.
10458         (rewrite_cross_bb_scalar_dependence): Same.
10459         (handle_scalar_deps_crossing_scop_limits): Same.
10460         (rewrite_cross_bb_scalar_deps): Same.
10461         * graphite.c (graphite_transform_loops): Use renamed member.
10462
10463 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
10464
10465         PR c/65345
10466         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
10467         create_tmp_var_raw instead of create_tmp_var.
10468
10469 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10470
10471         PR c/65345
10472         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
10473         Use create_tmp_var_raw instead of create_tmp_var.
10474
10475 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
10476
10477         PR target/67849
10478         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
10479         split for upper-bank registers when target does not support
10480         AVX512VL.
10481         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
10482         split when target does not support AVX512VL.
10483
10484 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
10485
10486         PR c/65345
10487         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
10488         Adjust to use create_tmp_var_raw instead of create_tmp_var.
10489
10490 2015-10-06  Nick Clifton  <nickc@redhat.com>
10491
10492         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
10493         multiplication.
10494
10495 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10496
10497         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
10498         (case ${target}): Add znver1.
10499         * config/i386/cpuid.h(bit_CLZERO):  Define.
10500         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
10501         -march=native recognize znver1 processors.
10502         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10503         znver1, clzero def_and_undef.
10504         * config/i386/i386.c (struct processor_costs znver1_cost): New.
10505         (m_znver1): New definition.
10506         (m_AMD_MULTIPLE): Includes m_znver1.
10507         (processor_target_table): Add znver1 entry.
10508         (ix86_target_string) : Add clzero entry.
10509         (static const char *const cpu_names): Add znver1 entry.
10510         (ix86_option_override_internal): Add znver1 instruction sets.
10511         (PTA_CLZERO) :  New definition.
10512         (ix86_option_override_internal): Handle new clzerooption.
10513         (ix86_issue_rate): Add znver1.
10514         (ix86_adjust_cost): Add znver1.
10515         (ia32_multipass_dfa_lookahead): Add znver1.
10516         (has_dispatch): Add znver1.
10517         * config/i386/i386.h (TARGET_znver1): New definition.
10518         (TARGET_CLZERO): Define.
10519         (TARGET_CLZERO_P): Define.
10520         (struct ix86_size_cost): Add TARGET_ZNVER1.
10521         (enum processor_type): Add PROCESSOR_znver1.
10522         * config/i386/i386.md (define_attr "cpu"): Add znver1.
10523         (set_attr znver1_decode): New definitions for znver1.
10524         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
10525         (mclzero): New.
10526         * config/i386/mmx.md (set_attr znver1_decode): New definitions
10527         for znver1.
10528         * config/i386/sse.md (set_attr znver1_decode): Likewise.
10529         * config/i386/x86-tune.def:  Add znver1 tunings.
10530         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
10531         * doc/invoke.texi: Add details about znver1
10532
10533 2015-10-06  Richard Biener  <rguenther@suse.de>
10534
10535         PR tree-optimization/67859
10536         * tree-ssa-pre.c (create_expression_by_pieces): Properly
10537         discard not inserted stmts.
10538
10539 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
10540
10541         * doc/extend.texi (Template Instantiation): Reorder options and
10542         de-emphasize -frepo.
10543         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
10544         example instead of -frepo.
10545
10546 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10547
10548         PR c/65345
10549         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
10550         use create_tmp_var_raw rather than create_tmp_var.
10551
10552 2015-10-06  Richard Biener  <rguenther@suse.de>
10553
10554         * tree-vectorizer.h (vec_info): New base class for...
10555         (_loop_vec_info): ... this and ...
10556         (_bb_vec_info): ... this.
10557         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
10558         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
10559         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
10560         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
10561         vect_destroy_datarefs): Adjust interface to take a vec_info *
10562         rather than both a loop_vec_info and a bb_vec_info argument.
10563         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
10564         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
10565         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
10566         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
10567         accordingly.
10568         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
10569         (destroy_loop_vec_info, vect_analyze_loop_2,
10570         vect_is_simple_reduction_1, get_initial_def_for_induction,
10571         vect_create_epilog_for_reduction, vectorizable_reduction,
10572         vectorizable_live_operation, vect_transform_loop): Adjust.
10573         * tree-vect-patterns.c (type_conversion_p,
10574         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
10575         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
10576         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
10577         check_bool_pattern, vect_recog_bool_pattern,
10578         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
10579         * tree-vect-slp.c (vect_get_and_check_slp_defs,
10580         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
10581         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
10582         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
10583         (new_bb_vec_info): Initialize base classs.
10584         * tree-vect-stmts.c (record_stmt_cost, process_use,
10585         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
10586         vectorizable_mask_load_store, vectorizable_call,
10587         vectorizable_simd_clone_call, vectorizable_conversion,
10588         vectorizable_assignment, vectorizable_shift,
10589         vectorizable_operation, vectorizable_store,
10590         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
10591         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
10592         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
10593
10594 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10595
10596         PR c/65345
10597         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
10598         create_tmp_var_raw rather than create_tmp_var.
10599
10600 2015-10-05  Marek Polacek  <polacek@redhat.com>
10601
10602         * tree-ssa-loop-im.c
10603         (move_computations_dom_walker::before_dom_children): Don't set
10604         SSA_NAME_ANTI_RANGE_P.
10605         * tree-ssa-phiopt.c (value_replacement): Likewise.
10606
10607 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10608             Sebastian Pop  <s.pop@samsung.com>
10609
10610         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
10611
10612 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10613             Sebastian Pop  <s.pop@samsung.com>
10614
10615         * graphite-poly.c (new_gimple_poly_bb): ... here.
10616         (free_data_refs_aux): ... here.
10617         (free_gimple_poly_bb): ... here.
10618         (remove_gbbs_in_scop): ... here.
10619         (new_scop): Call new_sese.
10620         (free_scop): Call remove_gbbs_in_scop and free_sese.
10621         * graphite-poly.h (base_alias_pair): ... here.
10622         (new_gimple_poly_bb): Declare.
10623         (free_gimple_poly_bb): Declare.
10624         * graphite-scop-detection.c (parameter_index_in_region_1):
10625         (parameter_index_in_region): ... here.
10626         (scan_tree_for_params): ... here.
10627         (find_params_in_bb): ... here.
10628         (find_scop_parameters): ... here.
10629         (build_scops): Call find_scop_parameters.
10630         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
10631         (free_scops): Move...
10632         (single_pred_cond_non_loop_exit): Move...
10633         (sese_dom_walker::before_dom_children): Move...
10634         (sese_dom_walker::after_dom_children): Move...
10635         (build_poly_scop): Move...
10636         * graphite-sese-to-poly.h (base_alias_pair): Move...
10637         * graphite.c (free_scops): ... here.
10638
10639 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10640             Sebastian Pop  <s.pop@samsung.com>
10641
10642         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
10643         (trivially_empty_bb_p): Move...
10644         (same_close_phi_node): Move...
10645         (new_gimple_poly_bb): Move...
10646         (compare_bb_depths): Move...
10647         (graphite_sort_dominated_info): Move...
10648         (remove_duplicate_close_phi): Move...
10649         (make_close_phi_nodes_unique): Move...
10650         (canonicalize_loop_closed_ssa): Move...
10651         (canonicalize_loop_closed_ssa_form): Move...
10652         (loop_ivs_can_be_represented): Move...
10653         (single_pred_cond_non_loop_exit): Move...
10654         (graphite_can_represent_init): Move...
10655         (graphite_can_represent_scev): Move...
10656         (stmt_has_simple_data_refs_p): Move...
10657         (stmt_has_side_effects):  Move...
10658         (graphite_can_represent_stmt): Move...
10659         (scop_detection): ... here.
10660         (sese_dom_walker): ... and here.
10661         (build_scops): Call all moved functions.
10662         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
10663         (all_non_dominated_preds_marked_p): Move...
10664         (build_scop_bbs_1): Move...
10665         (build_scop_bbs): Move...
10666         (set_scop_parameter_dim): Move...
10667         (nb_pbbs_in_loops): Move...
10668         (build_poly_scop): Do not call all the moved functions.
10669
10670 2015-10-05  Martin Jambor  <mjambor@suse.cz>
10671             Jan Hubicka  <hubicka@ucw.cz>
10672
10673         * ipa-cp.c (ipcp_alignment_lattice): New type.
10674         (ipcp_param_lattices): Use the above to represent alignment.
10675         (ipcp_alignment_lattice::print): New function.
10676         (print_all_lattices): Use it to print alignment information.
10677         (ipcp_alignment_lattice::top_p): New function.
10678         (ipcp_alignment_lattice::bottom_p): Likewise.
10679         (ipcp_alignment_lattice::set_to_bottom): Likewise.
10680         (ipcp_alignment_lattice::meet_with_1): Likewise.
10681         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
10682         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
10683         (initialize_node_lattices): Likewise.
10684         (propagate_alignment_accross_jump_function): Work with the new class
10685         for alignment lattices.
10686         (propagate_constants_accross_call): Pass only the alignment lattice to
10687         propagate_alignment_accross_jump_function.
10688         (ipcp_store_alignment_results): Work with the new class for alignment
10689         lattices.
10690
10691 2015-10-05  Marek Polacek  <polacek@redhat.com>
10692
10693         PR tree-optimization/67821
10694         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
10695
10696 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
10697
10698         PR other/65021
10699         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
10700         function to...
10701         (mkoffload_cleanup): ... this.  Adjust all users.
10702         (maybe_unlink): Look at save_temps and verbose flags instead of
10703         debug flag.
10704         (main): Parse "-save-temps" flag.
10705         (generate_target_descr_file, generate_target_offloadend_file)
10706         (generate_host_descr_file, prepare_target_image): Pass it on.
10707         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
10708         (mkoffload_cleanup): New function.
10709         (maybe_unlink): Look at save_temps and verbose flags instead of
10710         debug flag.
10711         (main): Instead of calling utils_cleanup, register atexit handler
10712         for mkoffload_cleanup.
10713         (main): Parse "-save-temps" flag.
10714         (compile_native, main): Pass it on.
10715         * lto-wrapper.c (compile_offload_image): Likewise.
10716
10717 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10718
10719         * gimple.h (gimple_op_ptr): Require a non const gimple *.
10720         (gimple_assign_lhs_ptr): Likewise.
10721         (gimple_assign_rhs1_ptr): Likewise.
10722         (gimple_assign_rhs2_ptr): Likewise.
10723         (gimple_assign_rhs3_ptr): Likewise.
10724         (gimple_call_lhs_ptr): Likewise.
10725         (gimple_call_fn_ptr): Likewise.
10726         (gimple_call_chain_ptr): Likewise.
10727                 (gimple_call_arg_ptr): Likewise.
10728                 (gimple_cond_lhs_ptr): Likewise.
10729         (gimple_cond_rhs_ptr): Likewise.
10730         (gimple_switch_index_ptr): Likewise.
10731         (gimple_return_retval_ptr): Likewise.
10732
10733 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10734
10735         * gimple.h (gimple_asm_input_op_ptr): Remove.
10736         (gimple_asm_output_op_ptr): Likewise.
10737
10738 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10739
10740         * gimple.h (gimple_location_ptr): Remove.
10741         * tree-vrp.c (check_all_array_refs): Adjust.
10742
10743 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10744
10745         * tree-ssa-operands.c (build_uses): store tree * instead of
10746         tree.
10747         (finalize_ssa_uses): Adjust.
10748         (append_use): Likewise.
10749         (verify_ssa_operands): Likewise.
10750
10751 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10752
10753         * real.h (build_real_truncate): Declare.
10754         * tree.c (build_real_truncate): New function.
10755         (strip_float_extensions): Use it.
10756         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
10757         (fold_builtin_hypot, fold_builtin_pow): Likewise.
10758         * match.pd: Likewise.
10759
10760 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
10761            Jiong Wang  <jiong.wang@arm.com>
10762
10763         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
10764
10765 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10766
10767         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
10768         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
10769         (aarch64_print_operand, aarch64_float_const_representable_p)
10770         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
10771         instead of REAL_VALUE_FROM_CONST_DOUBLE.
10772         * config/arc/arc.c (arc_print_operand): Likewise.
10773         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
10774         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
10775         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
10776         Likewise.
10777         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
10778         (consttable_16): Likewise.
10779         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
10780         * config/avr/avr.c (avr_print_operand): Likewise.
10781         * config/bfin/bfin.md: Likewise (in a define_split).
10782         * config/c6x/c6x.md: Likewise (in a define_split).
10783         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
10784         (cr16_print_operand): Likewise.
10785         * config/cris/cris.c (cris_print_operand): Likewise.
10786         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
10787         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10788         (fr30_const_double_is_zero): Likewise.
10789         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
10790         * config/frv/frv.md: Likewise (in a define_split).
10791         * config/frv/predicates.md (int_2word_operand): Likewise.
10792         * config/h8300/h8300.c (h8300_print_operand): Likewise.
10793         * config/i386/i386.c (standard_80387_constant_p): Likewise.
10794         (ix86_print_operand, ix86_split_to_parts): Likewise.
10795         * config/i386/i386.md: Likewise (in a define_split).
10796         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
10797         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
10798         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
10799         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
10800         (print_operand): Likewise.
10801         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
10802         * config/mep/mep.md: Likewise (in define_split).
10803         * config/microblaze/microblaze.c (microblaze_const_double_ok)
10804         (print_operand): Likewise.
10805         * config/mips/mips.md (consttable_float): Likewise.
10806         * config/mmix/mmix.c (mmix_intval): Likewise.
10807         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10808         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
10809         * config/pa/pa.c (pa_singlemove_string): Likewise.
10810         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
10811         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
10812         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
10813         (output_toc): Likewise.
10814         * config/rs6000/rs6000.md: Likewise (in define_splits).
10815         * config/rx/rx.c (rx_print_operand): Likewise.
10816         * config/s390/s390.c (s390_output_pool_entry): Likewise.
10817         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10818         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
10819         (and also in define_splits).
10820         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
10821         (fp_high_losum_p): Likewise.
10822         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
10823         (*movsf_high): Likewise.
10824         * config/spu/spu.c (const_double_to_hwint): Likewise.
10825         * config/v850/v850.c (const_double_split): Likewise.
10826         * config/vax/vax.c (vax_float_literal): Likewise.
10827         * config/visium/visium.c (visium_expand_copysign): Likewise.
10828         * config/visium/visium.md: Likewise (in define_split).
10829         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10830         * config/xtensa/xtensa.c (print_operand): Likewise.
10831         (xtensa_output_literal): Likewise.
10832         * cprop.c (implicit_set_cond_p): Likewise.
10833         * dwarf2out.c (insert_float): Likewise.
10834         * expmed.c (expand_mult, make_tree): Likewise.
10835         * expr.c (compress_float_constant): Likewise.
10836         * rtlanal.c (split_double): Likewise.
10837         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10838         (simplify_const_unary_operation, simplify_binary_operation_1)
10839         (simplify_const_binary_operation): Likewise.
10840         (simplify_const_relational_operation): Likewise.
10841         * varasm.c (output_constant_pool_2): Likewise.
10842
10843 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10844
10845         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
10846         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10847         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
10848         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
10849         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10850         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
10851         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
10852         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
10853         (ix86_emit_swsqrtsf): Likewise.
10854         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
10855         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
10856         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
10857         * config/pa/pa.c (pa_expand_builtin): Likewise.
10858         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
10859         (rs6000_scale_v2df): Likewise.
10860         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
10861         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
10862         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
10863         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
10864         (vec_ctul): Likewise.
10865         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
10866         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
10867         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
10868         * cse.c (fold_rtx): Likewise.
10869         * emit-rtl.c (immed_double_const): Likewise (in comments).
10870         (init_emit_once): Likewise.
10871         * expr.c (compress_float_constant, expand_expr_real_1)
10872         (const_vector_from_tree): Likewise.
10873         * optabs.c (expand_float, expand_fix): Likewise.
10874         * reg-stack.c (reg_to_stack): Likewise.
10875         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10876         (simplify_const_unary_operation, simplify_binary_operation_1)
10877         (simplify_const_binary_operation, simplify_relational_operation)
10878         (simplify_immed_subreg): Likewise.
10879
10880 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10881
10882         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
10883         * doc/tm.texi: Regenerate.
10884         * real.h (REAL_ARITHMETIC): Delete.
10885         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
10886         (ix86_expand_round_sse4): Use real_arithmetic instead of
10887         REAL_ARITHMETIC.
10888         * config/i386/sse.md (round<mode>2): Likewise.
10889         * rtl.h (rtx_to_tree_code): Likewise (in comment).
10890         * explow.c (rtx_to_tree_code): Likewise (in comment).
10891         * match.pd: Likewise.
10892         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10893         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10894         (expand_pow_as_sqrts): Likewise.
10895         * tree-pretty-print.c (dump_generic_node): Remove code that
10896         was conditional on REAL_ARITHMETIC being undefined.
10897
10898 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10899
10900         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
10901         * doc/tm.texi: Regenerate.
10902         * real.h (real_less): Declare.
10903         (REAL_VALUES_LESS): Delete.
10904         * real.c (real_less): New function.
10905         (real_compare): Use it.
10906         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
10907         of REAL_VALUES_LESS.
10908         * config/microblaze/microblaze.c (microblaze_const_double_ok):
10909         Likewise.
10910         * fold-const.c (fold_convert_const_int_from_real): Likewise.
10911         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10912         (simplify_const_relational_operation): Likewise.
10913         * tree-call-cdce.c (check_pow): Likewise.
10914         (gen_conditions_for_pow_cst_base): Likewise.
10915
10916 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10917
10918         * real.h (REAL_VALUES_IDENTICAL): Delete.
10919         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
10920         instead of REAL_VALUES_IDENTICAL.
10921         * fold-const.c (operand_equal_p): Likewise.
10922         * ipa-icf.c (sem_variable::equals): Likewise.
10923         * tree-complex.c (some_nonzerop): Likewise.
10924         (expand_complex_multiplication): Likewise.
10925         * tree.c (simple_cst_equal): Likewise.
10926         * varasm.c (compare_constant): Likewise.
10927
10928 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10929
10930         * real.h (real_equal): Declare.
10931         (REAL_VALUES_EQUAL): Delete.
10932         * real.c (real_equal): New function.
10933         (real_compare): Use it.
10934         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
10935         * doc/tm.texi: Regenerate.
10936         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
10937         real_equal instead of REAL_VALUES_EQUAL.
10938         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
10939         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
10940         (fp_const_from_val): Likewise.
10941         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
10942         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
10943         (floating_exact_log2): Likewise.
10944         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10945         * config/vax/vax.c (vax_float_literal): Likewise.
10946         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10947         * cprop.c (implicit_set_cond_p): Likewise.
10948         * expmed.c (expand_mult): Likewise.
10949         * fold-const.c (const_binop): Likewise.
10950         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10951         (simplify_const_binary_operation): Likewise.
10952         (simplify_const_relational_operation): Likewise.
10953         * tree-call-cdce.c (check_pow): Likewise.
10954         (gen_conditions_for_pow_cst_base): Likewise.
10955         * tree-inline.c (estimate_num_insns): Likewise.
10956         * tree-ssa-dom.c (record_equality): Likewise.
10957         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10958         (gimple_expand_builtin_pow): Likewise.
10959         (pass_optimize_widening_mul::execute): Likewise.
10960         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
10961         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10962         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
10963
10964 2015-10-05  Richard Biener  <rguenther@suse.de>
10965
10966         PR ipa/67783
10967         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
10968         consider loop header PHI defs as IVs.
10969
10970 2015-10-05  Richard Biener  <rguenther@suse.de>
10971
10972         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
10973         call handling ...
10974         (create_expression_by_pieces): ... here and build GIMPLE
10975         calls directly.  Use gimple_build API and avoid force_gimple_operand.
10976         (insert_into_preds_of_block): Simplify.
10977         (do_regular_insertion): Add comment.
10978
10979 2015-10-04  Jason Merrill  <jason@redhat.com>
10980
10981         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
10982
10983 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
10984
10985         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
10986         check for general register.
10987         (ix86_emit_save_regs): Ditto.
10988         (ix86_emit_save_regs_using_mov): Ditto.
10989         (ix86_emit_restore_regs_using_pop): Ditto.
10990         (ix86_emit_restore_regs_using_mov): Ditto.
10991
10992 2015-10-03  Marek Polacek  <polacek@redhat.com>
10993
10994         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
10995         (insn-dfatab.o): Likewise.
10996
10997 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
10998
10999         * config.gcc (xtensa*-*-uclinux*): New configuration.
11000         * config/xtensa/uclinux.h: New file.
11001         * config/xtensa/uclinux.opt: New file.
11002
11003 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
11004
11005         * doc/cpp.texi (Standard Predefined Macros): Document value of
11006         __cplusplus for C++14.
11007
11008 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
11009
11010         * gcc.c (process_command): Use spec_machine rather than
11011         spec_host_machine to build tooldir_prefix2.
11012
11013 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
11014             Bernd Schmidt  <bernds@codesourcery.com>
11015
11016         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
11017         (Token, Stmt): Remove structs.
11018         (decls, vars, fns): Remove variables.
11019         (alloc_comment, append_stmt, is_keyword): Remove macros.
11020         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
11021         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
11022         (parse_init, parse_file): Remove functions.
11023         (read_file): Accept a pointer to a length and store into it.
11024         (process): Don't try to parse the input file, just write it out as
11025         a string, but looking for maps.  Also write out the length.
11026         (main): Don't use "-S" to compile PTX code.
11027
11028 2015-10-02  Jeff Law  <law@redhat.com>
11029
11030         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
11031         fixups.
11032
11033 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
11034
11035         PR target/67822
11036         * config/nvptx/mkoffload.c (main): Scan the argument vector for
11037         -fopenmp, and skip generating an offloading image if specified.
11038
11039 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
11040
11041         * system.h (ROUND_UP): New macro definition.
11042         (ROUND_DOWN): Ditto.
11043         * ggc-page.c (ROUND_UP): Remove local macro definition.
11044         (PAGE_ALIGN): Implement using ROUND_UP macro.
11045
11046         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
11047         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
11048         to align values.
11049         (ix86_compute_frame_layout): Ditto.
11050         (ix86_expand_prologue): Ditto.
11051         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
11052         to round down values.
11053         (expand_set_or_movmem_via_rep): Ditto.
11054
11055 2015-10-02  Marek Polacek  <polacek@redhat.com>
11056
11057         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
11058
11059 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
11060
11061         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
11062         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
11063         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
11064         (free_gimple_bb): Renamed free_gimple_poly_bb.
11065         (try_generate_gimple_bb): Hoist loop invariant code.
11066         (analyze_drs_in_stmts): Same.
11067         (build_scop_drs): Call renamed functions.
11068         (new_pbb_from_pbb): Same.
11069         (scop_ivs_can_be_represented): Delete as functionality now moved to
11070         graphite-scop-detection.c
11071         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
11072
11073 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
11074
11075         * graphite-scop-detection.c (stmt_has_side_effects): New function
11076           outlined from stmt_simple_for_scop_p.
11077         (graphite_can_represent_stmt): Same.
11078         (stmt_simple_for_scop_p): Moved code out of this function for better
11079         readability.
11080
11081 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11082
11083         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
11084         F_AVX512IFMA.
11085         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
11086
11087 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11088
11089         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
11090
11091 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
11092
11093         PR rtl-optimization/67756
11094         * lra-constraints.c (match_reload): Add a new parameter.  Use it
11095         for creating a pseudo with the same value.
11096         (curr_insn_transform): Pass a new argument to match_reload.
11097
11098 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11099
11100         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
11101         (expand_vec_perm_even_odd_1): Handle V64QImode.
11102         (ix86_expand_vec_perm_const_1): Try expansion with
11103         expand_vec_perm_even_odd_trunc as well.
11104         * config/i386/sse.md (VI124_AVX512F): Rename to ...
11105         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
11106         to V54QI.
11107         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
11108         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
11109         to V32HI and V16SI.
11110         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
11111         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
11112         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
11113         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
11114         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
11115         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
11116
11117 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11118
11119         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
11120         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
11121
11122 2015-10-02  Jason Merrill  <jason@redhat.com>
11123
11124         PR c/59218
11125         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
11126         (diagnose_tm_1_op): Also diagnose volatile accesses in
11127         transaction_safe function.
11128
11129 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
11130
11131         * system.h (malloc.h): Don't include obsolete header.
11132
11133 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11134
11135         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
11136         (TLS_SECTION_ASM_FLAG): Delete.
11137
11138 2015-10-02  Marek Polacek  <polacek@redhat.com>
11139
11140         PR c/64249
11141         * doc/invoke.texi: Document -Wduplicated-cond.
11142         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
11143         (insn-dfatab.o): Likewise.
11144         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
11145         warning.
11146
11147 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
11148
11149         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
11150         sequences.
11151
11152 2015-10-02  Renlin Li  <renlin.li@arm.com>
11153
11154         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
11155
11156 2015-10-02  Renlin Li  <renlin.li@arm.com>
11157
11158         PR target/66776
11159         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
11160
11161 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11162
11163         PR rtl-optimization/67786
11164         PR rtl-optimization/67787
11165         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
11166         it modifies a reg used in the condition calculation.
11167
11168 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
11169
11170         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
11171         alternatives for reads from memory and moves from general-purpose
11172         registers.
11173         (*aarch64_combinez_be<mode>): Likewise.
11174
11175 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
11176
11177         PR target/51726
11178         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
11179         selectany within this function without need to keep attribute.
11180         (i386_pe_encode_section_info): Remove selectany-code.
11181
11182 2015-10-02  Richard Biener  <rguenther@suse.de>
11183
11184         * tree-ssa-sccvn.c (has_VN_INFO): New function.
11185         (free_scc_vn): Use it.
11186         (visit_use): Remove dead code and refactor to use gassign
11187         and use less indentation.
11188
11189 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11190
11191         PR target/67788
11192         PR target/67789
11193         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
11194         (rs6000_cannot_copy_insn_p): New function.
11195         * config/rs6000/rs6000.md (cannot_copy): New attribute.
11196         (load_toc_v4_PIC_1_normal): Set cannot_copy.
11197         (load_toc_v4_PIC_1_476): Ditto.
11198
11199 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11200
11201         * graphite-scop-detection.c (struct sese_l): New conversion constructor
11202         so that this type can be pushed into a vec.
11203         (class scop_builder): use sese_l to collect scops.
11204         (get_scops): New getter function.
11205         (remove_intersecting_scops): Use sese_l instead of scops_p.
11206         (intersects): Same.
11207         (add_scop): Same.
11208         (subsumes): Same.
11209         (remove_subscops): Same.
11210         (build_scops): Add scops to vec<scops_p> once all the scops have been
11211         detected.
11212
11213 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11214
11215         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11216         Renamed type from gimple_bb_p to gimple_poly_bb_p.
11217         (translate_isl_ast_node_user): Same.
11218         * graphite-poly.c (new_poly_bb): Same.
11219         * graphite-poly.h (gbb_from_bb): Same.
11220         * sese.h: Same.
11221         * graphite-sese-to-poly.c (new_gimple_bb):
11222         gimple_bb_p -> gimple_poly_bb_p
11223         (build_scop_scattering): Same.
11224         (find_params_in_bb): Same.
11225         (add_conditions_to_domain): Same.
11226         (sese_dom_walker::before_dom_children): Same.
11227         (analyze_drs_in_stmts): Same.
11228         (new_pbb_from_pbb): Same.
11229         (free_data_refs_aux): New pointer to type base_alias_pair.
11230         * graphite-sese-to-poly.h: Same.
11231         * sese.c (if_region_set_false_region): Fixed Indentation.
11232         (move_sese_in_condition): Same.
11233
11234 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11235             Aditya Kumar  <aditya.k7@samsung.com>
11236
11237         PR tree-optimization/66980
11238         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
11239         when data reference analysis has failed.
11240
11241 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11242             Aditya Kumar  <aditya.k7@samsung.com>
11243
11244         PR tree-optimization/67754
11245         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
11246         scev analysis on the same loop nest as analyze_drs_in_stmts.
11247         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
11248         renamed...
11249         (try_generate_gimple_bb): Call outermost_loop_in_sese.
11250         (analyze_drs_in_stmts): Same.
11251         * sese.c (outermost_loop_in_sese): ...here.
11252
11253 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11254             Aditya Kumar  <aditya.k7@samsung.com>
11255
11256         PR tree-optimization/67754
11257         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
11258         recursion on the inner loops.
11259
11260 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11261
11262         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
11263         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
11264         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
11265         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
11266         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
11267
11268 2015-10-01  Marek Polacek  <polacek@redhat.com>
11269
11270         PR c/65345
11271         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
11272         create_tmp_var_raw rather than create_tmp_var.
11273
11274 2015-10-01  Marek Polacek  <polacek@redhat.com>
11275
11276         PR tree-optimization/67769
11277         * tree-ssa-phiopt.c (conditional_replacement): Call
11278         reset_flow_sensitive_info_in_bb.
11279         (minmax_replacement): Likewise.
11280         (abs_replacement): Likewise.
11281
11282 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
11283
11284         * builtins.c: Don't include gomp-constants.h.
11285         (fold_builtin_1): Don't fold acc_on_device here.
11286         * gimple-fold.c: Include gomp-constants.h.
11287         (gimple_fold_builtin_acc_on_device): New.
11288         (gimple_fold_builtin): Call it.
11289
11290 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
11291
11292         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
11293         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
11294
11295 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
11296
11297         * config/arm/aarch-common-protos.h
11298         (aarch_accumulator_forwarding): New.
11299         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11300         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
11301         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11302         * config/arm/cortex-a53.md: Rewrite.
11303
11304 2015-10-01  Richard Biener  <rguenther@suse.de>
11305
11306         * gimple-match.h (mprts_hook): Declare.
11307         * gimple-match.head.c (mprts_hook): Define.
11308         (maybe_push_res_to_seq): Use new hook.
11309         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11310         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
11311         (vn_ssa_aux::has_constants): Remove.
11312         * tree-ssa-sccvn.c: Include gimple-match.h.
11313         (VN_INFO_GET): Assert we don't re-use SSA names.
11314         (vn_get_expr_for): Remove.
11315         (expr_has_constants): Likewise.
11316         (stmt_has_constants): Likewise.
11317         (simplify_binary_expression): Likewise.
11318         (simplify_unary_expression): Likewise.
11319         (vn_lookup_simplify_result): New hook.
11320         (visit_copy): Adjust.
11321         (visit_reference_op_call): Likewise.
11322         (visit_phi): Likewise.
11323         (visit_use): Likewise.
11324         (process_scc): Likewise.
11325         (init_scc_vn): Likewise.
11326         (visit_reference_op_load): Likewise.  Use match-and-simplify and
11327         a gimple seq for inserted expressions.
11328         (try_to_simplify): Remove GENERIC stmt combining code.
11329         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
11330         * tree-ssa-pre.c (eliminate_insert): Adjust.
11331         (eliminate_dom_walker::before_dom_children): Likewise.
11332
11333 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11334
11335         * doc/invoke.texi (Optimization Options): Add
11336         -freorder-blocks-algorithm=.
11337         (Optimize Options) <-O>: Add -freorder-blocks.
11338         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
11339         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
11340         <-freorder-blocks>: Also enabled at levels -O and -Os.
11341         <-freorder-blocks-algorithm=>: Document new option.
11342
11343 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11344
11345         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
11346         with flag_reorder_blocks_algorithm.
11347         * common.opt (freorder-blocks-algorithm=): New flag.
11348         (reorder_blocks_algorithm): New enum.
11349         * flag-types.h (reorder_blocks_algorithm): New enum.
11350         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
11351         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
11352
11353 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11354
11355         * bb-reorder.c: Add intro comment.
11356         (reorder_basic_blocks_software_trace_cache): Print a header to
11357         the dump file.
11358         (edge_order): New function.
11359         (reorder_basic_blocks_simple): New function.
11360         (reorder_basic_blocks): Choose between the STC and the simple
11361         algorithms (always choose the former).
11362
11363 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11364
11365         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
11366         function, factored out from ...
11367         (reorder_basic_blocks): ... here.
11368
11369 2015-10-01  Tom de Vries  <tom@codesourcery.com>
11370
11371         * tree-cfg.c (dump_function_to_file): Dump function attributes using
11372         __attribute__(()) string.  Move dumping of function attributes to before
11373         function name.
11374
11375 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
11376
11377         PR target/66870
11378         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
11379         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
11380         based on gold linker version.
11381         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
11382         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
11383         * configure, config.in: Regenerate.
11384
11385 2015-10-01  Alan Modra  <amodra@gmail.com>
11386
11387         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
11388         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
11389         (rs6000_output_mi_thunk): Likewise.
11390
11391 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11392
11393         * config/nvptx/mkoffload.c (process): Change offload data format.
11394
11395 2015-09-30  Jeff Law  <law@redhat.com>
11396
11397         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
11398         with constant conditions.
11399         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
11400         (remove_ctrl_stmt_and_useless_edges): No longer static.
11401         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
11402         (remove_ctrl_stmt_and_useless_edges): Likewise.
11403
11404 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11405             Cesar Philippidis  <cesar@codesourcery.com>
11406
11407         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
11408         (TARGET_GOACC_VALIDATE_DIMS): Override.
11409         * target.def (TARGET_GOACC): New target hook prefix.
11410         (validate_dims): New hook.
11411         * targhooks.h (default_goacc_validate_dims): New.
11412         * omp-low.c (oacc_validate_dims): New.
11413         (execute_oacc_device_lower): New.
11414         (default_goacc_validate_dims): New.
11415         (pass_data_oacc_device_lower): New.
11416         (pass_oacc_device_lower): New pass.
11417         (make_pass_oacc_device_lower): New.
11418         * tree-pass.h (make_pass_oacc_device_lower): Declare.
11419         * passes.def (pass_oacc_device_lower): Add it.
11420         * doc/tm.texi: Rebuilt.
11421         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
11422         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
11423
11424 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11425
11426         PR rtl-optimization/67037
11427         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
11428
11429 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
11430
11431         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
11432         * passes.c: Include tree-ssanames.h.
11433         (execute_function_todo): Flush the pending free SSA_NAMEs after
11434         eliminating unreachable basic blocks.
11435         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
11436         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
11437         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
11438         (flush_ssanames_freelist): New function.
11439         (release_ssaname_fn): Put released names on the queue.
11440         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
11441         * tree-ssanames.h (flush_ssanames_freelist): Declare.
11442
11443 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11444
11445         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
11446         (generate_target_descr_file, generate_target_offloadend_file)
11447         (generate_host_descr_file, prepare_target_image): Pass it on.
11448         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
11449         (compile_native, main): Pass it on.
11450         * lto-wrapper.c (compile_offload_image): Likewise.
11451
11452 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11453             Ilya Verbin  <ilya.verbin@intel.com>
11454             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11455
11456         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
11457         (prepare_target_image, main): Refactor argv building to use
11458         obstacks.
11459
11460 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11461
11462         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
11463         * config/spu/spu.c (spu_expand_atomic_op): New function.
11464         * config/spu/spu.md (AINT): New mode iterator.
11465         (ATOMIC): New code iterator.
11466         (atomic_name, atomic_pred): New code predicates.
11467         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
11468         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
11469         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
11470         "atomic_<atomic_name>_fetch<mode>"): Likewise.
11471
11472 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
11473
11474         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
11475         debug insns.
11476         (scalar_chain::convert_reg): Likewise.
11477
11478 2015-09-30  Richard Biener  <rguenther@suse.de>
11479
11480         * builtins.c: Add comment that no new simplifications should
11481         be added here.
11482
11483 2015-09-30  Marek Polacek  <polacek@redhat.com>
11484
11485         PR tree-optimization/67690
11486         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
11487         reset_flow_sensitive_info_in_bb.
11488         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
11489         * tree-ssanames.c: Include "gimple-iterator.h".
11490         (reset_flow_sensitive_info_in_bb): New function.
11491         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
11492
11493 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11494
11495         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
11496         variable, replacing it with...
11497         (offload_abi): ... this new variable.  Adjust all users.
11498         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
11499
11500 2015-09-30  Matthias Klose  <doko@ubuntu.com>
11501
11502         * configure.ac: Remove extraneous ;;.
11503         * configure: Regenerate.
11504
11505 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
11506
11507         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
11508         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
11509         predicate, disallow register for operand 2.
11510
11511 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
11512
11513         * graphite-dependences.c (scop_get_dependences): Moved in down
11514         in order to be visible to its caller.
11515         * graphite-poly.h: Removed compute_deps, and extend_schedule.
11516
11517 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11518             Aditya Kumar  <aditya.k7@samsung.com>
11519
11520         PR tree-optimization/67754
11521         * graphite-optimize-isl.c (optimize_isl): Call
11522         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
11523
11524 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11525
11526         * builtins.c (expand_builtin_acc_on_device): Delete.
11527         (expand_builtin): Don't call it.
11528         (fold_builtin_1): Fold acc_on_device.
11529
11530 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
11531
11532         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
11533         (ix86_nsaved_sseregs): Likewise.
11534
11535 2015-09-29  Jeff Law  <law@redhat.com>
11536
11537         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
11538         computation of unused value.
11539
11540         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
11541         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
11542         inline macro expansion.
11543
11544         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
11545
11546         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
11547         (gen_shl_sext): Likewise.
11548         * config/sh/sh.md (divsi3): Likewise.
11549         (imm->ext_dest_operand splitter): Likewise.
11550
11551 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11552             Aditya Kumar  <aditya.k7@samsung.com>
11553
11554         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
11555         (nb_data_writes_in_bb): Remove.
11556         (split_pbb): Remove.
11557         (split_reduction_stmt): Remove.
11558         (is_reduction_operation_p): Remove.
11559         (phi_contains_arg): Remove.
11560         (follow_ssa_with_commutative_ops): Remove.
11561         (detect_commutative_reduction_arg): Remove.
11562         (detect_commutative_reduction_assign): Remove.
11563         (follow_inital_value_to_phi): Remove.
11564         (edge_initial_value_for_loop_phi): Remove.
11565         (initial_value_for_loop_phi): Remove.
11566         (used_outside_reduction): Remove.
11567         (detect_commutative_reduction): Remove.
11568         (translate_scalar_reduction_to_array_for_stmt): Remove.
11569         (remove_phi): Remove.
11570         (dr_indices_valid_in_loop): Remove.
11571         (close_phi_written_to_memory): Remove.
11572         (translate_scalar_reduction_to_array): Remove.
11573         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
11574         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
11575         (rewrite_commutative_reductions_out_of_ssa): Remove.
11576         (build_poly_scop): Remove call to
11577         rewrite_commutative_reductions_out_of_ssa.
11578
11579 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
11580
11581         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
11582         Add new insn types for vector load and store pairs.
11583         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
11584         types "neon_ldp{,_q}".
11585         * config/arm/cortex-a57.md (neon_load_c): Add insn types
11586         "neon_ldp{,_q}".
11587         (neon_store_complex): Add insn types "neon_stp{,_q}".
11588         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
11589         "neon_{ldp,stp}_q".
11590
11591 2015-09-29  Jeff Law  <law@redhat.com>
11592
11593         * config/rx/constraints.md (Int08): Fix undefined left shift
11594         behaviour.
11595         (Sint08, Sint16, Sint24): Likewise.
11596         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11597
11598         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
11599         behaviour.
11600
11601         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
11602         left shift behaviour.
11603         * config/msp430/constraints.md ('L' constraint): Similarly.
11604         ('Ys' constraint): Similarly.
11605
11606 2015-09-29  Richard Biener  <rguenther@suse.de>
11607
11608         PR tree-optimization/67170
11609         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
11610         the translate function pointer parameter to get the
11611         bool whether to disambiguate only by reference.
11612         (walk_non_aliased_vuses): Likewise.
11613         * tree-ssa-alias.c (maybe_skip_until): Adjust.
11614         (get_continuation_for_phi_1): Likewise.
11615         (get_continuation_for_phi): Likewise.
11616         (walk_non_aliased_vuses): Likewise.
11617         * tree-ssa-sccvn.c (const_parms): New bitmap.
11618         (vn_reference_lookup_3): Adjust for interface change.
11619         Disambiguate parameters pointing to readonly memory.
11620         (free_scc_vn): Free const_parms.
11621         (run_scc_vn): Initialize const_parms from a fn spec attribute.
11622
11623 2015-09-29  Richard Biener  <rguenther@suse.de>
11624
11625         PR tree-optimization/67741
11626         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
11627         builtin calls with correct signature.
11628
11629 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
11630
11631         PR target/65105
11632         * config/i386/i386.c: Include dbgcnt.h.
11633         (has_non_address_hard_reg): New.
11634         (convertible_comparison_p): New.
11635         (scalar_to_vector_candidate_p): New.
11636         (remove_non_convertible_regs): New.
11637         (scalar_chain): New.
11638         (scalar_chain::scalar_chain): New.
11639         (scalar_chain::~scalar_chain): New.
11640         (scalar_chain::add_to_queue): New.
11641         (scalar_chain::mark_dual_mode_def): New.
11642         (scalar_chain::analyze_register_chain): New.
11643         (scalar_chain::add_insn): New.
11644         (scalar_chain::build): New.
11645         (scalar_chain::compute_convert_gain): New.
11646         (scalar_chain::replace_with_subreg): New.
11647         (scalar_chain::replace_with_subreg_in_insn): New.
11648         (scalar_chain::emit_conversion_insns): New.
11649         (scalar_chain::make_vector_copies): New.
11650         (scalar_chain::convert_reg): New.
11651         (scalar_chain::convert_op): New.
11652         (scalar_chain::convert_insn): New.
11653         (scalar_chain::convert): New.
11654         (convert_scalars_to_vector): New.
11655         (pass_data_stv): New.
11656         (pass_stv): New.
11657         (make_pass_stv): New.
11658         (ix86_option_override): Created and register stv pass.
11659         (flag_opts): Add -mstv.
11660         (ix86_option_override_internal): Likewise.
11661         * config/i386/i386.md (SWIM1248x): New.
11662         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
11663         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
11664         (*anddi3_doubleword): New.
11665         (*zext<mode>_doubleword): New.
11666         (*zextsi_doubleword): New.
11667         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
11668         (*<code>di3_doubleword): New.
11669         * config/i386/i386.opt (mstv): New.
11670         * dbgcnt.def (stv_conversion): New.
11671
11672 2015-09-29  Tom de Vries  <tom@codesourcery.com>
11673
11674         * tree-cfg.c (dump_function_to_file): Dump function attributes.
11675
11676 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11677
11678         PR target/67716
11679         * config/sh/sh.c (sh_override_options_after_change): New.
11680         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
11681         (sh_option_override): Move align_loops, align_jumps and
11682         align_functions handling into sh_override_options_after_change.
11683
11684 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
11685
11686         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
11687         (nvptx_record_offload_symbol): Record function execution geometry.
11688         * config/nvptx/mkoffload.c (process): Include launch geometry in
11689         function data.
11690         * omp-low.c (oacc_launch_pack): New.
11691         (replace_oacc_fn_attrib): New.
11692         (set_oacc_fn_attrib): New.
11693         (get_oacc_fn_attrib): New.
11694         (expand_omp_target): Create keyed varargs for GOACC_parallel call
11695         generation.
11696         * omp-low.h (get_oacc_fn_attrib): Declare.
11697         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
11698         (DEF_FUNCTION_TYPE_VAR_11): Delete.
11699         * tree.h (OMP_CLAUSE_EXPR): New.
11700         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
11701
11702 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11703             Sebastian Pop  <s.pop@samsung.com>
11704
11705         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
11706
11707 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11708             Sebastian Pop  <s.pop@samsung.com>
11709
11710         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
11711         * graphite-scop-detection.c (struct sese_l): New type.
11712         (get_entry_bb): API for getting entry bb of SESE.
11713         (get_exit_bb): API for getting exit bb of SESE.
11714         (class debug_printer): New type.  Simple printer in debug mode.
11715         (trivially_empty_bb_p): New.  Return true when BB is empty or
11716         contains only debug instructions.
11717         (graphite_can_represent_expr): Call scalar_evoution_in_region
11718         instead of analyze_scalar_evolution.  Pass in scop instead of only
11719         the scop entry.
11720         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
11721         scop entry.
11722         (stmt_simple_for_scop_p): Same.
11723         (harmful_stmt_in_bb): Same.
11724         (graphite_can_represent_loop): Deleted.
11725         (struct scopdet_info): Deleted.
11726         (scopdet_basic_block_info): Deleted.
11727         (build_scops_1): Deleted.
11728         (bb_in_sd_region): Deleted.
11729         (find_single_entry_edge): Deleted.
11730         (find_single_exit_edge): Deleted.
11731         (create_single_entry_edge): Deleted.
11732         (sd_region_without_exit): Deleted.
11733         (create_single_exit_edge): Deleted.
11734         (unmark_exit_edges): Deleted.
11735         (mark_exit_edges): Deleted.
11736         (create_sese_edges): Deleted.
11737         (build_graphite_scops): Deleted.
11738         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
11739         (build_scops): Use the new scop_builder to build scops.
11740         (dot_all_scops_1): Use the new pretty printer.  Print loop father
11741         as well.
11742         (loop_body_is_valid_scop): New.  Return true if loop body is a
11743         valid scop.
11744         (class scop_builder): New.  Builds SCoPs for polyhedral
11745         optimizations.
11746         (scop_builder): New constructor.
11747         (static sese_l invalid_sese): sese_l with invalid edges.
11748         (get_sese): Get an sese (from a loop) if possible, invalid_sese
11749         otherwise.
11750         (get_nearest_dom_with_single_entry): Get nearest dominator of a
11751         basic_block with single entry.  Return NULL if we get to the
11752         beginning of a function.
11753         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
11754         a basic_block with single exit.  Return NULL if we get to the
11755         beginning of a function.
11756         (print_sese): Pretty-print SESE.
11757         (merge_sese): Merge two SESEs if possible and return the new SESE.
11758         (build_scop_depth): Start building the SCoP within a loop nest.
11759         (build_scop_breadth): Start building the SCoP at a single loop
11760         depth.  Merge adjacent SESEs if valid.
11761         (can_represent_loop_1): Returns true if Graphite can represent
11762         loop inside SCoP.  Helper for can_represent_loop.
11763         (can_represent_loop): Returns true if Graphite can represent LOOP
11764         and all its nested loops in SCoP.
11765         (loop_is_valid_scop): Returns true if LOOP and all its nests
11766         constitute a valid SCoP.
11767         (region_has_one_loop): Returns true of a region has only one loop.
11768         (add_scop): Add SCoP to the list of valid scops.  Removes an
11769         already existing scop if it intersects with or subsumed by this one.
11770         (harmful_stmt_in_region): Returns true if SCoP has any statment
11771         which cannot be represented by Graphite.
11772         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
11773         (remove_subscops): Remove any SCoP from the list of already found
11774         SCoPs, if subsumed by S1.
11775         (intersects): Return true if region bounded by SCoPs S1 and S2
11776         intersect.
11777         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
11778         * graphite.c (print_graphite_scop_statistics):
11779         (print_graphite_statistics): Print SCoP info while debugging.
11780         (graphite_initialize): Early exit in case number of loops in a
11781         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
11782         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11783         (graphite_finalize):
11784         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
11785         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
11786         (recompute_all_dominators): Recalculate POST_DOMINATORS.
11787         * tree-cfg.c (print_loops): Print the function name while printing
11788         loops.
11789
11790 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11791             Sebastian Pop  <s.pop@samsung.com>
11792
11793         PR tree-optimization/67700
11794         * graphite-sese-to-poly.c (parameter_index_in_region): Call
11795         invariant_in_sese_p_rec.
11796         (extract_affine): Same.
11797         (rewrite_cross_bb_scalar_deps): Call update_ssa.
11798         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
11799         * sese.h (invariant_in_sese_p_rec): Declare.
11800
11801 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
11802
11803         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
11804
11805 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
11806
11807         Revert:
11808         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11809                     Jiong Wang  <jiong.wang@arm.com>
11810
11811         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11812         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11813         (REG_CLASS_NAMES): Likewise.
11814         (REG_CLASS_CONTENTS): Likewise.
11815         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11816         (aarch64_register_move_cost): Likewise.
11817         (aarch64_load_symref_appropriately): Invoke the new added pattern if
11818         possible.
11819         * config/aarch64/constraints.md (Uc0): New constraint.
11820
11821 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
11822
11823         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
11824
11825 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
11826
11827         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
11828         SECTION_EXCLUDE in XO mapping class.
11829
11830 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
11831
11832         PR target/54236
11833         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
11834         and handle ne and eq codes.
11835         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
11836         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
11837         CONST_INT_P.  Use reverse_condition.
11838         (sh_split_treg_set_expr): Likewise.
11839
11840 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
11841
11842         * config/arm/types.md (type): Add rotate_imm.
11843         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
11844         ROR immediate case.
11845         (*rorsi3_insn_uxtw): Likewise.
11846         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
11847         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
11848         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
11849
11850 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11851
11852         PR rtl-optimization/67481
11853         * ifcvt.c (contains_ccmode_rtx_p): New function.
11854         (insn_valid_noce_process_p): Use it.
11855
11856 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11857
11858         PR rtl-optimization/67456
11859         PR rtl-optimization/67464
11860         PR rtl-optimization/67465
11861         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
11862         move in the mode of x.  Handle combination of complex and simple
11863         block pairs as well as the case when one is empty.
11864
11865 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11866
11867         * doc/gimple.texi: Update references to gimple_statement_base.
11868         * gdbhooks.py: Likewise.
11869         * gimple.h: Likewise.
11870
11871 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11872
11873         * config/sparc/driver-sparc.c: map LEON to leon3
11874
11875 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11876
11877         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
11878           and make it inverse to change default
11879         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
11880           supervisor mode
11881         * doc/invoke.texi: Document change of default
11882
11883 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11884
11885         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
11886         true on %f0 for a target without FPU.
11887         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
11888         without FPU.
11889         (untyped_return): Do not load %f0 for a target without FPU.
11890
11891 2015-09-28  Andrew Pinski  <apinski@cavium.com>
11892
11893         * config/aarch64/aarch64.md (prefetch):
11894         Change the predicate of operand 0 to register_operand.
11895
11896 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
11897
11898         * config/i386/predicates.md (register_sse4nonimm_operand): New
11899         predicate.
11900         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
11901         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
11902         Use register_sse4nonimm_operand as operand 0 predicate.
11903         (*vec_extractv8hi_sse2): Remove insn pattern.
11904         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
11905         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
11906
11907 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
11908             Kaz Kojima  <kkojima@gcc.gnu.org>
11909
11910         PR target/67391
11911         * config/sh/sh-protos.h (sh_lra_p): Declare.
11912         * config/sh/sh.c (sh_lra_p): Make non-static.
11913         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
11914         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
11915         Expand into addsi3_scr if operands[2] if needed.
11916         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
11917         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
11918         (addsi3_scr, *addsi3): New insn_and_split patterns.
11919
11920 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
11921
11922         PR rtl-optimization/64164
11923         PR tree-optimization/67312
11924         PR middle-end/67340
11925         PR middle-end/67490
11926         PR bootstrap/67597
11927         * cfgexpand.c (parm_in_stack_slot_p): Remove.
11928         (ssa_default_def_partition): Remove.
11929         (get_rtl_for_parm_ssa_default_def): Remove.
11930         (set_rtl): Check that RTL assignments match expectations.
11931         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
11932         default def location for params and results.  Record SSA names
11933         or types in REG and MEM attrs, respectively.
11934         (set_parm_rtl): New.
11935         (expand_one_ssa_partition): Drop logic that assigned MEMs with
11936         unassigned addresses.
11937         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
11938         deferred stack alloc vars.
11939         (expand_used_vars): Skip partitions holding parm default defs.
11940         Move adjust_one_expanded_partition_var loop...
11941         (pass_expand::execute): ... here.  Drop redundant assert.
11942         Adjust comments before the final loop over all ssa names.
11943         Require assigned rtl of parms and results to match exactly.
11944         Reset its attributes to match them, not any other variables in
11945         the same partition.
11946         (expand_debug_expr): Use entry value for PARM's default defs
11947         only iff they have zero nondebug uses.
11948         * cfgexpand.h (parm_in_stack_slot_p): Remove.
11949         (get_rtl_for_parm_ssa_default_def): Remove.
11950         (set_parm_rtl): Declare.
11951         * doc/invoke.texi: Improve wording.
11952         * explow.c (promote_decl_mode): Fix promote_function_mode for
11953         result decls not by reference.
11954         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
11955         bypass TYPE_MODE to get the actual vector mode.
11956         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
11957         2015-08-19's changes as follows.  Drop include of
11958         basic-block.h and df.h.
11959         (rtl_for_parm): Remove.
11960         (maybe_reset_rtl_for_parm): Remove.
11961         (parm_in_unassigned_mem_p): Remove.
11962         (use_register_for_decl): Add logic for RESULT_DECLs matching
11963         assign_parms' behavior.
11964         (split_complex_args): Revert.
11965         (assign_parms_augmented_arg_list): Revert.  Add comment
11966         referencing the logic above.
11967         (assign_parm_adjust_stack_rtl): Revert.
11968         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
11969         of SET_DECL_RTL.  Set up a REG if the parm demands so.
11970         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
11971         calls into a single set_parm_rtl.  Set up a temporary RTL
11972         temporarily for expand_assignment.
11973         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
11974         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
11975         (assign_bounds): Revert.
11976         (assign_parms): Revert.  Use set_parm_rtl.
11977         (allocate_struct_function): Relayout result and parms of
11978         non-abstruct functions.
11979         (expand_function_start): Revert.  Use set_parm_rtl.  If the
11980         result is not a hard reg, create a pseudo from the promoted
11981         mode of the default def.  Promote static chain mode.
11982         * tree-outof-ssa.c (remove_ssa_form): Drop unused
11983         partition_has_default_def.  Set up
11984         partitions_for_parm_default_defs.
11985         (finish_out_of_ssa): Remove partition_has_default_def.
11986         Release partitions_for_parm_default_defs.
11987         * tree-outof-ssa.h (struct ssaexpand): Remove
11988         partition_has_default_def.  Add
11989         partitions_for_parm_default_defs.
11990         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
11991         stor-layout.h.
11992         (build_ssa_conflict_graph): Fix conflict-detection of default
11993         defs of even unused default defs of params and results.
11994         (for_all_parms): New.
11995         (create_default_def): New.
11996         (register_default_def): New.
11997         (coalesce_with_default): New.
11998         (create_outofssa_var_map): Create default defs for all parms
11999         and results, and register their partitions.  Add GIMPLE_RETURN
12000         operands as coalesce candidates with results.  Add default
12001         defs of each parm or result as coalesce candidates with its
12002         other defs.  Mark each result def, and each default def of
12003         parms, as used_in_copy.
12004         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
12005         with the ssa names, even anonymous ones.  Drop
12006         parm_in_stack_slot_p calls.  Require same signedness and
12007         alignment.
12008         (coalesce_ssa_name): Add coalesce candidates for all defs of
12009         each parm and result, even unused ones.
12010         (parm_default_def_partition_arg): New type.
12011         (set_parm_default_def_partition): New.
12012         (get_parm_default_def_partitions): New.
12013         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
12014         * tree-ssa-live.c (partition_view_init): Regard unused defs of
12015         parms and results as used.
12016         (verify_live_on_entry): Don't error out just because they're
12017         not live.
12018
12019 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
12020
12021         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
12022         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
12023         (output_fde): Don't output length for debug_frame on AIX.
12024         (output_call_frame_info): Don't output length for debug_frame on AIX.
12025         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
12026         HAVE_XCOFF_DWARF_EXTRAS.
12027         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
12028         HAVE_XCOFF_DWARF_EXTRAS.
12029         (output_compilation_unit_header): Don't output length on AIX.
12030         (output_pubnames): Don't output length on AIX.
12031         (output_aranges): Delete argument. Compute length locally. Don't
12032         output length on AIX.
12033         (output_line_info): Don't output length on AIX.
12034         (dwarf2out_finish): Don't compute aranges_length.
12035         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
12036         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
12037         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
12038         symbol decoration for AIX.
12039         (rs6000_xcoff_debug_unwind_info): New.
12040         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
12041         for SECTION_DEBUG.
12042         (rs6000_xcoff_declare_function_name): Emit different
12043         .function pseudo-op when DWARF2_DEBUG. Don't call
12044         xcoffout_declare_function for DWARF2_DEBUG.
12045         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
12046         Redefine.
12047         * config/rs6000/aix71.h: New.
12048         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
12049         locations support.
12050         * configure: Regenerate.
12051         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
12052         DWARF support.
12053
12054 2015-09-26  Jeff Law  <law@redhat.com>
12055
12056         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
12057         behaviour.
12058         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
12059         behaviour.
12060
12061         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
12062         behaviour
12063
12064         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
12065         undefined behaviour.
12066
12067         * config/cris/cris.md (asrandb): Fix left shift undefined
12068         behaviour.
12069         (asrandw): Likewise.
12070
12071 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
12072
12073         PR target/61578
12074         * lra-constarints.c (match_reload): Check presence of the input pseudo
12075         in the output operand.
12076
12077 2015-09-25  Tobias Burnus  <burnus@net-b.de>
12078
12079         * doc/invoke.texi (-fsanitize): Minor wording tweak.
12080
12081 2015-09-25  Tobias Burnus  <burnus@net-b.de>
12082
12083         * doc/invoke.texi (-fsanitize): Update URLs.
12084
12085 2015-09-25  Teresa Johnson  <tejohnson@google.com>
12086
12087         * opts.c (finish_options): Unset -freorder-blocks-and-partition
12088         if not using profile.
12089
12090 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12091
12092         PR pretty-print/67567
12093         * pretty-print.c (pp_string): Add gcc_checking_assert.
12094         * pretty-print.h (output_buffer_append_r): Likewise.
12095
12096 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
12097
12098         PR target/67675
12099         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
12100         addr2 individually.  Don't emit logical or insn if one is known to
12101         be aligned approriately.
12102         (sh_expand_cmpnstr): Likewise.
12103
12104 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
12105
12106         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
12107         __builtin_aarch64_fp[sc]r arguments into a register.
12108
12109 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
12110
12111         * config.gcc (x86_archs): Replace lakemount with lakemont.
12112         (with_cpu): Likewise.
12113         (with_arch): Likewise.
12114         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12115         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
12116         __tune_lakemount__ with __tune_lakemont__.
12117         * config/i386/i386.c (lakemount_cost): Renamed to ...
12118         (lakemont_cost): This.
12119         (m_LAKEMOUNT): Renamed to ...
12120         (m_LAKEMONT): This.
12121         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
12122         (processor_target_table): Replace "lakemount" with "lakemont".
12123         (processor_alias_table): Likewise.
12124         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
12125         PROCESSOR_LAKEMONT.
12126         (ix86_adjust_cost): Likewise.
12127         (ia32_multipass_dfa_lookahead): Likewise.
12128         * config/i386/i386.h (processor_type): Likewise.
12129         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
12130         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
12131         Lakemount with Lakemont.
12132
12133 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
12134
12135         * config.gcc (x86_archs): Replace iamcu with lakemount.
12136         (with_cpu): Likewise.
12137         (with_arch): Likewise.
12138         * doc/invoke.texi: Likewise.
12139         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12140         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
12141         __tune_iamcu__ with __tune_lakemount__.
12142         * config/i386/i386.c (iamcu_cost): Renamed to ...
12143         (lakemount_cost): This.
12144         (m_IAMCU): Renamed to ...
12145         (m_LAKEMOUNT): This.
12146         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
12147         (processor_target_table): Replace "iamcu" with "lakemount".
12148         (processor_alias_table): Likewise.
12149         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
12150         PROCESSOR_LAKEMOUNT.
12151         (ix86_adjust_cost): Likewise.
12152         (ia32_multipass_dfa_lookahead): Likewise.
12153         * config/i386/i386.h (processor_type): Likewise.
12154         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
12155
12156 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
12157
12158         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
12159         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
12160         Declare.
12161         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
12162         (pa_expand_compare_and_swap_loop): New.
12163         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
12164         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
12165         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
12166         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
12167         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
12168         Revise.
12169
12170 2015-09-24  Michael Collison  <michael.collison@linaro.org>
12171
12172         PR other/57195
12173         * read-md.c (read_name): Allow mode iterators inside angle
12174         brackets in rtl expressions.
12175
12176 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
12177
12178         PR target/61578
12179         * ira-color.c (update_allocno_cost): Add parameter.
12180         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
12181         parameter.
12182
12183 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12184
12185         PR driver/67640
12186         * opts-common.c (prune_options): Discard all -fdiagnostics-color
12187         but the last one, which is moved to the front to be processed
12188         first.
12189         * opts.c (enable_warning_as_error): Reject options that do not
12190         control warnings.
12191
12192 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12193
12194         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
12195
12196 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12197
12198         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
12199         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
12200         (aarch64_cannot_force_const_mem): Likewise.
12201         (aarch64_classify_address): Likewise.
12202         (aarch64_classify_symbolic_expression): Likewise.
12203         (aarch64_print_operand): Likewise.
12204         (aarch64_classify_symbol): Likewise.
12205         (aarch64_mov_operand_p): Likewise.
12206         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
12207         (aarch64_mov_operand): Likewise.
12208
12209 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
12210
12211         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
12212         for info->spe_gp_size.
12213
12214 2015-09-24  Richard Biener  <rguenther@suse.de>
12215
12216         PR lto/67699
12217         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
12218         abstract origins.
12219
12220 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
12221
12222         * tree-object-size.c (plus_stmt_object_size)
12223         (cond_expr_object_size): Change the formal parameters from gimple
12224         to gimple *.
12225         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
12226         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
12227         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
12228
12229 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12230
12231         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
12232         Check for ld -type pie on Solaris 11.x and 12.
12233         * configure: Regenerate.
12234         * config.in: Regenerate.
12235
12236         * gcc.c (LD_PIE_SPEC): Allow redefinition.
12237
12238         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
12239         (STARTFILE_SPEC): Use it.
12240         (ENDFILE_CRTEND_SPEC): Define.
12241         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
12242         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
12243         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
12244         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
12245         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
12246         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
12247         (ENDFILE_ARCH_SPEC): Define.
12248         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
12249
12250 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12251
12252         * configure.ac (gcc_cv_solaris_crts): New test.
12253         * configure. Regenerate.
12254         * config.in: Regenerate.
12255         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
12256         HAVE_SOLARIS_CRTS variant.
12257
12258 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12259
12260         * tree-inline.h (count_insns_seq): Delete prototype.
12261         (estimate_num_insns_seq): Define prototype.
12262         * tree-inline.c (count_insns_seq): Delete.
12263         (estimate_num_insns_seq): Remove static qualifier.
12264         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
12265         with estimate_num_insns_seq.
12266
12267 2015-09-24  Richard Biener  <rguenther@suse.de>
12268
12269         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
12270         members.
12271         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
12272         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
12273         offset.
12274         (ao_ref_init_from_vn_reference): Record clique and base in the
12275         built base.
12276         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
12277
12278 2015-09-24  Richard Biener  <rguenther@suse.de>
12279
12280         PR tree-optimization/48885
12281         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
12282         as not including any restrict tags from other pointers.
12283
12284 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12285
12286         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
12287         character when appending to offload_targets.
12288
12289         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
12290         offload targets by commas, not colons.
12291         * config.in: Regenerate.
12292         * configure: Likewise.
12293         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
12294         instead of setting up the default offload targets here...
12295         (process_command): ..., do it here.
12296         libgomp/
12297         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
12298         targets are separated by commas.
12299         * config.h.in: Regenerate.
12300
12301 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12302             Nathan Sidwell  <nathan@codesourcery.com>
12303
12304         * omp-low.h (omp_reduction_init_op): Declare.
12305         * omp-low.c (omp_reduction_init_op): New, broken out of ...
12306         (omp_reduction_init): ... here.  Call it.
12307         * tree-parloops.c (initialize_reductions): Use
12308         omp_reduction_init_op.
12309
12310 2015-09-23   Richard Biener  <rguenther@suse.de>
12311
12312         PR middle-end/67662
12313         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
12314         undefined overflow unless they will cancel out.
12315
12316 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12317
12318         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
12319         insn emit.
12320
12321 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12322
12323         PR c/49655
12324         * opts.h (write_langs): Declare.
12325         * opts-global.c (write_langs): Make it extern.
12326
12327 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
12328
12329         PR target/67391
12330         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
12331         overlapping regs when matching the pattern.
12332
12333 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
12334
12335         * config/aarch64/aarch64-simd.md
12336         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
12337         (aarch64_float_truncate_hi_v4sf_le): New.
12338         (aarch64_float_truncate_hi_v4sf_be): Likewise.
12339
12340 2015-09-23  Richard Biener  <rguenther@suse.de>
12341
12342         * tree-ssa-structalias.c (intra_create_variable_infos): Build
12343         representatives for all restrict qualified pointer destinations.
12344
12345 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12346
12347         * config/i386/i386.md (define_code_attr mshift): New.
12348         (define_mode_iterator SWI1248_AVX512BW): Rename ...
12349         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
12350         only.
12351         (define_insn "*k<logic><mode>"): Use new iterator name.
12352         (define_insn "*<mshift><mode>3"): New.
12353
12354 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
12355
12356         PR middle-end/67649
12357         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
12358         mark the block as accessible.
12359
12360 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
12361
12362         * function.c (thread_prologue_and_epilogue_insns): Delete
12363         orig_entry_edge argument to try_shrink_wrapping.
12364         * shrink-wrap.c (can_get_prologue): New function.
12365         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
12366         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
12367         can_get_prologue where needed.  Remove code that finds a single
12368         edge for the prologue.  Remove code that tests if any reg clobbered
12369         by the prologue is live on the prologue edge.  Remove code that finds
12370         the new prologue edge after duplicating blocks.  Make a new prologue
12371         block and edge.
12372         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
12373
12374 2015-09-22  Jeff Law  <law@redhat.com>
12375
12376         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
12377         behavior.
12378
12379 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
12380
12381         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
12382         -Wtemplates, -Wnamespaces): Document.
12383
12384 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12385
12386         PR tree-optimization/67671
12387         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
12388         pointer references as restrict.
12389
12390 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12391
12392         * config/nios2/nios2.c (nios2_legitimize_address): When handling
12393         'reg + reloc' cases, allow first operand to be non-REG, and use
12394         force_reg() to enforce address pattern.
12395
12396 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
12397
12398         PR target/67480
12399         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
12400         (define_mode_iterator VI12_AVX_AVX512F): New.
12401         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
12402         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
12403         (define_insn "*<code><mode>3"): ... Into new pattern using
12404         VI12_AVX_AVX512F iterators without masking.
12405
12406 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12407
12408         * config.gcc: Support "skylake-avx512".
12409         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12410         PROCESSOR_SKYLAKE_AVX512.
12411         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
12412         (processor_target_table): Add "skylake-avx512".
12413         (PTA_SKYLAKE_AVX512): Define.
12414         (ix86_option_override_internal): Add "skylake_avx512".
12415         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
12416         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
12417         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
12418         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
12419         * doc/invoke.texi (skylake-avx512): New.
12420
12421 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12422
12423         * config/i386/i386.md (define_insn "kunpckhi"): Fix
12424         operand in pattern.
12425         (define_insn "kunpcksi"): Ditto.
12426         (define_insn "kunpckdi"): Ditto.
12427
12428 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12429
12430         * config/i386/i386.md (define_split not/xor SWI1248x): Use
12431         iterator instead of fixed modes.
12432
12433 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12434
12435         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12436         Adjust declaration.
12437         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
12438         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
12439         out_result.  Update to support update-fetch operations.
12440         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
12441         Adjust for change to aarch64_gen_atomic_ldop.
12442         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
12443         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
12444         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
12445         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
12446         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
12447
12448 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12449
12450         * config/aarch64/aarch64-protos.h
12451         (aarch64_atomic_ldop_supported_p): Declare.
12452         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
12453         (enum aarch64_atomic_load_op_code): New.
12454         (aarch64_emit_atomic_load_op): New.
12455         (aarch64_gen_atomic_ldop): Update to support load-operate
12456         patterns.
12457         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
12458         to an expander.
12459         (aarch64_atomic_<atomic_optab><mode>): New.
12460         (aarch64_atomic_<atomic_optab><mode>_lse): New.
12461         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
12462         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
12463         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
12464
12465 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12466
12467         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
12468         (UNSPECV_ATOMIC_LDOP_OR): New.
12469         (UNSPECV_ATOMIC_LDOP_BIC): New.
12470         (UNSPECV_ATOMIC_LDOP_XOR): New.
12471         (UNSPECV_ATOMIC_LDOP_PLUS): New.
12472         (ATOMIC_LDOP): New.
12473         (atomic_ldop): New.
12474         (aarch64_atomic_load<atomic_ldop><mode>): New.
12475
12476 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12477
12478         * config/aarch64/aarch64.md
12479         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
12480         pattern.
12481
12482 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12483
12484         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12485         Declare.
12486         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
12487         (aarch64_gen_atomic_ldop): New.
12488         (aarch64_split_atomic_op): Fix whitespace and add a comment.
12489         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
12490         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
12491         (atomic_exchange<mode>): Replace with an expander.
12492         (aarch64_atomic_exchange<mode>): New.
12493         (aarch64_atomic_exchange<mode>_lse): New.
12494         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
12495         (aarch64_atomic_swp<mode>): New.
12496
12497 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12498
12499         * tree-inline.c (expand_call_inline): Use inform for extra note.
12500         Do not give a note with UNKNOWN_LOCATION.
12501         Replace input_location with gimple_location (stmt).
12502         Use true/false instead of TRUE/FALSE.
12503
12504 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12505
12506         PR tree-optimization/67666
12507         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
12508         with single field non-conservative.
12509
12510 2015-09-21  David S. Miller  <davem@davemloft.net>
12511
12512         PR/67622
12513         Revert:
12514         2015-09-11  David S. Miller  <davem@davemloft.net>
12515
12516         * config/sparc/constraints.md: Make "U" constraint a real register
12517         constraint.
12518         * config/sparc/sparc.c (TARGET_LRA_P): Define.
12519         (D_MODES, DF_MODES): Add missing cast.
12520         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
12521         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
12522         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
12523         cost to 8.
12524         * config/sparc/sparc.h (PROMOTE_MODE): Define.
12525         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
12526         provide these insn when flag_pic.
12527
12528         2015-09-17  David S. Miller  <davem@davemloft.net>
12529
12530         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
12531         Declare.
12532         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
12533         function.
12534         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12535         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12536         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12537         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12538         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12539         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12540         provide when flag_pic.
12541
12542 2015-09-21  Jeff Law  <law@redhat.com>
12543
12544         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
12545         behavior.
12546
12547 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12548
12549         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
12550
12551 2015-09-21  Richard Biener  <rguenther@suse.de>
12552
12553         * passes.c (rest_of_decl_compilation): Do not call
12554         dwarf2out_early_global_decl for aliases.
12555
12556 2015-09-21  Richard Biener  <rguenther@suse.de>
12557
12558         PR debug/67664
12559         * dwarf2out.c (add_location_or_const_value_attribute): Remove
12560         attribute parameter.  Early exit if either DW_AT_const_value
12561         or DW_AT_location are present already.
12562         (gen_variable_die): Adjust caller.
12563         (dwarf2out_late_global_decl): Likewise.
12564
12565 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12566
12567         PR target/67657
12568         * config/sh/sh.c (sh_remove_overlapping_post_inc,
12569         sh_peephole_emit_move_insn): Add new functions.
12570         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
12571         sh_peephole_emit_move_insn): Declere them.
12572         * config/sh/sh.md: Use them in various peephole2 patterns.
12573
12574 2015-09-21  Richard Biener  <rguenther@suse.de>
12575
12576         PR middle-end/67651
12577         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
12578         address with -fno-delete-null-pointer-checks.
12579
12580 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
12581
12582         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
12583         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
12584         (reduc_uplus_v16qi): Remove.
12585
12586         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
12587         (reduc_<VEC_reduc_name>_v2df): Remove.
12588         (reduc_<VEC_reduc_name>_v4sf): Remove.
12589         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
12590
12591         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
12592         gen_ function by removing * prefix.
12593         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
12594
12595 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12596
12597         PR middle-end/60832
12598         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12599         Print i_bound without converting it to a tree.
12600
12601 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
12602
12603         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
12604         operands[4] operands[5] swap with std::swap, removed tmp variable.
12605         (arm_evpc_neon_vzip): Replaced in0/in1 and
12606         out0/out1 swaps with std::swap, removed x variable.
12607         (arm_evpc_neon_vtrn): Replaced in0/int1 and
12608         out0/out1 swaos with std::swap, removed x variable.
12609         (arm_expand_vec_perm_const_1): Replaced
12610         d->op0/d->op1 swap with std::swap, removed x variable.
12611         (arm_evpc_neon_vuzp): Replaced in0/in1 and
12612         out0/out1 swaps with std::swap, removed x variable.
12613
12614 2015-09-21  Jonathan Yong  <10walls@gmail.com>
12615
12616         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
12617         sysroot/usr/lib/32api for additional win32 libraries,
12618         fixes failing Cygwin bootstrapping.
12619
12620 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12621
12622         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
12623
12624 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12625
12626         PR target/67126
12627         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
12628         (*mov_t_msb_neg): Rewrite negc pattern.
12629
12630 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12631
12632         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
12633         immediate generation code.
12634
12635 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12636
12637         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
12638         redundant immediate generation code.
12639
12640 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12641
12642         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
12643         (AARCH64_NUM_BITMASKS): Remove.
12644         (aarch64_bitmasks_cmp): Remove.
12645         (aarch64_build_bitmask_table): Remove.
12646
12647 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12648
12649         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
12650         slow immediate matching loops with a faster algorithm.
12651
12652 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12653
12654         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
12655         faster algorithm.
12656
12657 2015-09-20  Jeff Law  <law@redhat.com>
12658
12659         PR tree-optimization/47679
12660         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
12661         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
12662         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
12663         (thread_through_normal_block): Use record_temporary_equivalences.
12664
12665 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
12666
12667         * coretypes.h (gimple): Change typedef to be a forward declaration.
12668         * gimple.h (gimple_statement_base): rename to gimple.
12669         * (all functions and types using gimple): Adjust.
12670         * *.[ch]: Likewise.
12671
12672 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
12673             David Edelsohn  <dje.gcc@gmail.com>
12674
12675         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
12676         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12677         (EH_FRAME_THROUGH_COLLECT2): Define.
12678         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12679         (ASM_OUTPUT_DWARF_PCREL): Define.
12680         (ASM_OUTPUT_DWARF_DATAREL): Define.
12681
12682 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
12683
12684         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
12685         of TARGET_ELF32.
12686
12687 2015-09-18  Jeff Law  <law@redhat.com>
12688
12689         PR tree-optimization/47679
12690         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
12691         it here ...
12692         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
12693         object.  Update constructor.
12694         (pass_dominator::execute):  Corresponding chagnes to declaration
12695         and initialization of avail_exprs_stack.  Update constructor call
12696         for dom_opt_dom_walker object.
12697         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
12698         it down to children as needed.
12699         (record_equivalences_from_incoming_edge): Likewise.
12700         (eliminate_redundant_computations): Likewise.
12701         (record_equivalences_from_stmt): Likewise.
12702         (simplify_stmt_for_jump_threading): Likewise.
12703         (record_temporary_equivalences): Likewise.
12704         (optimize_stmt): Likewise.
12705         (dom_opt_dom_walker::thread_across_edge): Update access to
12706         avail_exprs_stack object and pass it to children as needed.
12707         (dom_opt_dom_walker::before_dom_children): Similarly.
12708         (dom_opt_dom_walker::after_dom_children): Similarly.
12709         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
12710         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
12711         Add avail_expr_stack argument.  Pass it to children as needed.
12712         (dummy_simplify): Likewise.
12713         (simplify_control_stmt_condition): Likewise.
12714         (thread_around_empty_blocks): Likewise.
12715         (thread_through_normal_block): Likewise.
12716         (thread_across_edge): Likewise.
12717         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12718         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
12719
12720         PR tree-optimization/47679
12721         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
12722         it here ...
12723         (dom_opt_dom_walker): New private member holding the const_and_copies
12724         object.  Update constructor.
12725         (pass_dominator::execute): Corresponding changes to declaration
12726         and initialization of const_and_copies.  Update constructor call
12727         for the dom_opt_dom_walker object.
12728         (record_temporary_equivalences): Accept const_and_copies argument
12729         pass it down to children as needed.
12730         (record_equality): Likewise.
12731         (record_equivalences_from_incoming_edge): Likewise.
12732         (cprop_into_successor_phis, optimize_stmt): Likewise.
12733         (eliminate_redundant_computations): Likewise.
12734         (dom_opt_dom_walker::thread_across_edge): Update access to
12735         const_and_copies object and pass it to children as needed.
12736         (dom_opt_dom_walker::before_dom_children): Similarly.
12737         (dom_opt_dom_walker::after_dom_children): Similarly.
12738
12739         PR tree-optimization/47679
12740         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
12741         it into the avail_exprs_stack class.
12742         (pass_dominator::execute): Corresponding changes to declaration
12743         and initialization of avail_exprs.  Pass avail_exprs to
12744         dump_dominator_optimization_stats.
12745         (record_cond): Extract avail_exprs from avail_exprs_stack.
12746         (lookup_avail_expr): Similarly.
12747         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
12748         position in file.
12749         (dump_dominator_optimization_stats): Make static and prototype.
12750         Add argument for the hash table to dump.
12751         (debug_dominator_optimization_stats): Remove.
12752         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
12753         prototype.
12754         (debug_dominator_optimization_stats): Similarly.
12755         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
12756         "void" in prototype for pop_to_marker method.  Add accessor method
12757         for the underlying avail_exprs table.
12758
12759         * tree-ssa-threadedge.c: Remove trailing whitespace.
12760
12761 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
12762
12763         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
12764         unsigned.
12765         (pa_ldil_cint_p): Likewise.
12766         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
12767         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
12768         Update callers.
12769         * config/pa/pa.md: Likewise.
12770
12771 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
12772
12773         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
12774         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
12775         (diagnostic_show_locus): Likewise.
12776         (diagnostic_print_caret_line): Likewise.
12777         * diagnostic-show-locus.c: New file.
12778
12779 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
12780
12781         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
12782         "back" parameter. Declare label in #if block.
12783
12784 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
12785
12786         PR middle-end/67619
12787         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
12788         the address to a register.
12789
12790 2015-09-18  Jeff Law  <law@redhat.com>
12791
12792         PR tree-optimization/47679
12793         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
12794         * tree-ssa-dom.c: Remove unnecessary header includes.
12795         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
12796         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
12797         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
12798         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
12799         (pass_phi_only_cprop::execute): Likewise.
12800         (make_pass_phi_only_cprop): Likewise.
12801         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
12802         uses of file scoped statics by passing the required objects
12803         as parameters wherever needed.
12804
12805 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
12806             David Edelsohn  <dje.gcc@gmail.com>
12807
12808         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
12809         EH_FRAME_THROUGH_COLLECT2.
12810         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
12811         DW_EH_PE_datarel.
12812         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
12813         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
12814         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
12815         * except.c (switch_to_exception_section): Use a read-only section
12816         even if EH_FRAME_SECTION_NAME is undefined.
12817         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
12818         * collect2.c (write_c_file_stat): Provide dbase on AIX.
12819         (scan_prog_file): Don't export __dso_handle nor
12820         __gcc_unwind_dbase.
12821         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12822         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12823         (ASM_OUTPUT_DWARF_PCREL): Define.
12824         (ASM_OUTPUT_DWARF_DATAREL): Define.
12825         (EH_FRAME_THROUGH_COLLECT2): Define.
12826         (EH_FRAME_IN_DATA_SECTION): Delete.
12827         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
12828         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
12829         Declare.
12830         (rs6000_asm_output_dwarf_datarel): Declare.
12831         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
12832         (rs6000_aix_asm_output_dwarf_datarel): New.
12833         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
12834         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
12835         (EH_FRAME_THROUGH_COLLECT2): Define.
12836         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
12837         (EH_FRAME_THROUGH_COLLECT2): Define.
12838         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12839         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
12840         (EH_FRAME_THROUGH_COLLECT2): New.
12841         (ASM_OUTPUT_DWARF_DATAREL): New.
12842         * doc/tm.texi: Regenerate.
12843
12844 2015-09-18  Richard Biener  <rguenther@suse.de>
12845
12846         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
12847         we're in early phase.
12848         (schedule_generic_params_dies_gen): Likewise.
12849         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
12850         work as possible, retaining unhandled cases.
12851         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
12852         clear out generic_type_instances at the end.
12853         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
12854         (dwarf2out_early_finish): ... here.  Do most of
12855         gen_remaining_tmpl_value_param_die_attribute here.
12856
12857 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
12858
12859         PR tree-optimization/67283
12860         * tree-sra.c (type_consists_of_records_p): Rename to...
12861         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
12862         (completely_scalarize_record): Rename to...
12863         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
12864         (scalarize_elem): New.
12865         (analyze_all_variable_accesses): Follow renamings.
12866
12867 2015-09-18  Richard Biener  <rguenther@suse.de>
12868
12869         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
12870         in early-dwarf.
12871
12872 2015-09-18  Richard Biener  <rguenther@suse.de>
12873
12874         PR tree-optimization/66142
12875         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
12876         treat MEM[&x] and x the same.
12877         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
12878         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
12879         when we simplified sth.
12880         (vn_reference_maybe_forwprop_address): Likewise.
12881         (valueize_refs_1): When we simplified through
12882         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
12883         set valueized_anything to true.
12884         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
12885         one ref kills the other instead of just a offset-based test.
12886         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
12887         for the operand_equal_p test to compare bases and also compare
12888         sizes.
12889
12890 2015-09-17  Christian Bruel  <christian.bruel@st.com>
12891
12892         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
12893
12894 2015-09-17  Richard Henderson  <rth@redhat.com>
12895
12896         PR libstdc++/65913
12897         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
12898         pointers that encode the alignment of the object.
12899
12900 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12901
12902         PR rtl-optimization/66790
12903         * df-problems.c (LIVE): Amend documentation.
12904
12905 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
12906
12907         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
12908         and optabs-tree.o.
12909         (GTFILES): Replace optabs.c with optabs-libfunc.c.
12910         * genopinit.c (main): Add an include guard to insn-opinit.h.
12911         Protect the rtx_code parts with NUM_RTX_CODE.
12912         * optabs.h: Split parts out to...
12913         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
12914         * optabs.c: Split parts out to...
12915         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
12916         * cilk-common.c: Include optabs-query.h rather than optabs.h.
12917         * fold-const.c: Likewise.
12918         * target-globals.c: Likewise.
12919         * tree-if-conv.c: Likewise.
12920         * tree-ssa-forwprop.c: Likewise.
12921         * tree-ssa-loop-prefetch.c: Likewise.
12922         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
12923         Remove unncessary include files.
12924         * tree-ssa-phiopt.c: Likewise.
12925         * tree-ssa-reassoc.c: Likewise.
12926         * tree-switch-conversion.c: Likewise.
12927         * tree-vect-data-refs.c: Likewise.
12928         * tree-vect-generic.c: Likewise.
12929         * tree-vect-loop.c: Likewise.
12930         * tree-vect-patterns.c: Likewise.
12931         * tree-vect-slp.c: Likewise.
12932         * tree-vect-stmts.c: Likewise.
12933         * tree-vrp.c: Likewise.
12934         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
12935         rather than optabs.h.
12936         * expr.c: Include optabs-tree.h.
12937         * function.c: Likewise.
12938
12939 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12940
12941         PR middle-end/65958
12942         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
12943         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
12944         * config/arm/arm.c: Include common/common-target.h.
12945         (use_return_insn): Return 0 if the static chain register was saved
12946         above a non-APCS frame.
12947         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
12948         (struct scratch_reg): New.
12949         (get_scratch_register_on_entry): New function.
12950         (release_scratch_register_on_entry): Likewise.
12951         (arm_emit_probe_stack_range): Likewise.
12952         (output_probe_stack_range): Likewise.
12953         (arm_expand_prologue): Factor out code dealing with the IP register
12954         for nested function and adjust it for stack checking.
12955         Invoke arm_emit_probe_stack_range if static builtin stack checking
12956         is enabled.
12957         (thumb1_expand_prologue): Sorry out if static builtin stack checking
12958         is enabled.
12959         (arm_expand_epilogue): Add the saved static chain register, if any, to
12960         the amount of pre-pushed registers to pop.
12961         (arm_frame_pointer_required): Return true if static stack checking is
12962         enabled and we want to catch the exception with the EABI unwinder.
12963         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
12964         (UNSPEC_PROBE_STACK_RANGE): Likewise.
12965         * config/arm/arm.md (probe_stack): New insn.
12966         (probe_stack_range): Likewise.
12967
12968 2015-09-17  Richard Biener  <rguenther@suse.de>
12969
12970         * genmatch.c (parser::parse_expr): Improve error message
12971         for mis-placed flags.
12972
12973 2015-09-17  Richard Biener  <rguenther@suse.de>
12974
12975         * passes.c (rest_of_decl_compilation): Always call early_global_decl
12976         debug hook when we created a varpool node.
12977         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
12978         dwarf2out_early_global_decl, when not just add location or
12979         value attributes to existing DIEs.
12980
12981 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
12982
12983         * config/aarch64/aarch64.md (copysigndf3): New.
12984         (copysignsf3): Likewise.
12985
12986 2015-09-17  David S. Miller  <davem@davemloft.net>
12987
12988         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
12989         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
12990         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12991         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12992         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12993         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12994         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12995         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12996         provide when flag_pic.
12997
12998 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12999
13000         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
13001         object_allocator change.
13002
13003 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
13004
13005         PR tree-optimization/66388
13006         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
13007         (dump_iv): Dump no_overflow information.
13008         (alloc_iv): Initialize new field for struct iv.
13009         (mark_bivs): Count number of no_overflow bivs.
13010         (find_deriving_biv_for_expr, record_biv_for_address_use): New
13011         functions.
13012         (idx_find_step): Call new functions above.
13013         (add_candidate_1, add_candidate): New paramter.
13014         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
13015         (get_computation_aff): Simplify convertion of cand for BIV.
13016         (get_computation_cost_at): Step cand's base if necessary.
13017
13018 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
13019
13020         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
13021         parameter.
13022         (tree_simplify_using_condition): Ditto.
13023         (simplify_using_initial_conditions): Ditto.
13024         (loop_exits_before_overflow): Pass new argument to function
13025         simplify_using_initial_conditions.  Remove case for type conversions
13026         simplification.
13027         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
13028         parameter.
13029         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
13030         in iv base using loop initial conditions.
13031
13032 2015-09-16  Jeff Law  <law@redhat.com>
13033
13034         PR tree-optimization/47679
13035         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
13036         (free_all_edge_infos): Use it.
13037         (allocate_edge_info): Free preexisting edge info data.
13038         (pass_dominator::execute): Set up initial edge info structures.
13039         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
13040         thread_across_edge.
13041         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
13042         If non-null, then push/pop markers appropriately.
13043         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
13044         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
13045         thread-across_edge.
13046
13047 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
13048
13049         * config/ft32/ft32.c: Fix the memory address space predicate.
13050
13051 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
13052
13053         PR target/67573
13054         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
13055         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
13056
13057 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13058
13059         * toplev.h (check_global_declaration): Remove declaration.
13060         * toplev.c (check_global_declaration): Move to ...
13061         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
13062         (analyze_functions): Update call.
13063
13064 2015-09-16  David S. Miller  <davem@davemloft.net>
13065
13066         * lra-constraints.c (simplify_operand_subreg): Do not assume that
13067         lowpart of a SUBREG has offset zero.
13068
13069 2015-09-16  Jeff Law  <law@redhat.com>
13070
13071         PR tree-optimization/47679
13072         * tree-ssa-dom.c (enum expr_kind): Moved from here to
13073         tree-ssa-scopedtables.h.
13074         (struct hashable_expr, class expr_hash_elt): Likewise.
13075         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
13076         Move associated methods into tree-ssa-scopedtables.c.
13077         (avail_expr_hash, initialize_expr_from_cond): Similarly.
13078         (hashable_expr_equal_p, add_expr_commutative): Likewise.
13079         (add_hashable_expr): Likewise.
13080         (record_cond): Delete element directly.
13081         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
13082         private copy ctor and assignment operator methods.
13083         (expr_elt_hasher): Inline trivial methods.
13084         (initialize_expr_from_cond): Prototype.
13085         * tree-ssa-scopedtables.c: Add necessary includes, functions and
13086         methods that were previously in tree-ssa-dom.c.  Improve various
13087         comments.
13088
13089 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
13090
13091         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
13092
13093 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
13094
13095         PR bootstrap/67587
13096         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
13097         fixup_partitions.
13098
13099 2015-09-16  Richard Biener  <rguenther@suse.de>
13100
13101         PR middle-end/67253
13102         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
13103         location of possibly shared trees.
13104
13105 2015-09-16  Richard Biener  <rguenther@suse.de>
13106
13107         PR middle-end/67271
13108         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
13109
13110 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
13111
13112         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
13113         offset and size computations instead of HOST_WIDE_INT.
13114
13115 2015-09-16  Richard Biener  <rguenther@suse.de>
13116
13117         PR middle-end/67442
13118         * fold-const.c (extract_muldiv_1): Properly extend multiplication
13119         result before builting a tree via wide_int_to_tree.
13120
13121 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
13122
13123         * Makefile.in: Add memory-block.cc
13124         (pool_allocator::initialize): Use fixed block size.
13125         (pool_allocator::release): Use memory_block_pool.
13126         (pool_allocator::allocate): Likewise.
13127         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
13128         object pools.
13129         * cfg.c (initialize_original_copy_tables): Likewise.
13130         * cselib.c (elt_list_pool, elt_loc_list_pool,
13131         cselib_val_pool): Likewise.
13132         * df-problems.c (df_chain_alloc): Likewise.
13133         * df-scan.c (df_scan_alloc): Likewise.
13134         * dse.c (cse_store_info_pool, rtx_store_info_pool,
13135         read_info_type_pool, insn_info_type_pool, bb_info_pool,
13136         group_info_pool, deferred_change_pool): Likewise.
13137         * et-forest.c (et_nodes, et_occurrences): Likewise.
13138         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
13139         ipcp_agg_lattice_pool): Likewise.
13140         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
13141         * ipa-profile.c (histogram_pool): Likewise.
13142         * ipa-prop.c (ipa_refdesc_pool): Likewise.
13143         * ira-build.c (live_range_pool, allocno_pool, object_pool,
13144         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
13145         * ira-color.c (update_cost_record_pool): Likewise.
13146         * lra-lives.c (lra_live_range_pool): Likewise.
13147         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
13148         * memory-block.cc: New file.
13149         * memory-block.h: New file.
13150         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
13151         * sched-deps.c (sched_deps_init): Likewise.
13152         * sel-sched-ir.c (sched_lists_pool): Likewise.
13153         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
13154         * tree-sra.c (access_pool): Likewise.
13155         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13156         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
13157         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
13158         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
13159         * tree-ssa-strlen.c (strinfo_pool): Likewise.
13160         * tree-ssa-structalias.c (variable_info_pool): Likewise.
13161         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
13162         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
13163
13164 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13165
13166         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
13167         definition.
13168         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
13169         call0 ABI.
13170
13171 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13172
13173         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
13174         to pass TLS call argument, according to current ABI.
13175         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
13176         callx0 for TLS call, according to current ABI.
13177
13178 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13179
13180         * tree-eh.c (lower_try_finally_dup_block): Clear location information
13181         on stack restore statements.
13182         (decide_copy_try_finally): Do not consider a stack restore statement as
13183         coming from sources.
13184
13185 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
13186
13187         * config/alpha/alpha.c (alpha_expand_block_clear): Use
13188         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
13189
13190 2015-09-15  Jeff Law  <law@redhat.com>
13191
13192         PR tree-optimization/47679
13193         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
13194         methods and private members.
13195         (avail_exprs_stack): Similarly.  Change type of global
13196         from a pair of expr_hash_elt_t to the new class.
13197         (expr_elt_hasher::hash): Corresponding changes.
13198         (expr_elt_hasher::equal): Similarly.
13199         (avail_expr_hash): Similarly.
13200         (pass_dominator::execute): Similarly.
13201         (dom_opt_dom_walker::thread_across_edge): Similarly.
13202         (record_cond): Similarly.
13203         (dom_opt_dom_walker::before_dom_children): Similarly.
13204         (dom_opt_dom_walker::after_dom_children): Similarly.
13205         (lookup_avail_expr): Likewise.
13206         (initialize_hash_element): Now a expr_hash_elt constructor.
13207         (initialize_hash_element_from_expr): Similarly.
13208         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
13209         (free_expr_hash_elt): Call dtor for the element.
13210         (remove_local_expressions_from_table): Now the "pop_to_marker"
13211         method in the available_exprs_stack class.
13212         (avail_expr_stack::record_expr): Method factored out.
13213         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
13214         Fix formatting.
13215         (hashable_expr_equal_p): Fix formatting.
13216
13217 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
13218
13219         * input.h (location_get_source_line): Drop "expanded_location"
13220         param in favor of a file and line number.
13221         * input.c (location_get_source_line): Likewise.
13222         (dump_location_info): Update for change in signature of
13223         location_get_source_line.
13224         * diagnostic.c (diagnostic_print_caret_line): Likewise.
13225
13226 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13227
13228         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
13229         Bump to 4KB for SJLJ exceptions.
13230         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
13231         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
13232         * doc/tm.texi: Regenerate.
13233
13234 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13235
13236         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
13237         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
13238         Update prototype.
13239
13240 2015-09-15  Richard Biener  <rguenther@suse.de>
13241
13242         PR tree-optimization/67470
13243         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
13244         structure for PHI hoisting by inserting a forwarder block
13245         if appropriate.
13246
13247 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13248
13249         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
13250         (arm_option_print): New function.
13251
13252 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13253
13254         PR target/52144
13255         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
13256         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
13257         Remove flags parameter.
13258         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
13259         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
13260         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
13261         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
13262         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
13263         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
13264         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
13265         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
13266
13267 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13268
13269         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
13270
13271         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
13272         AARCH64_VALID_SIMD_DREG_MODE.
13273
13274 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13275
13276         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
13277         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
13278         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
13279         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
13280         aarch64_ld4_lane<mode>): Combine together, making...
13281         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13282         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13283         aarch64_st4_lane<mode>): Combine together, making...
13284         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13285         * config/aarch64/iterators.md (nregs): Add comment.
13286
13287 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13288
13289         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
13290         Change operand mode from <V_TWO_ELEM> to BLK.
13291         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
13292         (aarch64_vec_store_lanesoi_lane<mode): Likewise
13293         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13294         (aarch64_ld2_lane<mode>): Likewise.
13295         (aarch64_st2_lane<VQ:mode>): Likewise.
13296         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
13297
13298 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13299
13300         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
13301         Change operand mode from <V_FOUR_ELEM> to BLK.
13302         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13303         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
13304         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13305         (aarch64_ld4_lane<mode>): Likewise.
13306         (aarch64_st4_lane<mode>): Likewise.
13307         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
13308
13309 2015-09-15  Richard Biener  <rguenther@suse.de>
13310
13311         PR middle-end/67563
13312         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
13313         transfer EH info from old to new stmt.
13314         (replace_call_with_value): Likewise.
13315         (replace_call_with_call_and_fold): Likewise.
13316         (gimple_fold_builtin_memory_op): Likewise.
13317         (gimple_fold_builtin_memset): Likewise.
13318         (gimple_fold_builtin_stpcpy): Likewise.
13319         (gimple_fold_call): Likewise.
13320
13321 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13322
13323         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
13324         comment.
13325         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
13326         (aarch64_simd_intEI_type_node): Likewise.
13327         (aarch64_simd_builtin_std_type): Remove EImode case.
13328         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
13329         * config/aarch64/aarch64-modes.def: Remove EImode.
13330
13331 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13332
13333         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
13334         Change operand mode from <V_THREE_ELEM> to BLK.
13335         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13336         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
13337         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13338         (aarch64_ld3_lane<mode>): Likewise.
13339         (aarch64_st3_lane<mode>): Likewise.
13340         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
13341
13342 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13343
13344         * config/aarch64/aarch64-simd.md
13345         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
13346         Change all TImode operands to BLKmode.
13347         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
13348         Change all EImode operands to BLKmode.
13349         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
13350         Change all OImode operands to BLKmode.
13351
13352         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
13353         and call set_mem_size.
13354         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
13355
13356         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
13357
13358 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13359
13360         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
13361         to...
13362         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
13363
13364         (vec_store_lanesci_lane<mode>): Rename to...
13365         (aarch64_vec_store_lanesci_lane<mode>): ...this.
13366
13367         (vec_store_lanesxi_lane<mode>): Rename to...
13368         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
13369
13370         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13371         aarch64_st4_lane<mode>): Follow renaming.
13372
13373 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13374
13375         * config/s390/s390.c (s390_const_operand_ok): Add missing
13376         brackets.
13377
13378 2015-09-15  Richard Biener  <rguenther@suse.de>
13379
13380         PR lto/67568
13381         * lto-streamer.h (lto_location_cache::current_sysp): Properly
13382         initialize.
13383         * lto-streamer-out.c (clear_line_info): Likewise.
13384
13385 2015-09-15  Richard Biener  <rguenther@suse.de>
13386
13387         * doc/match-and-simplify.texi: Fix wording.
13388
13389 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
13390
13391         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
13392         unnecessary type conversion in op1.
13393
13394 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
13395
13396         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
13397         (dup_block_and_redirect): Delete function.
13398         (can_dup_for_shrink_wrapping): New function.
13399         (fix_fake_fallthrough_edge): New function.
13400         (try_shrink_wrapping): Rewrite function.
13401         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
13402
13403 2015-09-14  Rich Felker  <dalias@libc.org>
13404
13405         * configure.ac: Change target pattern for sh TLS support
13406         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
13407         * configure: Regenerate.
13408
13409 2015-09-14  Jeff Law  <law@redhat.com>
13410
13411         PR tree-optimization/47679
13412         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
13413         type rather than void *.
13414
13415 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13416
13417         PR fortran/67460
13418         * diagnostic.c (diagnostic_initialize): Do not set
13419         some_warnings_are_errors.
13420         (diagnostic_finish): Use DK_WERROR count instead.
13421         (diagnostic_report_diagnostic): Do not set
13422         some_warnings_are_errors.
13423         * diagnostic.h (struct diagnostic_context): Remove
13424         some_warnings_are_errors.
13425
13426 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
13427
13428         * config/sparc/predicates.md (const_all_ones_operand): Use
13429         CONSTM1_RTX to simplify definition.
13430
13431 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
13432
13433         PR target/67061
13434         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
13435         Handle call insns.
13436
13437 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
13438
13439         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
13440         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
13441         OPT_fshow_column to handled saved option cases.
13442         (append_compiler_options): Do not skip the above added options.
13443
13444 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13445
13446         PR target/63304
13447         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
13448         nopcrelative_literal_loads.
13449         (aarch64_classify_address): Likewise.
13450         (aarch64_constant_pool_reload_icode): Define.
13451         (aarch64_secondary_reload): Handle secondary reloads for
13452         literal pools.
13453         (aarch64_override_options): Handle nopcrelative_literal_loads.
13454         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
13455         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
13456         Define.
13457         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
13458         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
13459         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
13460         predicate.
13461         * doc/invoke.texi (mpc-relative-literal-loads): Document.
13462
13463 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
13464
13465         PR middle-end/67401
13466         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
13467         sync_compare_and_swap_optab libcall to target_oval.
13468
13469 2015-09-14  Marek Polacek  <polacek@redhat.com>
13470
13471         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
13472         value.
13473         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
13474
13475 2015-09-11  Mark Wielaard  <mjw@redhat.com>
13476
13477         PR c/28901
13478         * toplev.c (check_global_declaration): Check and use
13479         warn_unused_const_variable.
13480         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
13481         (-Wunused-variable): Remove non-constant. For C implies
13482         -Wunused-const-variable.
13483         (-Wunused-const-variable): New.
13484
13485 2015-09-14  Richard Biener  <rguenther@suse.de>
13486
13487         * doc/match-and-simplify.texi: Update for changed syntax
13488         of inner ifs and the new switch expression.
13489
13490 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
13491
13492         * config/i386/haswell.md: New file describing Haswell pipeline.
13493         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
13494         haswell-like processors.
13495         (ix86_reassociation_width): Increase reassociation width for 64-bit
13496         Haswell processor family.
13497         * config/i386/i386.md: Introduce haswell cpu and include new md file.
13498
13499 2015-09-14  Richard Biener  <rguenther@suse.de>
13500
13501         * doc/match-and-simplify.texi: Fixup some formatting issues
13502         and document the 's' flag.
13503
13504 2015-09-13  Olivier Hainque  <hainque@adacore.com>
13505             Eric Botcazou  <ebotcazou@adacore.com>
13506
13507         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
13508         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
13509         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
13510         (TARGET_CPU_gr5): Likewise.
13511         (TARGET_CPU_gr6): Likewise.
13512         (MULTILIB_DEFAULTS): Likewise.
13513         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
13514         for mcpu=gr5 and mcpu=gr6.
13515         (MULTILIB_DIRNAMES): Adjust accordingly.
13516
13517 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13518
13519         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
13520         (mem_ref_p): Likewise.
13521         (outermost_indep_loop): Adjust.
13522         (mem_ref_in_stmt): Likewise.
13523         (determine_max_movement): Likewise.
13524         (mem_ref_alloc): Likewise.
13525         (record_mem_ref_loc): Likewise.
13526         (set_ref_stored_in_loop): Likewise.
13527         (mark_ref_stored): Likewise.
13528         (gather_mem_refs_stmt): Likewise.
13529         (mem_refs_may_alias_p): Likewise.
13530         (for_all_locs_in_loop): Likewise.
13531         (struct rewrite_mem_ref_loc): Likewise.
13532         (rewrite_mem_refs): Likewise.
13533         (struct first_mem_ref_loc_1): Likewise.
13534         (first_mem_ref_loc): Likewise.
13535         (struct sm_set_flag_if_changed): Likewise.
13536         (execute_sm_if_changed_flag_set): Likewise.
13537         (execute_sm): Likewise.
13538         (hoist_memory_references):
13539         (struct ref_always_accessed): Likewise.
13540         (ref_always_accessed_p): Likewise.
13541         (refs_independent_p): Likewise.
13542         (record_dep_loop): Likewise.
13543         (ref_indep_loop_p_1): Likewise.
13544         (ref_indep_loop_p_2): Likewise.
13545         (ref_indep_loop_p): Likewise.
13546         (can_sm_ref_p): Likewise.
13547         (find_refs_for_sm): Likewise.
13548         (tree_ssa_lim_finalize): Likewise.
13549
13550 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13551
13552         * dwarf2out.c (dw_attr_ref): Remove typedef.
13553         (dw_line_info_ref): Likewise.
13554         (pubname_ref): Likewise.
13555         (dw_ranges_ref): Likewise.
13556         (dw_ranges_by_label_ref): Likewise.
13557         (comdat_type_node_ref): Likewise.
13558         (get_AT): Adjust.
13559         (get_AT_low_pc): Likewise.
13560         (get_AT_hi_pc): Likewise.
13561         (get_AT_string): Likewise.
13562         (get_AT_flag): Likewise.
13563         (get_AT_unsigned): Likewise.
13564         (get_AT_ref): Likewise.
13565         (get_AT_file): Likewise.
13566         (remove_AT): Likewise.
13567         (print_die): Likewise.
13568         (check_die): Likewise.
13569         (die_checksum): Likewise.
13570         (attr_checksum_ordered): Likewise.
13571         (struct checksum_attributes): Likewise.
13572         (collect_checksum_attributes): Likewise.
13573         (die_checksum_ordered): Likewise.
13574         (same_die_p): Likewise.
13575         (is_declaration_die): Likewise.
13576         (clone_die): Likewise.
13577         (clone_as_declaration): Likewise.
13578         (copy_declaration_context): Likewise.
13579         (break_out_comdat_types): Likewise.
13580         (copy_decls_walk): Likewise.
13581         (output_location_lists): Likewise.
13582         (external_ref_hasher::hash): Likewise.
13583         (optimize_external_refs_1): Likewise.
13584         (build_abbrev_table): Likewise.
13585         (size_of_die): Likewise.
13586         (unmark_all_dies): Likewise.
13587         (size_of_pubnames): Likewise.
13588         (output_die_abbrevs): Likewise.
13589         (output_die): Likewise.
13590         (output_pubnames): Likewise.
13591         (add_ranges_num): Likewise.
13592         (add_ranges_by_labels): Likewise.
13593         (add_high_low_attributes): Likewise.
13594         (gen_producer_string): Likewise.
13595         (dwarf2out_set_name): Likewise.
13596         (new_line_info_table): Likewise.
13597         (prune_unused_types_walk_attribs): Likewise.
13598         (prune_unused_types_update_strings): Likewise.
13599         (prune_unused_types): Likewise.
13600         (resolve_addr): Likewise.
13601         (optimize_location_lists_1): Likewise.
13602         (index_location_lists): Likewise.
13603         (dwarf2out_finish): Likewise.
13604
13605 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13606
13607         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
13608
13609 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13610
13611         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
13612         (dump_asserts_for): Adjust.
13613         (register_new_assert_for): Likewise.
13614         (process_assert_insertions): Likewise.
13615         (insert_range_assertions): Likewise.
13616
13617 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13618
13619         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
13620         and remove typedef.
13621         (new_temp_expr_table): Adjust.
13622         (free_temp_expr_table): Likewise.
13623         (version_to_be_replaced_p): Likewise.
13624         (make_dependent_on_partition): Likewise.
13625         (add_to_partition_kill_list): Likewise.
13626         (remove_from_partition_kill_list): Likewise.
13627         (add_dependence): Likewise.
13628         (finished_with_expr): Likewise.
13629         (process_replaceable): Likewise.
13630         (kill_expr): Likewise.
13631         (kill_virtual_exprs): Likewise.
13632         (mark_replaceable): Likewise.
13633         (find_replaceable_in_bb): Likewise.
13634         (find_replaceable_exprs): Likewise.
13635         (debug_ter): Likewise.
13636
13637 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13638
13639         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
13640         (struct btr_user): Rename from btr_user_s.
13641         (struct btr_def): Rename from btr_def_s.
13642         (find_btr_def_group): Adjust.
13643         (add_btr_def): Likewise.
13644         (new_btr_user): Likewise.
13645         (note_other_use_this_block): Likewise.
13646         (compute_defs_uses_and_gen): Likewise.
13647         (link_btr_uses): Likewise.
13648         (build_btr_def_use_webs): Likewise.
13649         (block_at_edge_of_live_range_p): Likewise.
13650         (btr_def_live_range): Likewise.
13651         (combine_btr_defs): Likewise.
13652         (move_btr_def): Likewise.
13653         (migrate_btr_def): Likewise.
13654         (migrate_btr_defs): Likewise.
13655
13656 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13657
13658         * var-tracking.c (shared_hash_def): Rename to shared_hash.
13659         (shared_hash): Remove typedef.
13660         (struct dataflow_set): Adjust.
13661         (shared_hash_unshare): Likewise.
13662         (dataflow_set_merge): Likewise.
13663         (vt_initialize): Likewise.
13664         (vt_finalize): Likewise.
13665
13666 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13667
13668         * var-tracking.c (struct location_chain): Rename from
13669         location_chain_def.
13670         (struct variable_part): Adjust.
13671         (variable_htab_free): Likewise.
13672         (unshare_variable): Likewise.
13673         (get_init_value): Likewise.
13674         (get_addr_from_local_cache): Likewise.
13675         (drop_overlapping_mem_locs): Likewise.
13676         (val_reset): Likewise.
13677         (struct variable_union_info): Likewise.
13678         (variable_union): Likewise.
13679         (find_loc_in_1pdv): Likewise.
13680         (insert_into_intersection): Likewise.
13681         (intersect_loc_chains): Likewise.
13682         (canonicalize_loc_order_check): Likewise.
13683         (canonicalize_values_mark): Likewise.
13684         (canonicalize_values_star): Likewise.
13685         (canonicalize_vars_star): Likewise.
13686         (variable_merge_over_cur): Likewise.
13687         (remove_duplicate_values): Likewise.
13688         (variable_post_merge_new_vals): Likewise.
13689         (variable_post_merge_perm_vals): Likewise.
13690         (find_mem_expr_in_1pdv): Likewise.
13691         (dataflow_set_preserve_mem_locs): Likewise.
13692         (dataflow_set_remove_mem_locs): Likewise.
13693         (variable_part_different_p): Likewise.
13694         (onepart_variable_different_p): Likewise.
13695         (find_src_set_src): Likewise.
13696         (dump_var): Likewise.
13697         (set_slot_part): Likewise.
13698         (clobber_slot_part): Likewise.
13699         (delete_slot_part): Likewise.
13700         (vt_expand_var_loc_chain): Likewise.
13701         (emit_note_insn_var_location): Likewise.
13702         (vt_finalize): Likewise.
13703
13704 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13705
13706         * dse.c (store_info_t): Remove typedef.
13707         (group_info_t): Likewise.
13708         (const_group_info_t): Likewise.
13709         (deferred_change_t): Likewise.
13710         (get_group_info): Adjust.
13711         (free_store_info): Likewise.
13712         (canon_address): Likewise.
13713         (clear_rhs_from_active_local_stores): Likewise.
13714         (record_store): Likewise.
13715         (replace_read): Likewise.
13716         (check_mem_read_rtx): Likewise.
13717         (scan_insn): Likewise.
13718         (remove_useless_values): Likewise.
13719         (dse_step1): Likewise.
13720         (dse_step2_init): Likewise.
13721         (dse_step2_nospill): Likewise.
13722         (scan_stores_nospill): Likewise.
13723         (scan_reads_nospill): Likewise.
13724         (dse_step3_exit_block_scan): Likewise.
13725         (dse_step3): Likewise.
13726         (dse_step5_nospill): Likewise.
13727         (dse_step6): Likewise.
13728
13729 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13730
13731         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
13732         (alias_set_entry): Remove typedef.
13733         (alias_set_subset_of): Adjust.
13734         (alias_sets_conflict_p): Likewise.
13735         (init_alias_set_entry): Likewise.
13736         (get_alias_set): Likewise.
13737         (new_alias_set): Likewise.
13738         (record_alias_subset): Likewise.
13739
13740 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
13741
13742         * doc/install.texi (Downloading the source): Mark up
13743         contrib/download_prerequisites properly and drop leading "./".
13744
13745 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13746
13747         * config/arc/arc.h: Remove define of STRUCT_VALUE.
13748         * config/lm32/lm32.h: Likewise.
13749         * config/mep/mep.h: Likewise.
13750         * config/visium/visium.h: Likewise.
13751         * system.h: Poison STRUCT_VALUE macro.
13752
13753 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
13754
13755         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
13756         CONSTANT_P operands.
13757
13758 2015-09-11  David S. Miller  <davem@davemloft.net>
13759
13760         * config/sparc/constraints.md: Make "U" constraint a real register
13761         constraint.
13762         * config/sparc/sparc.c (TARGET_LRA_P): Define.
13763         (D_MODES, DF_MODES): Add missing cast.
13764         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
13765         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
13766         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
13767         cost to 8.
13768         * config/sparc/sparc.h (PROMOTE_MODE): Define.
13769         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
13770         provide these insn when flag_pic.
13771
13772 2015-09-11  Jeff Law  <law@redhat.com>
13773
13774         PR tree-optimization/47679
13775         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
13776         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
13777         member with m_.  Update inline member functions as necessary.  Add
13778         toplevel comment.
13779         * tree-ssa-scopedtables.c: Update const_and_copies's member
13780         functions to use m_ prefix to access the stack.
13781
13782 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13783
13784         * graphite-optimize-isl.c (disable_tiling): Remove.
13785         (get_schedule_for_band): Do not use disable_tiling.
13786         (get_prevector_map): Delete function.
13787         (enable_polly_vector): Remove.
13788         (get_schedule_for_band_list): Remove dead code.
13789
13790 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13791
13792         * graphite-optimize-isl.c (get_tile_map): Refactor.
13793         (get_schedule_for_band): Same.
13794         (getScheduleForBand): Same.
13795         (get_prevector_map): Same.
13796         (get_schedule_for_band_list): Same.
13797         (get_schedule_map): Same.
13798         (get_single_map): Same.
13799         (apply_schedule_map_to_scop): Same.
13800         (optimize_isl): Same.
13801
13802 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13803
13804         PR target/63304
13805         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
13806         (movtf): Delete.
13807         * config/aarch64/iterators.md (GPF_TF_F16): New.
13808         (GPF_F16): Delete.
13809
13810 2015-09-10  Nathan Sidwell  <nathan@acm.org>
13811
13812         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
13813         (nvptx_reorg): Adjust comments.
13814
13815 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
13816
13817         PR bootstrap/67363
13818         * configure.ac: Check if setenv and unsetenv are declared.
13819         * configure: Rebuild.
13820         * config.in: Rebuild.
13821         * system.h: Declare setenv and unsetenv if not declared.
13822
13823 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13824
13825         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
13826         commentary to simplify permute mask adjustment equation.
13827         (special_handling_values): Add SH_VPERM.
13828         (const_load_sequence_p): New function.
13829         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
13830         the mask loaded from the constant pool.
13831         (adjust_vperm): New function.
13832         (handle_special_swappables): Call adjust_vperm.
13833         (dump_swap_insn_table): Handle SH_VPERM.
13834
13835 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13836
13837         * shrink-wrap.c (requires_stack_frame_p): Remove static.
13838         * shrink-wrap.h (requires_stack_frame_p): Put back.
13839
13840 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
13841
13842         * reload1.c (elimination_costs_in_insn): Locally turn
13843         -Wmaybe-uninitialized into a warning.
13844
13845 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
13846
13847         * shrink-wrap.c (requires_stack_frame_p): Make static.
13848         (prepare_shrink_wrap): Likewise.
13849         (dup_block_and_redirect): Likewise.
13850         * shrink-wrap.h: Remove declarations of those functions.
13851
13852 2015-09-10  Mark Wielaard  <mjw@redhat.com>
13853
13854         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
13855
13856 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
13857
13858         PR target/67506
13859         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
13860         missing simplify_gen_subreg.
13861
13862 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13863
13864         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
13865         the vector element is bigger than 64 bit.
13866
13867 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13868
13869         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
13870         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
13871
13872 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13873
13874         * config/s390/s390.c: Add V1TImode to constant pool modes.
13875
13876 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13877
13878         PR target/67439
13879         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
13880         predicate.  Set predicable_short_it attr to "no".
13881
13882 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
13883
13884         PR rtl-optimization/67421
13885         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
13886         left wide shift tranformation.
13887
13888 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
13889
13890         * common/config/arc/arc-common.c: Remove references to A5.
13891         * config/arc/arc-opts.h: Likewise.
13892         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
13893         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
13894         * config/arc/t-arc-newlib: Likewise.
13895
13896 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
13897
13898         * config/arc/arc.md (length): Fix attribute length for conditional
13899         executed instructions with long immediate.
13900
13901 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13902
13903         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
13904         type for second alternative.
13905
13906 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
13907
13908         * doc/invoke.texi (Downloading GCC): Mention
13909         contrib/download_prerequisites script.
13910
13911 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
13912
13913         PR c++/67523
13914         * gimplify.c (gimplify_omp_for): If inner stmt is not found
13915         for combined loop, assert seen_error () and return GS_ERROR.
13916
13917         PR middle-end/67521
13918         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
13919         if decl is already in outer->variables.
13920
13921         PR middle-end/67517
13922         * gimplify.c (gimplify_scan_omp_clauses): Instead of
13923         asserting that decl is not specified in octx->variables,
13924         break out of the loop if it is.
13925
13926         PR c++/67514
13927         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
13928         iterator is not explicitly determined, but is defined inside
13929         of the combined workshare region, handle it like if it has
13930         DECL_EXPR in OMP_FOR_PRE_BODY.
13931
13932 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13933
13934         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
13935         (*cmp<mode>): Add assembler spacing.
13936         (setcc_int<mode>, set_cc_float<mode>): Likewise.
13937         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
13938         level.
13939         (write_func_decl_from_insn): Refactor argument loops & comma emission.
13940         (nvptx_expand_call): Likewise.
13941         (nvptx_output_call_insn): Likewise.
13942         (nvptx_reorg_subreg): Add spacing.
13943
13944 2015-09-09  Marek Polacek  <polacek@redhat.com>
13945
13946         PR middle-end/67512
13947         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
13948         for comparisons.
13949
13950 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
13951
13952         PR c++/53184
13953         * doc/invoke.texi ([Wsubobject-linkage]): Document.
13954
13955 2015-09-09  Tom de Vries  <tom@codesourcery.com>
13956
13957         * params-list.h: Add missing copyright notice.
13958
13959 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13960
13961         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
13962         sel_truesi, not andsi.
13963
13964 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13965
13966         * config/arm/arm.md (*subsi3_compare0): Rename to...
13967         (subsi3_compare0): ... This.
13968         (modsi3): New define_expand.
13969         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
13970         when operand is power of 2.
13971
13972 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13973
13974         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
13975         (*neg<mode>2_compare0): Rename to...
13976         (neg<mode>2_compare0): ... This.
13977         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
13978         Move check for speed inside the if-then-elses.  Reflect
13979         CSNEG sequence in MOD by power of 2 case.
13980
13981 2015-09-09  Alan Modra  <amodra@gmail.com>
13982
13983         PR target/67378
13984         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
13985         reload replacement for PRE_MODIFY address reg.
13986
13987 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
13988
13989         PR tree-optimization/53852
13990         * config.in: Regenerate.
13991         * configure: Regenerate.
13992         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
13993         * graphite-optimize-isl.c (optimize_isl): Stop computation when
13994         PARAM_MAX_ISL_OPERATIONS is reached.
13995         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
13996         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
13997         result equal to isl_stat_ok as the status now can be isl_error_quota.
13998         (subtract_commutative_associative_deps): Same.
13999         (compute_deps): Same.
14000
14001 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
14002             Sebastian Pop  <s.pop@samsung.com>
14003
14004         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14005         Return the parameter if it was saved in corresponding
14006         parameter_rename_map of the region.
14007         (copy_def): Copy def from sese region to the newly created region.
14008         (copy_internal_parameters): Copy all the internal parameters defined
14009         within a region to the newly created region.
14010         (graphite_regenerate_ast_isl): Copy parameters to the new region before
14011         translating isl to gimple.
14012         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
14013         the loop-nest does not have any data-references.
14014         (build_graphite_scops): Create a scop only when there is at least one
14015         loop inside it.
14016         (contains_only_close_phi_nodes): Deleted.
14017         (print_graphite_scop_statistics): Deleted
14018         (print_graphite_statistics): Deleted
14019         (limit_scops): Deleted.
14020         (build_scops): Removed call to limit_scops.
14021         * sese.c (new_sese): Construct.
14022         (free_sese): Destruct.
14023         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
14024         added.
14025         (set_rename): Pass sese region so that parameters inside the region can
14026         be added to its parameter_rename_map.
14027         (rename_uses): Pass sese region.
14028         (graphite_copy_stmts_from_block): Do not copy parameters that have been
14029         generated in the header of the scop. For each SSA_NAME in the
14030         parameter_rename_map rename its usage.
14031         (invariant_in_sese_p_rec): Return false if tree t is defined outside
14032         sese region.
14033         (scalar_evolution_in_region): If the tree t is invariant just return t.
14034         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
14035         struct sese to keep track of all the parameters which need renaming.
14036         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
14037         any data-refs.
14038         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
14039
14040 2015-09-08  Tom de Vries  <tom@codesourcery.com>
14041
14042         * Makefile.in (generated_files): Add params.list.
14043         (params.list, s-params.list): Add rule.
14044         * params.h (enum compiler_param): Include params-list.h.  Move define
14045         DEFPARAM, include params.def and undef DEFPARAM ...
14046         * params-list.h: ... here.  New file.
14047
14048 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
14049
14050         * pretty-print.h (printer_fn): Fix typo in comment.
14051
14052 2015-09-07  Jeff Law  <law@redhat.com>
14053
14054         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
14055
14056 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14057
14058         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
14059         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
14060         (arm_neon_fp16_hw): New.
14061
14062 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14063
14064         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
14065         UNITS_PER_WORD >= 4.
14066
14067 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14068
14069         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
14070         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
14071         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
14072         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
14073         (aarch64_float_extend_lo_v2df): Rename to...
14074         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
14075
14076         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
14077         (float_extend_lo): Add v4sf.
14078
14079         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
14080         * config/aarch64/iterators.md (VQ_HSF): New iterator.
14081         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
14082         (Vwide): New mode_attr.
14083
14084 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14085
14086         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
14087         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
14088         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
14089         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
14090         V4HF and V8HF variants to iterator.
14091
14092         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
14093
14094         * config/aarch64/iterators.md (VDQF_F16): New.
14095         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
14096
14097 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14098
14099         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
14100         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14101         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
14102         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
14103         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
14104         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14105         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
14106         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
14107         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
14108         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
14109         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
14110         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14111         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
14112         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
14113         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
14114         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
14115         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
14116         vld1q_dup_f16): New.
14117
14118 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14119
14120         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
14121         Reparameterize to...
14122         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
14123         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
14124         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
14125
14126         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
14127         v8hf variant.
14128         (float_truncate_lo_): Use BUILTIN_VDF iterator.
14129
14130         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
14131
14132         * config/aarch64/iterators.md (VDF, Vdtype): New.
14133         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
14134
14135 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14136
14137         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
14138         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
14139         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
14140         Add __builtin_aarch64_simd_hf.
14141         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
14142         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
14143         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
14144         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
14145         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
14146         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
14147         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
14148         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
14149         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
14150
14151         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
14152         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
14153         (VDC, Vdbl): Add V4HF.
14154
14155 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14156
14157         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
14158         V4HFmode and V8HFmode.
14159         (aarch64_split_simd_move): Add case for V8HFmode.
14160         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
14161         (aarch64_simd_builtin_std_type): Handle HFmode.
14162         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
14163
14164         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
14165         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
14166         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
14167
14168         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
14169         Float16x8_t.
14170
14171         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
14172         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
14173         New typedefs.
14174         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
14175         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
14176         vst1q_lane_f16): New.
14177         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
14178         (VALLDI_F16, VALL_F16): New.
14179         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
14180         Add cases for V4HF and V8HF.
14181         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
14182
14183 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14184
14185         * config/arm/arm-builtins.c (VAR11, VAR12): New.
14186         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
14187         vld4_dup): Add v4hf variant.
14188         (vget_high, vget_low): Add v8hf variant.
14189         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
14190         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
14191         v4hf and v8hf variants.
14192
14193         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
14194         (VDX): Add V4HF.
14195         (V_DOUBLE): Add case for V4HF.
14196         (VQX): Add V8HF.
14197         (V_HALF): Add case for V8HF.
14198         (VDQX): Add V4HF, V8HF.
14199         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
14200         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
14201
14202         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
14203         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
14204         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
14205         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
14206         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
14207         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
14208         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
14209         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
14210         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
14211
14212         (neon_vcreate, neon_vreinterpretv8qi<mode>,
14213         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14214         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
14215         Change VDX to VD_RE.
14216
14217         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
14218         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
14219         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
14220
14221         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
14222         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
14223         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
14224         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
14225         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
14226         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
14227         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
14228         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
14229         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
14230
14231 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14232
14233         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
14234         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
14235         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
14236         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
14237         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14238         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
14239         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
14240         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
14241         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
14242         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
14243         New.
14244
14245 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14246
14247         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
14248
14249         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
14250
14251         * config/arm/arm-builtins.c (v8hf_UP): New.
14252         (arm_init_simd_builtin_types): Initialise Float16x8_t.
14253
14254         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
14255
14256         * config/arm/arm_neon.h (float16x8_t): New typedef.
14257
14258 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14259
14260         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
14261         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
14262         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
14263         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
14264         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14265         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
14266         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
14267         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
14268         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14269         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
14270
14271 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
14272
14273         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
14274         non-alphanumeric characters in the symbol name.
14275
14276 2015-09-07  Marek Polacek  <polacek@redhat.com>
14277
14278         PR inline-asm/67448
14279         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
14280         a memory input.
14281
14282 2015-09-07  Marek Polacek  <polacek@redhat.com>
14283
14284         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
14285
14286 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
14287
14288         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
14289         not warn.
14290
14291 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
14292
14293         PR middle-end/67452
14294         * tree-ssa-live.c: Include cfgloop.h.
14295         (remove_unused_locals): Clear loop->simduid if simduid is about
14296         to be removed from cfun->local_decls.
14297
14298 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14299
14300         PR target/65210
14301         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
14302         attribute as well.
14303
14304 2015-09-04  Tom de Vries  <tom@codesourcery.com>
14305
14306         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
14307
14308 2015-09-04  Jeff Law  <law@redhat.com>
14309
14310         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
14311         unnecessary constructor.  It's now trivial and implemented inside...
14312         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
14313         constructor.  Add comments to various methods.  Remove unused
14314         private fields.
14315         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
14316         * tree-vrp.c (identify_jump_threads): Likewise.
14317         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
14318         indentation issues.
14319         (thread_across_edge): Similarly.
14320         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
14321         arguments in constructor call.
14322
14323 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
14324
14325         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
14326         temp path contains a '-'.
14327
14328 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14329             Petr Murzin  <petr.murzin@intel.com>
14330             Kirill Yukhin  <kirill.yukhin@intel.com>
14331
14332         * config/i386/i386-builtin-types.def
14333         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
14334         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
14335         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
14336         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
14337         * config/i386/i386.c
14338         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
14339         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14340         IX86_BUILTIN_SCATTERALTDIV16SI.
14341         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
14342         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
14343         __builtin_ia32_scatteraltdiv8si.
14344         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
14345         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14346         IX86_BUILTIN_SCATTERALTDIV16SI.
14347         (ix86_vectorize_builtin_scatter): New.
14348         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
14349         ix86_vectorize_builtin_scatter.
14350
14351 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14352             Petr Murzin  <petr.murzin@intel.com>
14353             Kirill Yukhin  <kirill.yukhin@intel.com>
14354
14355         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
14356         * doc/tm.texi: Regenerate.
14357         * target.def: Add scatter builtin.
14358         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
14359         for loads/stores in case of gather/scatter accordingly.
14360         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14361         STMT_VINFO_GATHER_P(S).
14362         (vect_check_gather): Rename to ...
14363         (vect_check_gather_scatter): this.
14364         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
14365         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
14366         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14367         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
14368         variable and new checkings for it accordingly.
14369         * tree-vect-stmts.c
14370         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14371         STMT_VINFO_GATHER_P(S).
14372         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14373         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
14374
14375 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14376
14377         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
14378         define_insn.
14379         (mulv16qi3): New define_expand.
14380
14381 2015-09-03  Martin Sebor  <msebor@redhat.com>
14382
14383         PR c/66516
14384         * doc/extend.texi (Other Builtins): Document when the address
14385         of a built-in function can be taken.
14386
14387 2015-09-03  Richard Biener  <rguenther@suse.de>
14388
14389         * dwarf2out.c (flush_limbo_die_list): Split out from ...
14390         (dwarf2out_early_finish): ... here.
14391         (dwarf2out_finish): Do not call dwarf2out_early_finish but
14392         flush_limbo_die_list.  Assert we have no deferred asm names.
14393
14394 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14395
14396         * optabs.c (expand_binop): Don't create a broadcast vector with a
14397         source element wider than the inner mode.
14398
14399 2015-09-03  Richard Biener  <rguenther@suse.de>
14400
14401         * varasm.c (output_constant): Use fold_convert instead of
14402         wide_int_to_tree.
14403
14404 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14405
14406         PR tree-optimization/65637
14407         * omp-low.c (expand_omp_for_static_chunk): Handle case that
14408         fin_bb has 2 predecessors.
14409
14410 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14411
14412         PR tree-optimization/65637
14413         * omp-low.c (find_phi_with_arg_on_edge): New function.
14414         (expand_omp_for_static_chunk): Fix inner loop phi.
14415
14416 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14417
14418         PR tree-optimization/65637
14419         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
14420         that head is NULL.
14421
14422 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14423
14424         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
14425
14426 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14427
14428         * doc/invoke.texi (parloops-chunk-size): Add item.
14429         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
14430         * tree-parloops.c: Include params.h.
14431         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
14432         param parloops-chunk-size is used.
14433
14434 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14435
14436         PR middle-end/67351
14437         * fold-const.c (fold_binary_loc) : Move
14438         Transform (x >> c) << c into x & (-1<<c) or
14439         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
14440         types using simplify and match.
14441         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
14442         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
14443
14444 2015-09-03  Richard Biener  <rguenther@suse.de>
14445
14446         PR ipa/66705
14447         * tree-ssa-structalias.c (ctor_for_analysis): New function.
14448         (create_variable_info_for_1): Use ctor_for_analysis instead
14449         of get_constructor.
14450         (create_variable_info_for): Likewise.
14451
14452 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
14453
14454         PR ipa/67280
14455         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
14456         in new callgraph edge.
14457
14458 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
14459
14460         PR target/59810
14461         PR target/63652
14462         PR target/63653
14463         * config/aarch64/aarch64-simd.md
14464         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
14465         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
14466         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
14467         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
14468
14469 2015-09-02  Alan Modra  <amodra@gmail.com>
14470
14471         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
14472         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
14473         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
14474
14475 2015-09-02  Alan Modra  <amodra@gmail.com>
14476
14477         PR target/67417
14478         * config/rs6000/predicates.md (current_file_function_operand): Don't
14479         return true for weak symbols.
14480         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
14481
14482 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
14483             Andrew Bennett  <andrew.bennett@imgtec.com>
14484
14485         * config/mips/mips-opts.h (mips_cb_setting): New enum.
14486         * config/mips/mips-protos.h: Add definitions for
14487         mips_output_jump and mips_output_equal_conditional_branch
14488         * config/mips/mips.c (MIPS_JR): Change to support the
14489         JIC instruction.
14490         (mips_emit_compare): Add support for the MIPS R6 conditional
14491         compact branches.
14492         (mips_process_sync_loop): Likewise.
14493         (mips_output_order_conditional_branch): Likewise.
14494         (mips16_build_call_stub): Change MIPS_CALL to
14495         mips_output_jump.
14496         (mips_print_operand_punctuation): Update 's' case to only
14497         apply to micromips r2.
14498         (mips_adjust_insn_length): Add support for forbidden slot
14499         hazards.
14500         (mips_avoid_hazard): Likewise.
14501         (mips_reorg_process_insns): Likewise.
14502         (mips_output_jump): New function.
14503         (mips_output_equal_conditional_branch): Likewise.
14504         (mips_output_conditional_branch): Use jrc/bc if compact
14505         branch support is enabled.  Ensure the forbidden slots
14506         between the two branch instructions is filled with a nop.
14507         (mips_option_override): Add support to process the compact
14508         branch option and set the correct defaults.  Prevent
14509         non-explict relocs being using for MIPS R6.
14510         (mips_trampoline_init): Add compact branch support.
14511         (mips_mult_zero_zero_cost): Allow zero initialisation of
14512         accumulators with TARGET_DSP.
14513         * config/mips/mips.h (TARGET_CB_NEVER): New define.
14514         (TARGET_CB_MAYBE): New define.
14515         (TARGET_CB_ALWAYS): New define.
14516         (ISA_HAS_DELAY_SLOTS): New define.
14517         (ISA_HAS_COMPACT_BRANCHES): New define.
14518         (ISA_HAS_JRC): New define.
14519         (MIPS_BRANCH_C): New define.
14520         (MIPS_CALL): Removed.
14521         (MICROMIPS_J): Removed.
14522         * config/mips/mips.md (compact_form): New attr.
14523         (hazard): Add support for forbidden slots.
14524         (define_delay): Add support for compact branches.
14525         (*branch_order<mode>): Likewise.
14526         (*branch_order<mode>_inverted): Likewise.
14527         (*branch_equality<mode>): Likewise.
14528         (*branch_equality<mode>_inverted): Likewise.
14529         (*jump_absolute): Likewise.
14530         (*jump_pic): Likewise.
14531         (indirect_jump): Use mips_output_jump to produce assembly output.
14532         (tablejump_<mode>"): Likewise.
14533         (*<optab>"): Likewise.
14534         (<optab>_internal): Likewise.
14535         (sibcall_internal): Likewise.
14536         (sibcall_value_internal): Likewise.
14537         (sibcall_value_multiple_internal): Likewise.
14538         (call_internal): Likewise.
14539         (call_split): Likewise.
14540         (call_internal_direct): Likewise.
14541         (call_direct_split): Likewise.
14542         (call_value_internal): Likewise.
14543         (call_value_split): Likewise.
14544         (call_value_internal_direct): Likewise.
14545         (call_value_direct_split): Likewise.
14546         (call_value_multiple_internal): Likewise.
14547         (call_value_multiple_split): Likewise.
14548         (mips_get_fcsr_mips16_<mode>): Likewise.
14549         (mips_set_fcsr_mips16_<mode>): Likewise.
14550         (tls_get_tp_mips16_<mode>): Likewise.
14551         * config/mips/mips.opt: Add -mcompact-branches option.
14552         * config/mips/predicates.md (order_operator): Ensure the
14553         conditional compact branches are only used if the ISA them.
14554         * doc/invoke.texi: Document -mcompact-branches option.
14555
14556 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
14557
14558         PR target/61578
14559         * lra-lives.c (process_bb_lives): Process move pseudos with the
14560         same value for copies and preferences
14561         * lra-constraints.c (match_reload): Create match reload pseudo
14562         with the same value from single dying input pseudo.
14563
14564 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
14565
14566         PR target/67405
14567         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
14568
14569 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
14570
14571         * trans-mem.c: Add contributed-by.
14572         * trans-mem.h: Same.
14573
14574 2015-09-01  Richard Biener  <rguenther@suse.de>
14575
14576         * expr.c (expand_expr_real_1): For expanding TERed defs
14577         set the current location to that of the def if not UNKNOWN.
14578
14579 2015-09-01  David Sherwood  <david.sherwood@arm.com>
14580
14581         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
14582
14583 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14584
14585         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
14586         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
14587         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
14588         Include rtl-iter.h.
14589         (noce_simple_bbs): New function.
14590         (noce_try_move): Bail if basic blocks are not simple.
14591         (noce_try_store_flag): Likewise.
14592         (noce_try_store_flag_constants): Likewise.
14593         (noce_try_addcc): Likewise.
14594         (noce_try_store_flag_mask): Likewise.
14595         (noce_try_cmove): Likewise.
14596         (noce_try_minmax): Likewise.
14597         (noce_try_abs): Likewise.
14598         (noce_try_sign_mask): Likewise.
14599         (noce_try_bitop): Likewise.
14600         (bbs_ok_for_cmove_arith): New function.
14601         (noce_emit_all_but_last): Likewise.
14602         (noce_emit_insn): Likewise.
14603         (noce_emit_bb): Likewise.
14604         (noce_try_cmove_arith): Handle non-simple basic blocks.
14605         (insn_valid_noce_process_p): New function.
14606         (contains_mem_rtx_p): Likewise.
14607         (bb_valid_for_noce_process_p): Likewise.
14608         (noce_process_if_block): Allow non-simple basic blocks
14609         where appropriate.
14610
14611 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
14612
14613         * tree-ssa-dom.c (record_equivalences_from_phis,
14614         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
14615         (lookup_avail_expr): Likewise, and remove comment and unused temp.
14616
14617 2015-09-01  Nick Clifton  <nickc@redhat.com>
14618
14619         * config/msp430/msp430.opt (mcpu): Fix typo.
14620
14621 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14622
14623         * config/aarch64/aarch64.c (aarch64_set_current_function):
14624         Re-layout any vector parameters have non-simd layout.
14625         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
14626         Delete.
14627         (aarch64_simd_expand_args): Delete call to the above.
14628
14629 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
14630
14631         * doc/invoke.texi (asan-stack): Add space before option.
14632
14633 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14634
14635         * tree.h (zerop): New function.
14636         * tree.c (zerop): Likewise.
14637         (element_precision): Handle expressions.
14638         * match.pd (define_predicates): Add zerop.
14639         (x <= +Inf): Fix comment.
14640         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
14641         * fold-const.c (fold_binary_loc): ... here. Remove.
14642
14643 2015-08-31  Richard Biener  <rguenther@suse.de>
14644
14645         PR middle-end/67381
14646         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
14647
14648 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14649
14650         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
14651         (CEXPI): New operator list.
14652         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
14653         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
14654         Converted from ...
14655         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
14656
14657 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14658
14659         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
14660         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
14661         parameter.
14662         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
14663         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
14664         (rewrite_into_loop_closed_ssa): ... here.
14665         (replace_uses_in_dominated_bbs): Remove function.
14666         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
14667         rewrite_into_loop_closed_ssa_1.
14668
14669 2015-08-31  Michael Matz  <matz@suse.de>
14670
14671         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
14672         enter entry and exit blocks for reverse post order.
14673
14674 2015-08-31  Richard Biener  <rguenther@suse.de>
14675
14676         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
14677         (lto_location_cache::current_sysp): Likewise.
14678         (output_block::current_sysp): Likewise.
14679         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
14680         (lto_location_cache::apply_location_cache): Properly record
14681         system header locations.
14682         (lto_location_cache::input_location): Input whether a file
14683         is a system header.
14684         * lto-streamer-out.c (lto_output_location): Stream whether a file
14685         is a system header.
14686
14687 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14688
14689         PR bootstrap/67363
14690         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
14691
14692 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14693
14694         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
14695         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
14696         Improve function header comments.
14697
14698 2015-08-30  Michael Collison  <michael.collison@linaro.org>
14699
14700         PR other/67320
14701         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
14702         standard names
14703
14704 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14705
14706         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
14707         special_handling bitfield.
14708         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
14709         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
14710         that represents a general xxpermdi.
14711         (insn_is_swappable_p): Add handling for vec_concat of two
14712         doublewords, which maps to a specific xxpermdi.
14713         (adjust_xxpermdi): New function.
14714         (adjust_concat): Likewise.
14715         (handle_special_swappables): Call adjust_xxpermdi and
14716         adjust_concat.
14717         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
14718
14719 2015-08-30  Rich Felker <dalias@libc.org>
14720
14721         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
14722         case instead of sh[123456ble]-*-*.
14723
14724 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
14725
14726         * ira.c (print_unform_and_important_classes,
14727         print_translated_classes): Remove reg_class_names static array.
14728         (print_unform_and_important_classes): Rename to ...
14729         (print_uniform_and_important_classes): ... this.
14730         (ira_debug_allocno_classes): Update accordingly.
14731
14732 2015-08-29  Tom de Vries  <tom@codesourcery.com>
14733
14734         PR tree-optimization/46193
14735         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
14736         clause.
14737
14738 2015-08-28  Jeff Law  <law@redhat.com>
14739
14740         PR lto/66752
14741         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
14742         unable to find X NE 0 in the tables, return X as the simplified
14743         condition.
14744         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
14745         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
14746         to VISISTED_BBS.
14747         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
14748         after removing the control flow statement and unnecessary edges.
14749
14750 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
14751
14752         Revert:
14753         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14754
14755         PR tree-optimization/67283
14756         * tree-sra.c (type_consists_of_records_p): Rename to...
14757         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14758
14759         (completely_scalarize_record): Rename to...
14760         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
14761         code to:
14762         (scalarize_elem): New.
14763
14764 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
14765
14766         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
14767         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
14768         (aarch64_symbol_type): Likewise.
14769         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14770         Likewise.
14771         (aarch64_expand_mov_immediate): Likewise.
14772         (aarch64_print_operand): Likewise.
14773         (aarch64_classify_tls_symbol): Likewise.
14774
14775 2015-08-28  Richard Biener  <rguenther@suse.de>
14776
14777         * cgraphunit.c (symbol_table::compile): Move early debug generation
14778         and finish...
14779         (symbol_table::finalize_compilation_unit): ... back here and
14780         add a !seen_error () guard.
14781
14782 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14783
14784         * toplev.c (process_options): Do not use flag_loop_block,
14785         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
14786         flag_loop_optimize_isl.
14787
14788 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14789
14790         * Makefile.in (OBJS): Remove graphite-blocking.o and
14791         graphite-interchange.o.
14792         * common.opt (floop-strip-mine, floop-interchange, floop-block):
14793         Alias of floop-nest-optimize.
14794         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
14795         Document as alias of -floop-nest-optimize.
14796         * graphite-blocking.c: Remove.
14797         * graphite-interchange.c: Remove.
14798         * graphite-optimize-isl.c: Include dumpfile.h.
14799         (getScheduleForBand): Add dump for tiled loops.  Use
14800         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
14801         * graphite-poly.c (scop_max_loop_depth): Remove.
14802         (print_scattering_function_1): Remove.
14803         (print_scattering_function): Remove.
14804         (print_scattering_functions): Remove.
14805         (debug_scattering_function): Remove.
14806         (debug_scattering_functions): Remove.
14807         (apply_poly_transforms): Remove use of flag_loop_block,
14808         flag_loop_strip_mine, and flag_loop_interchange.
14809         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
14810         PBB_ORIGINAL.
14811         (print_pdr_access_layout): Remove.
14812         (print_pdr): Print ISL representation.
14813         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
14814         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
14815         (free_scop): Same.
14816         (openscop_print_pbb_domain): Remove.
14817         (print_pbb): Remove call to print_scattering_function.
14818         (openscop_print_scop_context): Remove.
14819         (print_scop_context): Do not print matrices anymore.
14820         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
14821         SCOP_TRANSFORMED_SCHEDULE.
14822         (print_isl_set): Add printing of a new line.
14823         (print_isl_map): Same.
14824         (print_isl_aff): Same.
14825         (print_isl_constraint): Same.
14826         (loop_to_lst): Remove.
14827         (scop_to_lst): Remove.
14828         (lst_indent_to): Remove.
14829         (print_lst): Remove.
14830         (debug_lst): Remove.
14831         (dot_lst_1): Remove.
14832         (dot_lst): Remove.
14833         (reverse_loop_at_level): Remove.
14834         (reverse_loop_for_pbbs): Remove.
14835         * graphite-poly.h (pdr_dim_iter_domain): Remove.
14836         (pdr_nb_params): Remove.
14837         (pdr_alias_set_dim): Remove.
14838         (pdr_subscript_dim): Remove.
14839         (pdr_iterator_dim): Remove.
14840         (pdr_parameter_dim): Remove.
14841         (same_pdr_p): Remove.
14842         (struct poly_scattering): Remove.
14843         (struct poly_bb): Remove _original, _transformed, _saved.
14844         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
14845         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
14846         (PBB_NB_LOCAL_VARIABLES): Remove.
14847         (PBB_NB_SCATTERING_TRANSFORM): Remove.
14848         (schedule_to_scattering): Remove.
14849         (number_of_write_pdrs): Remove.
14850         (pbb_dim_iter_domain): Remove.
14851         (pbb_nb_params): Remove.
14852         (pbb_nb_scattering_orig): Remove.
14853         (pbb_nb_scattering_transform): Remove.
14854         (pbb_nb_dynamic_scattering_transform): Remove.
14855         (pbb_nb_local_vars): Remove.
14856         (pbb_iterator_dim): Remove.
14857         (pbb_parameter_dim): Remove.
14858         (psco_scattering_dim): Remove.
14859         (psct_scattering_dim): Remove.
14860         (psct_local_var_dim): Remove.
14861         (psco_iterator_dim): Remove.
14862         (psct_iterator_dim): Remove.
14863         (psco_parameter_dim): Remove.
14864         (psct_parameter_dim): Remove.
14865         (psct_dynamic_dim): Remove.
14866         (psct_static_dim): Remove.
14867         (psct_add_local_variable): Remove.
14868         (new_lst_loop): Remove.
14869         (new_lst_stmt): Remove.
14870         (free_lst): Remove.
14871         (copy_lst): Remove.
14872         (lst_add_loop_under_loop): Remove.
14873         (lst_depth): Remove.
14874         (lst_dewey_number): Remove.
14875         (lst_dewey_number_at_depth): Remove.
14876         (lst_pred): Remove.
14877         (lst_succ): Remove.
14878         (lst_find_pbb): Remove.
14879         (find_lst_loop): Remove.
14880         (lst_find_first_pbb): Remove.
14881         (lst_empty_p): Remove.
14882         (lst_find_last_pbb): Remove.
14883         (lst_contains_p): Remove.
14884         (lst_contains_pbb): Remove.
14885         (lst_create_nest): Remove.
14886         (lst_remove_from_sequence): Remove.
14887         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
14888         (lst_niter_for_loop): Remove.
14889         (pbb_update_scattering): Remove.
14890         (lst_update_scattering_under): Remove.
14891         (lst_update_scattering): Remove.
14892         (lst_insert_in_sequence): Remove.
14893         (lst_replace): Remove.
14894         (lst_substitute_3): Remove.
14895         (lst_distribute_lst): Remove.
14896         (lst_remove_all_before_including_pbb): Remove.
14897         (lst_remove_all_before_excluding_pbb): Remove.
14898         (struct scop): Remove original_schedule, transformed_schedule, and
14899         saved_schedule.
14900         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
14901         (SCOP_SAVED_SCHEDULE): Remove.
14902         (poly_scattering_new): Remove.
14903         (poly_scattering_free): Remove.
14904         (poly_scattering_copy): Remove.
14905         (store_scattering_pbb): Remove.
14906         (store_lst_schedule): Remove.
14907         (restore_lst_schedule): Remove.
14908         (store_scattering): Remove.
14909         (restore_scattering_pbb): Remove.
14910         (restore_scattering): Remove.
14911         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
14912         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
14913         compute the scattering polyhedron dimension from the dimension of
14914         pbb->domain.
14915         (build_scop_scattering): Update call to
14916         build_pbb_scattering_polyhedrons.
14917         (build_poly_scop): Remove call to scop_to_lst.
14918         * graphite.c (graphite_transform_loops): Add call to print_scop.
14919         (gate_graphite_transforms): Remove use of flag_loop_block,
14920         flag_loop_interchange, and flag_loop_strip_mine.
14921
14922 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14923
14924         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
14925         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
14926         -floop-nest-optimize.
14927         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
14928         (generate_luj_sepclass): Remove.
14929         (generate_luj_options): Remove.
14930         (set_options): Remove opt_luj.
14931         (scop_to_isl_ast): Remove opt_luj.
14932         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
14933         flag_loop_unroll_jam.
14934         (getPrevectorMap_full): Remove.
14935         (getScheduleForBandList): Remove map_sepcl.
14936         (getScheduleMap): Same.
14937         (apply_schedule_map_to_scop): Remove sepcl.
14938         (optimize_isl): Same.
14939         * graphite-poly.c (apply_poly_transforms): Remove check for
14940         flag_loop_unroll_jam.
14941         (new_poly_bb): Remove map_sepclass.
14942         * graphite-poly.h (struct poly_bb): Same.
14943         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
14944         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
14945         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
14946         * toplev.c (process_options): Remove flag_loop_unroll_jam.
14947
14948 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
14949
14950         PR target/67317
14951         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
14952         (addqi3_cc): Ditto.
14953         (UNSPEC_ADD_CARRY): Remove.
14954         (addqi3_cconly_overflow): New expander.
14955         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
14956         Adjust for changed add<mode>3_carry.
14957         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
14958         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
14959         (<plusminus_insn><mode>3_carry): Remove expander.
14960         (*<plusminus_insn><mode>3_carry): Split insn pattern to
14961         add<mode>3_carry and sub<mode>3_carry.
14962         (plusminus_carry_mnemonic): Remove code attribute.
14963         (add<mode>3_carry): Canonicalize insn pattern.
14964         (*addsi3_carry_zext): Ditto.
14965         (sub<mode>3_carry): Ditto.
14966         (*subsi3_carry_zext): Ditto.
14967         (adcx<mode>3): Remove insn pattern.
14968         (addcarry<mode>): New insn pattern.
14969         (subborrow<mode>): Ditto.
14970         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
14971         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
14972         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
14973         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
14974         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
14975         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
14976         Rewrite expander to not clobber carry flag chains.
14977
14978 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
14979
14980         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
14981         instead of a rotate.
14982
14983 2015-08-27  Marek Polacek  <polacek@redhat.com>
14984
14985         PR middle-end/67005
14986         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
14987         an entry into an irreducible region.
14988
14989 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14990
14991         * configure: Regenerate.
14992
14993 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14994
14995         PR tree-optimization/67283
14996         * tree-sra.c (type_consists_of_records_p): Rename to...
14997         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14998
14999         (completely_scalarize_record): Rename to...
15000         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
15001         (scalarize_elem): New.
15002
15003 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
15004
15005         * tree-sra.c (completely_scalarize_var): Rename to...
15006         (create_total_scalarization_access): ... Here. Drop call to
15007         completely_scalarize_record.
15008
15009         (analyze_all_variable_accesses): Replace completely_scalarize_var
15010         with create_total_scalarization_access and completely_scalarize_record.
15011
15012 2015-08-27  Alan Modra  <amodra@gmail.com>
15013
15014         PR target/67356
15015         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
15016         for operand 1.
15017
15018 2015-08-27  Richard Biener  <rguenther@suse.de>
15019
15020         * passes.c (rest_of_decl_compilation): Guard early_global_decl
15021         call with !seen_error ().
15022         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
15023         early debug generation and finish...
15024         (symbol_table::compile): ... here to put it after a !seen_error ()
15025         guard.
15026
15027 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15028
15029         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
15030         Solaris 12+.
15031
15032 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15033             Andre Vieira  <andre.simoesdiasvieira@arm.com>
15034
15035         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
15036         (*cb<optab><mode>1): Likewise.
15037         (*tb<optab><mode>1): Likewise.
15038         (*cb<optab><mode>1): Likewise.
15039         * config/aarch64/iterators.md (inv_cb): New code attribute.
15040         (inv_tb): Likewise.
15041         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
15042         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
15043
15044 2015-08-27  Richard Biener  <rguenther@suse.de>
15045
15046         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
15047
15048 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15049
15050         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
15051         trap to fix ICE.
15052
15053 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15054
15055         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
15056         Add declaration.
15057
15058         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
15059         comment.
15060         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
15061         floating point in VSX registers.
15062         (rs6000_output_move_128bit): Always print out the set insn if we
15063         can't generate an appropriate 128-bit move.
15064         (rs6000_generate_compare): Add support for IEEE 128-bit floating
15065         point in VSX registers comparisons.
15066         (rs6000_expand_float128_convert): Likewise.
15067
15068         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
15069         predicate for only GPR hard registers.
15070
15071         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
15072         modes to iterators. Add new iterators for moving 128-bit values in
15073         scalar FPR registers and VSX registers.
15074         (FMOVE128): Likewise.
15075         (FMOVE128_FPR): Likewise.
15076         (FMOVE128_GPR): Likewise.
15077         (FMOVE128_VSX): Likewise.
15078         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
15079         in VSX registers.
15080         (IFKF): Likewise.
15081         (IBM128): Likewise.
15082         (TFIFKF): Likewise.
15083         (RELOAD): Add IEEE 128-bit floating point modes.
15084         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
15085         floating point in VSX registers modes.
15086         (signbit<mode>2, IBM128 iterator): Likewise.
15087         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
15088         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
15089         (negtf2): Likewise.
15090         (neg<mode>2, TFIFKF iterator): Likewise.
15091         (negtf2_internal): Likewise.
15092         (abstf2): Likewise.
15093         (abs<mode>2, TFIFKF iterator): Likewise.
15094         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
15095         VSX insn support for negate, absolute value, and negative absolute
15096         value.
15097         (ieee_128bit_vsx_neg<mode>2): Likewise.
15098         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
15099         (ieee_128bit_vsx_abs<mode>2): Likewise.
15100         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
15101         (ieee_128bit_vsx_nabs<mode>2): Likewise.
15102         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
15103         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
15104         floating point in VSX registers.
15105         (unpack<mode>_dm): Likewise.
15106         (unpack<mode>_nodm): Likewise.
15107         (pack<mode>): Likewise.
15108         (unpackv1ti): Likewise.
15109         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
15110         (packv1ti): Likewise.
15111         (pack<mode>, FMOVE128_VSX iterator): Likewise.
15112         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
15113         registers.
15114         (extenddftf2_internal): Likewise.
15115         (trunctfdf2): Likewise.
15116         (trunctfdf2_internal2): Likewise.
15117         (fix_trunc_helper): Likewise.
15118         (fix_trunctfdi2"): Likewise.
15119         (floatditf2): Likewise.
15120         (floatuns<mode>tf2): Likewise.
15121         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
15122         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
15123         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
15124         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
15125         (float<SDI:mode><IFKF:mode>2): Likewise.
15126         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
15127
15128 2015-08-26  Renlin Li  <renlin.li@arm.com>
15129
15130         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
15131
15132 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15133             Jiong Wang  <jiong.wang@arm.com>
15134
15135         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
15136         (tlsie_tiny_<mode>): New define_insn.
15137         (tlsie_tiny_sidi): Likewise.
15138         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15139         SYMBOL_TINY_TLSIE.
15140         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
15141         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15142         SYMBOL_TINY_TLSIE.
15143         (aarch64_expand_mov_immediate): Likewise.
15144         (aarch64_print_operand): Likewise.
15145         (arch64_classify_tls_symbol): Likewise.
15146
15147 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15148
15149         * config/arm/arm-arches.def: Replace single value flags with
15150         an initializer built from ARM_FSET_MAKE_CPU1.
15151         * config/arm/arm-cores.def: Likewise.
15152         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
15153         derivation from the ARM_CORE macro definition, use the given value
15154         instead.
15155         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
15156         ARM_ARCH macro definition, use the given value instead.
15157
15158 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15159
15160         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
15161         feature set.
15162         (struct builtin_description): Replace field mask with field
15163         features.
15164         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
15165         (IWMMXT2_BUILTIN): Likewise.
15166         (IWMMXT2_BUILTIN2): Likewise.
15167         (FP_BUILTIN): Likewise.
15168         (CRC32_BUILTIN): Likewise.
15169         (CRYPTO_BUILTIN): Likewise.
15170         (iwmmx_mbuiltin): Likewise.
15171         (iwmmx2_mbuiltin): Likewise.
15172         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
15173         struct builtin_description.
15174
15175 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15176
15177         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
15178         (struct builtin_description): Change type of mask to unsigned
15179         long.
15180         * config/arm/arm-protos.h (insn_flags): Declare as type
15181         arm_feature_set.
15182         (tune_flags): Likewise.
15183         * config/arm/arm.c (feature_count): New.
15184         (insn_flags): Define as type arm_feature_set.
15185         (tune_flags): Likewise.
15186         (struct processors): Define field flags as type arm_feature_set.
15187         (all_cores): Update for change to struct processors.
15188         (all_architectures): Likewise.
15189         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
15190         macros.
15191         (arm_option_override_internal): Likewise.
15192         (arm_option_override): Likewise.
15193
15194 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15195             Jiong Wang  <jiong.wang@arm.com>
15196
15197         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
15198         tls size for tiny, small, large memory model.
15199         (aarch64_load_symref_appropriately): Support new symbol types.
15200         (aarch64_expand_mov_immediate): Likewise.
15201         (aarch64_print_operand): Likewise.
15202         (aarch64_classify_tls_symbol): Likewise.
15203         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
15204         (aarch64_symbol_type): Likewise.
15205         * config/aarch64/aarch64.md (tlsle): Deleted.
15206         (tlsle12_<mode>): New define_insn.
15207         (tlsle24_<mode>): Likewise.
15208         (tlsle32_<mode>): Likewise.
15209         (tlsle48_<mode>): Likewise.
15210         * doc/sourcebuild.texi (AArch64-specific attributes): Document
15211         "aarch64_tlsle32".
15212
15213 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15214
15215         * config/arm/arm-protos.h (FL_NONE): New.
15216         (FL_ANY): New.
15217         (arm_feature_set): New.
15218         (ARM_FSET_MAKE): New.
15219         (ARM_FSET_MAKE_CPU1): New.
15220         (ARM_FSET_MAKE_CPU2): New.
15221         (ARM_FSET_CPU1): New.
15222         (ARM_FSET_CPU2): New.
15223         (ARM_FSET_EMPTY): New.
15224         (ARM_FSET_ANY): New.
15225         (ARM_FSET_HAS_CPU1): New.
15226         (ARM_FSET_HAS_CPU2): New.
15227         (ARM_FSET_HAS_CPU): New.
15228         (ARM_FSET_ADD_CPU1): New.
15229         (ARM_FSET_ADD_CPU2): New.
15230         (ARM_FSET_DEL_CPU1): New.
15231         (ARM_FSET_DEL_CPU2): New.
15232         (ARM_FSET_UNION): New.
15233         (ARM_FSET_INTER): New.
15234         (ARM_FSET_XOR): New.
15235         (ARM_FSET_EXCLUDE): New.
15236         (AFM_FSET_IS_EMPTY): New.
15237         (ARM_FSET_CPU_SUBSET): New.
15238
15239 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15240
15241         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15242         SYMBOL_TLSLE to SYMBOL_TLSLE24.
15243         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15244         Likewise.
15245         (aarch64_expand_mov_immediate): Likewise.
15246         (aarch64_print_operand): Likewise.
15247         (aarch64_classify_symbol): Likewise.
15248
15249 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15250
15251         * config/aarch64/aarch64.opt (mtls-size): New entry.
15252         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
15253         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
15254         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
15255
15256 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15257
15258         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
15259         ARM_CORE entry.  Fix some white-space.
15260         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
15261         ARM_CORE definition.
15262
15263 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15264
15265         * fold-const.c (fold_binary_loc) : Move Optimize
15266         root(x)*root(y) as root(x*y) to match.pd.
15267         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
15268         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
15269         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
15270         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
15271         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
15272         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
15273         (mult (exps:s @0) (exps:s @1)) : New simplifier.
15274         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
15275         (rdiv @0 (exps:s @1)) : New simplifier.
15276
15277 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
15278
15279         * gcc.c (driver::finalize): Only assign to extra_specs if
15280         [EXTRA_SPECS].
15281
15282 2015-08-25  Marek Polacek  <polacek@redhat.com>
15283
15284         PR middle-end/67330
15285         * varasm.c (declare_weak): Return after giving an error.
15286
15287 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
15288
15289         * gcc-main.c (main): Add params to driver ctor.
15290         * gcc.c (class env_manager): New.
15291         (env): New global.
15292         (env_manager::init): New.
15293         (env_manager::get): New.
15294         (env_manager::xput): New.
15295         (env_manager::restore): New.
15296         Poison getenv and putenv.
15297         (DEFAULT_TARGET_SYSTEM_ROOT): New.
15298         (target_system_root): Update initialization to use
15299         DEFAULT_TARGET_SYSTEM_ROOT.
15300         (struct spec_list): Add field "default_ptr".
15301         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
15302         (init_spec): Likewise.
15303         (set_spec): Clear field "default_ptr".
15304         (read_specs): Free "spec" and "buffer".
15305         (xputenv): Reimplement in terms of env_manager.
15306         (process_command): Replace ::getenv calls with calls to the
15307         env_manager singleton.
15308         (process_brace_body): Free string in three places.
15309         (driver::driver): New.
15310         (driver::~driver): New.
15311         (used_arg): Convert from a function to...
15312         (class used_arg_t): ...this class, and...
15313         (used_arg): ...this new global instance.
15314         (used_arg_t::finalize): New function.
15315         (getenv_spec_function): Add "const" to local "value".  Replace
15316         ::getenv call with call to the env_manager singleton.
15317         (path_prefix_reset): New function.
15318         (driver::finalize): New function.
15319         * gcc.h (driver::driver): New.
15320         (driver::~driver): New.
15321         (driver::finalize): New.
15322
15323 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15324
15325         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
15326         target doesn't have one.
15327
15328 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15329
15330         PR target/67346
15331         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
15332
15333 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15334
15335         PR target/67344
15336         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
15337         a define_insn, remove second alternative.
15338
15339 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
15340             Joseph Myers  <joseph@codesourcery.com>
15341
15342         * gcc.c (struct switchstr): Expand comment.
15343
15344 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15345
15346         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
15347         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
15348
15349 2015-08-25  Richard Biener  <rguenther@suse.de>
15350
15351         PR middle-end/67306
15352         * genmatch.c (expr::gen_transform): Verify the result of
15353         builtin_decl_implicit.
15354         (dt_simplify::gen_1): Likewise.
15355
15356 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15357
15358         * config/arm/constraints.md: Also list Cs and US ARM-specific
15359         constraints as used.
15360
15361 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15362
15363         PR target/66609
15364         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
15365         UNSPEC_PCREL.
15366         (nonpic_symbol_mentioned_p): Likewise.
15367         (sh_delegitimize_address): Likewise.
15368         (sh_function_ok_for_sibcall): Take into account weak symbols.
15369         (sh_expand_sym_label2reg): New.
15370         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
15371         * config/sh/sh.md (UNSPEC_PCREL): New enum.
15372         (call_pcrel): Use sh_expand_sym_label2reg.
15373         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
15374         (symPCREL_label2reg) New expand.
15375
15376 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15377
15378         * graphite-poly.c: Change type of region from void* to sese.
15379         * graphite-poly.h (struct scop): Changing the type of scop::region
15380         from void* to sese. Change accessor macro accordingly.
15381         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
15382
15383 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15384
15385         * graphite-scop-detection.c (stmt_simple_for_scop_p):
15386         Constrain only on INTEGER_TYPE.
15387
15388 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15389
15390         PR target/67211
15391         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
15392         -mefficient-unaligned-vsx on ISA 2.7.
15393
15394         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
15395         option to a masked option.
15396
15397         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
15398         logic for -mefficient-unaligned-vsx so that it is set via an arch
15399         ISA option, instead of being set if -mtune=power8 is set. Move
15400         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
15401         near other default option handling.
15402
15403 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15404
15405         * genflags.c (gen_macro): Delete.
15406         (gen_proto): Don't create GEN.*CALL.* macros.
15407         * gensupport.h (get_file_location): Declare.
15408         * gensupport.c (rtx_locs): New variable.
15409         (read_md_rtx): Record rtx locations.
15410         (get_file_location): New function.
15411         * target-insns.def (call, call_pop, call_value, call_value_pop)
15412         (sibcall, sibcall_value): New patterns.
15413         * gentarget-def.c (parse_argument): New function.
15414         (def_target_insn): Use it.  Handle optional operands.  Raise an
15415         error if an .md pattern has the wrong number of operands for the
15416         pattern name.  Remove the names of unused operands from the prototype.
15417         * builtins.c (expand_builtin_apply): Use targetm functions
15418         instead of HAVE_call_value and GEN_CALL_VALUE.
15419         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
15420         and sibcall_value_pop.
15421         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
15422         of GEN_CALL.
15423         * config/alpha/alpha.md (untyped_call): Likewise.
15424         * config/iq2000/iq2000.md (untyped_call): Likewise.
15425         * config/m68k/m68k.md (untyped_call): Likewise.
15426         * config/mips/mips.md (untyped_call): Likewise.
15427         * config/pa/pa.md (untyped_call): Likewise.
15428         * config/rs6000/rs6000.md (untyped_call): Likewise.
15429         * config/sparc/sparc.md (untyped_call): Likewise.
15430         * config/tilegx/tilegx.md (untyped_call): Likewise.
15431         * config/tilepro/tilepro.md (untyped_call): Likewise.
15432         * config/visium/visium.md (untyped_call): Likewise.
15433         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
15434         gen_call_value instead of GEN_CALL_VALUE.
15435         * config/arm/arm.md (untyped_call): Likewise.
15436         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
15437         GEN_CALL.
15438
15439 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15440
15441         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
15442         (have_cbranchcc4): New variable.
15443         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
15444         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
15445         (if_convert): Initialize have_cbranchcc4.
15446
15447 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15448
15449         * builtins.c (expand_cmpstrn): Rename to...
15450         (expand_cmpstrn_or_cmpmem): ...this.
15451         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
15452         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
15453         Remove mode argument.
15454         (expand_builtin): Update accordingly.
15455
15456 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15457
15458         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
15459         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
15460         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
15461         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
15462         Add predicates for operands 0 and 3.
15463         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
15464         operand.
15465         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
15466         immediate_operand to nonmemory_operand.
15467
15468 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15469
15470         * df-scan.c (df_insn_info_init_fields): New function, split out
15471         from...
15472         (df_insn_create_insn_record): ...here.
15473         (df_insn_info_free_fields): New function, split out from...
15474         (df_insn_info_delete): ...here.
15475         (df_insn_rescan): Use the new functions instead of freeing and
15476         reallocating the df_insn_info.
15477
15478 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15479
15480         * doc/install.texi (Binaries): Remove links no longer valid.
15481
15482 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15483
15484         * config/nvptx/mkoffload.c (process): Replace
15485         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
15486
15487 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
15488
15489         PR target/67329
15490         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
15491
15492 2015-08-24  Renlin Li  <renlin.li@arm.com>
15493
15494         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
15495         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
15496         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
15497         * config/arm/constraints.md ("j"): Add check for high code.
15498
15499 2015-08-24  Tom de Vries  <tom@codesourcery.com>
15500
15501         PR tree-optimization/65468
15502         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
15503         chunk_size is one.
15504
15505 2015-08-24  Nathan Sidwell  <nathan@acm.org>
15506
15507         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
15508         change to nvptx_type_from_mode call. Use arg_promotion for both
15509         split and non-split args.
15510
15511 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15512
15513         * target-insns.def (movstr): New pattern.
15514         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
15515         (expand_movstr): Use targetm rather than HAVE_movstr/
15516         CODE_FOR_movstr.
15517
15518 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15519
15520         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
15521         cast syntax.
15522
15523 2015-08-24  Andrew Pinski  <apinski@cavium.com>
15524
15525         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
15526         AARCH64_EXTRA_TUNING_OPTION.
15527         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
15528         New enum.
15529         (aarch64_extra_tuning_flags): Base the shifted value on the index
15530         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
15531         * config/aarch64/aarch64.c: Remove the last argument to
15532         AARCH64_EXTRA_TUNING_OPTION.
15533
15534 2015-08-23  Nathan Sidwell  <nathan@acm.org>
15535
15536         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
15537         decls.
15538         (nvptx_declare_function_name): Insert formatting tabs for
15539         consistency.
15540
15541 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15542
15543         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
15544         parm_decl, rather than generating a dummy default def in cfun.
15545         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
15546         ssa_name from cfun and child_fn do not share a stmt as def stmt.
15547         (move_stmt_op): Handle PARM_DECl.
15548         (gather_ssa_name_hash_map_from): New function.
15549         (move_sese_region_to_fn): Add default defs for function params, and add
15550         them to vars_map.  Release copied ssa names.
15551         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
15552
15553 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15554
15555         * doc/sourcebuild.texi: Rename vect_no_int_max with
15556         vect_no_int_min_max.  Update description.
15557
15558 2015-08-22  Andrew Pinski  <apinski@cavium.com>
15559
15560          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
15561         * config/aarch64/aarch64-protos.h
15562         (aarch64_fusion_pairs_index): New enum.
15563         (aarch64_fusion_pairs): Base the shifted value on the index instead
15564         Rewrite AARCH64_FUSE_ALL to be based on the end index.
15565         of the argument to AARCH64_FUSION_PAIR.
15566         * config/aarch64/aarch64.c: Remove the last argument to
15567         AARCH64_FUSION_PAIR.
15568
15569 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
15570
15571         * dominance.c (new_zero_array): Define.
15572         (dom_info): Redefine as class with proper encapsulation.
15573         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
15574         Add new members.
15575         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
15576         allocations/deallocations.  Pass function as parameter (instead of
15577         using cfun).
15578         (dom_info::get_idom): Define accessor method.
15579         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
15580         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
15581         (calculate_dominance_info): Adjust to use dom_info class.
15582         (verify_dominators): Likewise.
15583
15584 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
15585
15586         * print-rtl.c (print_rtx): Check the correct range for
15587         flag_dump_unnumbered_links to behave as documented.
15588
15589         PR rtl-optimization/67227
15590         PR rtl-optimization/64164
15591         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
15592         (nonoverlapping_memrefs_p): Test offsets and sizes when given
15593         identical gimple_reg exprs.
15594
15595 2015-08-21  Nathan Sidwell  <nathan@acm.org>
15596
15597         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
15598         expansion.
15599         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
15600         crtl->stack_alignment_needed to determine alignment.
15601         (nvptx_get_drap_rtx): New.
15602         (TARGET_GET_DRAP_RTX): Override.
15603         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
15604
15605 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15606
15607         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
15608
15609 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15610
15611         * configure.ac: Remove uwin* cases.
15612         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
15613         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
15614         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
15615         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
15616         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
15617         i[34567]86-*-uwin*, powerpc-*-beos*.
15618
15619 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
15620
15621         * gencodes.c (gencodes): Print the comma for the preceding
15622         enum value rather than the current one.  Use aliased enum values
15623         rather than #defines for compiled-out patterns.
15624         (main): Update accordingly.  Replace LAST_INSN_CODE with
15625         NUM_INSN_CODES.
15626         * lra.c (insn_code_data): Update accordingly.
15627         (finish_insn_code_data_once, get_static_insn_data): Likewise.
15628         * recog.h (target_recog): Likewise.
15629         (preprocess_insn_constraints): Change parameter to unsigned int.
15630         * recog.c (preprocess_insn_constraints): Likewise.
15631         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
15632         * tree-vect-stmts.c (vectorizable_operation): Simplify.
15633
15634 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
15635
15636         PR rtl-optimization/61657
15637         * loop-iv.c (iv_number_of_iterations): Declare up and down as
15638         unsigned.  Remove superflous uint64_t cast.
15639
15640 2014-08-21  Felix Yang  <felix.yang@huawei.com>
15641             Jiji Jiang  <jiangjiji@huawei.com>
15642
15643         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
15644         argument and get builtin function code directly from CALL.
15645         (gimple_stringop_fixed_value): Modified accordingly.
15646         (gimple_stringops_transform, gimple_stringops_values_to_profile):
15647         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
15648
15649 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15650
15651         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
15652
15653 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15654
15655         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
15656         to match.pd.
15657         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
15658         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
15659         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
15660         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
15661         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
15662         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
15663         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
15664         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
15665         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
15666         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
15667
15668         * match.pd (SIN ) : New Operator.
15669         (TAN) : New Operator.
15670         (mult (SQRT@1 @0) @1) : New simplifier.
15671         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
15672         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15673         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15674         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
15675         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
15676         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
15677         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
15678         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
15679         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
15680         (rdiv @0 (POW:s @1 @2)) : New simplifier.
15681
15682 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
15683
15684         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
15685         loop if EXPR is simplified to const value.
15686
15687 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
15688
15689         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
15690         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
15691
15692 2015-08-21  Richard Biener  <rguenther@suse.de>
15693
15694         PR middle-end/67285
15695         * gimple-fold.c (replace_stmt_with_simplification): Assert
15696         seq is empty when replacing a call with itself but different
15697         arguments.
15698         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
15699         a call require that it is const.
15700
15701 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15702
15703         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
15704         * builtins.c (get_object_alignment_2): Adjust.
15705         * varasm.c (align_variable): Likewise.
15706         (get_variable_align): Likewise.
15707         (build_constant_desc): Likewise.
15708         (force_const_mem): Likewise.
15709         * doc/tm.texi.in: Likewise.
15710         * doc/tm.texi: Regenerate.
15711
15712 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15713
15714         * genconfig.c (main): Always define HAVE_cc0.
15715         * recog.c (rest_of_handle_peephole2): Adjust.
15716
15717 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15718
15719         * reorg.c (relax_delay_slots): Don't use #if to check value of
15720         HAVE_cc0.
15721
15722 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15723
15724         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
15725         * targhooks.c (default_have_conditional_execution): Adjust.
15726
15727 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15728
15729         * rtl.h (rtvec_all_equal_p): Declare.
15730         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
15731         * rtl.c (rtvec_all_equal_p): New function.
15732         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
15733         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
15734         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
15735         * config/arm/arm.c (neon_vdup_constant): Likewise.
15736         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
15737         * config/tilegx/constraints.md (W, Y): Likewise.
15738         * config/tilepro/constraints.md (W, Y): Likewise.
15739         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
15740         (classify_immediate): Use unwrap_const_vec_duplicate.
15741         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
15742         (reg_or_v2s8bit_operand): Likewise.
15743         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
15744         (reg_or_v4s8bit_operand): Likewise.
15745
15746 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15747
15748         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
15749         (vec_shasigma_be): New #define.
15750         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
15751         (VPMSUMH): Likewise.
15752         (VPMSUMW): Likewise.
15753         (VPMSUMD): Likewise.
15754         (VPMSUM): New BU_P8V_OVERLOAD_2.
15755         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
15756         entries for VEC_MADD and VEC_VPMSUM.
15757
15758 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
15759
15760         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
15761         Multiply argument avr_n_flash by 64 to match unit of "KiB".
15762         (avr_pgm_check_var_decl): Same.
15763
15764 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
15765
15766         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
15767         initialization of HFmode scalar type (float16_t) to...
15768         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
15769         code.
15770
15771         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
15772
15773         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
15774         having an -mfp16-format.
15775
15776 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15777
15778         * config/i386/predicates.md (vector_all_ones_operand): Use
15779         CONSTM1_RTX to simplify definition.
15780
15781 2015-08-20  Richard Biener  <rguenther@suse.de>
15782
15783         * toplev.c (compile_file): Remove loop calling late_global_decl
15784         on all symbols.
15785         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
15786         on decls we assembled.
15787
15788 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
15789
15790         * common/config/aarch64/aarch64-common.c
15791         (AARCH64_CPU_NAME_LENGTH): Delete.
15792         (aarch64_option_extension): New.
15793         (all_extensions): Likewise.
15794         (processor_name_to_arch): Likewise.
15795         (arch_to_arch_name): Likewise.
15796         (all_cores): New.
15797         (all_architectures): Likewise.
15798         (aarch64_get_extension_string_for_isa_flags): Likewise.
15799         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
15800         architecture names.
15801         * config/aarch64/aarch64-protos.h
15802         (aarch64_get_extension_string_for_isa_flags): New.
15803         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
15804         (aarch64_option_print): Get the string to print from
15805         aarch64_get_extension_string_for_isa_flags.
15806         (aarch64_declare_function_name): Likewise.
15807         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
15808         (MCPU_TO_MARCH_SPEC): This.
15809         (ASM_CPU_SPEC): Use it.
15810         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
15811         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
15812         (EXTRA_SPEC_FUNCTIONS): Use it.
15813
15814 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
15815
15816         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
15817         expansion when !ISA_HAS_LWL_LWR.
15818         (mips_block_move_straight): Update the size of elements copied to
15819         account for alignment when !ISA_HAS_LWL_LWR.
15820         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
15821
15822 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15823
15824         * expr.c (expand_expr_real_2): Check gimple statement during
15825         LSHIFT_EXPR expand.
15826
15827 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
15828
15829         * common.opt (fstack-protector): Initialize to -1.
15830         (fstack-protector-all): Likewise.
15831         (fstack-protector-strong): Likewise.
15832         (fstack-protector-explicit): Likewise.
15833         * configure.ac: Add --enable-default-ssp.
15834         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
15835         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
15836         -1.
15837         * doc/install.texi: Document --enable-default-ssp.
15838         * config.in: Regenerated.
15839         * configure: Likewise.
15840
15841 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
15842
15843         PR rtl-optimization/64164
15844         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
15845         (parm_in_stack_slot_p): ... this.  Disregard mode, what
15846         matters is whether the parm will live in a pseudo or a stack
15847         slot.
15848         (expand_one_ssa_partition): Deal with params without a default
15849         def.  Disregard mode.
15850         * cfgexpand.h: Renamed function declaration.
15851         * tree-ssa-coalesce.c: Adjust.
15852         * function.c (split_complex_args): Allocate stack slot for
15853         unassigned parms before splitting.
15854         (parm_in_unassigned_mem_p): New.  Use it instead of
15855         parm_maybe_byref_p throughout this file.
15856         (assign_parm_setup_block): Use it.  Accept pseudos in the
15857         expand-assigned rtl.
15858         (assign_parm_setup_reg): Drop BLKmode requirement.
15859         (assign_parm_setup_stack): Allocate and fill in the address of
15860         unassigned MEM parms.
15861
15862 2015-08-19  David Sherwood  <david.sherwood@arm.com>
15863
15864         * genmodes.c (emit_mode_unit_size_inline): New function.
15865         (emit_mode_unit_precision_inline): New function.
15866         (emit_insn_modes_h): Emit new #define.  Emit new functions.
15867         (emit_mode_unit_size): New function.
15868         (emit_mode_unit_precision): New function.
15869         (emit_mode_adjustments): Add mode_unit_size adjustments.
15870         (emit_insn_modes_c): Emit new arrays.
15871         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
15872         use new inline methods.
15873
15874 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15875
15876         * config/aarch64/aarch64.c (bit_count): Delete prototype
15877         and definition.
15878         (aarch64_print_operand): Use popcount_hwi instead of the above.
15879
15880 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15881
15882         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
15883         comment.
15884
15885 2015-08-19  Marek Polacek  <polacek@redhat.com>
15886
15887         PR middle-end/67133
15888         * gimple-ssa-isolate-paths.c
15889         (insert_trap_and_remove_trailing_statements): Rename to ...
15890         (insert_trap): ... this.  Don't remove trailing statements; split
15891         block instead.
15892         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
15893
15894 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
15895
15896         PR other/67042
15897         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
15898         conditionalize the whole on __GNUC__.  Add fallback code
15899         depending neither on undefined nor implementation-defined behaviour.
15900
15901 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15902
15903         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
15904         whitespaces with tab.
15905
15906 2015-08-19  Florian Weimer  <fweimer@redhat.com>
15907
15908         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
15909         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
15910         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
15911         Move Name_Ids instantiation to the Prj.Proc package, to avoid
15912         trampolines.
15913
15914 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15915
15916         * config/arm/arm.c (bounds_check): Use %wd print format
15917         for HOST_WIDE_INT arguments.
15918
15919 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
15920
15921         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
15922         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
15923         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
15924         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
15925         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
15926         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
15927         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
15928         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
15929         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
15930         typedefs.
15931
15932 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
15933
15934         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
15935         function.c, graphite-scop-detection.c, haifa-sched.c,
15936         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
15937         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
15938         varasm.c: Remove typedefs of structs.
15939
15940 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
15941
15942         * config/rs6000/altivec.h (vec_adde): New define.
15943         (vec_addec): Likewise.
15944         (vec_double): Likewise.
15945         (vec_bperm): Likewise.
15946         (vec_gb): Likewise.
15947         * config/rs6000/rs6000-builtin.def (ADDE): New
15948         BU_ALTIVEC_OVERLOAD_3.
15949         (ADDEC): Likewise.
15950         (DOUBLE): New BU_VSX_OVERLOAD_1.
15951         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
15952         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
15953         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
15954         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
15955         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
15956         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
15957         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
15958         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
15959         and P8V_BUILTIN_VEC_VBPERMQ.
15960
15961 2015-08-18  Jason Merrill  <jason@redhat.com>
15962
15963         * print-tree.c (print_node): Handle TREE_BINFO.
15964
15965 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15966
15967         PR middle-end/36757
15968         * builtins.c (expand_builtin_signbit): Add asserts to make sure
15969         we can expand BUILT_IN_SIGNBIT inline.
15970         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
15971         * doc/extend.texi: Document the type-generic __builtin_signbit.
15972
15973 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
15974
15975         PR rtl-optimization/67218
15976         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
15977         (simplify_unary_operation_1): Use it.
15978
15979 2015-08-18  Marek Polacek  <polacek@redhat.com>
15980
15981         PR middle-end/67222
15982         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
15983         if the call isn't valid.
15984         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
15985         gimple_call_builtin_p.
15986         (call_may_clobber_ref_p_1): Likewise.
15987         (stmt_kills_ref_p): Likewise.
15988
15989 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
15990
15991         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
15992         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
15993         (mips_hard_regno_scratch_ok): Likewise.
15994         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
15995         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
15996
15997 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
15998
15999         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
16000         (determine_value_range): Call refine_value_range_using_guard for
16001         each loop initial condition to improve value range.
16002
16003 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
16004
16005         * config/i386/i386.c: Remove include of fibheap.h.
16006
16007 2015-08-17  Richard Biener  <rguenther@suse.de>
16008
16009         PR tree-optimization/67221
16010         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
16011         (sccvn_dom_walker::before_dom_children): Mark backedges of
16012         non-executable blocks as not executable.
16013
16014 2015-08-17  David Sherwood  <david.sherwood@arm.com>
16015
16016         * config/arm/arm.c (neon_element_bits): Replace call to
16017         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
16018         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
16019         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
16020         (neon_vdup_lane<mode>): Likewise.
16021         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
16022         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
16023         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
16024         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
16025         * config/spu/spu.c (arith_immediate_p): Likewise.
16026         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
16027         * expr.c (expand_expr_real_2): Likewise.
16028         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
16029         * simplify-rtx.c (simplify_immed_subreg): Likewise.
16030         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
16031         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
16032         New variable.
16033         * fold-const.c (fold_binary_loc): Replace call to
16034         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
16035         GET_MODE_UNIT_PRECISION (m).
16036
16037 2015-08-17  Mike Stump  <mikestump@comcast.net>
16038
16039         * config/arm/arm.c (arm_block_move_unaligned_straight):
16040         Emit normal move instead of unaligned load when source or destination
16041         are appropriately aligned.
16042
16043 2015-08-17  Richard Biener  <rguenther@suse.de>
16044             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16045
16046         PR middle-end/16107
16047         * match.pd (div (coss (op @0) : New simplifier.
16048
16049 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
16050
16051         PR rtl-optimization/64164
16052         PR bootstrap/66978
16053         PR middle-end/66983
16054         PR rtl-optimization/67000
16055         PR middle-end/67034
16056         PR middle-end/67035
16057         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
16058         * tree-ssa-copyrename.c: Removed.
16059         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
16060         -ftree-coalesce-vars.
16061         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
16062         * common.opt (ftree-copyrename): Ignore.
16063         (ftree-coalesce-inlined-vars): Likewise.
16064         * doc/invoke.texi: Remove the ignored options above.
16065         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
16066         * tree-ssa-coalesce.h: ... here.
16067         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
16068         headers required by it.
16069         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
16070         across variables when flag_tree_coalesce_vars.  Check register
16071         use and promoted modes to allow coalescing.  Do not coalesce
16072         maybe-byref parms with SSA_NAMEs of other variables, or
16073         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
16074         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
16075         with its member functions to tree-ssa-coalesce.c.
16076         (var_map_base_init): Likewise.  Renamed to
16077         compute_samebase_partition_bases.
16078         (partition_view_normal): Drop want_bases parameter.
16079         (partition_view_bitmap): Likewise.
16080         * tree-ssa-live.h: Adjust declarations.
16081         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
16082         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
16083         default defs at the entry point.
16084         (dump_part_var_map): New.
16085         (compute_optimized_partition_bases): New, called by...
16086         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
16087         of compute_samebase_partition_bases.  Adjust.
16088         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
16089         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
16090         (ssa_default_def_partition): New.
16091         (get_rtl_for_parm_ssa_default_def): New.
16092         (align_local_variable, add_stack_var): Support anonymous SSA
16093         names.
16094         (defer_stack_allocation): Likewise.  Declare earlier.
16095         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
16096         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
16097         Do no record deferred-allocation marker in
16098         SA.partition_to_pseudo.
16099         (expand_stack_vars): Adjust check for the marker in it.
16100         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
16101         redundant MEM attr setting.
16102         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
16103         from...
16104         (expand_one_stack_var): ... this.  New wrapper to check and
16105         skip already expanded SSA partitions.
16106         (record_alignment_for_reg_var): New, factored out of...
16107         (expand_one_var): ... this.
16108         (expand_one_ssa_partition): New.
16109         (adjust_one_expanded_partition_var): New.
16110         (expand_one_register_var): Check and skip already expanded SSA
16111         partitions.
16112         (expand_used_vars): Don't create DECLs for anonymous SSA
16113         names.  Expand all SSA partitions, then adjust all SSA names.
16114         (pass::execute): Replace the loops that set
16115         SA.partition_to_pseudo from partition leaders and cleared
16116         DECL_RTL for multi-location variables, and that which used to
16117         rename vars and set attrs, with one that clears DECL_RTL and
16118         checks that PARMs and RESULTs default_defs match DECL_RTL.
16119         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
16120         * emit-rtl.c: Include stor-layout.h.
16121         (set_reg_attrs_for_parm): Handle NULL decl.
16122         (set_reg_attrs_for_decl_rtl): Take mode from expression if
16123         it's not a DECL.
16124         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
16125         rather than its possibly-NULL DECL.
16126         * explow.c (promote_ssa_mode): New.
16127         * explow.h (promote_ssa_mode): Declare.
16128         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16129         (read_complex_part): Export.
16130         * expr.h (read_complex_part): Declare.
16131         * cfgexpand.h (parm_maybe_byref_p): Declare.
16132         * function.c: Include cfgexpand.h.
16133         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16134         (use_register_for_parm_decl): Wrapper for the above to
16135         special-case the result_ptr.
16136         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16137         (split_complex_args): Take assign_parm_data_all argument.
16138         Pass it to rtl_for_parm.  Set up rtl and context for split
16139         args.  Reset complex parm before fetching its default decl
16140         rtl.
16141         (assign_parms_unsplit_complex): Use the default-def complex
16142         parm rtl if it matches the components.
16143         (assign_parms_augmented_arg_list): Adjust.
16144         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16145         multiple locations.  Recognize split complex args.
16146         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16147         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16148         (assign_parm_setup_block): Prefer SSA-assigned location, and
16149         fill in its address if the memory location of a maybe-byref
16150         parm was not assigned by cfgexpand.
16151         (assign_parm_setup_reg): Likewise.  Adjust its mode as
16152         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
16153         sure passed_pointer parms don't need conversion.  Copy address
16154         or value as needed.
16155         (assign_parm_setup_stack): Prefer SSA-assigned location.
16156         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16157         rtl before testing for pointer bounds.  Special-case result_ptr.
16158         (expand_function_start): Maybe reset DECL_RTL of result.
16159         Prefer SSA-assigned location for result and static chain.
16160         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
16161         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
16162         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16163         anonymous SSA names.  Use promote_ssa_mode.
16164         (get_temp_reg): Likewise.
16165         (remove_ssa_form): Adjust.
16166         * stor-layout.c (layout_decl): Don't set mem attributes of
16167         non-MEMs.
16168         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16169         and get its reg_usage for reg invalidation.
16170         (compute_bb_dataflow): Pass it insn.
16171         (emit_notes_in_bb): Likewise.
16172
16173 2015-08-14  Marek Polacek  <polacek@redhat.com>
16174
16175         * tree-core.h (tree_base): Fix typo.
16176
16177 2015-08-14  Marek Polacek  <polacek@redhat.com>
16178
16179         PR middle-end/67133
16180         * gimple.c (infer_nonnull_range_by_attribute): Check that the
16181         nonnull argument position is not outside function arguments.
16182
16183 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
16184
16185         PR target/67143
16186         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
16187         'lconst_atomic' with 'const_atomic'.
16188         (atomic_fetch_<optab><mode>): Likewise.
16189         (atomic_<optab>_fetch<mode>): Likewise.
16190         * config/aarch64/iterators.md (lconst-atomic): Move below
16191         'const_atomic'.
16192         (const_atomic): New.
16193
16194 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
16195             Bernd Schmidt  <bernds@codesourcery.com>
16196
16197         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
16198         debug options.
16199         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
16200         (DWARF2_DEBUGGING_INFO): Don't define.
16201         * debug.h (dwarf2_lineno_debug_hooks): Declare.
16202         * toplev.c (process_options): Add a case for it.
16203         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
16204         (dwarf2out_init): Skip most initializations if
16205         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
16206         case.
16207         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
16208         DWARF2_LINENO_DEBUGGING_INFO.
16209         * opts.c (set_debug_level): Likewise.
16210
16211 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
16212
16213         * config/arm/types.md (is_neon_type): Add missing types.
16214
16215 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
16216
16217         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
16218         for skylake.
16219         * config/i386/i386.c (PTA_SKYLAKE): New macros.
16220         (processor_alias_table): Add skylake description.
16221         (enum processor_model): Add skylake processor.
16222         (arch_names_table): Add skylake record.
16223         * doc/invoke.texi: Add skylake item.
16224
16225 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
16226
16227         * ira-int.h: Include recog.h.
16228         * ira-build.c: Don't include recog.h.
16229         * ira-color.c: Likewise.
16230         * ira-conflicts.c: Likewise.
16231         * ira-costs.c: Likewise.
16232         * ira-emit.c: Likewise.
16233         * ira-lives.c: Likewise.
16234         * ira.c: Likewise.
16235         * sched-deps.c: Likewise.
16236         * sel-sched.c: Likewise.
16237         * target-globals.c: Likewise.
16238
16239 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
16240
16241         PR bootstrap/55035
16242         * reload1.c (elimination_costs_in_insn): Make it obvious to the
16243         compiler that the n_dups and n_operands loop bounds are invariant.
16244
16245 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16246
16247         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
16248         expressions in A and B.
16249
16250 2015-08-13  Richard Biener  <rguenther@suse.de>
16251
16252         * tree.c (nonnull_arg_p): Move from ...
16253         * tree-vrp.c (nonnull_arg_p): ... here.
16254         * tree.h (nonnull_arg_p): Declare.
16255         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
16256         here, register ptr != 0 for nonnull_arg_p pointer arguments.
16257         Properly initialize static chain and by-reference result pointer.
16258         (run_scc_vn): Adjust.
16259
16260 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16261
16262         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
16263         TUNE_I6400.
16264
16265 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16266
16267         * config/aarch64/aarch64-protos.h
16268         (aarch64_gen_atomic_cas): Declare.
16269         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
16270         Choose appropriate instruction pattern for the target.
16271         (aarch64_gen_atomic_cas): New.
16272         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
16273         (atomic_compare_and_swap<mode>_1): Rename to
16274         aarch64_compare_and_swap<mode>.  Fix some indentation.
16275         (aarch64_compare_and_swap<mode>_lse): New.
16276         (aarch64_atomic_cas<mode>): New.
16277
16278 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16279
16280         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
16281         (TARGET_LSE): New.
16282
16283 2015-08-13  Richard Biener  <rguenther@suse.de>
16284
16285         PR tree-optimization/67191
16286         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
16287         assert we value-numbered last stmts operand because it can validly
16288         trigger for unreachable code.
16289
16290 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16291
16292         PR rtl-optimization/67103
16293         * ifcvt.c (noce_try_store_flag_constants): Move
16294         x = (-(test != 0) & (b - a)) + a transformation to...
16295         (noce_try_cmove): ... Here.  Try it if normal conditional
16296         move fails.
16297
16298 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16299
16300         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
16301         pseudo-processors.
16302         * config/mips/mips.md (processor): Remove w32 and w64.
16303
16304 2015-08-13  Richard Biener  <rguenther@suse.de>
16305
16306         PR tree-optimization/66502
16307         PR tree-optimization/67167
16308         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
16309         backedge arguments.
16310         (vn_phi_lookup): Adjust.
16311         (vn_phi_insert): Likewise.
16312         (visit_phi): Prefer to value-number to another PHI node
16313         over value-numbering to a PHI argument.
16314         (init_scc_vn): Mark DFS back edges.
16315
16316 2015-08-13  Richard Biener  <rguenther@suse.de>
16317
16318         * gimple.h (gcall::code_): New constant static member.
16319         (gcond::code_): Likewise.
16320         * gimple.c (gcall::code_): Define.
16321         (gcond::code_): Likewise.
16322         (is_a_helper <const gcond *>): Add.
16323         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
16324         and forward to a new gcall overload with less checking and a
16325         cheaper way to access the operand.
16326         (gimple_call_lhs_ptr): Likewise.
16327         (gimple_call_set_lhs): Likewise.
16328         (gimple_call_internal_p): Likewise.
16329         (gimple_call_with_bounds_p): Likewise.
16330         (gimple_call_set_with_bounds): Likewise.
16331         (gimple_call_internal_fn): Likewise.
16332         (gimple_call_set_ctrl_altering): Likewise.
16333         (gimple_call_ctrl_altering_p): Likewise.
16334         (gimple_call_fntype): Likewise.
16335         (gimple_call_fn): Likewise.
16336         (gimple_call_fn_ptr): Likewise.
16337         (gimple_call_set_fndecl): Likewise.
16338         (gimple_call_fndecl): Likewise.
16339         (gimple_call_chain): Likewise.
16340         (gimple_call_num_args): Likewise.
16341         (gimple_call_arg): Likewise.
16342         (gimple_call_arg_ptr): Likewise.
16343         (gimple_call_set_arg): Likewise.
16344         (gimple_call_noreturn_p): Likewise.
16345         (gimple_cond_code): Likewise.
16346         (gimple_cond_lhs): Likewise.
16347         (gimple_cond_rhs): Likewise.
16348         (gimple_has_lhs): Reduce checking.
16349
16350 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16351
16352         PR middle-end/25529
16353         * match.pd (div (mult @0 @1) @1) : New simplifier.
16354
16355 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
16356
16357         PR target/67071
16358         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
16359         predicate to allow construction of vector constants using the
16360         VSLDOI vector shift instruction.
16361
16362         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
16363         declaration.
16364
16365         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
16366         the number of bytes to be shifted left and filled in with either
16367         all zero or all one bits.
16368         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
16369         methods exist.
16370         (output_vec_const_move): On power8, generate XXLORC to generate
16371         a vector constant with all 1's. Do a split if we need to use a
16372         VSLDOI instruction.
16373
16374         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
16375         properly test for the MSB.
16376
16377         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
16378         vector constants that can be created with VSLDOI.
16379
16380 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16381
16382         revert:
16383         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16384         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16385         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16386         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16387         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16388         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16389         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16390         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16391         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16392
16393 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
16394
16395         * config/xtensa/constraints.md (define_constraint "Y"): New
16396         constraint.
16397         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
16398         * config/xtensa/linux.h (ASM_SPEC): Likewise.
16399         * config/xtensa/predicates.md (move_operand): Match constants
16400         and symbols in the presence of TARGET_AUTO_LITPOOLS.
16401         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
16402         immediate references to TLS data.
16403         (xtensa_emit_move_sequence): Don't force constants to memory in
16404         the presence of TARGET_AUTO_LITPOOLS.
16405         (print_operand): Add 'y' format, same as default, but capable of
16406         printing SF mode constants as well.
16407         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
16408         (movsf_internal): Add movi pattern that loads literal.
16409         (movsf, movdf): Don't force constants to memory in the presence
16410         of TARGET_AUTO_LITPOOLS.
16411         (movdf_internal): Add 'Y' constraint.
16412         * config/xtensa/xtensa.opt (mauto-litpools): New option.
16413         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
16414
16415 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16416
16417         * config/arm/arm-fpus.def: Replace booleans with feature flags.
16418         Update comment.
16419         * config/arm/arm.c (ARM_FPU): Update macro.
16420         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
16421         (TARGET_FP16): Likewise.
16422         (TARGET_CRYPTO): Likewise.
16423         (TARGET_NEON): Likewise.
16424         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
16425         field features.
16426
16427 2015-08-12  Tom de Vries  <tom@codesourcery.com>
16428
16429         PR other/67092
16430         PR other/67098
16431         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
16432         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
16433         accordingly.  Mention default for --with-stage1-ldflags.
16434
16435 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16436
16437         * config/arm/arm.h (arm_fpu_feature_set): New.
16438         (ARM_FPU_FSET_HAS): New.
16439         (FPU_FL_NONE): New.
16440         (FPU_FL_NEON): New.
16441         (FPU_FL_FP16): New.
16442         (FPU_FL_CRYPTO): New.
16443
16444 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16445
16446         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
16447         after -mcmodel=large -fPIC sorry.
16448
16449 2015-08-12  Richard Biener  <rguenther@suse.de>
16450
16451         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
16452         comparison operand order and commutative ternary op operand order.
16453         (sccvn_dom_walker::cond_stack): New state to track temporary
16454         expressions.
16455         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
16456         no longer valid.
16457         (sccvn_dom_walker::record_cond): Add a single temporary conditional
16458         expression.
16459         (sccvn_dom_walker::record_conds): Add a temporary conditional
16460         expressions and all related expressions also true/false.
16461         (sccvn_dom_walker::before_dom_children): Record temporary
16462         expressions based on the controlling condition of a single
16463         predecessor.  When trying to simplify a conditional statement
16464         lookup expressions we might have inserted earlier.
16465
16466 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
16467
16468         PR target/67127
16469         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
16470         to ARM core registers.
16471
16472 2015-08-12  Nathan Sidwell  <nathan@acm.org>
16473
16474         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
16475         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
16476
16477 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
16478
16479         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
16480         line with comments.
16481         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
16482
16483 2015-08-12  Richard Biener  <rguenther@suse.de>
16484
16485         * gimple.h (remove_pointer): New trait.
16486         (GIMPLE_CHECK2): New inline template function.
16487         (gassign::code_): New constant static member.
16488         (is_a_helper<const gassign *>): Add.
16489         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
16490         and forward to a new gassign overload with less checking and a
16491         cheaper way to access the operand.
16492         (gimple_assign_lhs_ptr): Likewise.
16493         (gimple_assign_set_lhs): Likewise.
16494         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
16495         Likewise.
16496         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
16497         Likewise.
16498         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
16499         Likewise.
16500         (gimple_assign_rhs_code): Likewise.
16501         * gimple.c (gassign::code_): Define.
16502
16503 2015-08-12  Richard Biener  <rguenther@suse.de>
16504
16505         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16506         Eliminate edges marked as not executable by SCCVN.
16507         * tree-ssa-sccvn.c: Include gimple-iterator.h.
16508         (cond_dom_walker): Rename to sccvn_dom_walker.
16509         (sccvn_dom_walker::before_dom_children): Value-number defs
16510         of all stmts.
16511         (run_scc_vn): Remove loop value-numbering all SSA names.
16512         Drop not visited SSA names to varying.
16513
16514 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16515
16516         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16517         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16518         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16519         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16520         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16521         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16522         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16523         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16524         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16525
16526 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
16527
16528         PR target/66954
16529         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
16530         to enum feature_priority and feature_list.
16531         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
16532         and isa_names_table.
16533
16534 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16535
16536         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
16537         vect_induction_def.
16538
16539 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16540
16541         PR c/66098
16542         PR c/66711
16543         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
16544         account when deciding what was the command-line status.
16545
16546 2015-08-11  Nathan Sidwell  <nathan@acm.org>
16547
16548         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
16549
16550         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
16551         we're not the only contributor to target phi.
16552
16553 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
16554
16555         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
16556         FIXED_REG0.
16557
16558 2015-08-11  Tom de Vries  <tom@codesourcery.com>
16559
16560         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
16561
16562 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
16563
16564         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
16565         with CPU_SLM.
16566         * config/i386/i386.md (cpu): Remove knl.
16567
16568 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16569
16570         PR libgomp/65742
16571         PR middle-end/66332
16572         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
16573         open-coded sequence.
16574         * omp-low.c (oacc_process_reduction_data): Remove handline of
16575         GOMP_DEVICE_HOST_NONSHM.
16576
16577         * lto-streamer-in.c (lto_input_mode_table): Adjust to
16578         GET_MODE_INNER changes.
16579
16580 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16581             Ilya Verbin  <ilya.verbin@intel.com>
16582
16583         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
16584
16585 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16586
16587         * doc/options.texi (EnabledBy): Document that the argument must be
16588         a Common option.
16589         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
16590         Not enabled by -Wall.
16591         * optc-gen.awk: Give nicer error messages. Detect if the argument
16592         of EnabledBy is not a Common option.
16593         * common.opt (Wnull-dereference): Not enabled by -Wall.
16594         * opt-functions.awk (lang_enabled_by): Nicer error messages.
16595
16596 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16597
16598         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
16599         model == 0x4f as Broadwell.
16600
16601 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
16602
16603         PR rtl-optimization/67028
16604         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
16605         Add test to see if a const_int fits in the new mode.
16606
16607 2015-08-07  DJ Delorie  <dj@redhat.com>
16608
16609         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
16610
16611 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
16612
16613         PR rtl-optimization/67029
16614         * ira-color.c: Include "recog.h" before including "ira-int.h".
16615         * target-globals.c: Likewise.
16616         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
16617         adds an alternative_mask argument and use it instead of
16618         preferred_alternatives.
16619         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
16620         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
16621         * sched-deps.c: Include "ira-int.h" after including "ira.h".
16622         (sched_analyze_insn): Update call to
16623         ira_implicitly_set_insn_hard_regs.
16624         * sel-sched.c: Include "ira-int.h" after including "ira.h".
16625         (implicit_clobber_conflict_p): Update call to
16626         ira_implicitly_set_insn_hard_regs.
16627
16628 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16629
16630         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
16631
16632 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16633
16634         PR target/67002
16635         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
16636         currently_expanding_to_rtl is set.
16637
16638 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
16639
16640         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
16641         * configure: Regenerate.
16642
16643 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16644             Jiong Wang  <jiong.wang@arm.com>
16645
16646         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
16647         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
16648         (REG_CLASS_NAMES): Likewise.
16649         (REG_CLASS_CONTENTS): Likewise.
16650         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
16651         (aarch64_register_move_cost): Likewise.
16652         (aarch64_load_symref_appropriately): Invoke the new added pattern if
16653         possible.
16654         * config/aarch64/constraints.md (Uc0): New constraint.
16655
16656 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16657
16658         * config/aarch64/constraints.md (Usf): Add the test of
16659         aarch64_is_noplt_call_p.
16660
16661 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16662
16663         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
16664         declaration.
16665         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
16666         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
16667         (call_symbol): Likewise.
16668
16669 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
16670
16671         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
16672         for vectorizing multiplication patterns.
16673         * tree-vectorizer.h: Adjust the number of patterns.
16674
16675 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16676
16677         * config/i386/sse.md (*vec_concatv2df): Declare added
16678         alternatives as sselog type.
16679
16680 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16681
16682         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
16683         all GPRs.
16684
16685 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16686
16687         * config/s390/s390.c (s390_expand_tbegin): Expand either
16688         tbegin_1_z13 or tbegin_1 depending on VX flag.
16689         * config/s390/s390.md ("tbegin_1_z13"): New expander.
16690
16691 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16692
16693         * config/s390/s390.opt: Clarify description for -mzvector
16694         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
16695         -mzvector.
16696
16697 2015-08-06  Richard Biener  <rguenther@suse.de>
16698
16699         * gimple.h (gimple_call_set_fn): Access op member directly.
16700         (gimple_call_chain_ptr): Likewise.
16701         (gimple_call_set_chain): Likewise.
16702         (gimple_cond_lhs_ptr): Likewise.
16703         (gimple_cond_set_lhs): Likewise.
16704         (gimple_cond_rhs_ptr): Likewise.
16705         (gimple_cond_set_rhs): Likewise.
16706         (gimple_cond_true_label): Likewise.
16707         (gimple_cond_set_true_label): Likewise.
16708         (gimple_cond_set_false_label): Likewise.
16709         (gimple_cond_false_label): Likewise.
16710         (gimple_label_label): Likewise.
16711         (gimple_label_set_label): Likewise.
16712         (gimple_goto_set_dest): Likewise.
16713         (gimple_asm_input_op): Likewise.
16714         (gimple_asm_input_op_ptr): Likewise.
16715         (gimple_asm_set_input_op): Likewise.
16716         (gimple_asm_output_op): Likewise.
16717         (gimple_asm_output_op_ptr): Likewise.
16718         (gimple_asm_set_output_op): Likewise.
16719         (gimple_asm_clobber_op): Likewise.
16720         (gimple_asm_set_clobber_op): Likewise.
16721         (gimple_asm_label_op): Likewise.
16722         (gimple_asm_set_label_op): Likewise.
16723         (gimple_switch_index): Likewise.
16724         (gimple_switch_index_ptr): Likewise.
16725         (gimple_return_retval_ptr): Likewise.
16726         (gimple_return_retval): Likewise.
16727         (gimple_return_set_retval): Likewise.
16728         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
16729         (gimple_switch_label): Likewise.
16730         (gimple_switch_set_label): Likewise.
16731
16732 2015-08-06  Richard Biener  <rguenther@suse.de>
16733
16734         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
16735         bool comparison canonicalization and restrict to integers.
16736
16737 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
16738
16739         * coretypes.h (enum symbol_visibility): Relocate here.
16740         * flag-types.h (enum symbol_visibility): Remove.
16741         * tree-core.h (enum symbol_visibility): Remove.
16742
16743 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
16744
16745         PR target/66870
16746         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
16747         for no_split_stack function attribute along with
16748         flag_split_stack.
16749         (rs6000_expand_split_stack_prologue): Likewise.
16750
16751 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16752             Jeff Law  <law@redhat.com>
16753
16754         PR c/16351
16755         * doc/invoke.texi (Wnull-dereference): New.
16756         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
16757         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
16758         Warn for potential NULL dereferences.
16759         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
16760         * ubsan.c (instrument_nonnull_arg): Call
16761         infer_nonnull_range_by_attribute.
16762         (instrument_nonnull_return): Likewise.
16763         * common.opt (Wnull-dereference); New.
16764         * gimple.c (infer_nonnull_range): Remove bool arguments.
16765         (infer_nonnull_range_by_dereference): New.
16766         (infer_nonnull_range_by_attribute): New.
16767         * gimple.h: Update declarations.
16768
16769 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16770
16771         * gensupport.c (sequence_num): Replace with...
16772         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
16773         ...these new variables.
16774         (init_rtx_reader_args_cb): Update accordingly.
16775         (get_num_code_insns): Likewise.
16776         (read_md_rtx): Rework to use a while loop and get_c_test.
16777         Use the new counters.  Remove redundant DEFINE_SUBST case.
16778         * genoutput.c (gen_split): Delete.
16779         (main): Don't call it.
16780
16781 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16782
16783         * gensupport.h (get_c_test): Declare.
16784         * gensupport.c (get_c_test): New function.
16785         * genconditions.c (main): Use it.
16786         * genrecog.c (validate_pattern): Likewise.
16787         (match_pattern_1): Likewise.  Remove c_test argument.
16788         (match_pattern): Update accordingly and remove c_test argument.
16789         (main): Update accordingly.
16790
16791 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16792
16793         * gensupport.h (get_num_insn_codes): Declare.
16794         * gensupport.c (get_num_insn_codes): New function.
16795         * genattrtab.c (optimize_attrs): Rename max_insn_code to
16796         num_insn_codes.
16797         (main): Likewise.  Use get_num_insn_codes.
16798         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
16799
16800 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16801
16802         PR middle-end/66311
16803         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
16804         is zero- rather than sign-extended.
16805
16806 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16807
16808         * target-insns.def (can_extend): Delete.
16809
16810 2015-08-05  Richard Biener  <rguenther@suse.de>
16811
16812         PR tree-optimization/67121
16813         * tree-if-conv.c (combine_blocks): Clear range-info produced
16814         by stmts no longer executed conditionally.
16815
16816 2015-08-05  Nick Clifton  <nickc@redhat.com>
16817
16818         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
16819         to allow identical far pointers to remain.
16820
16821 2015-08-05  Richard Biener  <rguenther@suse.de>
16822
16823         PR middle-end/67120
16824         * match.pd: Compare address bases with == if they are decls
16825         or SSA names, not operand_equal_p.  Otherwise fail.
16826
16827 2015-08-05  Richard Biener  <rguenther@suse.de>
16828
16829         PR tree-optimization/67055
16830         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
16831         NULL gimple_block.
16832
16833         * g++.dg/torture/pr67055.C: New testcase.
16834
16835 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16836
16837         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
16838         noavx512vl.
16839         (define_attr "enabled"): Handle avx521vl and noavx512vl.
16840         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
16841         AVX-512 alternative out of SSE.
16842         (define_insn "*vec_concatv2df"): Ditto.
16843
16844 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16845
16846         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
16847         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
16848         CODE_FOR_avx_ptestv4di.
16849         * config/i386/sse.md (define_mode_iterator V_AVX): New.
16850         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
16851         (define_insn "avx_ptest256"): Merge this ...
16852         (define_insn "sse4_1_ptest"): And this ...
16853         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
16854
16855 2015-08-05  Richard Biener  <rguenther@suse.de>
16856
16857         PR tree-optimization/67109
16858         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
16859         against too big groups.  Print whether this is a load or store
16860         group.  Rename from ...
16861         (vect_analyze_group_access): ... this which is now a wrapper
16862         dissolving an invalid group.
16863         (vect_analyze_data_ref_accesses): Print whether this is a load
16864         or store group.
16865
16866 2015-08-05  Richard Biener  <rguenther@suse.de>
16867
16868         PR middle-end/67107
16869         * match.pd: Guard const_binop result checking against NULL_TREE
16870         result.
16871
16872 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
16873
16874         * cse.c (cse_insn): Restoring old behaviour for src_eqv
16875          when dest and value in the REG_EQUAL are same and dest
16876          is STRICT_LOW_PART.
16877
16878 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
16879
16880         * config/moxie/moxie.h (PRINT_OPERAND,
16881           PRINT_OPERAND_ADDRESS): Remove macros.
16882         * config/moxie/moxie-protos.h (moxie_print_operand,
16883           moxie_print_operand_address): Remove declaration.
16884         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
16885           TARGET_PRINT_OPERAND_ADDRESS): Define.
16886           (moxie_print_operand, moxie_print_operand_address): Make static.
16887
16888 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16889
16890         PR target/66731
16891         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
16892         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
16893
16894 2015-08-04  Richard Biener  <rguenther@suse.de>
16895
16896         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
16897         generated code.
16898         (dt_operand::gen_gimple_expr): Adjust.
16899
16900 2015-08-04  Richard Biener  <rguenther@suse.de>
16901
16902         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
16903         bool compares on RHS.
16904         * match.pd: Add X ==/!= !X is false/true pattern.
16905
16906 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
16907
16908         * config/aarch64/aarch64.c: Change inner loop statement cost
16909         to be consistent with other targets.
16910
16911 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
16912
16913         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
16914         targets.
16915
16916 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
16917
16918         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
16919         (machine_function): Remove pseudos field.
16920
16921 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16922
16923         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16924         Exit early and use target_option_current_node if processing current
16925         pragma.
16926
16927 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16928
16929         * doc/extend.texi (AArch64 Function Attributes): New node.
16930         (AArch64 Pragmas): Likewise.
16931
16932 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16933
16934         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16935         Initialize simd builtins if TARGET_SIMD.
16936         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16937         Make sure that the builtins are initialized only once no matter how
16938         many times the function is called.
16939         (aarch64_init_builtins): Unconditionally initialize crc builtins.
16940         (aarch64_relayout_simd_param): New function.
16941         (aarch64_simd_expand_args): Use above during argument expansion.
16942         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
16943         simd builtins if TARGET_SIMD.
16944         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
16945         prototype.
16946         (aarch64_relayout_simd_types): Likewise.
16947
16948 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16949
16950         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
16951         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
16952         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
16953         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16954         static keyword.
16955         (aarch64_reset_previous_fndecl): New function.
16956         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
16957         the string.
16958         * config/aarch64/aarch64-c.c: New file.
16959         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
16960         Push and pop options at beginning and end.  Remove ifdef
16961         __ARM_FEATURE_CRC32.
16962         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
16963         Add pragma +nothing+simd and +nothing+crypto where appropriate.
16964         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
16965         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
16966         Define prototype.
16967         (aarch64_register_pragmas): Likewise.
16968         (aarch64_reset_previous_fndecl): Likewise.
16969         (aarch64_process_target_attr): Likewise.
16970         (aarch64_override_options_internal): Likewise.
16971
16972 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16973
16974         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
16975         New function.
16976         (aarch64_can_inline_p): Likewise.
16977         (TARGET_CAN_INLINE_P): Define.
16978
16979 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16980
16981         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16982         Remove static.  Handle OPT_mgeneral_regs_only,
16983         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
16984         OPT_momit_leaf_frame_pointer.
16985         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
16986         (aarch64_attr_opt_type): New enum.
16987         (aarch64_attribute_info): New struct.
16988         (aarch64_handle_attr_arch): New function.
16989         (aarch64_handle_attr_cpu): Likewise.
16990         (aarch64_handle_attr_tune): Likewise.
16991         (aarch64_handle_attr_isa_flags): Likewise.
16992         (aarch64_attributes): New table.
16993         (aarch64_process_one_target_attr): New function.
16994         (num_occurences_in_str): Likewise.
16995         (aarch64_process_target_attr): Likewise.
16996         (aarch64_option_valid_attribute_p): Likewise.
16997         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
16998         * config/aarch64/aarch64-protos.h: Include input.h
16999         (aarch64_handle_option): Declare prototype.
17000
17001 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17002
17003         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
17004         * config/aarch64/aarch64.c: Include target-globals.h
17005         (aarch64_previous_fndecl): New variable.
17006         (aarch64_set_current_function): New function.
17007         (TARGET_SET_CURRENT_FUNCTION): Define.
17008
17009 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17010
17011         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
17012         (explicit_arch): Likewise.
17013         (x_aarch64_isa_flags): Likewise.
17014         (mgeneral-regs-only): Mark as Save.
17015         (mfix-cortex-a53-835769): Likewise.
17016         (mcmodel=): Likewise.
17017         (mstrict-align): Likewise.
17018         (momit-leaf-frame-pointer): Likewise.
17019         (mtls-dialect): Likewise.
17020         (master=): Likewise.
17021         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
17022         (aarch64_isa_flags): Remove extern declaration.
17023         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
17024         to indicate success or failure.
17025         (aarch64_validate_march): Likewise.
17026         (aarch64_validate_mtune): Likewise.
17027         (aarch64_isa_flags): Delete.
17028         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
17029         instead of aarch64_isa_flags.
17030         (aarch64_get_tune_cpu): New function.
17031         (aarch64_get_arch): Likewise.
17032         (aarch64_override_options): Use above and set up explicit_tune_core
17033         and explicit_arch.
17034         (aarch64_print_extension): Move earlier in file.  Add isa_flags
17035         argument and use that instead of the global aarch64_isa_flags.
17036         (aarch64_option_save): New function.
17037         (aarch64_option_restore): Likewise.
17038         (aarch64_option_print): Likewise.
17039         (aarch64_declare_function_name): Likewise.
17040         (aarch64_start_file): Delete.
17041         (TARGET_ASM_FILE_START): Do not define.
17042         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
17043         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
17044         Declare prototype.
17045
17046 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17047
17048         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
17049         flag_omit_leaf_frame_pointer to 2.
17050
17051 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17052
17053         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
17054         define to 0 or 1.
17055         (TARGET_FIX_ERR_A53_835769): New macro.
17056         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
17057         handling of opts->x_aarch64_fix_a53_err835769.
17058         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
17059         than aarch64_fix_a53_err835769.
17060         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
17061         * config/aarch64/aarch64-linux.h: Likewise.
17062
17063 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
17064
17065         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
17066         ix86_expand_int_movcc as boolean.
17067
17068 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17069
17070         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
17071         (aarch64_cpu_string): Likewise.
17072         (aarch64_tune_string): Likewise.
17073         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
17074         (aarch64_parse_extension): Return aarch64_parse_opt_result.
17075         Add extra argument to put result into.
17076         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
17077         (aarch64_parse_cpu): Add arguments to put results into. Return
17078         aarch64_parse_opt_result.
17079         (aarch64_parse_tune): Likewise.
17080         (aarch64_override_options_after_change_1): New function.
17081         (aarch64_override_options_internal): New function.
17082         (aarch64_validate_mcpu): Likewise.
17083         (aarch64_validate_march): Likewise.
17084         (aarch64_validate_mtune): Likewise.
17085         (aarch64_override_options): Update to reflect above changes.
17086         Move some logic into aarch64_override_options_internal.
17087         Initialize target_option_default_node and target_option_current_node.
17088         (aarch64_override_options_after_change): Move logic into
17089         aarch64_override_options_after_change_1 and call it with global_options.
17090         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
17091         flag values from that.
17092
17093 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17094
17095         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17096         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
17097         * config/aarch64/aarch64.c (struct processor): Add arch field.
17098         (all_architectures): Handle above, move above all_cores.
17099         (all_cores): Handle above.
17100         (aarch64_parse_arch): Handle above changes.
17101         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
17102         above.  Update comments.
17103         (armv8.1-a): Likewise.
17104         * config/aarch64/aarch64-cores.def: Update according to above.
17105         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
17106         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
17107         aarch64_arch_driver_info.
17108
17109 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17110
17111         * config/aarch64/aarch64.c (struct processor): Add ident field.
17112         Rename core sched_core.
17113         (all_cores): Handle above changes.
17114         (all_architectures): Likewise.
17115         (aarch64_parse_arch): Likewise.
17116         (aarch64_override_options): Likewise.
17117
17118 2015-08-04  Richard Biener  <rguenther@suse.de>
17119
17120         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
17121         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
17122         comparisons embedded in [VEC_]COND_EXPRs.
17123
17124 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
17125
17126         * tree-if-conv.c: Fix various typos in comments.
17127         * tree-vect-stmts.c: Likewise.
17128
17129 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17130
17131         PR tree-optimization/67043
17132         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
17133         preheader after hoisting invariant in it.
17134         (find_defs): Force recomputation of all luids.
17135
17136 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
17137
17138         * config/rs6000/htm.md (tabort.): Restrict the source operand to
17139         using a base register.
17140
17141 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
17142
17143         * main.c (main): Pass in NULL for toplev's external_timer.
17144         * timevar.c: Include coretypes.h.
17145         (class timer::named_items): New.
17146         (timer::named_items::named_items): New.
17147         (timer::named_items::~named_items): New.
17148         (timer::named_items::push): New.
17149         (timer::named_items::pop): New.
17150         (timer::named_items::print): New.
17151         (timer::timer): Initialize field "m_jit_client_items".
17152         (timer::~timer): New.
17153         (timer::push): Move bulk of implementation to...
17154         (timer::push_internal): ...here.  New function.
17155         (timer::pop): Move bulk of implementation to...
17156         (timer::pop_internal): ...here.  New function.
17157         (timer::push_client_item): New.
17158         (timer::pop_client_item): New.
17159         (timer::print_row): New function, taken from timer::print.
17160         (timer::print): Print "GCC items" header if we also have client
17161         items.  Move row-printing to timer::print_row.  Print any client
17162         items.
17163         (timer::get_topmost_item_name): New method.
17164         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
17165         (TV_JIT_CLIENT_CODE): New.
17166         * timevar.h (timer::push_client_item): New declaration.
17167         (timer::pop_client_item): New declaration.
17168         (timer::get_topmost_item_name): New method.
17169         (timer::push_internal): New declaration.
17170         (timer::pop_internal): New declaration.
17171         (timer::print_row): New declaration.
17172         (timer::named_items): New declaration.
17173         (timer::m_jit_client_items): New field.
17174         (timer): Add friend class named_items.
17175         (auto_timevar::auto_timevar): Add timer param.
17176         (auto_timevar::~auto_timevar): Use field "m_timer".
17177         (auto_timevar::m_timer): New field.
17178         * toplev.c (initialize_rtl): Add g_timer as param when
17179         constructing auto_timevar instance.
17180         (toplev::toplev): Add "external_timer" param, and use it to
17181         initialize the "g_timer" global if non-NULL.
17182         (toplev::~toplev): If this created "g_timer", delete it.
17183         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
17184         with "external_timer" timer *.
17185
17186 2015-08-03  Alexander Basov <coohpt@gmail.com>
17187
17188         PR middle-end/64744
17189         PR middle-end/48470
17190         PR middle-end/43404
17191         * cfgexpand.c (expand_one_var): Add check if stack is going to
17192         be used in naked function.
17193         * expr.c (expand_expr_addr_expr_1): Remove excess checking
17194         whether expression should not reside in MEM.
17195         * function.c (use_register_for_decl): Do not use registers for
17196         non-register things (volatile, float, BLKMode) in naked functions.
17197
17198 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
17199
17200         PR target/67060
17201         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
17202         Adjust splits to match new pattern.
17203
17204 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
17205
17206         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
17207         (VEC_M): Likewise.
17208         (VEC_N): Likewise.
17209         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
17210         point in VSX registers.
17211
17212         * config/rs6000/constraints.md (wb constraint): Document unused
17213         w<x> constraint.
17214         (we constraint): Likewise.
17215         (wo constraint): Likewise.
17216         (wp constraint): New constraint for IEEE 128-bit floating point in
17217         VSX registers.
17218         (wq constraint): Likewise.
17219
17220         * config/rs6000/predicates.md (easy_fp_constant): Add support for
17221         IEEE 128-bit floating point in VSX registers.
17222         (easy_scalar_constant): Likewise.
17223
17224         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
17225         constraints (wp, wq) for IEEE 128-bit floating point in VSX
17226         registers.
17227         (rs6000_init_hard_regno_mode_ok): Likewise.
17228
17229         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
17230         floating point in VSX registers.
17231         (VSX_L): Likewise.
17232         (VSX_M): Likewise.
17233         (VSX_M2): Likewise.
17234         (VSm): Likewise.
17235         (VSs): Likewise.
17236         (VSr): Likewise.
17237         (VSa): Likewise.
17238         (VSv): Likewise.
17239         (vsx_le_permute_<mode>): Add support to properly swap bytes for
17240         IEEE 128-bit floating point in VSX registers on little endian.
17241         (vsx_le_undo_permute_<mode>): Likewise.
17242         (vsx_le_perm_load_<mode>): Likewise.
17243         (vsx_le_perm_store_<mode>): Likewise.
17244         (splitters for IEEE 128-bit fp moves): Likewise.
17245
17246         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
17247         wq constraints.
17248
17249         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
17250         floating point in VSX registers.
17251         (VM2): Likewise.
17252
17253         * doc/md.text (Machine Constraints): Document wp and wq
17254         constraints on PowerPC.
17255
17256 2015-08-03  Jeff Law  <law@redhat.com>
17257
17258         PR middle-end/66314
17259         PR gcov-profile/66899
17260         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
17261         iterate over the jump threading paths when an element in the
17262         jump threading paths array is eliminated.
17263
17264 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
17265
17266         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
17267
17268 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
17269
17270         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
17271         is_use_properly_guarded the variable def_preds.  Free its
17272         contents before returning.
17273         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
17274         (is_use_properly_guarded): Replace local variable def_preds with
17275         a parameter.  Adjust accordingly.  Only update *def_preds if it's
17276         the empty vector.
17277
17278 2015-08-03  Richard Biener  <rguenther@suse.de>
17279
17280         * genmatch.c (simplify::for_subst_vec): New member.
17281         (binary_ok): New helper for for lowering.
17282         (lower_for): Delay substituting operators into result expressions
17283         if we can merge the results eventually again.
17284         (capture_info::walk_result): Adjust for user_id appearing as
17285         result expression operator.
17286         (expr::gen_transform): Likewise.
17287         (dt_simplify::gen_1): Likewise.
17288         (dt_simplify::gen): Pass not substituted operators to tail
17289         functions or initialize local variable with it.
17290         (decision_tree::gen): Adjust function signature.
17291         * match.pd: Fix tests against global code and add default
17292         cases to switch stmts.
17293
17294 2015-08-03  Richard Biener  <rguenther@suse.de>
17295
17296         * genmatch.c (dt_simplify::gen): Create captures array
17297         with an initializer.
17298
17299 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17300
17301         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
17302         the host compiler is affected by placement new aliasing bug.
17303         * configure: Regenerate.
17304         * Makefile.in (ALIASING_FLAGS): New variable.
17305         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
17306
17307 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17308
17309         PR target/66731
17310         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
17311         (negmulsf3_vfp): Likewise.
17312         (muldf3negdf_vfp): Disable for -frounding-math.
17313         (mulsf3negsf_vfp): Likewise.
17314         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
17315         fix MULT cost with -frounding-math.
17316
17317 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17318
17319         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
17320         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
17321         explicit.  Prefer to add the flag whenever possible.
17322         (noce_process_if_block): Try noce_try_store_flag_constants before
17323         noce_try_cmove.
17324
17325 2015-08-03  Richard Biener  <rguenther@suse.de>
17326
17327         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
17328         New hash-map to record equivalent transforms.
17329         (dt_node::analyze): Populate the equivalent transforms hash-map.
17330         (dt_simplify::info): Add reference to hash-map entry.
17331         (dt_simplify::gen): If we have split out a function for the
17332         transform, generate a call to it.
17333         (sinfo_hashmap_traits::hash): New function.
17334         (compare_op): New helper function for ...
17335         (sinfo_hashmap_traits::equal_keys): ... this new function.
17336         (decision_tree::gen): Split out common equivalent transforms
17337         into functions.
17338
17339 2015-08-03  Richard Biener  <rguenther@suse.de>
17340
17341         * gimple-fold.c (fold_gimple_assign): Remove folding of
17342         the comparison in COND_EXPRs.
17343
17344 2015-08-03  Richard Biener  <rguenther@suse.de>
17345
17346         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
17347         on the rhs of assignments first simplify the embedded
17348         GENERIC condition.
17349
17350 2015-08-03  Richard Biener  <rguenther@suse.de>
17351
17352         PR tree-optimization/66917
17353         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
17354         field.
17355         (DR_VECT_AUX): New macro.
17356         (set_dr_misalignment): Adjust.
17357         (dr_misalignment): Likewise.
17358         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17359         Compute whether the base is at least element aligned.
17360         * tree-vect-stmts.c (ensure_base_align): Adjust.
17361         (vectorizable_store): If the base is not element aligned
17362         preserve alignment of the original access if misalignment is unknown.
17363         (vectorizable_load): Likewise.
17364
17365 2015-08-02  Martin Sebor  <msebor@redhat.com>
17366
17367         * c-family/c.opt (-Wframe-address): New warning option.
17368         * doc/invoke.texi (Wframe-address): Document it.
17369         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
17370         Clarify possible effects of calling the functions with non-zero
17371         arguments and mention -Wframe-address.
17372         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
17373
17374 2015-08-01  Michael Collison  <michael.collison@linaro.org
17375             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17376
17377         * config/arm/arm.md (*arm_smin_cmp): New pattern.
17378         (*arm_umin_cmp): Likewise.
17379
17380 2015-08-01  Caroline Tice  <cmtice@google.com>
17381
17382         PR 66521
17383         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
17384         global variables.
17385         (vtbl_find_mangled_name):  New function.
17386         (vtbl_register_mangled_name):  New function.
17387         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
17388         mangled name in mangled name vectors.
17389         (find_or_create_vtbl_map_node):  Ditto.
17390         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
17391         update recursion_depth on function entry; pass it to every recursive
17392         call; automatically exit if depth > 25 (give up looking at that point).
17393         (verify_bb_vtables):  Initialize recursion_depth and pass it to
17394         var_is_used_for_virtual_call_p.
17395         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
17396         global variable decls.
17397         (vtbl_register_mangled_name): New extern function decl.
17398
17399 2015-08-01  Tom de Vries  <tom@codesourcery.com>
17400
17401         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
17402         function.
17403         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
17404         Declare.
17405         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
17406         operation_no_trapping_overflow.  Allow non-overflow operations.
17407         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
17408         operations.
17409
17410 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
17411
17412         PR target/67049
17413         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
17414
17415 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17416
17417         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
17418         Enable for TARGET_32BIT.
17419         (*if_move_neg): Likewise.
17420
17421 2015-07-31  Nick Clifton  <nickc@redhat.com>
17422
17423         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
17424         Returns true for __model__.
17425         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17426
17427 2015-07-31  Alan Modra  <amodra@gmail.com>
17428
17429         PR target/66870
17430         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
17431         (rs6000_emit_prologue): Set it.
17432         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
17433
17434 2015-07-31  Richard Biener  <rguenther@suse.de>
17435
17436         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
17437         -> X == (C1 ^ C2) which is already implemented in match.pd.
17438         Remove redundant dispatching to fold_relational_const.
17439         Move unordered self and NaN compares ...
17440         * match.pd: ... as patterns here.  Remove some stray captures
17441         and add a comment.
17442
17443 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
17444
17445         * config/i386/i386.c
17446         (bdesc_special_args): Convert mask type from signed to unsigned for
17447         masked builtins.
17448         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
17449         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
17450         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
17451         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
17452         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
17453         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
17454         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
17455         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
17456         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
17457         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
17458         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
17459         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
17460         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
17461         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
17462         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
17463         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
17464         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
17465         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
17466         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
17467         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
17468         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
17469         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
17470         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
17471         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
17472         * config/i386/i386-builtin-types.def
17473         (V16QI_FTYPE_V16SI): Remove.
17474         (V8DF_FTYPE_V8SI): Ditto.
17475         (V8HI_FTYPE_V8DI): Ditto.
17476         (V8SI_FTYPE_V8DI): Ditto.
17477         (V8SF_FTYPE_V8DF): Ditto.
17478         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
17479         (V16HI_FTYPE_V16SI): Ditto.
17480         (V16SF_FTYPE_V16HI): Ditto.
17481         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
17482         (V16SF_FTYPE_V16SI): Ditto.
17483         (V4DI_FTYPE_V4DI): Ditto.
17484         (V16SI_FTYPE_V16SF): Ditto.
17485         (V16SF_FTYPE_FLOAT): Ditto.
17486         (V8DF_FTYPE_DOUBLE): Ditto.
17487         (V8DI_FTYPE_INT64): Ditto.
17488         (V8DI_FTYPE_V4DI): Ditto.
17489         (V16QI_FTYPE_V8DI): Ditto.
17490         (UINT_FTYPE_V4SF): Ditto.
17491         (UINT64_FTYPE_V4SF): Ditto.
17492         (UINT_FTYPE_V2DF): Ditto.
17493         (UINT64_FTYPE_V2DF): Ditto.
17494         (V16SI_FTYPE_V16SI): Ditto.
17495         (V8DI_FTYPE_V8DI): Ditto.
17496         (V16SI_FTYPE_PV4SI): Ditto.
17497         (V16SF_FTYPE_PV4SF): Ditto.
17498         (V8DI_FTYPE_PV2DI): Ditto.
17499         (V8DF_FTYPE_PV2DF): Ditto.
17500         (V4DI_FTYPE_PV2DI): Ditto.
17501         (V4DF_FTYPE_PV2DF): Ditto.
17502         (V16SI_FTYPE_PV2SI): Ditto.
17503         (V16SF_FTYPE_PV2SF): Ditto.
17504         (V8DI_FTYPE_PV4DI): Ditto.
17505         (V8DF_FTYPE_PV4DF): Ditto.
17506         (V8SF_FTYPE_FLOAT): Ditto.
17507         (V4SF_FTYPE_FLOAT): Ditto.
17508         (V4DF_FTYPE_DOUBLE): Ditto.
17509         (V8SF_FTYPE_PV4SF): Ditto.
17510         (V8SI_FTYPE_PV4SI): Ditto.
17511         (V4SI_FTYPE_PV2SI): Ditto.
17512         (V8SF_FTYPE_PV2SF): Ditto.
17513         (V8SI_FTYPE_PV2SI): Ditto.
17514         (V16SF_FTYPE_PV8SF): Ditto.
17515         (V16SI_FTYPE_PV8SI): Ditto.
17516         (V8DI_FTYPE_V8SF): Ditto.
17517         (V4DI_FTYPE_V4SF): Ditto.
17518         (V2DI_FTYPE_V4SF): Ditto.
17519         (V64QI_FTYPE_QI): Ditto.
17520         (V32HI_FTYPE_HI): Ditto.
17521         (V8UHI_FTYPE_V8UHI): Ditto.
17522         (V16UHI_FTYPE_V16UHI): Ditto.
17523         (V32UHI_FTYPE_V32UHI): Ditto.
17524         (V2UDI_FTYPE_V2UDI): Ditto.
17525         (V4UDI_FTYPE_V4UDI): Ditto.
17526         (V8UDI_FTYPE_V8UDI): Ditto.
17527         (V4USI_FTYPE_V4USI): Ditto.
17528         (V8USI_FTYPE_V8USI): Ditto.
17529         (V16USI_FTYPE_V16USI): Ditto.
17530         (V2DF_FTYPE_V2DF_UINT64): Ditto.
17531         (V2DI_FTYPE_V2DF_V2DF): Ditto.
17532         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
17533         (V8DF_FTYPE_V8DF_V8DI): Ditto.
17534         (V4SF_FTYPE_V4SF_UINT64): Ditto.
17535         (V4SI_FTYPE_V4SF_V4SF): Ditto.
17536         (V16SF_FTYPE_V16SF_V16SI): Ditto.
17537         (V64QI_FTYPE_V32HI_V32HI): Ditto.
17538         (V32HI_FTYPE_V16SI_V16SI): Ditto.
17539         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
17540         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
17541         (V32HI_FTYPE_V64QI_V64QI): Ditto.
17542         (V32HI_FTYPE_V32HI_V32HI): Ditto.
17543         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
17544         (V16SI_FTYPE_V16SI_V4SI): Ditto.
17545         (V16SI_FTYPE_V16SI_V16SI): Ditto.
17546         (V16SI_FTYPE_V32HI_V32HI): Ditto.
17547         (V16SI_FTYPE_V16SI_SI): Ditto.
17548         (V8DI_FTYPE_V8DI_V8DI): Ditto.
17549         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
17550         (V8DI_FTYPE_V16SI_V16SI): Ditto.
17551         (V8DI_FTYPE_V8DI_V2DI): Ditto.
17552         (QI_FTYPE_QI): Ditto.
17553         (SI_FTYPE_SI): Ditto.
17554         (DI_FTYPE_DI): Ditto.
17555         (QI_FTYPE_QI_QI): Ditto.
17556         (QI_FTYPE_QI_INT): Ditto.
17557         (HI_FTYPE_HI_INT): Ditto.
17558         (SI_FTYPE_SI_INT): Ditto.
17559         (DI_FTYPE_DI_INT): Ditto.
17560         (HI_FTYPE_V16QI_V16QI): Ditto.
17561         (SI_FTYPE_V32QI_V32QI): Ditto.
17562         (DI_FTYPE_V64QI_V64QI): Ditto.
17563         (QI_FTYPE_V8HI_V8HI): Ditto.
17564         (HI_FTYPE_V16HI_V16HI): Ditto.
17565         (SI_FTYPE_V32HI_V32HI): Ditto.
17566         (QI_FTYPE_V4SI_V4SI): Ditto.
17567         (QI_FTYPE_V8SI_V8SI): Ditto.
17568         (QI_FTYPE_V2DI_V2DI): Ditto.
17569         (QI_FTYPE_V4DI_V4DI): Ditto.
17570         (QI_FTYPE_V8DI_V8DI): Ditto.
17571         (HI_FTYPE_V16SI_V16SI): Ditto.
17572         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
17573         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
17574         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
17575         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
17576         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
17577         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
17578         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
17579         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
17580         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
17581         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
17582         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
17583         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
17584         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
17585         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
17586         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
17587         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
17588         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
17589         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
17590         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
17591         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
17592         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
17593         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
17594         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
17595         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
17596         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
17597         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
17598         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
17599         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
17600         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
17601         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
17602         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
17603         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
17604         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
17605         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
17606         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
17607         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
17608         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
17609         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
17610         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
17611         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
17612         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
17613         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
17614         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
17615         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
17616         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
17617         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
17618         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
17619         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
17620         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
17621         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
17622         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
17623         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
17624         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
17625         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
17626         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
17627         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
17628         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
17629         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
17630         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
17631         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
17632         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
17633         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
17634         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
17635         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
17636         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
17637         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
17638         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
17639         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
17640         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
17641         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
17642         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
17643         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
17644         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
17645         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
17646         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
17647         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
17648         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
17649         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
17650         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
17651         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
17652         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
17653         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
17654         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
17655         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
17656         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
17657         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
17658         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
17659         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
17660         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
17661         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
17662         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
17663         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
17664         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
17665         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
17666         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
17667         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
17668         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
17669         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
17670         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
17671         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
17672         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
17673         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
17674         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
17675         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
17676         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
17677         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
17678         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
17679         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
17680         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
17681         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
17682         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
17683         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
17684         (HI_FTYPE_HI): Ditto.
17685         (HI_FTYPE_V16QI): Ditto.
17686         (SI_FTYPE_V32QI): Ditto.
17687         (DI_FTYPE_V64QI): Ditto.
17688         (QI_FTYPE_V8HI): Ditto.
17689         (HI_FTYPE_V16HI): Ditto.
17690         (SI_FTYPE_V32HI): Ditto.
17691         (QI_FTYPE_V4SI): Ditto.
17692         (QI_FTYPE_V8SI): Ditto.
17693         (HI_FTYPE_V16SI): Ditto.
17694         (QI_FTYPE_V2DI): Ditto.
17695         (QI_FTYPE_V4DI): Ditto.
17696         (QI_FTYPE_V8DI): Ditto.
17697         (V16QI_FTYPE_HI): Ditto.
17698         (V32QI_FTYPE_SI): Ditto.
17699         (V64QI_FTYPE_DI): Ditto.
17700         (V8HI_FTYPE_QI): Ditto.
17701         (V16HI_FTYPE_HI): Ditto.
17702         (V32HI_FTYPE_SI): Ditto.
17703         (V4SI_FTYPE_QI): Ditto.
17704         (V4SI_FTYPE_HI): Ditto.
17705         (V8SI_FTYPE_QI): Ditto.
17706         (V8SI_FTYPE_HI): Ditto.
17707         (V2DI_FTYPE_QI): Ditto.
17708         (V4DI_FTYPE_QI): Ditto.
17709         (HI_FTYPE_HI_HI): Ditto.
17710         (SI_FTYPE_SI_SI): Ditto.
17711         (DI_FTYPE_DI_DI): Ditto.
17712         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
17713         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
17714         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
17715         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
17716         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
17717         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
17718         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
17719         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
17720         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
17721         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
17722         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
17723         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
17724         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
17725         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
17726         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
17727         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
17728         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
17729         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
17730         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
17731         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
17732         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
17733         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
17734         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
17735         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
17736         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
17737         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
17738         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
17739         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
17740         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
17741         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
17742         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
17743         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
17744         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
17745         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
17746         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
17747         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
17748         (V16SI_FTYPE_HI): Ditto.
17749         (V8DI_FTYPE_QI): Ditto.
17750         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
17751         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
17752         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
17753         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
17754         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
17755         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
17756         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
17757         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
17758         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
17759         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
17760         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
17761         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
17762         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
17763         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
17764         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
17765         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
17766         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
17767         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
17768         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
17769         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
17770         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
17771         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
17772         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
17773         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
17774         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
17775         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
17776         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
17777         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
17778         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
17779         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
17780         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
17781         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
17782         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
17783         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
17784         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
17785         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
17786         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
17787         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
17788         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
17789         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
17790         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
17791         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
17792         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
17793         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
17794         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
17795         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
17796         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
17797         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
17798         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
17799         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
17800         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
17801         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
17802         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
17803         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
17804         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
17805         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
17806         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
17807         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
17808         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
17809         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
17810         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
17811         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
17812         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
17813         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
17814         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
17815         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
17816         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
17817         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
17818         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
17819         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
17820         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
17821         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
17822         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
17823         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
17824         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
17825         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
17826         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
17827         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
17828         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
17829         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
17830         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
17831         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
17832         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
17833         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
17834         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
17835         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
17836         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
17837         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
17838         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
17839         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
17840         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
17841         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
17842         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
17843         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
17844         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
17845         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
17846         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
17847         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
17848         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
17849         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
17850         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
17851         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
17852         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
17853         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
17854         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
17855         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
17856         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
17857         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
17858         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
17859         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
17860         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
17861         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
17862         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
17863         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
17864         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
17865         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
17866         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
17867         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
17868         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
17869         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
17870         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
17871         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
17872         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
17873         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
17874         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
17875         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
17876         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
17877         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
17878         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
17879         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
17880         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
17881         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
17882         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
17883         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
17884         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
17885         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
17886         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
17887         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
17888         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
17889         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
17890         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
17891         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
17892         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
17893         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
17894         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
17895         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
17896         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
17897         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
17898         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
17899         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
17900         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
17901         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
17902         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
17903         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
17904         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
17905         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
17906         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
17907         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
17908         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
17909         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
17910         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
17911         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
17912         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
17913         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
17914         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
17915         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
17916         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
17917         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
17918         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
17919         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
17920         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
17921         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
17922         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
17923         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
17924         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
17925         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
17926         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
17927         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
17928         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
17929         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
17930         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
17931         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
17932         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
17933         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
17934         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
17935         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
17936         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
17937         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
17938         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
17939         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
17940         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
17941         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
17942         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
17943         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
17944         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
17945         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
17946         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
17947         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
17948         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
17949         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
17950         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
17951         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
17952         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
17953         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
17954         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
17955         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
17956         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
17957         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
17958         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
17959         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
17960         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
17961         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
17962         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
17963         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
17964         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
17965         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
17966         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
17967         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
17968         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
17969         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
17970         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
17971         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
17972         (QI_FTYPE_V8DF_INT_QI): Ditto.
17973         (QI_FTYPE_V4DF_INT_QI): Ditto.
17974         (QI_FTYPE_V2DF_INT_QI): Ditto.
17975         (HI_FTYPE_V16SF_INT_HI): Ditto.
17976         (QI_FTYPE_V8SF_INT_QI): Ditto.
17977         (QI_FTYPE_V4SF_INT_QI): Ditto.
17978         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
17979
17980 2015-07-31  Richard Biener  <rguenther@suse.de>
17981
17982         * gimple-fold.c (fold_gimple_assign): Remove folding of
17983         GIMPLE_BINARY_RHS.
17984
17985 2015-07-31  Tom de Vries  <tom@codesourcery.com>
17986
17987         PR tree-optimization/66846
17988         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
17989         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
17990         (expand_omp_target) [ENABLE_CHECKING]: Same.
17991         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
17992         cfun if !LOOPS_NEED_FIXUP.
17993         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
17994         that omp_for already has its own loop struct.
17995         * tree-parloops.c (create_phi_for_local_result)
17996         (create_call_for_reduction): Handle simple latch bb.
17997         (create_parallel_loop): Add simple latch bb to preserve
17998         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
17999         (gen_parallel_loop): Remove call to cancel_loop_tree.
18000         (parallelize_loops): Skip loops that are inner loops of parallelized
18001         loops.
18002         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
18003         verify_loop_structure.
18004
18005 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
18006
18007         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
18008         * config/v850/v850.md (RV_REGNUM): New constants.
18009         * config/v850/v850.c (v850_libcall_value): New functions.
18010         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
18011         (TARGET_LIBCALL_VALUE): Define.
18012
18013 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
18014
18015         * rtl.h (lowpart_subreg): Move in file.
18016         * loop-iv.c (lowpart_subreg): Move to...
18017         * simplify-rtx.c (lowpart_subreg): ...here.
18018           (simplify_binary_operation_1): Use lowpart_subreg instead of
18019           simplify_gen_subreg.
18020         * expr.c (expand_expr_real_2): Ditto.
18021         * emit-rtl.c (gen_lowpart_common): Ditto.
18022         * combine.c (gen_lowpart_for_combine): Ditto.
18023         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
18024           expand_debug_source_expr): Ditto.
18025
18026 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
18027
18028         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
18029         (expand_builtin_atomic_clear): Remove support for atomic_clear
18030         pattern.
18031
18032 2015-07-30  Richard Biener  <rguenther@suse.de>
18033
18034         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
18035         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
18036         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
18037         redundant operand canonicalization.
18038
18039 2015-07-30  David Sherwood  <david.sherwood@arm.com>
18040
18041         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
18042         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
18043         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
18044         * config/arm/arm.c (neon_valid_immediate): Likewise.
18045         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
18046         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
18047         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
18048         (expand_vec_perm_vpshufb2_vpermq): Likewise.
18049         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
18050         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
18051         * config/i386/sse.md
18052         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
18053         (*ssse3_palignr<mode>_perm): Likewise.
18054         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
18055         * config/spu/spu.c (arith_immediate_p): Likewise.
18056         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18057         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
18058
18059 2015-07-30  Richard Biener  <rguenther@suse.de>
18060
18061         * genmatch.c (decision_tree::gen_gimple): Merge with ...
18062         (decision_tree::gen_generic): ... this into ...
18063         (decision_tree::gen): ... this.
18064         (main): Adjust callers.
18065
18066 2015-07-30  Richard Biener  <rguenther@suse.de>
18067
18068         * genmatch.c (verbose): New global.
18069         (warning_at): Add overload with source_location.
18070         (capture_info::capture_info): Add bool whether generating gimple
18071         or generic.  Add gimple member.
18072         (capture_info::cinfo): Add capture member.
18073         (capture_info::walk_match): Record capture.  Warn on
18074         non-captured leafs.
18075         (capture_info::walk_c_expr): Add more fragments captures cannot
18076         escape through.  Warn on escaped captures.
18077         (dt_simplify::gen_1): Warn on operands we force to have no
18078         side-effects.
18079         (main): Initialize verbose.
18080         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
18081
18082 2015-07-30  Richard Biener  <rguenther@suse.de>
18083
18084         PR middle-end/67053
18085         * match.pd: Allow both operands to independently have conversion
18086         when simplifying compares of addresses.
18087
18088 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
18089
18090         PR target/66217
18091         PR target/67045
18092         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
18093         around those cases that need one.
18094
18095 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
18096
18097         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
18098
18099 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
18100
18101         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
18102         New.  Copied from config/i386/gnu-user.h.
18103         (ASM_COMMENT_START): Likewise.
18104         (DBX_REGISTER_NUMBER): Likewise.
18105
18106 2015-07-29  Richard Biener  <rguenther@suse.de>
18107
18108         * gimple-fold.c (fold_gimple_cond): Remove.
18109         (fold_stmt_1): Do not call it.
18110
18111 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
18112
18113         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
18114         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
18115
18116         * config/aarch64/aarch64-modes.def: Add HFmode.
18117
18118         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
18119         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
18120
18121         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
18122         aarch64_promoted_type): New.
18123
18124         (aarch64_float_const_representable_p): Disable HFmode.
18125         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
18126         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
18127         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
18128
18129         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
18130         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
18131
18132         * config/aarch64/iterators.md (GPF_F16): New.
18133
18134 2015-07-29  Richard Biener  <rguenther@suse.de>
18135
18136         * match.pd: Merge address comparison patterns and make them
18137         handle some more cases.
18138
18139 2015-07-29  Richard Biener  <rguenther@suse.de>
18140
18141         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
18142         (parser::parse_capture): Add bool argument on whether to reject
18143         unknown captures.
18144         (parser::parse_expr): Adjust.
18145         (parser::parse_op): Likewise.
18146         (parser::parse_pattern): Likewise.
18147
18148 2015-07-29  Richard Biener  <rguenther@suse.de>
18149
18150         * gimple-fold.c (has_use_on_stmt): New function.
18151         (replace_stmt_with_simplification): Use it to allow
18152         abnormals originally referenced in the stmt.
18153         (fold_stmt_1): Canonicalize operand order.
18154
18155 2015-07-28  David Sherwood  <david.sherwood@arm.com>
18156
18157         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
18158         GET_MODE_INNER unconditionally.
18159         * config/spu/spu.c (arith_immediate_p): Likewise.
18160         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
18161         * expmed.c (synth_mult): Remove check for VOIDmode result from
18162         GET_MODE_INNER.
18163         (expand_mult_const): Likewise.
18164         * fold-const.c (fold_binary_loc): Replace call to element_precision
18165         with call to GET_MODE_PRECISION.
18166         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
18167         m->name.
18168         (emit_mode_inner): Likewise.
18169         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
18170         result check.
18171         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
18172         (GET_MODE_UNIT_PRECISION): Likewise.
18173         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
18174         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18175         * stor-layout.c (bitwise_type_for_mode): Update assert.
18176         (element_precision): Remove.
18177
18178 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18179
18180         * target-insns.def (reload_load_address): New targetm instruction
18181         pattern.
18182         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
18183
18184 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18185
18186         * target-insns.def (atomic_test_and_set): New targetm instruction
18187         pattern.
18188         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
18189         HAVE_*/gen_* interface.
18190
18191 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18192
18193         * target-insns.def (can_extend, ptr_extend): New targetm instruction
18194         patterns.
18195         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
18196         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18197         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
18198         * rtlanal.c (nonzero_bits1): Likewise.
18199         (num_sign_bit_copies1): Likewise.
18200
18201 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18202
18203         * target-insns.def (eh_return): New targetm instruction pattern.
18204         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
18205         interface.
18206         * function.c (thread_prologue_and_epilogue_insns): Remove
18207         preprocessor condition.
18208
18209 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18210
18211         * target-insns.def (indirect_jump): New targetm instruction pattern.
18212         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
18213         interface.
18214
18215 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18216
18217         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
18218         instead of nonimmediate_operand.  Remove C condiition.
18219
18220 2015-07-28  Richard Biener  <rguenther@suse.de>
18221
18222         * match.pd: Add more simplification of address comparisons.
18223
18224 2015-07-28  Richard Biener  <rguenther@suse.de>
18225
18226         * match.pd: Re-order two cases in comparison with max/min
18227         value simplification to make it apply for bools.
18228
18229 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18230
18231         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
18232         Handle simple SIGN_EXTEND or ZERO_EXTEND.
18233         (aarch64_rtx_costs): Properly strip extend or extract before
18234         passing down to rtx costs again.
18235
18236 2015-07-28  Nick Clifton  <nickc@redhat.com>
18237
18238         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
18239         Optimizes the case where -mes0 is active and a constant symbolic
18240         address is used.
18241         * config/rl78/rl78-protos.h: Prototype the new function.
18242         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
18243
18244 2015-07-28  Tom de Vries  <tom@codesourcery.com>
18245
18246         * tree-parloops.c (reduc_stmt_res): New function.
18247         (initialize_reductions, add_field_for_reduction)
18248         (create_phi_for_local_result, create_loads_for_reductions)
18249         (create_stores_for_reduction, build_new_reduction): Handle case that
18250         reduc_stmt is a phi.
18251         (gather_scalar_reductions): Allow double_reduc reductions.
18252
18253 2015-07-28  Richard Biener  <rguenther@suse.de>
18254
18255         * fold-const.c (fold_comparison): Remove equality folding
18256         of decl addresses ...
18257         * match.pd: ... here and merge with existing pattern.
18258
18259 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18260
18261         PR tree-optimization/66828
18262         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
18263         from int64_t to uint64_t.
18264
18265 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18266
18267         * opts-common.c (read_cmdline_option): List DriverOnly enum values
18268         as valid only in the error message of the driver, not in the
18269         messages of the language compilers.
18270
18271 2015-07-27  Tom de Vries  <tom@codesourcery.com>
18272
18273         * tree-parloops.c (gather_scalar_reductions): Simplify function
18274         structure.
18275
18276 2015-07-27  Marek Polacek  <polacek@redhat.com>
18277
18278         * ipa-devirt.c (types_same_for_odr): Fix typo.
18279
18280 2015-07-27  Jason Merrill  <jason@redhat.com>
18281
18282         PR debug/66468
18283         * dwarf2out.c (gen_inlined_subroutine_die): Check
18284         cgraph_function_possibly_inlined_p.
18285
18286 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18287
18288         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
18289         Place integer variant first.
18290         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
18291
18292 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18293
18294         PR/63870
18295         * config/arm/arm-builtins.c (enum arm_builtins):
18296         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
18297         (ARM_BUILTIN_NEON_BASE): Rename macro to....
18298         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
18299         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
18300         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
18301
18302 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18303
18304         PR/63870
18305         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
18306         Add qualifier_lane_index.
18307         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
18308         (arm_getlane_qualifiers): Use qualifier_lane_index.
18309         (arm_lanemac_qualifiers): Rename to...
18310         (arm_mac_n_qualifiers): ...this.
18311         (LANEMAC_QUALIFIERS): Rename to...
18312         (MAC_N_QUALIFIERS): ...this.
18313         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
18314         (arm_setlane_qualifiers): Use qualifier_lane_index.
18315         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
18316         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
18317         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
18318         (arm_expand_neon_builtin): Handle qualifier_lane_index.
18319
18320         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
18321         * config/arm/arm.c (bounds_check): Likewise, improve error message.
18322         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
18323         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
18324         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
18325         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
18326         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
18327         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
18328         qualifiers to TERNOP_IMM.
18329         (vdup_lane): Change qualifiers to GETLANE.
18330         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
18331         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
18332         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
18333         vqdmlsl_n): Change qualifiers to MAC_N.
18334
18335         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
18336         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
18337         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
18338         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
18339         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
18340         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
18341         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
18342         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
18343         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
18344         Remove call to neon_lane_bounds.
18345
18346 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18347
18348         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
18349         Place integer variant first.
18350
18351 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
18352
18353         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
18354         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
18355         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
18356         for armv6kz targets.
18357         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
18358         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
18359         (FL_FOR_ARCH6ZK): Remove.
18360         (FL_FOR_ARCH6KZ): New.
18361         (arm_arch6zk): New declaration.
18362         * config/arm/arm-tables.opt: Regenerate.
18363         * config/arm/arm.c (arm_arch6kz): New.
18364         (arm_option_override): Set arm_arch6kz.
18365         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
18366         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
18367         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
18368
18369 2015-07-27  Marek Polacek  <polacek@redhat.com>
18370
18371         PR c++/66555
18372         PR c/54979
18373         * doc/invoke.texi: Document -Wtautological-compare.
18374
18375 2015-07-27  Richard Biener  <rguenther@suse.de>
18376
18377         * genmatch.c (decision_tree::gen_gimple): Split out large
18378         subtrees into separate functions.
18379         (decision_tree::gen_generic): Likewise.
18380
18381 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
18382
18383         * config/alpha/alpha.c: Use SUBREG_P predicate.
18384         * config/alpha/predicates.md: Ditto.
18385
18386 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18387
18388         * config.host (s390*-*-*): Include driver-native.c only when
18389         building with s390* as host *and* target.
18390
18391 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
18392
18393         PR target/66930
18394         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
18395         T bit register modified_between_p check.
18396
18397 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18398
18399         * config/i386/i386.c: Use SUBREG_P predicate.
18400         * config/i386/i386.md: Ditto.
18401         * config/i386/sse.md: Ditto.
18402         * config/i386/predicates.md: Ditto.
18403
18404 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18405
18406         PR target/67004
18407         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
18408         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
18409
18410 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18411
18412         * Makefile.in: Remove use of TREEBROWSER.
18413         * config.in: Regenerated.
18414         * configure: Regenerated.
18415         * configure.ac: Remove definition of TREEBROWSER.
18416         * tree-browser.c: Removed.
18417         * tree-browser.def: Removed.
18418
18419 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18420
18421         * graphite-scop-detection.c: Include gimple-pretty-print.h.
18422         (stmt_simple_for_scop_p): Print when a stmt is not handled in
18423         Graphite.
18424         (scopdet_basic_block_info): Print when a loop or bb cannot be
18425         represented in Graphite.
18426
18427 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18428
18429         PR target/66648
18430         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
18431         execution guard when min_size is less than size_needed.
18432
18433 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18434
18435         * doc/install.texi: Document supported versions of ISL.
18436
18437 2015-07-25  Jeff Law  <law@redhat.com>
18438
18439         Revert:
18440         PR lto/66752
18441         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18442         unable to find X NE 0 in the tables, return X as the simplified
18443         condition.
18444         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18445         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18446         to VISISTED_BBS.  */
18447         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18448         after removing the control flow statement and unnecessary edges.
18449
18450 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
18451
18452         Revert:
18453         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18454
18455         PR rtl-optimization/64164
18456         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18457         * tree-ssa-copyrename.c: Removed.
18458         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18459         -ftree-coalesce-vars.
18460         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18461         * common.opt (ftree-copyrename): Ignore.
18462         (ftree-coalesce-inlined-vars): Likewise.
18463         * doc/invoke.texi: Remove the ignored options above.
18464         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18465         * tree-ssa-coalesce.h: ... here.
18466         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18467         headers required by it.
18468         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18469         across variables when flag_tree_coalesce_vars.  Check register
18470         use and promoted modes to allow coalescing.  Moved to
18471         tree-ssa-coalesce.c.
18472         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18473         with its member functions to tree-ssa-coalesce.c.
18474         (var_map_base_init): Likewise.  Renamed to
18475         compute_samebase_partition_bases.
18476         (partition_view_normal): Drop want_bases parameter.
18477         (partition_view_bitmap): Likewise.
18478         * tree-ssa-live.h: Adjust declarations.
18479         * tree-ssa-coalesce.c: Include explow.h.
18480         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18481         default defs at the entry point.
18482         (dump_part_var_map): New.
18483         (compute_optimized_partition_bases): New, called by...
18484         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18485         of compute_samebase_partition_bases.  Adjust.
18486         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18487         * cfgexpand.c (leader_merge): New.
18488         (get_rtl_for_parm_ssa_default_def): New.
18489         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18490         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18491         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18492         redundant MEM attr setting.
18493         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18494         from...
18495         (expand_one_stack_var): ... this.  New wrapper to check and
18496         skip already expanded SSA partitions.
18497         (record_alignment_for_reg_var): New, factored out of...
18498         (expand_one_var): ... this.
18499         (expand_one_ssa_partition): New.
18500         (adjust_one_expanded_partition_var): New.
18501         (expand_one_register_var): Check and skip already expanded SSA
18502         partitions.
18503         (expand_used_vars): Don't create DECLs for anonymous SSA
18504         names.  Expand all SSA partitions, then adjust all SSA names.
18505         (pass::execute): Replace the loops that set
18506         SA.partition_to_pseudo from partition leaders and cleared
18507         DECL_RTL for multi-location variables, and that which used to
18508         rename vars and set attrs, with one that clears DECL_RTL and
18509         checks that PARMs and RESULTs default_defs match DECL_RTL.
18510         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18511         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18512         * explow.c (promote_ssa_mode): New.
18513         * explow.h (promote_ssa_mode): Declare.
18514         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18515         * function.c: Include cfgexpand.h.
18516         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18517         (use_register_for_parm_decl): Wrapper for the above to
18518         special-case the result_ptr.
18519         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18520         (split_complex_args): Take assign_parm_data_all argument.
18521         Pass it to rtl_for_parm.  Set up rtl and context for split
18522         args.
18523         (assign_parms_augmented_arg_list): Adjust.
18524         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18525         multiple locations.  Recognize split complex args.
18526         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18527         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18528         (assign_parm_setup_block): Prefer SSA-assigned location.
18529         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18530         if stack_parm is NULL.
18531         (assign_parm_setup_stack): Prefer SSA-assigned location.
18532         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18533         rtl before testing for pointer bounds.  Special-case result_ptr.
18534         (expand_function_start): Maybe reset DECL_RTL of result.
18535         Prefer SSA-assigned location for result and static chain.
18536         Factor out DECL_RESULT and SET_DECL_RTL.
18537         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18538         anonymous SSA names.  Use promote_ssa_mode.
18539         (get_temp_reg): Likewise.
18540         (remove_ssa_form): Adjust.
18541         * stor-layout.c (layout_decl): Don't set mem attributes of
18542         non-MEMs.
18543         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18544         and get its reg_usage for reg invalidation.
18545         (compute_bb_dataflow): Pass it insn.
18546         (emit_notes_in_bb): Likewise.
18547
18548 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18549
18550         * config/i386/i386.c (ix86_va_start): Remove
18551         unneeded !TARGET_64BIT check.
18552         (ix86_gimplify_va_arg): Ditto.
18553
18554 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18555
18556         * graphite-sese-to-poly.c (build_poly_scop): Always call
18557         rewrite_commutative_reductions_out_of_ssa.
18558
18559 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18560
18561         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
18562         flag_associative_math to FLOAT_TYPE_P.  Honour
18563         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
18564
18565 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18566
18567         PR c++/64079
18568         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
18569         and "%qD" in warning_at instead of "%q+D" in warning.
18570
18571 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18572
18573         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
18574         (ix86_function_abi): Cleanup.
18575
18576 2015-07-24  Michael Darling  <darlingm@gmail.com>
18577
18578         PR other/66259
18579         * acinclude.m4: Reflects renaming of configure.in to configure.ac
18580         * configure: Likewise
18581         * configure.ac: Likewise
18582         * doc/install.texi: Likewise
18583         * doc/tm.texi: Likewise
18584         * doc/tm.texi.in: Likewise
18585
18586 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18587
18588         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
18589         manually swapping values.
18590         * cse.c (fold_rtx): Likewise.
18591         * lra-eliminations.c (form_sum): Likewise.
18592
18593 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18594
18595         PR target/64003
18596         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
18597         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
18598         (*jcc_1, *jcc_2, jump, simple_return_internal)
18599         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
18600         Set length_nobnd attribute instead of length attribute.
18601         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
18602         (length_nobnd): Remove attribute.
18603         (length): Remove length_nobnd processing.
18604
18605 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
18606
18607         * gimplify.c (omp_default_clause): New function.  Reorganize flow
18608         for clarity. Broken out of ...
18609         (omp_notice_variable): ... here.
18610
18611 2015-07-24  Gary Funck  <gary@intrepid.com>
18612
18613         PR middle-end/66984
18614         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
18615         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
18616
18617 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18618
18619         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
18620         exit-first loop transform.
18621
18622 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
18623
18624         PR 66714
18625         * tree-cfg.c (struct replace_decls_d): New struct.
18626         (replace_block_vars_by_duplicates_1): New function.
18627         (replace_block_vars_by_duplicates): Use it to replace the decls
18628         in the value exprs by duplicates.
18629
18630 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18631
18632         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
18633         -shared, -symbolic, -rdynamic.
18634
18635 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18636
18637         PR target/65711
18638         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
18639         -dynamic-linker within %{!static %{!shared, and -rdynamic within
18640         %{!static.
18641
18642 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
18643
18644         PR ipa/66566
18645         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
18646         edge summary is available.
18647
18648 2015-07-24  Richard Biener  <rguenther@suse.de>
18649
18650         * genmatch.c (struct dt_node): Add statistic fields.
18651         (dt_node::analyze): New method.
18652         (decision_tree::gen_gimple): Call analyze on the root node
18653         and print statistics to stderr.
18654         (decision_tree::gen_generic): Likewise.
18655
18656 2015-07-24  Richard Biener  <rguenther@suse.de>
18657
18658         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
18659         against the highest or lowest possible integer ...
18660         * match.pd: ... as patterns here.
18661
18662 2015-07-24  Richard Biener  <rguenther@suse.de>
18663
18664         * genmatch.c (struct capture_info): Add same_as field.
18665         (capture_info::capture_info): Initialize same_as.
18666         (capture_info::walk_match): Compute same_as.
18667         (capture_info::walk_result): Compute stuff for the leader.
18668         (capture_info::walk_c_expr): Likewise.
18669         (dt_simplify::gen_1): Only look at leaders when deciding
18670         to force no side-effects or emit side-effects of omitted operands.
18671
18672 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18673
18674         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
18675         reg note to the GPR -> FPR save instructions.
18676
18677 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18678
18679         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
18680         cheaper.
18681         (s390_expand_insv): Don't generate risbg pattern for constant zero
18682         sources.
18683         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
18684         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
18685         splitters.
18686
18687 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18688
18689         * config/s390/s390.c (s390_reorg): Clean up handling of processors
18690         with
18691         -mtune=
18692         (s390_issue_rate): Likewise.
18693         (s390_sched_reorder): Likewise.
18694         (s390_sched_variable_issue): Likewise.
18695         (s390_loop_unroll_adjust): Likewise.
18696         (s390_option_override):  Likewise.
18697
18698 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18699
18700         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
18701         processor capabilities with -march=native.
18702         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
18703         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
18704         (S390_TARGET_BITS_STRING): Macro to simplify specs.
18705
18706 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18707
18708         * config/s390/s390.c (s390_issue_rate): Handle
18709         PROCESSOR_2094_Z9_EC.
18710         (s390_option_override): Likewise.
18711         (s390_adjust_priority): Likewise.
18712
18713 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18714
18715         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
18716         when cross compiling.
18717
18718 2015-07-24  Richard Biener  <rguenther@suse.de>
18719
18720         * fold-const.c (maybe_canonicalize_comparison_1): Move
18721         A code CST canonicalization ...
18722         * match.pd: ... to a pattern here.
18723
18724 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
18725
18726         Revert:
18727         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18728         PR target/63521
18729         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18730         (HONOR_REG_ALLOC_ORDER): Define.
18731
18732 2015-07-24  Richard Biener  <rguenther@suse.de>
18733
18734         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
18735         * fold-const.c (fold_comparison): Move parameter does not
18736         alias &local simplification ...
18737         * match.pd: ... as a pattern here.
18738
18739 2015-07-24  Richard Biener  <rguenther@suse.de>
18740
18741         * gimple-fold.c (replace_stmt_with_simplification): Special-case
18742         valueizing call operands.
18743         * gimple-match-head.c (maybe_push_res_to_seq): Take
18744         number of call arguments from ops array.
18745         (do_valueize): New function.
18746         (gimple_simplify): Return true if valueization changed
18747         any operand even if the result didn't simplify further.
18748
18749 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18750
18751         PR middle-end/25530
18752         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
18753
18754 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18755
18756         PR middle-end/25529
18757         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
18758
18759 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18760
18761         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
18762         instruction.
18763
18764 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18765
18766         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
18767         clean up.
18768
18769 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
18770
18771         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
18772         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
18773         targets here.
18774         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
18775         ms_va_list_type_node initialization.
18776
18777 2015-07-23  Jeff Law  <law@redhat.com>
18778
18779         PR lto/66752
18780         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18781         unable to find X NE 0 in the tables, return X as the simplified
18782         condition.
18783         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18784         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18785         to VISISTED_BBS.  */
18786         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18787         after removing the control flow statement and unnecessary edges.
18788
18789 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18790
18791         * tree-pass.h (get_current_pass_name): Removed.
18792
18793 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18794
18795         PR rtl-optimization/64164
18796         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18797         * tree-ssa-copyrename.c: Removed.
18798         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18799         -ftree-coalesce-vars.
18800         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18801         * common.opt (ftree-copyrename): Ignore.
18802         (ftree-coalesce-inlined-vars): Likewise.
18803         * doc/invoke.texi: Remove the ignored options above.
18804         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18805         * tree-ssa-coalesce.h: ... here.
18806         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18807         headers required by it.
18808         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18809         across variables when flag_tree_coalesce_vars.  Check register
18810         use and promoted modes to allow coalescing.  Moved to
18811         tree-ssa-coalesce.c.
18812         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18813         with its member functions to tree-ssa-coalesce.c.
18814         (var_map_base_init): Likewise.  Renamed to
18815         compute_samebase_partition_bases.
18816         (partition_view_normal): Drop want_bases parameter.
18817         (partition_view_bitmap): Likewise.
18818         * tree-ssa-live.h: Adjust declarations.
18819         * tree-ssa-coalesce.c: Include explow.h.
18820         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18821         default defs at the entry point.
18822         (dump_part_var_map): New.
18823         (compute_optimized_partition_bases): New, called by...
18824         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18825         of compute_samebase_partition_bases.  Adjust.
18826         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18827         * cfgexpand.c (leader_merge): New.
18828         (get_rtl_for_parm_ssa_default_def): New.
18829         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18830         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18831         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18832         redundant MEM attr setting.
18833         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18834         from...
18835         (expand_one_stack_var): ... this.  New wrapper to check and
18836         skip already expanded SSA partitions.
18837         (record_alignment_for_reg_var): New, factored out of...
18838         (expand_one_var): ... this.
18839         (expand_one_ssa_partition): New.
18840         (adjust_one_expanded_partition_var): New.
18841         (expand_one_register_var): Check and skip already expanded SSA
18842         partitions.
18843         (expand_used_vars): Don't create DECLs for anonymous SSA
18844         names.  Expand all SSA partitions, then adjust all SSA names.
18845         (pass::execute): Replace the loops that set
18846         SA.partition_to_pseudo from partition leaders and cleared
18847         DECL_RTL for multi-location variables, and that which used to
18848         rename vars and set attrs, with one that clears DECL_RTL and
18849         checks that PARMs and RESULTs default_defs match DECL_RTL.
18850         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18851         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18852         * explow.c (promote_ssa_mode): New.
18853         * explow.h (promote_ssa_mode): Declare.
18854         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18855         * function.c: Include cfgexpand.h.
18856         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18857         (use_register_for_parm_decl): Wrapper for the above to
18858         special-case the result_ptr.
18859         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18860         (split_complex_args): Take assign_parm_data_all argument.
18861         Pass it to rtl_for_parm.  Set up rtl and context for split
18862         args.
18863         (assign_parms_augmented_arg_list): Adjust.
18864         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18865         multiple locations.  Recognize split complex args.
18866         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18867         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18868         (assign_parm_setup_block): Prefer SSA-assigned location.
18869         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18870         if stack_parm is NULL.
18871         (assign_parm_setup_stack): Prefer SSA-assigned location.
18872         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18873         rtl before testing for pointer bounds.  Special-case result_ptr.
18874         (expand_function_start): Maybe reset DECL_RTL of result.
18875         Prefer SSA-assigned location for result and static chain.
18876         Factor out DECL_RESULT and SET_DECL_RTL.
18877         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18878         anonymous SSA names.  Use promote_ssa_mode.
18879         (get_temp_reg): Likewise.
18880         (remove_ssa_form): Adjust.
18881         * stor-layout.c (layout_decl): Don't set mem attributes of
18882         non-MEMs.
18883         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18884         and get its reg_usage for reg invalidation.
18885         (compute_bb_dataflow): Pass it insn.
18886         (emit_notes_in_bb): Likewise.
18887
18888 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18889
18890         PR target/66217
18891         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
18892         prototype.
18893         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
18894         (rs6000_emit_2insn_and): Handle dot forms.
18895         * config/rs6000/rs6000.md (and<mode>3): Adjust.
18896         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
18897         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
18898
18899 2015-07-23  Richard Biener  <rguenther@suse.de>
18900
18901         * generic-match-head.c: Include cgraph.h.
18902         * gimple-match-head.c: Likewise.
18903         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
18904         SSA names.
18905         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
18906         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
18907         pattern.
18908
18909 2015-07-23  Richard Biener  <rguenther@suse.de>
18910
18911         * gimple-fold.c (fold_gimple_cond): Do not require folding
18912         results to pass valid_gimple_rhs_p.
18913         * tree-cfg.h (fold_cond_expr_cond): Remove.
18914         * tree-cfg.c (fold_cond_expr_cond): Likewise.
18915         (make_edges): Do not call it.
18916         * tree-inline.c (tree_function_versioning): Likewise.
18917
18918 2015-07-23  Tom de Vries  <tom@codesourcery.com>
18919
18920         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
18921         vect_force_simple_reduction.
18922         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
18923         (vect_is_simple_reduction_1): Add and handle
18924         need_wrapping_integral_overflow parameter.
18925         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
18926         need_wrapping_integral_overflow parameter.
18927         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
18928         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
18929         decl.
18930
18931 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
18932
18933         PR tree-optimization/66926,66951
18934         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
18935         INNER_LOOP and fix up condition for renaming virtual operands.
18936
18937 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18938
18939         * combine.c (try_combine): Use std::swap instead of manually
18940         swapping.
18941
18942 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
18943
18944         * config/mips/i6400.md: New file.
18945         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
18946         (mips64r6): Likewise.
18947         (i6400): Define.
18948         * config/mips/mips-tables.opt: Regenerate.
18949         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
18950         (mips_issue_rate): Add support for i6400.
18951         (mips_multipass_dfa_lookahead): Likewise.
18952         * config/mips/mips.h (TUNE_I6400): Define.
18953         * config/mips/mips.md: Include i6400.md.
18954         (processor): Add i6400.
18955         * doc/invoke.texi (-march=@var{arch}): Add i6400.
18956
18957 2015-07-23  Richard Biener  <rguenther@suse.de>
18958
18959         PR middle-end/66916
18960         * match.pd: Guard widen and sign-change comparison simplification
18961         with single_use.
18962
18963 2015-07-23  Richard Biener  <rguenther@suse.de>
18964
18965         PR tree-optimization/66945
18966         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
18967         ::before_dom_children): Force the propagators idea of
18968         non-executable edges to materialize, not what the folder
18969         chooses.
18970
18971 2015-07-23  Richard Biener  <rguenther@suse.de>
18972
18973         * gimple.h (gimple_cond_make_false): Use 0 != 0.
18974         (gimple_cond_make_true): Use 1 != 0.
18975
18976 2015-07-22  DJ Delorie  <dj@redhat.com>
18977
18978         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
18979         slashes.
18980
18981         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
18982         (ashrhi3): Likewise.
18983         (lshrhi3): Likewise.
18984         (movhi): Take advantage of zero-extend to load small constants.
18985         (movpsi): Likewise.
18986         (and<mode>3): Likewise.
18987         (zero_extendqihi2): Likewise.
18988         (zero_extendqisi2): New.
18989         * config/msp430/constraints.md (N,O): New.
18990         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
18991
18992 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
18993
18994         PR target/66954
18995         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
18996         to enum feature_priority and feature_list.
18997         (fold_builtin_cpu): Add F_AES to enum processor_features
18998         and isa_names_table.
18999
19000 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
19001
19002         PR driver/66737
19003         * config/i386/linux-common.h (MPX_SPEC): Use linker option
19004         for 64bit target only.
19005
19006 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19007
19008         * config/nvptx/nvptx.c: Expand some comments.
19009
19010 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
19011
19012         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
19013         (cortex_a53_advsimd): ...This.
19014
19015 2015-07-22  Richard Biener  <rguenther@suse.de>
19016
19017         * genmatch.c (expr::gen_transform): Clarify error message
19018         and display location.
19019
19020 2015-07-22  Richard Biener  <rguenther@suse.de>
19021
19022         * genmatch.c (struct operand): Add location member.
19023         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
19024         constructors.
19025         (struct simplify): Remove match_location and result_location
19026         members.
19027         (elsehwere): Adjust.
19028
19029 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
19030
19031         * config/mips/m5100.md: New file.
19032         * config/mips/mips-cpus.def (m5100, m5101): Define.
19033         * config/mips/mips-tables.opt: Regenerate.
19034         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
19035         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
19036         -march=m5101 to -mips32r5.
19037         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
19038         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
19039         !-msoft-float.
19040         * config/mips/mips.md: Include m5100.md.
19041         (processor): Add m5100.
19042         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
19043
19044 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
19045
19046         * config/mips/mips-cpus.def (interaptiv): Define.
19047         * config/mips/mips-tables.opt: Regenerate.
19048         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
19049         -mips32r2.
19050         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
19051         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
19052
19053 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
19054
19055         PR target/63521
19056         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
19057         (HONOR_REG_ALLOC_ORDER): Define.
19058
19059 2015-07-22  Richard Biener  <rguenther@suse.de>
19060
19061         PR tree-optimization/66952
19062         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
19063         blocks we end up executing unconditionally reset all SSA
19064         info such as range and alignment.
19065         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
19066         * tree-ssanames.c (reset_flow_sensitive_info): New function.
19067
19068 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
19069
19070         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
19071         typo in attribute.
19072
19073 2015-07-22  Richard Biener  <rguenther@suse.de>
19074
19075         * genmatch.c (parser::parse_result): Properly handle
19076         match with result operands and conditions.
19077
19078 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
19079
19080         PR target/63870
19081         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19082         Add qualifier_struct_load_store_lane_index.
19083         (aarch64_types_loadstruct_lane_qualifiers): Use
19084         qualifier_struct_load_store_lane_index for lane index argument for
19085         last argument.
19086         (aarch64_types_storestruct_lane_qualifiers): Ditto.
19087         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19088         (aarch64_simd_expand_args): Add new argument describing mode of
19089         builtin. Check lane bounds for arguments with
19090         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19091         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
19092         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
19093         (aarch64_simd_expand_builtin): Handle arguments with
19094         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
19095         aarch64_simd_expand_args.
19096         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
19097         vst[234]_lane with BUILTIN_VALLDIF.
19098         * config/aarch64/aarch64-simd.md:
19099         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
19100         endianness reversal on lane index.
19101         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
19102         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
19103         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
19104         (vec_store_lanesci_lane<mode>): Ditto.
19105         (vec_store_lanesxi_lane<mode>): Ditto.
19106         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
19107         reversal of lane index.
19108         (aarch64_ld3_lane<mode>): Ditto.
19109         (aarch64_ld4_lane<mode>): Ditto.
19110         (aarch64_st2_lane<mode>): Ditto.
19111         (aarch64_st3_lane<mode>): Ditto.
19112         (aarch64_st4_lane<mode>): Ditto.
19113         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
19114         to qmode. Add new mode parameter. Update uses.
19115         (__LD3_LANE_FUNC): Ditto.
19116         (__LD4_LANE_FUNC): Ditto.
19117         (__ST2_LANE_FUNC): Ditto.
19118         (__ST3_LANE_FUNC): Ditto.
19119         (__ST4_LANE_FUNC): Ditto.
19120
19121 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
19122
19123         * doc/invoke.texi (Language Independent Options): Rename node to
19124         Diagnostic Message Formatting Options.
19125
19126 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
19127
19128         PR ipa/66424.
19129         * lra-remat.c (operand_to_remat): Prevent using insns with input
19130         subregs processed separately by IRA.
19131
19132 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
19133
19134         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
19135         straight loops.
19136         (single_imm_use): Check for iterator node.
19137         (num_imm_uses): Likewise.
19138         * tree-ssa-operands.c (has_zero_uses_1): Delete.
19139         (single_imm_use_1): Check for iterator node.
19140
19141 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
19142             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19143
19144         * configure.ac: Add check for new options in isl-0.15.
19145         * config.in, configure: Rebuilt.
19146         * graphite-blocking.c: Include <isl/constraint.h>
19147         * graphite-interchange.c,  graphite-poly.c: Likewise.
19148         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
19149         * graphite.c: Likewise.
19150         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
19151         <isl/union_set.h>.
19152         * graphite-dependences.c: Include <isl/constraint.h>.
19153         (max_number_of_out_dimensions): Returns isl_stat.
19154         (extend_schedule_1): Likewise
19155         (extend_schedule): Corresponding changes.
19156         * graphite-optimize-isl.c: Include <isl/constraint.h> and
19157         <isl/union_set.h>.
19158         (getSingleMap): Change return type of isl_stat.
19159         (optimize_isl): Conditionally use
19160         isl_options_set_schedule_serialize_sccs.
19161         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
19162         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
19163
19164 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
19165
19166         PR target/66956
19167         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
19168         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
19169
19170 2015-07-21  Richard Biener  <rguenther@suse.de>
19171
19172         PR tree-optimization/66948
19173         * genmatch.c (capture_info::walk_match): Also recurse to
19174         captures.  Properly compute expr state from captures of
19175         captures.
19176         * match.pd: Add single-use guards to
19177         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
19178
19179 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
19180
19181         * config/nvptx/mkoffload.c (process): Add static destructor call.
19182
19183 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19184
19185         PR middle-end/66915
19186         * match.pd (A - B -> A + (-B)): Don't allow folding
19187         when type if a fixed-point type.
19188
19189 2015-07-20  DJ Delorie  <dj@redhat.com>
19190
19191         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
19192         (iorqi3_real): Likewise for set1.
19193
19194 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
19195
19196         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
19197         for !TARGET_64BIT.
19198
19199 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
19200
19201         * graphite-isl-ast-to-gimple.c:
19202         Refactor so that each function can access 'region'. This will help
19203         maintain a parameter rename_map within a region.
19204
19205 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19206
19207         * config/rs6000/rs6000.md (*lt0_disi): New.
19208
19209 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19210
19211         PR target/66217
19212         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
19213         "available letters" comment.
19214         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
19215         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
19216         and_2rld_operand):  Delete.
19217         (and_operand): Adjust.
19218         (rotate_mask_operator): New.
19219         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
19220         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
19221         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
19222         extract_ME): Delete.
19223         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19224         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
19225         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
19226         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19227         rs6000_emit_2insn_and): New.
19228         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
19229         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
19230         includes_rldic_lshift_p, includes_rldicr_lshift_p,
19231         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
19232         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19233         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
19234         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
19235         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19236         rs6000_emit_2insn_and): New.
19237         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
19238         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
19239         handling.
19240         <NOT>: Don't fall through to next case.
19241         <AND>: Handle the various rotate-and-mask cases directly.
19242         <IOR>: Always cost as one insn.
19243         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
19244         (and<mode>3): Adjust expander for the new patterns.
19245         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
19246         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
19247         (*and<mode>3_imm_dot_shifted): New.
19248         (*and<mode>3_mask): Delete, rewrite as ...
19249         (and<mode>3_mask): ... New.
19250         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
19251         (andsi3_internal0_nomc): Delete.
19252         (*andsi3_internal6): Delete.
19253         (*and<mode>3_2insn): New.
19254         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19255         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19256         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
19257         *insvdi_internal3): Delete.
19258         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
19259         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
19260         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
19261         *ior<mode>_mask): New.
19262         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
19263         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
19264         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
19265         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
19266         Delete.
19267         (ashr<mode>3): Delete expander.
19268         (*ashr<mode>3): Rename to ...
19269         (ashr<mode>3): ... This.
19270         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
19271         (*rotldi3_internal4, *rotldi3_internal5 and split,
19272         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
19273         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
19274         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
19275         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
19276         (splitter for loading a mask): Adjust.
19277         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
19278
19279 2015-07-20  Marek Polacek  <polacek@redhat.com>
19280
19281         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
19282         output_add_clobbers, output_added_clobbers_hard_reg_p,
19283         gen_rtx_scratch): Remove declarations.
19284
19285 2015-07-20  Marek Polacek  <polacek@redhat.com>
19286
19287         PR c++/55095
19288         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
19289
19290 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19291
19292         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
19293         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
19294
19295 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19296
19297         * combine.c (combine_simplify_rtx): Move simplification step
19298         before various transformations/substitutions.
19299
19300 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
19301
19302         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
19303         (struct int_traits): Likewise.
19304
19305 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19306
19307         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
19308         function to vmsdbgout_function_decl.
19309
19310 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19311
19312         PR target/66922
19313         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
19314         from misaligned positions.
19315         (ix86_expand_pinsr): Reject insertions to misaligned positions.
19316
19317 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
19318
19319         PR middle-end/46851
19320         PR middle-end/60340
19321         * Makefile.in: Removed omega.o.
19322         * common.opt: Document flag fcheck-data-deps as deprecated.
19323         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
19324         its associated params: omega-max-vars, omega-max-geqs,
19325         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
19326         omega-max-keys, omega-eliminate-redundant-constraints.
19327         * doc/loop.texi: Remove all the section on Omega.
19328         * graphite-blocking.c: Include missing params.h: it used to be
19329         included through tree-data-ref.h and omega.h.
19330         * graphite-isl-ast-to-gimple.c: Same.
19331         * graphite-optimize-isl.c: Same.
19332         * graphite-sese-to-poly.c: Same.
19333         * graphite.c: Same.
19334         * omega.c: Remove.
19335         * omega.h: Remove.
19336         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
19337         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
19338         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
19339         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
19340         * passes.def: Remove pass_check_data_deps.
19341         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
19342         (dump_conflict_function): Same.
19343         (dump_subscript): Same.
19344         (print_direction_vector): Same.
19345         (print_dir_vectors): Same.
19346         (print_lambda_vector): Same.
19347         (print_dist_vectors): Same.
19348         (dump_data_dependence_relation): Same.
19349         (dump_data_dependence_relations): Same.
19350         (dump_dist_dir_vectors): Same.
19351         (dump_ddrs): Same.
19352         (init_omega_eq_with_af): Removed.
19353         (omega_extract_distance_vectors): Removed.
19354         (omega_setup_subscript): Removed.
19355         (init_omega_for_ddr_1): Removed.
19356         (init_omega_for_ddr): Removed.
19357         (ddr_consistent_p): Removed.
19358         (compute_affine_dependence): Do not use omega to check data
19359         dependences.
19360         (compute_data_dependences_for_bb): Removed.
19361         (analyze_all_data_dependences): Removed.
19362         (tree_check_data_deps): Removed.
19363         * tree-data-ref.h: Do not include omega.h.
19364         (compute_data_dependences_for_bb): Removed.
19365         (tree_check_data_deps): Removed.
19366         * tree-ssa-loop.c (pass_check_data_deps): Removed.
19367         (make_pass_check_data_deps): Removed.
19368         * tree-ssa-phiopt.c: Include params.h.
19369         * tree-vect-data-refs.c: Same.
19370         * tree-vect-slp.c: Same.
19371
19372 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19373
19374         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
19375         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
19376         (mem->fpreg splitters): Ditto.
19377         (general_operand->nonimmediate_operand splitter): Use explicit modes.
19378         Disable DFmode for TARGET_64BIT.
19379
19380 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
19381
19382         PR target/66906
19383         * config/i386/i386.c (ix86_expand_prologue): Replicate static
19384         chain on the stack.
19385
19386 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19387
19388         * config/nvptx/mkoffload.c (process): Constify host data.
19389         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19390         Constify host data.
19391         (generate_host_descr_file): Likewise.
19392
19393 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
19394             Sebastian Pop  <s.pop@samsung.com>
19395
19396         PR middle-end/61929
19397         * graphite-dependences.c (add_pdr_constraints): Renamed
19398         pdr->extent to pdr->subscript_sizes.
19399         * graphite-interchange.c (build_linearized_memory_access): Add
19400         back all gcc_assert's that the "isl_int to isl_val conversion"
19401         patch has removed.  Refactored.
19402         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
19403         * graphite-poly.c (new_poly_dr): Same.
19404         (free_poly_dr): Same.
19405         * graphite-poly.h (struct poly_dr): Same.
19406         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
19407         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
19408         * graphite-scop-detection.h: Fix space.
19409         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
19410         back all gcc_assert's removed by a previous patch.
19411         (wrap): Remove the_isl_ctx global variable that the same patch has
19412         added.
19413         (build_loop_iteration_domains): Same.
19414         (add_param_constraints): Same.
19415         (pdr_add_data_dimensions): Same.  Refactored.
19416         (build_poly_dr): Renamed extent to subscript_sizes.
19417
19418 2015-07-17  Marek Polacek  <polacek@redhat.com>
19419
19420         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
19421         * match.pd: ... here.
19422
19423 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19424
19425         * config/nvptx/mkoffload.c (process): Constify target data.
19426         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19427         Constify target data.
19428         (generate_target_offloadend_file): Likewise.
19429
19430 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
19431
19432         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
19433         to allow renaming of PHI arguments on edges incoming from outer
19434         loop header, add corresponding check before start PHI iterator.
19435         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
19436         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
19437         with true force_vectorize.  Set-up dominator for outer loop too.
19438         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
19439         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
19440         was marked with force_vectorize and has restricted cfg.
19441         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
19442         inner loop.
19443         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
19444         do peeling for outer loops.
19445
19446 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
19447             Matthias Klose  <doko@ubuntu.com>
19448
19449         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
19450         build-sysroot, sysroot from the `Miscenalleous configure options' to
19451         the `Directories' section and strip trailing `/' from with_sysroot.
19452         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
19453         * configure: Regenerated.
19454
19455 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19456
19457         PR target/66824
19458         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
19459         (TARGET_HARD_DF_REGS): Ditto.
19460         (TARGET_HARD_XF_REGS): Ditto.
19461         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
19462         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
19463         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
19464         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
19465         (*movsf_internal): Add alternatives 16 and 17. Enable
19466         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
19467
19468 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19469
19470         PR rtl-optimization/66891
19471         * calls.c (expand_call): Wrap precompute_register_parameters with
19472         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
19473
19474 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
19475
19476         * config/nvptx/mkoffload.c (process): Constify mapping variables.
19477         Define target data struct and initialize it.
19478
19479 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
19480
19481         PR rtl-optimization/66626
19482         * ira.h (emit-rtl.h): Include.
19483         (non_spilled_static_chain_regno_p): New.
19484         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
19485         unless it is non spilled static chain pseudo.
19486         (assign_hard_rego): Spill memory profitable allocno unless it is
19487         non spilled static chain pseudo.
19488         (allocno_spill_priority_compare): Put non spilled static chain
19489         pseudo at the end of sorted array.
19490         (improve_allocation): Do nothing if we have static chain and
19491         non-local goto.
19492         (allocno__priority_compare_func): Put non spilled static chain
19493         pseudo at the beginning of sorted array.
19494         (move_spill_restore): Ignore non spilled static chain pseudo.
19495         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
19496         to non spilled static chain pseudo.
19497         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
19498         pseudo at the beginning of sorted array.
19499         (spill_for): Spill non spilled static chain pseudo last.
19500         * lra-constraints.c (lra_constraints): Remove static chain pseudo
19501         check for equivalence.
19502
19503 2015-07-16  Martin Liska  <mliska@suse.cz>
19504
19505         PR ipa/66896.
19506         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
19507         dst_ctx if it does not exist.
19508
19509 2015-07-16  Martin Liska  <mliska@suse.cz>
19510
19511         * hash-set.h (remove): New function.
19512         (iterator): New iteration class for hash_set.
19513
19514 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19515
19516         * genattrtab.c (make_canonical): Add a file_location parameter.
19517         Use fatal_at rather than fatal.
19518         (get_attr_value): Likewise.  Update call to make_canonical.
19519         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
19520         (make_internal_attr): Update calls accordingly.
19521
19522 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19523
19524         * read-md.h (message_with_line, error_with_line): Delete.
19525         * read-md.c (message_with_line, error_with_line): Delete.
19526         * gensupport.h: Include read-md.h.
19527         (md_rtx_info): New structure.
19528         (read_md_rtx): Use it.  Return a bool success value.
19529         * gensupport.c (read_md_rtx): Likewise.
19530         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
19531         (main): Update after interface changes.
19532         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
19533         (main): Update after interface changes.
19534         * genattrtab.c (insn_code_number): Delete.
19535         (optimize_attrs): Add a max_insn_code parameter and use it instead
19536         of insn_code_number.
19537         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
19538         Use *_at rather than *_with_line functions.
19539         (gen_insn): Likewise.
19540         (gen_delay): Likewise.
19541         (gen_insn_reserv): Likewise.
19542         (gen_bypass): Take an md_rtx_info rather than an rtx.
19543         (main): Update after interface changes.  Use a local max_insn_code
19544         variable instead of insn_code_number.
19545         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
19546         an rtx.  Use fatal_at rather than fatal.
19547         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
19548         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
19549         (gen_absence_set, gen_final_absence_set, gen_automaton)
19550         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
19551         (main): Update after interface changes.
19552         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
19553         and code number.
19554         (main): Update after interface changes.
19555         * genconditions.c (main): Use new read_md_rtx interface.
19556         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
19557         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
19558         (main): Update after interface changes.
19559         * genemit.c (insn_code_number, insn_index_number): Delete.
19560         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19561         Use fatal_at rather than fatal.
19562         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
19563         rather than fatal.
19564         (gen_split): Likewise.
19565         (main): Update after interface changes.
19566         * genextract.c (line_no): Delete.
19567         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19568         Update call to walk_rtx.
19569         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
19570         rather than message_with_line.
19571         (walk_rtx): Add an md_rtx_info argument.  Update call to
19572         VEC_safe_set_locstr.
19573         (main): Update after interface changes.
19574         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
19575         and lineno.  Use error_at rather than separate message_with_line
19576         calls and have_error assignments.
19577         (main): Update after interface changes.
19578         * genmddump.c (main): Use new read_md_rtx interface.
19579         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
19580         (main): Update after interface changes.
19581         * genoutput.c (next_code_number): Delete.
19582         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19583         (gen_peephole, gen_expand, gen_split): Likewise.
19584         (note_constraint): Likewise.  Use *_at rather than *_with_line
19585         functions.
19586         (main): Update after interface changes.
19587         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
19588         rtx and lineno.
19589         (main): Update after interface changes.
19590         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
19591         than an rtx and lineno.
19592         (process_define_constraint): Likewise.
19593         (process_define_register_constraint): Likewise.
19594         (main): Update after interface changes.
19595         * genrecog.c (next_insn_code, pattern_lineno): Delete.
19596         (validate_pattern): Replace top-level rtx with an md_rtx_info.
19597         Use *_at rather than *_with_line functions.
19598         (match_pattern_2): Likewise.
19599         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
19600         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
19601         Use *_at rather than *_with_line functions.
19602         * gentarget-def.c (add_insn): New function.
19603         (main): Use it.  Use new read_md_rtx interface.
19604
19605 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19606
19607         * gensupport.h (compute_test_codes): Take a file_location rather
19608         than a line number.
19609         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
19610         rather than *_with_line functions.
19611         (process_define_predicate): Update call to compute_test_codes.
19612         * genpreds.c (validate_exp): Take a file_location rather than a
19613         line number.  Use *_at functions rather than *_with_line functions.
19614         (process_define_predicate): Update call to validate_exp.
19615         (constraint_data): Replace lineno field with a file_location.
19616         (add_constraint): Take a file_location rather than a line number.
19617         Use *_at functions rather than *_with_line functions.  Fix error
19618         message for address constraints.  Update after changes to
19619         validate_exp, constraint_data and compute_test_codes.
19620         (process_define_constraint): Update accordingly.
19621         (process_define_register_constraint): Likewise.
19622
19623 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19624
19625         * genoutput.c (data): Use a file_location to record the source
19626         position.
19627         (nothing): Delete.
19628         (idata, idata_end): Remove initialization.
19629         (constraint_data): Replace lineno with a file_location.
19630         (output_insn_data): Update after changes to data.
19631         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
19632         (scan_operands): Likewise, using *_at rather than *_with_line
19633         functions.
19634         (process_template): Likewise.
19635         (validate_insn_alternatives): Likewise.
19636         (validate_insn_operands): Likewise.
19637         (validate_optab_operands): Likewise.
19638         (init_insn_for_nothing): Initialize idata and idata_end.
19639         (note_constraint): Update after changes to constraint_data,
19640         using at rather than with_line functions.
19641         (mdep_constraint_len): Take a file_location rather than a
19642         line number.  Use at rather than with_line functions.
19643
19644 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19645
19646         * read-md.h (fatal_at): Declare.
19647         * read-md.c (fatal_at): New function.
19648         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
19649         to record the source position.
19650         (check_attr_test): Take a file_location instead of a line number.
19651         Use fatal_at instead of fatal.
19652         (check_attr_value): Update after above changes, using "at"
19653         rather than "with_line" reporting functions.
19654         (convert_set_attr_alternative): Likewise.
19655         (gen_attr): Likewise.
19656         (check_defs): Likewise.  Don't assign to read_md_filename.
19657         (gen_insn): Update initialization after above changes.
19658         (gen_delay): Likewise.
19659         (write_insn_cases): Print the filename for a define_peephole.
19660         (gen_insn_reserv): Take a line number as argument and update
19661         the call to check_attr_test.
19662         (main): Pass a line number to gen_insn_reserv.
19663
19664 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19665
19666         * read-md.h (file_location): New structure.
19667         (directive_handler_t): Take a file_location rather than a line number.
19668         (message_at, error_at): Declare.
19669         (read_skip_construct): Delete.
19670         * read-md.c (message_with_line_1): Replace with...
19671         (message_at_1): ...this new function.
19672         (message_at, error_at): New functions.
19673         (message_with_line, error_with_line): Update to use message_at_1.
19674         (handle_enum): Take a file_location rather than a line number
19675         and use error_at for error reporting.
19676         (handle_include): Likewise.
19677         (read_skip_construct): Likewise.  Make static.
19678         (handle_file): Update after above changes.  Pass a file_location
19679         rather than a line number to handle_directive.
19680         * gensupport.c (queue_elem): Replace separate filename and lineno
19681         with a file_location.
19682         (queue_pattern): Replace filename and lineno arguments with a
19683         file_location.  Update after change to queue_elem.
19684         (process_define_predicate): Replace lineno argument with a
19685         file_location and use error_at for error reporting.  Update
19686         after above changes.
19687         (process_rtx): Likewise.
19688         (subst_pattern_match): Likewise.
19689         (get_alternatives_number): Likewise.
19690         (alter_predicate_for_insn): Likewise.
19691         (rtx_handle_directive): Likewise.
19692         (is_predicable): Update after above changes, using error_at rather
19693         than error_with_line.
19694         (has_subst_attribute): Likewise.
19695         (identify_predicable_attribute): Likewise.
19696         (alter_attrs_for_subst_insn): Likewise.
19697         (process_one_cond_exec): Likewise.
19698         (process_substs_on_one_elem): Likewise.
19699         (process_define_subst): Likewise.
19700         (check_define_attr_duplicates): Likewise.
19701         (read_md_rtx): Update after change to queue_elem.
19702
19703 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19704
19705         * genoutput.c (next_index_number): Delete.
19706         (data): Remove index_number.
19707         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
19708         (main): Remove manipulation of next_index_number.
19709
19710 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19711
19712         * genattrtab.c (check_attr_value): Remove handling of null attrs.
19713         (make_canonical): Likewise.
19714
19715 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
19716
19717         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
19718         instead of adjust_address_nv.
19719         (restore_stack_nonlocal): Likewise.
19720         (nonlocal_goto): Likewise.
19721
19722 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19723
19724         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
19725         not have a corresponding loop header phi.
19726
19727 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19728
19729         * tree-parloops.c (create_loads_for_reductions): Handle case that
19730         reduction is unused.
19731
19732 2015-07-16  Richard Biener  <rguenther@suse.de>
19733
19734         PR tree-optimization/66894
19735         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
19736         about deriving NE_EXPR from truncated values.
19737
19738 2015-07-16  Martin Liska  <mliska@suse.cz>
19739
19740         * alloc-pool.h
19741         (object_allocator): Add new class.
19742         (pool_allocator::initialize): Use the underlying class.
19743         (pool_allocator::allocate): Likewise.
19744         (pool_allocator::remove): Likewise.
19745         (operator new): A new generic allocator.
19746         * asan.c (struct asan_mem_ref): Remove unused members.
19747         (asan_mem_ref_new): Replace new operator with
19748         object_allocator::allocate.
19749         (free_mem_ref_resources): Change deallocation.
19750         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
19751         with object_allocator.
19752         * config/sh/sh.c (add_constant): Replace new operator with
19753         object_allocator::allocate.
19754         (sh_reorg): Change call to a release method.
19755         * cselib.c (struct elt_list): Remove unused members.
19756         (new_elt_list): Replace new operator with
19757         object_allocator::allocate.
19758         (new_elt_loc_list): Likewise.
19759         (new_cselib_val): Likewise.
19760         (unchain_one_elt_list): Change delete operator with remove method.
19761         (unchain_one_elt_loc_list): Likewise.
19762         (unchain_one_value): Likewise.
19763         (cselib_finish): Release newly added static allocators.
19764         * cselib.h (struct cselib_val): Remove unused members.
19765         (struct elt_loc_list): Likewise.
19766         * df-problems.c (df_chain_alloc): Replace pool_allocator with
19767         object_allocator.
19768         * df-scan.c (struct df_scan_problem_data): Likewise.
19769         (df_scan_alloc): Likewise.
19770         * df.h (struct dataflow): Likewise.
19771         * dse.c (struct read_info_type): Likewise.
19772         (struct insn_info_type): Likewise.
19773         (struct dse_bb_info_type): Likewise.
19774         (struct group_info): Likewise.
19775         (struct deferred_change): Likewise.
19776         (get_group_info): Likewise.
19777         (delete_dead_store_insn): Likewise.
19778         (free_read_records): Likewise.
19779         (replace_read): Likewise.
19780         (check_mem_read_rtx): Likewise.
19781         (scan_insn): Likewise.
19782         (dse_step1): Likewise.
19783         (dse_step7): Likewise.
19784         * et-forest.c (struct et_occ): Remove unused members.
19785         (et_new_occ): Use allocate instead of new operator.
19786         (et_new_tree): Likewise.
19787         (et_free_tree): Call release method explicitly.
19788         (et_free_tree_force): Likewise.
19789         (et_free_pools): Likewise.
19790         (et_split): Use remove instead of delete operator.
19791         * et-forest.h (struct et_node): Remove unused members.
19792         * ipa-cp.c: Change pool_allocator to object_allocator.
19793         * ipa-inline-analysis.c: Likewise.
19794         * ipa-profile.c: Likewise.
19795         * ipa-prop.c: Likewise.
19796         * ipa-prop.h: Likewise.
19797         * ira-build.c (initiate_cost_vectors): Cast return value.
19798         (ira_allocate_cost_vector): Likewise.
19799         * ira-color.c (struct update_cost_record): Remove unused members.
19800         * lra-int.h (struct lra_live_range): Likewise.
19801         (struct lra_copy): Likewise.
19802         (struct lra_insn_reg): Likewise.
19803         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
19804         * lra.c (new_insn_reg): Replace new operator with allocate method.
19805         (free_insn_regs): Same for operator delete.
19806         (finish_insn_regs): Release new static allocator.
19807         (finish_insn_recog_data): Likewise.
19808         (lra_free_copies): Replace delete operator with remove method.
19809         (lra_create_copy): Replace operator new with allocate method.
19810         (invalidate_insn_data_regno_info): Same for remove method.
19811         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
19812         (free_debug_insn_changes): Replace delete operator with remove method.
19813         (replace_oldest_value_reg): Replace operator new with allocate method.
19814         (pass_cprop_hardreg::execute): Release new static variable.
19815         * sched-deps.c (sched_deps_init): Change pool_allocator to
19816         object_allocator.
19817         * sel-sched-ir.c: Likewise.
19818         * sel-sched-ir.h: Likewise.
19819         * stmt.c (expand_case): Likewise.
19820         (expand_sjlj_dispatch_table): Likewise.
19821         * tree-sra.c (struct access): Remove unused members.
19822         (struct assign_link): Likewise.
19823         (sra_deinitialize): Release newly added static pools.
19824         (create_access_1):Replace operator new with allocate method.
19825         (build_accesses_from_assign): Likewise.
19826         (create_artificial_child_access): Likewise.
19827         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
19828         pool_allocator to object_allocator.
19829         * tree-ssa-pre.c: Likewise.
19830         * tree-ssa-reassoc.c: Likewise.
19831         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
19832         * tree-ssa-strlen.c: Likewise.
19833         * tree-ssa-structalias.c: Likewise.
19834         * var-tracking.c (onepart_pool_allocate): New function.
19835         (unshare_variable): Use the newly added function.
19836         (variable_merge_over_cur): Likewise.
19837         (variable_from_dropped): Likewise.
19838         (variable_was_changed): Likewise.
19839         (set_slot_part): Likewise.
19840         (emit_notes_for_differences_1): Likewise.
19841         (vt_finalize): Release newly added static pools.
19842
19843 2015-07-16  Martin Jambor  <mjambor@suse.cz>
19844
19845         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
19846         all uses.  Fix two typos in its general comment.
19847         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
19848
19849 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
19850
19851         * config/i386/linux-common.h (LINK_MPX): New.
19852         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
19853         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
19854         indicating '-z bndplt' support by linker.
19855         * configure: Regenerate.
19856         * config.in: Regenerate.
19857
19858 2015-07-16  Richard Biener  <rguenther@suse.de>
19859
19860         * fold-const.c (fold_widened_comparison): Remove.
19861         (fold_sign_changed_comparison): Likewise.
19862         (fold_comparison): Move widened and sign-changed comparison
19863         simplification ...
19864         * match.pd: ... to patterns here.
19865         * generic-match-head.c: Include target.h.
19866         * gimple-match-head.c: Likewise.
19867
19868 2015-07-16  Richard Biener  <rguenther@suse.de>
19869
19870         * tree-ssa-dom.c (dom_valueize): New function.
19871         (record_temporary_equivalences): Also record equivalences
19872         for dominating stmts that have uses of equivalences we are
19873         about to record.
19874
19875 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
19876
19877         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
19878         add_autoinc_candidates.
19879         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
19880         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
19881         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
19882         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
19883         Call new function.
19884         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
19885         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
19886         Remove parameter struct iv*.  Call add_autoinc_candidates here.
19887         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
19888         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
19889         Call new function.
19890         (find_iv_candidates): Call new functions.
19891
19892 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
19893
19894         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
19895         uninitialized-variable warning.
19896
19897 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
19898
19899         PR target/65249
19900         * config/sh/sh.md (movdi): Split simple reg move to two movsi
19901         when the destination is R0.
19902
19903 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
19904
19905         PR target/66866
19906         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
19907         * config/i386/i386.c (ix86_expand_pextr): New function.
19908         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
19909         for non-lowpart subregs.
19910         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
19911         (insv<mode>): Use SWI248 mode iterator.
19912         (insv<mode>_1): Ditto.
19913
19914 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19915             Sebastian Pop  <s.pop@samsung.com>
19916
19917         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
19918         iterator to use_stmt.
19919
19920 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19921             Sebastian Pop <s.pop@samsung.com>
19922
19923         * graphite-scop-detection.c (build_scops_1): Discard scops for
19924         which entry==exit.
19925
19926 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19927             Sebastian Pop <s.pop@samsung.com>
19928
19929         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
19930         case of a return statement in scop.
19931
19932 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19933             Sebastian Pop <s.pop@samsung.com>
19934
19935         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
19936         INTEGER_TYPE parameters.
19937         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
19938         VECTOR_CST in scan_tree_for_params.
19939         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
19940
19941 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19942
19943         * gimple-pretty-print.h: Don't include pretty-print.h.
19944         * tree-streamer.h: Don't include lto-streamer.h.
19945         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
19946         * gimple-streamer-in.c: Remove redundant includes.
19947         * gimple-streamer-out.c: Likewise.
19948         * ipa-devirt.c: Likewise.
19949         * ipa-icf.c: Likewise.
19950         * ipa-inline-analysis.c: Likewise.
19951         * ipa-polymorphic-call.c: Likewise.
19952         * ipa-profile.c: Likewise.
19953         * ipa-prop.c: Likewise.
19954         * ipa-pure-const.c: Likewise.
19955         * lto-cgraph.c: Likewise.
19956         * lto-streamer-in.c: Likewise.
19957         * lto-streamer-out.c: Likewise.
19958         * lto-streamer.c: Likewise.
19959         * tree-streamer-in.c: Likewise.
19960         * tree-streamer-out.c: Likewise.
19961         * tree-streamer.c: Likewise.
19962
19963 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19964
19965         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
19966         include input.h.
19967         * opts.c: Remove multiline #include comment.
19968
19969 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
19970
19971         * config/nvptx/mkoffload.c (process): Add C++ protection to
19972         emitted code.
19973
19974 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19975
19976         PR target/66854
19977         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
19978         null before IEEE 128-bit floating point support patch.
19979
19980 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19981
19982         * simplify-rtx.c (simplify_ternary_operation): Add simplification
19983         for (!c) != {0,...,0} ? a : b for vector modes.
19984
19985 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
19986             Martin Jambor  <mjambor@suse.cz>
19987
19988         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
19989         struct func_body_info* instead of struct ipa_node_params*, expecting
19990         fbi->info to be filled in.  Replace throughout.  Adjust call to
19991         ipa_load_from_parm_agg.
19992         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
19993         instead of struct ipa_node_params*.  Adjust calls to other functions
19994         so that they pass either fbi or fbi->info.
19995         (set_switch_stmt_execution_predicate): Likewise.
19996         (will_be_nonconstant_predicate): Likewise.
19997         (compute_bb_predicates): Likewise.
19998         (estimate_function_body_sizes): Move asserts earlier.  Fill in
19999         struct func_body_info, replace parms_info with fbi.info.  Adjust
20000         calls to functions that now accept struct func_body_info.
20001         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
20002         (struct func_body_info): Likewise.
20003         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
20004         remove static.  Adjust callers.
20005         (ipa_load_from_parm_agg): Remove.
20006         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
20007         (func_body_info): Likewise.
20008         (ipa_load_from_parm_agg): Adjust prototype.
20009
20010 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20011
20012         * gensupport.c (rtx_handle_directive): Adjust.
20013         * read-rtl.c (apply_iterators): Take vector to add rtxs to
20014         instead of expr list rtx.
20015         (add_define_attr_for_define_subst): Likewise.
20016         (add_define_subst_attr): Likewise.
20017         (read_subst_mapping): Likewise.
20018         (read_rtx): Likewise.
20019         * rtl.h (read_rtx): Adjust.
20020
20021 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20022
20023         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
20024
20025 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20026
20027         PR target/58066
20028         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
20029         (*tls_local_dynamic_base_64_<mode>): Ditto.
20030         (*tls_local_dynamic_base_64_largepic): Ditto.
20031         (tls_global_dynamic_64_<mode>): Update expander pattern.
20032         (tls_local_dynamic_base_64_<mode>): Ditto.
20033
20034 2015-07-15  Richard Biener  <rguenther@suse.de>
20035
20036         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
20037         and bool_var == 1 -> bool_var simplifications ...
20038         * match.pd: ... to patterns here.  Factor out negate_expr_p
20039         cases from the A - B -> A + (-B) patterns as negate_expr_p
20040         predicate and add a -(A + B) -> (-B) - A pattern.
20041
20042 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
20043
20044         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
20045
20046 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
20047             Robert Suchanek  <robert.suchanek@imgtec.com>
20048
20049         * config/mips/mips.c (mips_int_mask): New enum.
20050         (mips_shadow_set): Likewise.
20051         (int_mask): New variable.
20052         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
20053         (machine_function): Add int_mask and use_shadow_register_set.
20054         (mips_attribute_table): Add attribute handlers for interrupt and
20055         use_shadow_register_set.
20056         (mips_interrupt_mask): New static function.
20057         (mips_handle_interrupt_attr): Likewise.
20058         (mips_handle_use_shadow_register_set_attr): Likewise.
20059         (mips_use_shadow_register_set): Change return type to enum
20060         mips_shadow_set.  Add argument handling for use_shadow_register_set
20061         attribute.
20062         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
20063         compare with mips_shadow_set enum.
20064         (mips_compute_frame_info): Add interrupt mask and
20065         use_shadow_register_set to per-function information structure.
20066         Add a stack slot for EPC unconditionally.
20067         (mips_expand_prologue): Compare use_shadow_register_set value
20068         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
20069         masked interrupt register but in EIC mode use K0 and save Cause in K0.
20070         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
20071         copying the stack pointer from the shadow register set.
20072         * config/mips/mips.h (SR_IM0): New define.
20073         * config/mips/mips.md (mips_rdpgpr): Rename to...
20074         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
20075         * doc/extend.texi (Declaring Attributes of Functions): Document
20076         optional arguments for interrupt and use_shadow_register_set
20077         attributes.
20078
20079 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
20080
20081         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
20082         interrupt attribute.
20083         (mips_expand_prologue): Disable the floating point unit in an ISR.
20084         * config/mips/mips.h (SR_COP1): New define.
20085
20086 2015-07-15  Richard Biener  <rguenther@suse.de>
20087
20088         * genmatch.c (parser::peek, parser::peek_ident): Add argument
20089         to tell how many tokens to peek ahead (default 1).
20090         (parser::eat_token, parser::eat_ident): Return token consumed.
20091         (parser::parse_result): Parse new switch statement.
20092         * match.pd: Use case statements where appropriate.
20093
20094 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20095
20096         PR rtl-optimization/58066
20097         * calls.c (expand_call): Precompute register parameters before stack
20098         alignment is performed.
20099
20100 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
20101
20102         PR rtl-optimization/66838
20103         * postreload.c (reload_cse_move2add): Also process
20104         CALL_INSN_FUNCTION_USAGE when resetting information of
20105         call-clobbered registers.
20106
20107 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20108             Cesar Philippidis  <cesar@codesourcery.com>
20109             Chung-Lin Tang  <cltang@codesourcery.com>
20110
20111         * config/nios2/constraints.md (U, v): New constraints.
20112         * config/nios2/predicates.md (rdprs_dcache_operand): New.
20113         (ldstex_memory_operand): New.
20114         * config/nios2/sync.md: New file.
20115         * config/nios2/nios2.md (unspecv): Add new builtin function
20116         UNSPECV codes.
20117         (rdprs, flushd, flushda, wrpie, eni): New patterns.
20118         (top-level): Include sync.md.
20119         * config/nios2/nios2.c (N2_FTYPES): Add function types for
20120         new builtins.
20121         (N2_BUILTINS): Add arch field setting, add new builtins.
20122         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
20123         for arch field.
20124         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
20125         Also handle ldex/stex/ldsex/stsex builtins.
20126         (nios2_expand_rdprs_builtin): New function.
20127         (nios2_expand_cache_builtin): New function.
20128         (nios2_expand_wrpie_builtin): New function.
20129         (nios2_expand_eni_builtin): New function.
20130         (nios2_expand_builtin): Add arch field handling and new builtin
20131         cases.
20132         * doc/extend.texi (Altera Nios II Built-in Functions): Document
20133         new builtins.
20134         * doc/md.texi (Machine Constraints): Document U and v constraints.
20135
20136 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20137             Cesar Philippidis  <cesar@codesourcery.com>
20138             Chung-Lin Tang  <cltang@codesourcery.com>
20139
20140         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
20141         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
20142         callee_save_reg_size and uses_anonymous_args fields.
20143         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
20144         (nios2_create_cfa_notes): New function.
20145         (nios2_adjust_stack): New function for adjusting stack.
20146         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
20147         Use nios2_adjust_stack.
20148         (nios2_expand_epilogue): Likewise.
20149         (nios2_expand_return): New function.
20150         (nios2_can_use_return_insn): Update for CDX pop.n usage.
20151         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
20152         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
20153         * config/nios2/nios2.md (return): Use nios2_expand_return.
20154
20155 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20156             Cesar Philippidis  <cesar@codesourcery.com>
20157             Chung-Lin Tang  <cltang@codesourcery.com>
20158
20159         * config/nios2/predicates.md (pop_operation): New.
20160         (ldwm_operation, stwm_operation): New.
20161         (nios2_hard_register_operand): New.
20162         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
20163         (ldstwm_operation_p): Declare.
20164         (gen_ldstwm_peep): Declare.
20165         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
20166         (base_reg_adjustment_p): New.
20167         (pop_operation_p): New.
20168         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
20169         (nios2_ldstwm_regset_p): New.
20170         (ldstwm_operation_p): New.
20171         (gen_ldst): New.
20172         (nios2_ldst_parallel): New.
20173         (struct ldswm_operand): Declare.
20174         (compare_ldstwm_operands): New.
20175         (can_use_cdx_ldstw): New.
20176         (gen_ldstwm_peep): New.
20177         * config/nios2/nios2-ldstwm.sml: New.
20178         * config/nios2/nios2.md: Include ldstwm.md.
20179         * config/nios2/ldstwm.md: Generated.
20180
20181 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20182             Cesar Philippidis  <cesar@codesourcery.com>
20183             Chung-Lin Tang  <cltang@codesourcery.com>
20184
20185         * config/nios2/nios2.h (LABEL_ALIGN): Define.
20186         (REG_ALLOC_ORDER): Define.
20187         (ADJUST_REG_ALLOC_ORDER): Define.
20188         (HONOR_REG_ALLOC_ORDER): Define.
20189         (CDX_REG_P): Define.
20190         (ANDCLEAR_INT): Define.
20191         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
20192         (nios2_label_align): Declare.
20193         (nios2_cdx_narrow_form_p): Declare.
20194         (nios2_adjust_reg_alloc_order): Declare.
20195         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
20196         operation.
20197         (nios2_large_unspec_reloc_p): New function, split from...
20198         (nios2_legitimate_pic_operand_p): ...here.
20199         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
20200         (nios2_print_operand_punct_valid_p): New.
20201         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
20202         (split_mem_address): New.
20203         (split_alu_insn): New.
20204         (cdxreg): New.
20205         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
20206         (enum nios2_add_insn_kind): New.
20207         (nios2_add_insn_names, nios2_add_insn_narrow): New.
20208         (nios2_add_insn_classify): New.
20209         (nios2_add_insn_asm): New.
20210         (nios2_cdx_narrow_form_p): New.
20211         (label_align, min_labelno, max_labelno): New.
20212         (nios2_reorg): New.
20213         (nios2_label_align): New.
20214         (nios2_adjust_reg_alloc_order): New.
20215         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20216         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20217         * config/nios2/constraints.md (P): New constraint.
20218         * config/nios2/predicates.md (const_and_operand): New.
20219         (and_operand): New.
20220         (stack_memory_operand): New.
20221         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
20222         (length): Update to use nios2_cdx_narrow_form_p().
20223         (type): Add new insn type values.
20224         (control, alu, st, ld, shift): Update insn reservations with
20225         new insn type values.
20226         (*high, *lo_sum): Define new insn patterns for constant generation.
20227         (movqi_internal, movhi_internal, movsi_internal): Reduce
20228         alternatives, update asm template to handle CDX variants, update
20229         type attributes.
20230         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
20231         template, update type attributes.
20232         (extendhisi2, extendqi<mode>2): Likewise.
20233         (addsi3): Change to use function for asm string.
20234         (subsi3): Add CDX notation to asm template, update type attributes.
20235         (negsi3, one_cmplsi3): Likewise.
20236         (andsi3): New pattern, specialized from logical patterns.
20237         (<code>si3): Remove and case, combine alternatives, update asm
20238         template.
20239         (<shift_op>si3): Add CDX notation, update type attributes.
20240         (rotrsi3): Update type attribute.
20241         (*merge, extzv, insv): New insn patterns.
20242         (return): Change to define_expand.
20243         (simple_return): Add CDX notation, update type attributes.
20244         (indirect_jump): Add CDX notation.
20245         (jump): Update asm cases, update length attribute expression.
20246         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
20247         (nios2_cbranch): Update asm cases and length attribute expression
20248         to handle CDX variants.
20249         (nios2_cmp<code>): Update asm template.
20250         (nop): Add CDX notation, update type attributes.
20251         (trap): Add CDX notation.
20252         (ctrapsi4): Update asm cases and length attribute expression to
20253         handle CDX variant.
20254         * doc/md.texi (Machine Constraints): Document P constraint.
20255
20256 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20257             Cesar Philippidis  <cesar@codesourcery.com>
20258             Chung-Lin Tang  <cltang@codesourcery.com>
20259
20260         * config/nios2/nios2.h (SMALL_INT12): New macro.
20261         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
20262         (nios2_valid_addr_expr_p): Use it.
20263         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
20264         with implicit "io" instructions on R2.
20265         * config/nios2/constraints.md (w): New constraint.
20266         * config/nios2/predicates.md (ldstio_memory_operand): New.
20267         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
20268         operand predicate and constraint.
20269         (ld<bh>io_signed, st<bhw>io>): Likewise.
20270         * doc/md.texi (Machine Constraints): Document w constraint.
20271
20272 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20273             Cesar Philippidis  <cesar@codesourcery.com>
20274             Chung-Lin Tang  <cltang@codesourcery.com>
20275
20276         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
20277         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
20278         Nios II architecture level.
20279         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
20280         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
20281         (OPTION_DEFAULT_SPECS): Define.
20282         (ASM_SPEC): Add -march= spec strings.
20283         * config/nios2/nios2.c (nios2_option_override): Check for
20284         conflicts involving new options.
20285         * config.gcc (nios2*-*-*): Support --with-arch=.
20286         * doc/invoke.texi (Option Summary, Nios II Options): Document
20287         -march=, -mbmx, and -mcdx.
20288
20289 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
20290
20291         PR rtl-optimization/66626
20292         * lra-constraints.c (lra_constraints): Prevent equivalence
20293         substitution for static chain pseudo in functions with nonlocal
20294         goto.
20295
20296 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20297
20298         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
20299         (nios2_emit_stack_limit_check): Add size parameter.  Handle
20300         -fstack-limit-symbol as well as -fstack-limit-register.
20301         (nios2_expand_prologue): Emit only a single stack limit check,
20302         even if multiple stack adjustments are required.
20303         (nios2_option_override): Diagnose unsupported combination of -fpic
20304         and -stack-limit-symbol.
20305
20306 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
20307
20308         * Makefile.in (top_srcdir): New.
20309         * configure.ac: Use AM_ZLIB.
20310         * configure: Regeneated.
20311
20312 2015-07-14  Matthias Klose  <doko@ubuntu.com>
20313
20314         PR target/66840
20315         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
20316
20317 2015-07-14  Richard Biener  <rguenther@suse.de>
20318
20319         PR tree-optimization/66863
20320         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
20321         what we record for conversion use stmt lhs inequalities.
20322
20323 2015-07-14  Richard Biener  <rguenther@suse.de>
20324
20325         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
20326         (decision_tree::gen_gimple): Likewise.
20327
20328 2015-07-14  Tom de Vries  <tom@codesourcery.com>
20329
20330         * gcc.c (greater_than_spec_func): Declare forward.
20331         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
20332         -ftree-parallelize-loops={0,1}.
20333         (static_spec_functions): Add greater_than_spec_func function with name
20334         "gt".
20335         (greater_than_spec_func): New function.
20336
20337 2015-07-14  Richard Biener  <rguenther@suse.de>
20338
20339         * tree-ssa-dom.c (record_temporary_equivalences): Merge
20340         wideing type conversion case from record_equivalences_from_incoming_edge
20341         and use record_equality to record equivalences.
20342         (record_equivalences_from_incoming_edge): Call
20343         record_temporary_equivalences.
20344
20345 2015-07-14  Richard Biener  <rguenther@suse.de>
20346
20347         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
20348         (struct if_expr): New.
20349         (struct with_expr): Likewise.
20350         (is_a_helper): Add helpers for if_expr and with_expr.
20351         (struct simplify): Add simplify_kind enum and member.  Remove
20352         ifexpr_vec member.
20353         (simplify::simplify): Adjust.
20354         (lower_commutative): Adjust.
20355         (lower_opt_convert): Likewise.
20356         (lower_cond): Likewise.
20357         (replace_id): Handle with_expr and if_expr.
20358         (lower_for): Adjust.
20359         (dt_simplify::gen_1): New recursive worker, split out from ...
20360         (dt_simplify::gen): ... here.  Deal with if and with expansion
20361         recursively.
20362         (capture_info::capture_info): Take context argument
20363         (capture_info::walk_result): Only analyze specific result.
20364         (parser::parse_result): New function.
20365         (parser::parse_simplify): Adjust to parse ifs with then end
20366         else case.
20367         (parser::parse_if): Simplify.
20368         (parser::parse_pattern): Pass down simplify kind.
20369         * match.pd: Convert if structure to new syntax.
20370
20371 2015-07-13  Marek Polacek  <polacek@redhat.com>
20372
20373         * rtl.c (rtx_equal_p_cb): Fix typo.
20374
20375 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
20376
20377         * omega.h: Don't include config.h, don't include params.h again if
20378         omega.h has already been included.
20379         * graphite-poly.h: Include sese.h.
20380         * graphite.c: Don't include sese.h, remove needless includes and
20381         minimize includes outside #ifdef HAVE_isl block.
20382         * graphite-blocking.c: Don't include sese.h, remove needless includes,
20383         and wrap entire file in #ifdef HAVE_isl
20384         * graphite-dependences.c: Likewise.
20385         * graphite-interchange.c: Likewise.
20386         * graphite-isl-ast-to-gimple.c: Likewise.
20387         * graphite-optimize-isl.c: Likewise.
20388         * graphite-poly.c: Likewise.
20389         * graphite-scop-detection.c: Likewise.
20390         * graphite-sese-to-poly.c: Likewise.
20391
20392 2015-07-13  Tom de Vries  <tom@codesourcery.com>
20393
20394         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
20395
20396 2015-07-13  Renlin Li  <renlin.li@arm.com>
20397
20398         PR rtl/66556
20399         * simplify-rtx.c (simplify_const_relational_operation): Add
20400         side_effects_p checks.
20401
20402 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
20403
20404         * bitmap.h: Fix double word typos.
20405         * builtins.c: Same.
20406         * calls.c: Same.
20407         * cfgloopmanip.c: Same.
20408         * cgraph.c: Same.
20409         * cgraph.h: Same.
20410         * cgraphclones.c: Same.
20411         * combine.c: Same.
20412         * config/aarch64/aarch64-protos.h: Same.
20413         * config/aarch64/aarch64.c: Same.
20414         * config/aarch64/aarch64.md: Same.
20415         * config/arm/arm.md: Same.
20416         * config/arm/arm1020e.md: Same.
20417         * config/arm/arm1026ejs.md: Same.
20418         * config/arm/arm926ejs.md: Same.
20419         * config/arm/fa526.md: Same.
20420         * config/arm/fa606te.md: Same.
20421         * config/arm/fa626te.md: Same.
20422         * config/arm/fa726te.md: Same.
20423         * config/arm/fmp626.md: Same.
20424         * config/darwin.c: Same.
20425         * config/epiphany/epiphany.c: Same.
20426         * config/frv/frv.c: Same.
20427         * config/ft32/ft32.c: Same.
20428         * config/gnu-user.h: Same.
20429         * config/h8300/constraints.md: Same.
20430         * config/i386/i386.c: Same.
20431         * config/i386/i386.md: Same.
20432         * config/iq2000/iq2000.md: Same.
20433         * config/mips/mips.c: Same.
20434         * config/mmix/mmix.md: Same.
20435         * config/moxie/moxie.c: Same.
20436         * config/nds32/nds32.md: Same.
20437         * config/pa/pa.h: Same.
20438         * config/rs6000/aix.h: Same.
20439         * config/rs6000/rs6000.h: Same.
20440         * config/sh/sh.c: Same.
20441         * config/tilegx/tilegx.md: Same.
20442         * config/tilepro/gen-mul-tables.cc: Same.
20443         * cse.c: Same.
20444         * dbxout.c: Same.
20445         * doc/invoke.texi: Same.
20446         * dse.c: Same.
20447         * dwarf2out.c: Same.
20448         * final.c: Same.
20449         * gcc.c: Same.
20450         * genmatch.c: Same.
20451         * gimplify.c: Same.
20452         * hash-table.h: Same.
20453         * internal-fn.c: Same.
20454         * ipa-cp.c: Same.
20455         * ipa-devirt.c: Same.
20456         * ipa-icf.c: Same.
20457         * ipa-icf.h: Same.
20458         * ipa-profile.c: Same.
20459         * ipa-prop.c: Same.
20460         * ipa-prop.h: Same.
20461         * ira.c: Same.
20462         * omp-low.c: Same.
20463         * reg-stack.c: Same.
20464         * regcprop.c: Same.
20465         * reorg.c: Same.
20466         * rtl.h: Same.
20467         * sbitmap.h: Same.
20468         * tree-eh.c: Same.
20469         * tree-inline.c: Same.
20470         * tree-sra.c: Same.
20471         * tree-ssa-dom.c: Same.
20472         * tree-ssa-loop-ivopts.c: Same.
20473         * tree-ssa-structalias.c: Same.
20474         * tree-ssa-tail-merge.c: Same.
20475         * tree-ssa-ter.c: Same.
20476         * tree-ssa-threadupdate.c: Same.
20477         * tree-ssa-uninit.c: Same.
20478         * tree-ssanames.c: Same.
20479         * tree-vect-loop-manip.c: Same.
20480         * tree-vrp.c: Same.
20481         * tree.c: Same.
20482         * valtrack.c: Same.
20483         * vec.h: Same.
20484
20485 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20486
20487         PR middle-end/66726
20488         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
20489         tree_ssa_phiopt_worker): Call it.
20490
20491 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20492
20493         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
20494         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
20495         REG_EQUAL note.
20496
20497 2015-07-11  Marek Polacek  <polacek@redhat.com>
20498
20499         PR middle-end/66353
20500         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
20501         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
20502         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
20503         rather than bb_has_abnormal_call_pred.
20504         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
20505         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
20506         rather than bb_has_abnormal_call_pred.
20507
20508 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
20509
20510         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20511         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
20512         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20513         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
20514         v850_legitimate_address_p): New functions.
20515         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
20516
20517 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
20518
20519         PR target/66819
20520         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
20521         indirect sibcall with register arguments if register available
20522         for argument passing.
20523         (init_cumulative_args): Set cfun->machine->arg_reg_available
20524         to (cum->nregs > 0) or to true if function has a variable
20525         argument list.
20526         (function_arg_advance_32): Set cfun->machine->arg_reg_available
20527         to false if cum->nregs <= 0.
20528         * config/i386/i386.h (machine_function): Add arg_reg_available.
20529
20530 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20531
20532         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
20533         and gen_higpart instead of gen_rtx_SUBREG.
20534         * config/i386/i386.md
20535         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
20536         (read-modify peephole2): Use gen_lowpart instead of
20537         gen_rtx_SUBREG for operand 5.
20538
20539 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20540
20541         * config/tilepro/gen-mul-tables.cc (main): Change include list for
20542         generated files.
20543         * config/tilepro/mul-tables.c: Regenerate.
20544         * config/tilegx/mul-tables.c: Regenerate.
20545
20546 2015-07-10  Richard Biener  <rguenther@suse.de>
20547
20548         * fold-const.c (distribute_bit_expr): Remove.
20549         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
20550         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
20551         to A & (B | C) and simplifying A << C1 << C2 to ...
20552         * match.pd: ... patterns here.
20553
20554 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
20555
20556         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
20557         Mark mem as READONLY and NOTRAP for PIC symbol.
20558
20559 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20560
20561         * gimple-predict.h: New file.
20562         (gimple_predict_predictor, gimple_predict_set_predictor,
20563         gimple_predict_outcome, gimple_predict_set_outcome,
20564         gimple_build_predict): Relocate here.
20565         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
20566         gimple_predict_outcome, gimple_predict_set_outcome): Move to
20567         gimple-predict.h.
20568         * gimple.c (gimple_build_predict): Move to gimple-predict.h
20569         * basic-block.h: Don't include cfghooks.h.
20570         * backend.h: Don't include predict.h.
20571         * cfghooks.h: Include predict.h.
20572         * gimple-pretty-print.c: Include gimple-predict.h.
20573         * gimplify.c: Likwise.
20574         * predict.c: Adjust includes.
20575         * tree-inline.c: Likewise.
20576         * asan.c: Likewise.
20577         * auto-inc-dec.c: Likewise.
20578         * auto-profile.c: Likewise.
20579         * bb-reorder.c: Likewise.
20580         * builtins.c: Likewise.
20581         * caller-save.c: Likewise.
20582         * calls.c: Likewise.
20583         * cfganal.c: Likewise.
20584         * cfgbuild.c: Likewise.
20585         * cfg.c: Likewise.
20586         * cfgcleanup.c: Likewise.
20587         * cfgexpand.c: Likewise.
20588         * cfghooks.c: Likewise.
20589         * cfgloopanal.c: Likewise.
20590         * cfgloop.c: Likewise.
20591         * cfgloopmanip.c: Likewise.
20592         * cfgrtl.c: Likewise.
20593         * cgraph.c: Likewise.
20594         * cgraphunit.c: Likewise.
20595         * combine.c: Likewise.
20596         * cprop.c: Likewise.
20597         * cse.c: Likewise.
20598         * dce.c: Likewise.
20599         * dojump.c: Likewise.
20600         * dse.c: Likewise.
20601         * except.c: Likewise.
20602         * expmed.c: Likewise.
20603         * expr.c: Likewise.
20604         * final.c: Likewise.
20605         * fold-const.c: Likewise.
20606         * function.c: Likewise.
20607         * fwprop.c: Likewise.
20608         * gcc-plugin.h: Likewise.
20609         * gcse.c: Likewise.
20610         * genattrtab.c: Likewise.
20611         * genemit.c: Likewise.
20612         * gengtype.c: Likewise.
20613         * genopinit.c: Likewise.
20614         * genoutput.c: Likewise.
20615         * genpreds.c: Likewise.
20616         * genrecog.c: Likewise.
20617         * gimple-fold.c: Likewise.
20618         * gimple-iterator.c: Likewise.
20619         * gimple-ssa-isolate-paths.c: Likewise.
20620         * gimple-ssa-strength-reduction.c: Likewise.
20621         * graph.c: Likewise.
20622         * graphite-blocking.c: Likewise.
20623         * graphite.c: Likewise.
20624         * graphite-dependences.c: Likewise.
20625         * graphite-interchange.c: Likewise.
20626         * graphite-isl-ast-to-gimple.c: Likewise.
20627         * graphite-optimize-isl.c: Likewise.
20628         * graphite-poly.c: Likewise.
20629         * graphite-scop-detection.c: Likewise.
20630         * graphite-sese-to-poly.c: Likewise.
20631         * haifa-sched.c: Likewise.
20632         * ifcvt.c: Likewise.
20633         * internal-fn.c: Likewise.
20634         * ipa-cp.c: Likewise.
20635         * ipa-profile.c: Likewise.
20636         * ipa-split.c: Likewise.
20637         * ipa-utils.c: Likewise.
20638         * ira-build.c: Likewise.
20639         * ira-color.c: Likewise.
20640         * ira-conflicts.c: Likewise.
20641         * ira-costs.c: Likewise.
20642         * ira-emit.c: Likewise.
20643         * ira-lives.c: Likewise.
20644         * jump.c: Likewise.
20645         * loop-doloop.c: Likewise.
20646         * loop-init.c: Likewise.
20647         * loop-invariant.c: Likewise.
20648         * loop-unroll.c: Likewise.
20649         * lower-subreg.c: Likewise.
20650         * lra-assigns.c: Likewise.
20651         * lra.c: Likewise.
20652         * lra-coalesce.c: Likewise.
20653         * lra-constraints.c: Likewise.
20654         * lra-lives.c: Likewise.
20655         * lto-cgraph.c: Likewise.
20656         * lto-streamer-in.c: Likewise.
20657         * mode-switching.c: Likewise.
20658         * modulo-sched.c: Likewise.
20659         * omp-low.c: Likewise.
20660         * optabs.c: Likewise.
20661         * passes.c: Likewise.
20662         * postreload.c: Likewise.
20663         * postreload-gcse.c: Likewise.
20664         * profile.c: Likewise.
20665         * recog.c: Likewise.
20666         * regstat.c: Likewise.
20667         * reload1.c: Likewise.
20668         * reorg.c: Likewise.
20669         * rtlanal.c: Likewise.
20670         * sched-ebb.c: Likewise.
20671         * sel-sched-ir.c: Likewise.
20672         * sese.c: Likewise.
20673         * shrink-wrap.c: Likewise.
20674         * simplify-rtx.c: Likewise.
20675         * stmt.c: Likewise.
20676         * store-motion.c: Likewise.
20677         * tracer.c: Likewise.
20678         * trans-mem.c: Likewise.
20679         * tree-call-cdce.c: Likewise.
20680         * tree-cfg.c: Likewise.
20681         * tree-cfgcleanup.c: Likewise.
20682         * tree-chkp.c: Likewise.
20683         * tree-complex.c: Likewise.
20684         * tree-eh.c: Likewise.
20685         * tree-if-conv.c: Likewise.
20686         * tree-loop-distribution.c: Likewise.
20687         * tree-outof-ssa.c: Likewise.
20688         * tree-parloops.c: Likewise.
20689         * tree-predcom.c: Likewise.
20690         * tree-pretty-print.c: Likewise.
20691         * tree-profile.c: Likewise.
20692         * tree-sra.c: Likewise.
20693         * tree-ssa.c: Likewise.
20694         * tree-ssa-coalesce.c: Likewise.
20695         * tree-ssa-dce.c: Likewise.
20696         * tree-ssa-dom.c: Likewise.
20697         * tree-ssa-forwprop.c: Likewise.
20698         * tree-ssa-ifcombine.c: Likewise.
20699         * tree-ssa-loop-ch.c: Likewise.
20700         * tree-ssa-loop-im.c: Likewise.
20701         * tree-ssa-loop-ivcanon.c: Likewise.
20702         * tree-ssa-loop-ivopts.c: Likewise.
20703         * tree-ssa-loop-manip.c: Likewise.
20704         * tree-ssa-loop-prefetch.c: Likewise.
20705         * tree-ssa-loop-unswitch.c: Likewise.
20706         * tree-ssa-math-opts.c: Likewise.
20707         * tree-ssa-phiopt.c: Likewise.
20708         * tree-ssa-pre.c: Likewise.
20709         * tree-ssa-reassoc.c: Likewise.
20710         * tree-ssa-sink.c: Likewise.
20711         * tree-ssa-tail-merge.c: Likewise.
20712         * tree-ssa-threadedge.c: Likewise.
20713         * tree-ssa-threadupdate.c: Likewise.
20714         * tree-switch-conversion.c: Likewise.
20715         * tree-tailcall.c: Likewise.
20716         * tree-vect-data-refs.c: Likewise.
20717         * tree-vect-loop.c: Likewise.
20718         * tree-vect-loop-manip.c: Likewise.
20719         * tree-vectorizer.c: Likewise.
20720         * tree-vrp.c: Likewise.
20721         * ubsan.c: Likewise.
20722         * value-prof.c: Likewise.
20723         * varasm.c: Likewise.
20724         * var-tracking.c: Likewise.
20725         * config/aarch64/aarch64-builtins.c: Likewise.
20726         * config/aarch64/aarch64.c: Likewise.
20727         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20728         * config/alpha/alpha.c: Likewise.
20729         * config/arc/arc.c: Likewise.
20730         * config/arm/arm.c: Likewise.
20731         * config/avr/avr.c: Likewise.
20732         * config/bfin/bfin.c: Likewise.
20733         * config/c6x/c6x.c: Likewise.
20734         * config/cr16/cr16.c: Likewise.
20735         * config/cris/cris.c: Likewise.
20736         * config/darwin.c: Likewise.
20737         * config/darwin-c.c: Likewise.
20738         * config/epiphany/epiphany.c: Likewise.
20739         * config/epiphany/mode-switch-use.c: Likewise.
20740         * config/epiphany/resolve-sw-modes.c: Likewise.
20741         * config/fr30/fr30.c: Likewise.
20742         * config/frv/frv.c: Likewise.
20743         * config/ft32/ft32.c: Likewise.
20744         * config/h8300/h8300.c: Likewise.
20745         * config/i386/i386.c: Likewise.
20746         * config/i386/winnt.c: Likewise.
20747         * config/ia64/ia64.c: Likewise.
20748         * config/iq2000/iq2000.c: Likewise.
20749         * config/lm32/lm32.c: Likewise.
20750         * config/m32c/m32c.c: Likewise.
20751         * config/m32r/m32r.c: Likewise.
20752         * config/m68k/m68k.c: Likewise.
20753         * config/mcore/mcore.c: Likewise.
20754         * config/mep/mep.c: Likewise.
20755         * config/microblaze/microblaze.c: Likewise.
20756         * config/mips/mips.c: Likewise.
20757         * config/mmix/mmix.c: Likewise.
20758         * config/mn10300/mn10300.c: Likewise.
20759         * config/moxie/moxie.c: Likewise.
20760         * config/msp430/msp430.c: Likewise.
20761         * config/nds32/nds32.c: Likewise.
20762         * config/nds32/nds32-cost.c: Likewise.
20763         * config/nds32/nds32-fp-as-gp.c: Likewise.
20764         * config/nds32/nds32-intrinsic.c: Likewise.
20765         * config/nds32/nds32-isr.c: Likewise.
20766         * config/nds32/nds32-md-auxiliary.c: Likewise.
20767         * config/nds32/nds32-memory-manipulation.c: Likewise.
20768         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20769         * config/nds32/nds32-predicates.c: Likewise.
20770         * config/nios2/nios2.c: Likewise.
20771         * config/nvptx/nvptx.c: Likewise.
20772         * config/pa/pa.c: Likewise.
20773         * config/pdp11/pdp11.c: Likewise.
20774         * config/rl78/rl78.c: Likewise.
20775         * config/rs6000/rs6000.c: Likewise.
20776         * config/rx/rx.c: Likewise.
20777         * config/s390/s390.c: Likewise.
20778         * config/sh/sh.c: Likewise.
20779         * config/sh/sh-mem.cc: Likewise.
20780         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20781         * config/sh/sh_treg_combine.cc: Likewise.
20782         * config/sparc/sparc.c: Likewise.
20783         * config/spu/spu.c: Likewise.
20784         * config/stormy16/stormy16.c: Likewise.
20785         * config/tilegx/tilegx.c: Likewise.
20786         * config/tilepro/tilepro.c: Likewise.
20787         * config/v850/v850.c: Likewise.
20788         * config/vax/vax.c: Likewise.
20789         * config/visium/visium.c: Likewise.
20790         * config/xtensa/xtensa.c: Likewise.
20791
20792 2015-07-10  Richard Biener  <rguenther@suse.de>
20793
20794         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
20795         (decision_tree::gen_gimple): Likewise.
20796         (decision_tree::gen_generic): Likewise.
20797
20798 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20799
20800         PR target/66813
20801         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
20802         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
20803
20804 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
20805
20806         PR middle-end/66820
20807         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
20808         or ORT_TASK contexts.
20809         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
20810         is non-zero.
20811
20812 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20813
20814         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
20815         above function.
20816
20817 2015-07-10  Tom de Vries  <tom@codesourcery.com>
20818
20819         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
20820         insert nit + 1 bound.
20821
20822 2015-07-10  Richard Biener  <rguenther@suse.de>
20823
20824         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
20825         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
20826         (if_convertible_loop_p_1): For this always compute bb predicates.
20827         (if_convertible_loop_p): And free them.
20828
20829 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20830
20831         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
20832         in dump message.
20833
20834 2015-07-10  Richard Biener  <rguenther@suse.de>
20835
20836         PR tree-optimization/66823
20837         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
20838         inverted predicate.
20839
20840 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
20841
20842         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
20843         to handle mips[32|64]r3 and mips[32|64]r5.
20844
20845 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
20846
20847         PR middle-end/66633
20848         * tree-nested.c (get_static_chain): Or in a flag into
20849         info->static_chain_added.
20850         (get_frame_field, get_nonlocal_debug_decl): Likewise.
20851         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
20852         2015-07-01 changes.
20853         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
20854         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
20855         add it to clauses.
20856
20857         PR tree-optimization/66718
20858         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
20859         field.
20860         (vect_simd_lane_linear): New function.
20861         (vectorizable_simd_clone_call): Support using linear arguments for
20862         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
20863
20864 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20865
20866         PR target/66821
20867         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
20868
20869 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
20870
20871         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
20872         Use machine mode, not enum machine_mode in the prototype.
20873
20874         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
20875         classify 128-bit floating point support.
20876         (FLOAT128_IBM_P): Likewise.
20877         (FLOAT128_VECTOR_P): Likewise.
20878         (FLOAT128_2REG_P): Likewise.
20879         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
20880         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
20881         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
20882         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
20883
20884         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
20885         tests against TFmode/TDmode, since those modes do not use VSX
20886         addresses.
20887         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
20888         support.
20889         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
20890         tests against TFmode, etc.
20891         (invalid_e500_subreg): Add tests against IFmode/KFmode.
20892         (reg_offset_addressing_ok_p): Likewise.
20893         (rs6000_legitimate_offset_address_p): Likewise.
20894         (rs6000_legitimize_address): Likewise.
20895         (rs6000_legitimize_reload_address): Likewise.
20896         (rs6000_legitimate_address_p): Clean up tests against TFmode and
20897         TDmode to use the new helper macros, which will include IFmode and
20898         KFmode.
20899         (rs6000_emit_move): Likewise.
20900         (rs6000_darwin64_record_arg_recurse): Likewise.
20901         (print_operand): Likewise.
20902         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
20903         that uses a single vector register as a vector and not as a
20904         floating point register in terms of the calling sequence.
20905         (rs6000_discover_homogeneous_aggregate): Likewise.
20906         (rs6000_return_in_memory): Likewise.
20907         (init_cumulative_args): Likewise.
20908         (rs6000_function_arg_boundary): Likewise.
20909         (rs6000_function_arg_advance_1): Likewise.
20910         (rs6000_function_arg): Likewise.
20911         (rs6000_pass_by_reference): Likewise.
20912         (rs6000_gimplify_va_arg): Likewise.
20913         (rs6000_secondary_reload_memory): Use machine_mode not enum
20914         machine mode.
20915         (rs6000_split_multireg_move): Use new helper macros.
20916         (spe_func_has_64bit_regs_p): Likewise.
20917         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
20918         (output_toc): Use new helper macros.
20919         (rs6000_register_move_cost): Likewise.
20920         (rs6000_function_value): Add IEEE 128-bit floating point calling
20921         sequence support.
20922         (rs6000_libcall_value): Likewise.
20923         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
20924         floating point support.
20925         (rs6000_vector_mode_supported_p): Likewise.
20926
20927 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
20928
20929         PR rtl-optimization/66782
20930         * lra-int.h (struct lra_insn_recog_data): Add comment about
20931         clobbered hard regs for arg_hard_regs.
20932         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
20933         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
20934         Add condition for processing used hard regs.
20935         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
20936         Process clobbered hard regs.
20937
20938 2015-07-09  Michael Matz  <matz@suse.de>
20939
20940         * genmatch.c (fprintf_indent): New function.
20941         (operand::gen_transform): Add indent parameter.
20942         (expr::gen_transform, c_expr::gen_transform,
20943         capture::gen_transform): Ditto and use fprintf_indent.
20944         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
20945         (dt_operand::gen, dt_operand::gen_predicate,
20946         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
20947         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
20948         (decision_tree::gen_gimple): Adjust calls and indent generated
20949         code.
20950         (decision_tree::gen_generic): Ditto.
20951         (write_predicate): Ditto.
20952
20953 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20954
20955         PR target/66814
20956         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
20957         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
20958         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
20959         {GENERAL,SSE,MMX}_REG_P where appropriate.
20960
20961 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20962
20963         * lto-streamer.h: Don't include target.h and alloc-pool.h.
20964         * builtins.c: Adjust includes.
20965         * gimple.c: Likewise.
20966         * ipa-icf.c: Likewise.
20967         * lto-opts.c: Likewise.
20968         * ipa-reference.c: Likewise.
20969         * lto-section-out.c: Likewise.
20970         * lto-streamer-in.c: Likewise.
20971         * lto-streamer-out.c: Likewise.
20972         * opts-global.c: Likewise.
20973         * symtab.c: Likewise.
20974         * tree-chkp.c: Likewise.
20975         * tree-ssa-live.c: Likewise.
20976         * tree-streamer-in.c: Likewise.
20977         * tree-streamer-out.c: Likewise.
20978         * config/darwin.c: Likewise.
20979         * config/i386/winnt.c: Likewise.
20980
20981 2015-07-09  Richard Biener  <rguenther@suse.de>
20982
20983         * genmatch.c (struct expr): Add force_single_use flag.
20984         (expr::expr): Add copy constructor.
20985         (capture_info::walk_match): Gather force_single_use captures.
20986         (expr::gen_transform): Use possibly NULLified sequence.
20987         (dt_simplify::gen): Apply single-use restrictions by NULLifying
20988         seq if any constrained expr is not single-use.
20989         (parser::parse_expr): Refactor to allow multiple flags.  Handle
20990         's' flag to force an expression have a single-use if the pattern
20991         simplifies to more than one statement.
20992         * match.pd: Convert most single_use conditionals to :s flags.
20993
20994 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20995
20996         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
20997         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
20998         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
20999
21000 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
21001
21002         * flags.h: Don't include flag-types.h or options.h.
21003         * opts-common.c: Adjust includes.
21004         * opts-global.c: Likewise.
21005         * common/config/epiphany/epiphany-common.c: Likewise.
21006
21007 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21008
21009         PR target/66818
21010         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
21011         for IA MCU.
21012
21013 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
21014
21015         PR target/66817
21016         * config/i386/i386.c (ix86_return_in_memory): Return true
21017         if int_size_in_bytes returns negative for IA MCU.
21018
21019 2015-07-09  Marek Polacek  <polacek@redhat.com>
21020
21021         PR tree-optimization/66718
21022         * Makefile.in (OBJS): Add gimple-laddress.o.
21023         * passes.def: Schedule pass_laddress.
21024         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
21025         * tree-pass.h (make_pass_laddress): Declare.
21026         * gimple-laddress.c: New file.
21027
21028 2015-07-09  Richard Biener  <rguenther@suse.de>
21029
21030         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
21031
21032 2015-07-09  Richard Biener  <rguenther@suse.de>
21033
21034         PR tree-optimization/66807
21035         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
21036
21037 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
21038
21039         * function.c (stack_protect_epilogue): Use if rather than switch for
21040         check targetm.have_stack_protect_test.
21041
21042 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21043
21044         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
21045         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
21046         * config/arc/arc.h: Likewise.
21047         * config/arm/arm.h: Likewise.
21048         * config/bfin/bfin.h: Likewise.
21049         * config/epiphany/epiphany.h: Likewise.
21050         * config/frv/frv.h: Likewise.
21051         * config/ia64/ia64.h: Likewise.
21052         * config/iq2000/iq2000.h: Likewise.
21053         * config/lm32/lm32.h: Likewise.
21054         * config/m32r/m32r.h: Likewise.
21055         * config/mcore/mcore.h: Likewise.
21056         * config/mep/mep.h: Likewise.
21057         * config/microblaze/microblaze.h: Likewise.
21058         * config/mips/mips.h: Likewise.
21059         * config/mmix/mmix.h: Likewise.
21060         * config/mn10300/mn10300.h: Likewise.
21061         * config/nds32/nds32.h: Likewise.
21062         * config/nios2/nios2.h: Likewise.
21063         * config/pa/pa.h: Likewise.
21064         * config/rl78/rl78.h: Likewise.
21065         * config/sh/sh.h: Likewise.
21066         * config/sparc/sparc.h: Likewise.
21067         * config/stormy16/stormy16.h: Likewise.
21068         * config/tilegx/tilegx.h: Likewise.
21069         * config/tilepro/tilepro.h: Likewise.
21070         * config/v850/v850.h: Likewise.
21071         * config/xtensa/xtensa.h: Likewise.
21072         * doc/tm.texi: Regenerate.
21073         * doc/tm.texi.in: Adjust.
21074         * combine.c (simplify_set): Likewise.
21075         (simplify_comparison): Likewise.
21076         * expr.c (store_constructor): Likewise.
21077         * internal-fn.c (expand_arith_overflow): Likewise.
21078         * reload.c (push_reload): Likewise.
21079         (find_reloads): Likewise.
21080         (find_reloads_subreg_address): Likewise.
21081         * reload1.c (eliminate_regs_1): Likewise.
21082         * rtlanal.c (nonzero_bits1): Likewise.
21083         (num_sign_bit_copies1): Likewise.
21084         * simplify-rtx.c (simplify_truncation): Likewise.
21085
21086 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21087
21088         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
21089         of AUTO_INC_DEC with the preprocessor.
21090         * combine.c (combine_instructions): Likewise.
21091         (can_combine_p): Likewise.
21092         (try_combine): Likewise.
21093         * emit-rtl.c (try_split): Likewise.
21094         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
21095         * lower-subreg.c (resolve_simple_move): Likewise.
21096         * lra.c (update_inc_notes): Likewise.
21097         * recog.c (asm_operand_ok): Likewise.
21098         (constrain_operands): Likewise.
21099         * regrename.c (scan_rtx_address): Likewise.
21100         * reload.c (update_auto_inc_notes): Likewise.
21101         (reg_inc_found_and_valid_p): Likewise.
21102         * reload1.c (reload): Likewise.
21103         (emit_input_reload_insns): Likewise.
21104         (delete_output_reload): Likewise.
21105         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21106         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21107
21108 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21109
21110         * rtl.h: Always define AUTO_INC_DEC.
21111         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
21112         * combine.c (combine_instructions): Likewise.
21113         (can_combine_p): Likewise.
21114         (try_combine): Likewise.
21115         * emit-rtl.c (try_split): Likewise.
21116         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
21117         * lower-subreg.c (resolve_simple_move): Likewise.
21118         * lra.c (update_inc_notes): Likewise.
21119         * recog.c (asm_operand_ok): Likewise.
21120         (constrain_operands): Likewise.
21121         * regrename.c (scan_rtx_address): Likewise.
21122         * reload.c (update_auto_inc_notes): Likewise.
21123         (find_equiv_reg): Likewise.
21124         * reload1.c (reload): Likewise.
21125         (reload_as_needed): Likewise.
21126         (choose_reload_regs): Likewise.
21127         (emit_input_reload_insns): Likewise.
21128         (delete_output_reload): Likewise.
21129         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21130         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21131
21132 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21133
21134         * combine.c (can_combine_def_p): Don't check the value of
21135         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
21136         (combinable_i3pat): Likewise.
21137         (mark_used_regs_combine): Likewise.
21138         * regrename.c (rename_chains): Likewise.
21139         * reload.c (find_reloads_address): Likewise.
21140         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21141
21142 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21143
21144         * combine.c (update_rsp_from_reg_equal): Don't check if
21145         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
21146         (reg_nonzero_bits_for_combine): Likewise.
21147         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
21148         1.
21149         * config/frv/frv.h: Likewise.
21150         * config/lm32/lm32.h: Likewise.
21151         * config/mep/mep.h: Likewise.
21152         * config/mips/mips.h: Likewise.
21153         * config/rs6000/rs6000.h: Likewise.
21154         * config/sh/sh.h: Likewise.
21155         * config/tilegx/tilegx.h (enum reg_class): Likewise.
21156         * config/tilepro/tilepro.h: Likewise.
21157         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
21158         * doc/tm.texi: Regenerate.
21159         * doc/tm.texi.in: Adjust.
21160         * rtlanal.c (nonzero_bits1): Likewise.
21161
21162 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21163
21164         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
21165         with the preprocessor.
21166         (combine_instructions): Likewise.
21167         (try_combine): Likewise.
21168         (subst): Likewise.
21169         (distribute_notes): Likewise.
21170
21171 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21172
21173         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
21174         defined.
21175         (simplify_set): Likewise.
21176         * cse.c (cse_insn): Likewise.
21177         * fold-const.c (fold_single_bit_test): Likewise.
21178         (fold_unary_loc): Likewise.
21179         * postreload.c (reload_cse_simplify_set): Likewise.
21180         (reload_cse_simplify_operands): Likewise.
21181
21182 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
21183
21184         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
21185         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
21186
21187 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21188
21189         PR target/66746
21190         * config/i386/x86intrin.h: Include <adxintrin.h> even if
21191         __iamcu__ is defined.
21192
21193 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21194
21195         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
21196
21197 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
21198
21199         PR target/66523
21200         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
21201         names from preservation.
21202
21203 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21204
21205         PR target/66806
21206         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
21207         change for IAMCU.
21208         (function_arg_advance_32): Don't pass vectors in registers for
21209         IAMCU.
21210         (function_arg_32): Likewise.
21211         (ix86_return_in_memory): Don't return vectors in registers for
21212         IAMCU.
21213
21214 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
21215
21216         PR middle-end/66334
21217         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
21218         hard regno live at the start of BB with incoming abnormal edges.
21219         * lra-lives.c (process_bb_lives): Ditto.
21220
21221 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
21222
21223         PR libgomp/65099
21224         * config/nvptx/mkoffload.c (main): Create an offload image only in
21225         64-bit configurations.
21226
21227 2015-07-08  Martin Liska  <mliska@suse.cz>
21228
21229         PR bootstrap/66744
21230         * tree-sra.c (create_access_1): Call ctor without brackets.
21231         (create_artificial_child_access): Likewise.
21232
21233 2015-07-08  Richard Biener  <rguenther@suse.de>
21234
21235         PR tree-optimization/66793
21236         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
21237         Properly split the block after stmts ending it.
21238
21239 2015-07-08  Richard Biener  <rguenther@suse.de>
21240
21241         PR tree-optimization/66794
21242         * passes.c (execute_function_todo): Assert that post-dominators
21243         are not computed.
21244         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
21245         Free post-dominators.
21246
21247 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21248
21249         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
21250         with early exit.
21251
21252 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21253
21254         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
21255         more than or equal 8 and less than 32 when optimizing for size.
21256
21257 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21258
21259         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
21260         COSTS_N_INSNS (1) and increment it appropriately throughout the
21261         function.
21262
21263 2015-07-08  Richard Biener  <rguenther@suse.de>
21264
21265         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
21266
21267 2015-07-08  Alan Modra  <amodra@gmail.com>
21268
21269         * target.def (rtx_costs): Remove "code" param, add "mode".
21270         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
21271         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
21272         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
21273         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
21274         call.  Track mode when given in rtx.
21275         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
21276         (default_address_cost): Pass Pmode to rtx_cost.
21277         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
21278         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
21279         with NULL set.
21280         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
21281         (notreg_cost): Add mode param.  Use it.
21282         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
21283         mode param and pass to set_src_cost.  Update all calls.
21284         (hash_scan_set): Formatting.
21285         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
21286         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
21287         * hooks.h: Ditto.
21288         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
21289         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
21290         emit_store_flag): Update set_src_cost and rtx_cost calls.
21291         * auto-inc-dec.c (attempt_change): Likewise.
21292         * calls.c (precompute_register_parameters): Likewise.
21293         * combine.c (expand_compound_operation, make_extraction,
21294         force_to_mode, distribute_and_simplify_rtx): Likewise.
21295         * dojump.c (prefer_and_bit_test): Likewise.
21296         * dse.c (find_shift_sequence): Likewise.
21297         * expr.c (compress_float_constant): Likewise.
21298         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
21299         * ifcvt.c (noce_try_sign_mask): Likewise.
21300         * loop-doloop.c (doloop_optimize): Likewise.
21301         * loop-invariant.c (create_new_invariant): Likewise.
21302         * lower-subreg.c (shift_cost, compute_costs): Likewise.
21303         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
21304         lshift_cheap_p): Likewise.
21305         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21306         try_replace_in_use, reload_cse_move2add): Likewise.
21307         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
21308         Likewise.
21309         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
21310         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21311         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
21312         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
21313         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
21314         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
21315         to rtx_cost calls.
21316         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
21317         * config/arc/arc.c (arc_rtx_costs): Likewise.
21318         * config/arm/arm.c (arm_rtx_costs): Likewise.
21319         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
21320         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
21321         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
21322         * config/cris/cris.c (cris_rtx_costs): Likewise.
21323         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
21324         * config/frv/frv.c (frv_rtx_costs): Likewise.
21325         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
21326         * config/i386/i386.c (ix86_rtx_costs): Likewise.
21327         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
21328         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
21329         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
21330         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
21331         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
21332         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
21333         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
21334         * config/mep/mep.c (mep_rtx_cost): Likewise.
21335         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
21336         * config/mips/mips.c (mips_rtx_costs): Likewise.
21337         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
21338         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
21339         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
21340         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
21341         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
21342         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
21343         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
21344         * config/pa/pa.c (hppa_rtx_costs): Likewise.
21345         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
21346         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
21347         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
21348         * config/s390/s390.c (s390_rtx_costs): Likewise.
21349         * config/sh/sh.c (sh_rtx_costs): Likewise.
21350         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
21351         * config/spu/spu.c (spu_rtx_costs): Likewise.
21352         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
21353         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
21354         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
21355         * config/v850/v850.c (v850_rtx_costs): Likewise.
21356         * config/vax/vax.c (vax_rtx_costs): Likewise.
21357         * config/visium/visium.c (visium_rtx_costs): Likewise.
21358         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
21359         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
21360         "code" param, and pass as outer_code to first rtx_cost call.  Pass
21361         mode to rtx_cost calls.
21362         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
21363         calls.
21364         (aarch64_rtx_costs_wrapper): Update.
21365         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
21366         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
21367         rtx_cost calls.
21368         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
21369         and rtx_cost calls.
21370         (avr_operand_rtx_cost): Similarly.
21371         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
21372         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
21373         * config/mips/mips.c (mips_stack_address_p): Comment typo.
21374         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
21375         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
21376         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
21377         rtx_cost.
21378         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
21379         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
21380         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
21381         * doc/tm.texi: Regenerate.
21382
21383 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
21384
21385         * tree-core.h: Include symtab.h.
21386         * rtl.h: Include hard-reg-set.h but not flags.h.
21387         (HARD_CONST): Remove condition compilation involving HARD_CONST since
21388         hard-reg-set.h is always included.
21389         * regs.h: Don't include hard-reg-set.h or rtl.h.
21390         * cfg.h: Include dominance.h.
21391         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
21392         * backend.h: New.  Aggregate commonly used backend header files.
21393         * gimple-ssa.h: Don't include tree-hasher.h.
21394         * ssa.h: New.  Aggregate commonly used SSA header files.
21395         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
21396         * sel-sched-ir.h: Flatten includes.
21397         * lra-int.h: Flatten completely.
21398         * sel-sched-dump.h: Flatten includes.
21399         * ira-int.h: Flatten includes.
21400         * gimple-streamer.h: Remove all includes.
21401         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
21402         * resource.h: Flatten hard-reg-set.h and df.h.
21403         * sched-int.h: Flatten insn-arrt.h and df.h.
21404         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
21405         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
21406         * genattrtab.c (write_header): Adjust generated includes.
21407         * genautomata.c (main): Likewise.
21408         * genconditions.c (write-header): Likewise.
21409         * genemit.c (main): Likewise.
21410         * gengtype.c (open_base_files): Likewise.
21411         * genopinit.c (main): Likewise.
21412         * genoutput.c (output_prologue): Likewise.
21413         * genpeep.c (main): Likewise.
21414         * genpreds.c (write_insn_preds_c): Likewise.
21415         * genrecog.c (write_header): Likewise.
21416         * alias.c: Adjust includes.
21417         * asan.c: Likewise.
21418         * attribs.c: Likewise.
21419         * auto-inc-dec.c: Likewise.
21420         * auto-profile.c: Likewise.
21421         * bb-reorder.c: Likewise.
21422         * bt-load.c: Likewise.
21423         * builtins.c: Likewise.
21424         * caller-save.c: Likewise.
21425         * calls.c: Likewise.
21426         * ccmp.c: Likewise.
21427         * cfg.c: Likewise.
21428         * cfganal.c: Likewise.
21429         * cfgbuild.c: Likewise.
21430         * cfgcleanup.c: Likewise.
21431         * cfgexpand.c: Likewise.
21432         * cfghooks.c: Likewise.
21433         * cfgloop.c: Likewise.
21434         * cfgloopanal.c: Likewise.
21435         * cfgloopmanip.c: Likewise.
21436         * cfgrtl.c: Likewise.
21437         * cgraph.c: Likewise.
21438         * cgraphbuild.c: Likewise.
21439         * cgraphclones.c: Likewise.
21440         * cgraphunit.c: Likewise.
21441         * cilk-common.c: Likewise.
21442         * combine-stack-adj.c: Likewise.
21443         * combine.c: Likewise.
21444         * compare-elim.c: Likewise.
21445         * convert.c: Likewise.
21446         * coverage.c: Likewise.
21447         * cppbuiltin.c: Likewise.
21448         * cprop.c: Likewise.
21449         * cse.c: Likewise.
21450         * cselib.c: Likewise.
21451         * data-streamer-in.c: Likewise.
21452         * data-streamer-out.c: Likewise.
21453         * data-streamer.c: Likewise.
21454         * dbxout.c: Likewise.
21455         * dce.c: Likewise.
21456         * ddg.c: Likewise.
21457         * debug.c: Likewise.
21458         * df-core.c: Likewise.
21459         * df-problems.c: Likewise.
21460         * df-scan.c: Likewise.
21461         * dfp.c: Likewise.
21462         * dojump.c: Likewise.
21463         * dominance.c: Likewise.
21464         * domwalk.c: Likewise.
21465         * double-int.c: Likewise.
21466         * dse.c: Likewise.
21467         * dumpfile.c: Likewise.
21468         * dwarf2asm.c: Likewise.
21469         * dwarf2cfi.c: Likewise.
21470         * dwarf2out.c: Likewise.
21471         * emit-rtl.c: Likewise.
21472         * et-forest.c: Likewise.
21473         * except.c: Likewise.
21474         * explow.c: Likewise.
21475         * expmed.c: Likewise.
21476         * expr.c: Likewise.
21477         * final.c: Likewise.
21478         * fixed-value.c: Likewise.
21479         * fold-const.c: Likewise.
21480         * function.c: Likewise.
21481         * fwprop.c: Likewise.
21482         * gcc-plugin.h: Likewise.
21483         * gcse-common.c: Likewise.
21484         * gcse.c: Likewise.
21485         * generic-match-head.c: Likewise.
21486         * ggc-page.c: Likewise.
21487         * gimple-builder.c: Likewise.
21488         * gimple-expr.c: Likewise.
21489         * gimple-fold.c: Likewise.
21490         * gimple-iterator.c: Likewise.
21491         * gimple-low.c: Likewise.
21492         * gimple-match-head.c: Likewise.
21493         * gimple-pretty-print.c: Likewise.
21494         * gimple-ssa-isolate-paths.c: Likewise.
21495         * gimple-ssa-strength-reduction.c: Likewise.
21496         * gimple-streamer-in.c: Likewise.
21497         * gimple-streamer-out.c: Likewise.
21498         * gimple-walk.c: Likewise.
21499         * gimple.c: Likewise.
21500         * gimplify-me.c: Likewise.
21501         * gimplify.c: Likewise.
21502         * godump.c: Likewise.
21503         * graph.c: Likewise.
21504         * graphite-blocking.c: Likewise.
21505         * graphite-dependences.c: Likewise.
21506         * graphite-interchange.c: Likewise.
21507         * graphite-isl-ast-to-gimple.c: Likewise.
21508         * graphite-optimize-isl.c: Likewise.
21509         * graphite-poly.c: Likewise.
21510         * graphite-scop-detection.c: Likewise.
21511         * graphite-sese-to-poly.c: Likewise.
21512         * graphite.c: Likewise.
21513         * haifa-sched.c: Likewise.
21514         * hw-doloop.c: Likewise.
21515         * ifcvt.c: Likewise.
21516         * init-regs.c: Likewise.
21517         * internal-fn.c: Likewise.
21518         * ipa-chkp.c: Likewise.
21519         * ipa-comdats.c: Likewise.
21520         * ipa-cp.c: Likewise.
21521         * ipa-devirt.c: Likewise.
21522         * ipa-icf-gimple.c: Likewise.
21523         * ipa-icf.c: Likewise.
21524         * ipa-inline-analysis.c: Likewise.
21525         * ipa-inline-transform.c: Likewise.
21526         * ipa-inline.c: Likewise.
21527         * ipa-polymorphic-call.c: Likewise.
21528         * ipa-profile.c: Likewise.
21529         * ipa-prop.c: Likewise.
21530         * ipa-pure-const.c: Likewise.
21531         * ipa-ref.c: Likewise.
21532         * ipa-reference.c: Likewise.
21533         * ipa-split.c: Likewise.
21534         * ipa-utils.c: Likewise.
21535         * ipa-visibility.c: Likewise.
21536         * ipa.c: Likewise.
21537         * ira-build.c: Likewise.
21538         * ira-color.c: Likewise.
21539         * ira-conflicts.c: Likewise.
21540         * ira-costs.c: Likewise.
21541         * ira-emit.c: Likewise.
21542         * ira-lives.c: Likewise.
21543         * ira.c: Likewise.
21544         * jump.c: Likewise.
21545         * langhooks.c: Likewise.
21546         * lcm.c: Likewise.
21547         * loop-doloop.c: Likewise.
21548         * loop-init.c: Likewise.
21549         * loop-invariant.c: Likewise.
21550         * loop-iv.c: Likewise.
21551         * loop-unroll.c: Likewise.
21552         * lower-subreg.c: Likewise.
21553         * lra-assigns.c: Likewise.
21554         * lra-coalesce.c: Likewise.
21555         * lra-constraints.c: Likewise.
21556         * lra-eliminations.c: Likewise.
21557         * lra-lives.c: Likewise.
21558         * lra-remat.c: Likewise.
21559         * lra-spills.c: Likewise.
21560         * lra.c: Likewise.
21561         * lto-cgraph.c: Likewise.
21562         * lto-compress.c: Likewise.
21563         * lto-opts.c: Likewise.
21564         * lto-section-in.c: Likewise.
21565         * lto-section-out.c: Likewise.
21566         * lto-streamer-in.c: Likewise.
21567         * lto-streamer-out.c: Likewise.
21568         * lto-streamer.c: Likewise.
21569         * mcf.c: Likewise.
21570         * mode-switching.c: Likewise.
21571         * modulo-sched.c: Likewise.
21572         * omega.c: Likewise.
21573         * omp-low.c: Likewise.
21574         * optabs.c: Likewise.
21575         * opts-global.c: Likewise.
21576         * passes.c: Likewise.
21577         * plugin.c: Likewise.
21578         * postreload-gcse.c: Likewise.
21579         * postreload.c: Likewise.
21580         * predict.c: Likewise.
21581         * print-rtl.c: Likewise.
21582         * print-tree.c: Likewise.
21583         * profile.c: Likewise.
21584         * real.c: Likewise.
21585         * realmpfr.c: Likewise.
21586         * recog.c: Likewise.
21587         * ree.c: Likewise.
21588         * reg-stack.c: Likewise.
21589         * regcprop.c: Likewise.
21590         * reginfo.c: Likewise.
21591         * regrename.c: Likewise.
21592         * regstat.c: Likewise.
21593         * reload.c: Likewise.
21594         * reload1.c: Likewise.
21595         * reorg.c: Likewise.
21596         * resource.c: Likewise.
21597         * rtl-chkp.c: Likewise.
21598         * rtlanal.c: Likewise.
21599         * rtlhooks.c: Likewise.
21600         * sanopt.c: Likewise.
21601         * sched-deps.c: Likewise.
21602         * sched-ebb.c: Likewise.
21603         * sched-rgn.c: Likewise.
21604         * sched-vis.c: Likewise.
21605         * sdbout.c: Likewise.
21606         * sel-sched-dump.c: Likewise.
21607         * sel-sched-ir.c: Likewise.
21608         * sel-sched.c: Likewise.
21609         * sese.c: Likewise.
21610         * shrink-wrap.c: Likewise.
21611         * simplify-rtx.c: Likewise.
21612         * stack-ptr-mod.c: Likewise.
21613         * stmt.c: Likewise.
21614         * stor-layout.c: Likewise.
21615         * store-motion.c: Likewise.
21616         * stringpool.c: Likewise.
21617         * symtab.c: Likewise.
21618         * target-globals.c: Likewise.
21619         * targhooks.c: Likewise.
21620         * toplev.c: Likewise.
21621         * tracer.c: Likewise.
21622         * trans-mem.c: Likewise.
21623         * tree-affine.c: Likewise.
21624         * tree-browser.c: Likewise.
21625         * tree-call-cdce.c: Likewise.
21626         * tree-cfg.c: Likewise.
21627         * tree-cfgcleanup.c: Likewise.
21628         * tree-chkp-opt.c: Likewise.
21629         * tree-chkp.c: Likewise.
21630         * tree-chrec.c: Likewise.
21631         * tree-complex.c: Likewise.
21632         * tree-data-ref.c: Likewise.
21633         * tree-dfa.c: Likewise.
21634         * tree-diagnostic.c: Likewise.
21635         * tree-dump.c: Likewise.
21636         * tree-eh.c: Likewise.
21637         * tree-emutls.c: Likewise.
21638         * tree-if-conv.c: Likewise.
21639         * tree-inline.c: Likewise.
21640         * tree-into-ssa.c: Likewise.
21641         * tree-iterator.c: Likewise.
21642         * tree-loop-distribution.c: Likewise.
21643         * tree-nested.c: Likewise.
21644         * tree-nrv.c: Likewise.
21645         * tree-object-size.c: Likewise.
21646         * tree-outof-ssa.c: Likewise.
21647         * tree-parloops.c: Likewise.
21648         * tree-phinodes.c: Likewise.
21649         * tree-predcom.c: Likewise.
21650         * tree-pretty-print.c: Likewise.
21651         * tree-profile.c: Likewise.
21652         * tree-scalar-evolution.c: Likewise.
21653         * tree-sra.c: Likewise.
21654         * tree-ssa-address.c: Likewise.
21655         * tree-ssa-alias.c: Likewise.
21656         * tree-ssa-ccp.c: Likewise.
21657         * tree-ssa-coalesce.c: Likewise.
21658         * tree-ssa-copy.c: Likewise.
21659         * tree-ssa-copyrename.c: Likewise.
21660         * tree-ssa-dce.c: Likewise.
21661         * tree-ssa-dom.c: Likewise.
21662         * tree-ssa-dse.c: Likewise.
21663         * tree-ssa-forwprop.c: Likewise.
21664         * tree-ssa-ifcombine.c: Likewise.
21665         * tree-ssa-live.c: Likewise.
21666         * tree-ssa-loop-ch.c: Likewise.
21667         * tree-ssa-loop-im.c: Likewise.
21668         * tree-ssa-loop-ivcanon.c: Likewise.
21669         * tree-ssa-loop-ivopts.c: Likewise.
21670         * tree-ssa-loop-manip.c: Likewise.
21671         * tree-ssa-loop-niter.c: Likewise.
21672         * tree-ssa-loop-prefetch.c: Likewise.
21673         * tree-ssa-loop-unswitch.c: Likewise.
21674         * tree-ssa-loop.c: Likewise.
21675         * tree-ssa-math-opts.c: Likewise.
21676         * tree-ssa-operands.c: Likewise.
21677         * tree-ssa-phiopt.c: Likewise.
21678         * tree-ssa-phiprop.c: Likewise.
21679         * tree-ssa-pre.c: Likewise.
21680         * tree-ssa-propagate.c: Likewise.
21681         * tree-ssa-reassoc.c: Likewise.
21682         * tree-ssa-sccvn.c: Likewise.
21683         * tree-ssa-scopedtables.c: Likewise.
21684         * tree-ssa-sink.c: Likewise.
21685         * tree-ssa-strlen.c: Likewise.
21686         * tree-ssa-structalias.c: Likewise.
21687         * tree-ssa-tail-merge.c: Likewise.
21688         * tree-ssa-ter.c: Likewise.
21689         * tree-ssa-threadedge.c: Likewise.
21690         * tree-ssa-threadupdate.c: Likewise.
21691         * tree-ssa-uncprop.c: Likewise.
21692         * tree-ssa-uninit.c: Likewise.
21693         * tree-ssa.c: Likewise.
21694         * tree-ssanames.c: Likewise.
21695         * tree-stdarg.c: Likewise.
21696         * tree-streamer-in.c: Likewise.
21697         * tree-streamer-out.c: Likewise.
21698         * tree-streamer.c: Likewise.
21699         * tree-switch-conversion.c: Likewise.
21700         * tree-tailcall.c: Likewise.
21701         * tree-vect-data-refs.c: Likewise.
21702         * tree-vect-generic.c: Likewise.
21703         * tree-vect-loop-manip.c: Likewise.
21704         * tree-vect-loop.c: Likewise.
21705         * tree-vect-patterns.c: Likewise.
21706         * tree-vect-slp.c: Likewise.
21707         * tree-vect-stmts.c: Likewise.
21708         * tree-vectorizer.c: Likewise.
21709         * tree-vrp.c: Likewise.
21710         * tree.c: Likewise.
21711         * tsan.c: Likewise.
21712         * ubsan.c: Likewise.
21713         * valtrack.c: Likewise.
21714         * value-prof.c: Likewise.
21715         * var-tracking.c: Likewise.
21716         * varasm.c: Likewise.
21717         * varpool.c: Likewise.
21718         * vmsdbgout.c: Likewise.
21719         * vtable-verify.c: Likewise.
21720         * web.c: Likewise.
21721         * wide-int.cc: Likewise.
21722         * xcoffout.c: Likewise.
21723         * config/aarch64/aarch64-builtins.c: Likewise.
21724         * config/aarch64/aarch64.c: Likewise.
21725         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21726         * config/alpha/alpha.c: Likewise.
21727         * config/arc/arc.c: Likewise.
21728         * config/arm/aarch-common.c: Likewise.
21729         * config/arm/arm-builtins.c: Likewise.
21730         * config/arm/arm-c.c: Likewise.
21731         * config/arm/arm.c: Likewise.
21732         * config/avr/avr-c.c: Likewise.
21733         * config/avr/avr-log.c: Likewise.
21734         * config/avr/avr.c: Likewise.
21735         * config/bfin/bfin.c: Likewise.
21736         * config/c6x/c6x.c: Likewise.
21737         * config/cr16/cr16.c: Likewise.
21738         * config/cris/cris.c: Likewise.
21739         * config/darwin-c.c: Likewise.
21740         * config/darwin.c: Likewise.
21741         * config/epiphany/epiphany.c: Likewise.
21742         * config/epiphany/mode-switch-use.c: Likewise.
21743         * config/epiphany/resolve-sw-modes.c: Likewise.
21744         * config/fr30/fr30.c: Likewise.
21745         * config/frv/frv.c: Likewise.
21746         * config/ft32/ft32.c: Likewise.
21747         * config/h8300/h8300.c: Likewise.
21748         * config/i386/i386-c.c: Likewise.
21749         * config/i386/i386.c: Likewise.
21750         * config/i386/msformat-c.c: Likewise.
21751         * config/i386/winnt-cxx.c: Likewise.
21752         * config/i386/winnt-stubs.c: Likewise.
21753         * config/i386/winnt.c: Likewise.
21754         * config/ia64/ia64-c.c: Likewise.
21755         * config/ia64/ia64.c: Likewise.
21756         * config/iq2000/iq2000.c: Likewise.
21757         * config/lm32/lm32.c: Likewise.
21758         * config/m32c/m32c-pragma.c: Likewise.
21759         * config/m32c/m32c.c: Likewise.
21760         * config/m32r/m32r.c: Likewise.
21761         * config/m68k/m68k.c: Likewise.
21762         * config/mcore/mcore.c: Likewise.
21763         * config/mep/mep-pragma.c: Likewise.
21764         * config/mep/mep.c: Likewise.
21765         * config/microblaze/microblaze-c.c: Likewise.
21766         * config/microblaze/microblaze.c: Likewise.
21767         * config/mips/mips.c: Likewise.
21768         * config/mmix/mmix.c: Likewise.
21769         * config/mn10300/mn10300.c: Likewise.
21770         * config/moxie/moxie.c: Likewise.
21771         * config/msp430/msp430-c.c: Likewise.
21772         * config/msp430/msp430.c: Likewise.
21773         * config/nds32/nds32-cost.c: Likewise.
21774         * config/nds32/nds32-fp-as-gp.c: Likewise.
21775         * config/nds32/nds32-intrinsic.c: Likewise.
21776         * config/nds32/nds32-isr.c: Likewise.
21777         * config/nds32/nds32-md-auxiliary.c: Likewise.
21778         * config/nds32/nds32-memory-manipulation.c: Likewise.
21779         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21780         * config/nds32/nds32-predicates.c: Likewise.
21781         * config/nds32/nds32.c: Likewise.
21782         * config/nios2/nios2.c: Likewise.
21783         * config/nvptx/nvptx.c: Likewise.
21784         * config/pa/pa.c: Likewise.
21785         * config/pdp11/pdp11.c: Likewise.
21786         * config/rl78/rl78-c.c: Likewise.
21787         * config/rl78/rl78.c: Likewise.
21788         * config/rs6000/rs6000-c.c: Likewise.
21789         * config/rs6000/rs6000.c: Likewise.
21790         * config/rx/rx.c: Likewise.
21791         * config/s390/s390-c.c: Likewise.
21792         * config/s390/s390.c: Likewise.
21793         * config/sh/sh-c.c: Likewise.
21794         * config/sh/sh-mem.cc: Likewise.
21795         * config/sh/sh.c: Likewise.
21796         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21797         * config/sh/sh_treg_combine.cc: Likewise.
21798         * config/sol2-c.c: Likewise.
21799         * config/sol2-cxx.c: Likewise.
21800         * config/sol2-stubs.c: Likewise.
21801         * config/sol2.c: Likewise.
21802         * config/sparc/sparc-c.c: Likewise.
21803         * config/sparc/sparc.c: Likewise.
21804         * config/spu/spu-c.c: Likewise.
21805         * config/spu/spu.c: Likewise.
21806         * config/stormy16/stormy16.c: Likewise.
21807         * config/tilegx/mul-tables.c: Likewise.
21808         * config/tilegx/tilegx-c.c: Likewise.
21809         * config/tilegx/tilegx.c: Likewise.
21810         * config/tilepro/mul-tables.c: Likewise.
21811         * config/tilepro/tilepro-c.c: Likewise.
21812         * config/tilepro/tilepro.c: Likewise.
21813         * config/v850/v850-c.c: Likewise.
21814         * config/v850/v850.c: Likewise.
21815         * config/vax/vax.c: Likewise.
21816         * config/visium/visium.c: Likewise.
21817         * config/vms/vms-c.c: Likewise.
21818         * config/vms/vms.c: Likewise.
21819         * config/vxworks.c: Likewise.
21820         * config/xtensa/xtensa.c: Likewise.
21821
21822 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
21823
21824         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
21825         Remove operand constraints.  Change operand 2 predicate to
21826         nonmemory operand.  Limit const_int values to mode bitsize.  Only
21827         allow const_int values less than 32 when optimizing for size.
21828         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
21829         Remove operand constraints.
21830         (*bt<mode>): Use SImode for const_int values less than 32.
21831         (regmode): Remove mode attribute.
21832
21833 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
21834
21835         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21836         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
21837           moxie_legitimate_address_p): New functions.
21838           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
21839
21840 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21841
21842         PR tree-optimization/66642
21843         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
21844         header comment.  Rename split_edge variable to edge_at_split.  Split
21845         exit edge to create new loop exit bb.  Insert loop exit phis in new
21846         loop exit bb.
21847
21848 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21849
21850         * tree-cfg.c (get_virtual_phi): New function.
21851         * tree-cfg.h (get_virtual_phi): Declare.
21852         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
21853         (rewrite_virtuals_into_loop_closed_ssa): New function.
21854         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
21855         Declare.
21856         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
21857         (transform_to_exit_first_loop_alt): Use
21858         rewrite_virtuals_into_loop_closed_ssa.
21859
21860 2015-07-07  Richard Biener  <rguenther@suse.de>
21861
21862         * fold-const.c (fold_binary_loc): Move
21863         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
21864         * match.pd: ... here.
21865         Add (X * C1) % C2 -> 0 simplification pattern derived from
21866         extract_muldiv_1.
21867
21868 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
21869
21870         PR target/66780
21871         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
21872         change for target/65249.
21873
21874 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
21875
21876         * symtab.c (address_matters_1): Fix typo in comment above.
21877         (can_increase_alignment_p): Likewise.
21878
21879 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21880
21881         * function.c (free_after_compilation): Clear PROP_cfg in
21882         f->curr_properties.
21883
21884 2015-07-07  Richard Biener  <rguenther@suse.de>
21885
21886         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
21887         add which use to.
21888         (add_control_edge): Remove excessive vertical space in dumping.
21889         (process_ssa_edge_worklist): Simulate at most one statement and
21890         return whether we did.  Do not simulate PHIs if they are in a
21891         BB not yet simulated.
21892         (ssa_propagate): Adjust to always drain the BB worklist whenever
21893         a BB is available there, likewise the VARYING edges list before
21894         the interesting edge list.
21895
21896 2015-07-07  Christian Bruel  <christian.bruel@st.com>
21897
21898         PR target/52144
21899         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
21900
21901 2015-07-07  Richard Biener  <rguenther@suse.de>
21902
21903         PR middle-end/66739
21904         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
21905         A - B.
21906
21907 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21908
21909         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
21910         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
21911         Copy operand 0 to a temporary if !ext_register_operand.  Remove
21912         ancient extract_bit_field workaround.
21913         (insv<mode>_1): Rename from mov<mode>_insv_1.
21914         (*insvqi): Rename from *movqi_insv_2.
21915         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
21916         for renamed insvsi_1.
21917         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
21918
21919 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
21920
21921         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
21922         call to nvptx_reorg_subreg.
21923
21924 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
21925
21926         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
21927         * graphite-dependencies.c, graphite-interchange.c,
21928         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
21929         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
21930         Likewise.
21931
21932 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
21933
21934         * match.pd: Remove element_mode inside HONOR_*.
21935         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
21936         (~X | X -> -1, ~X ^ X -> -1): Merge.
21937         * tree.c (build_each_one_cst): New function.
21938         * tree.h (build_each_one_cst): Likewise.
21939
21940 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21941
21942         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21943         PROCESSOR_IAMCU.
21944
21945 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
21946
21947         * config.gcc <mips*-*-*>: Add fused-madd.opt.
21948         * config/mips/mips.opt (mfused-madd): Remove.
21949         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
21950         * config/mips/mips.h (TARGET_MIPS8000): New.
21951         (ISA_HAS_FP_MADD4_MSUB4): Remove.
21952         (ISA_HAS_FP_MADDF_MSUBF): Remove.
21953         (ISA_HAS_FP_MADD3_MSUB3): Remove.
21954         (ISA_HAS_NMADD4_NMSUB4): Remove.
21955         (ISA_HAS_NMADD3_NMSUB3): Remove.
21956         (ISA_HAS_FUSED_MADD4): New.
21957         (ISA_HAS_UNFUSED_MADD4): New.
21958         (ISA_HAS_FUSED_MADDF): New.
21959         (ISA_HAS_FUSED_MADD3): New.
21960         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
21961         (*fma<mode>4_madd3) New.
21962         (*fma<mode>4_madd4) New.
21963         (*fma<mode>4_maddf) New.
21964         (fms<mode>4) New.
21965         (*fms<mode>4_msub3) New.
21966         (*fms<mode>4_msub4) New.
21967         (fnma<mode>4) New.
21968         (*fnma<mode>4_nmadd3) New.
21969         (*fnma<mode>4_nmadd4) New.
21970         (fnms<mode>4) New.
21971         (*fnms<mode>4_nmsub3) New.
21972         (*fnms<mode>4_nmsub4) New.
21973         (*madd4<mode>) Modify to be unfused only.
21974         (*msub4<mode>) Modify to be unfused only.
21975         (*nmadd4<mode>) Modify to be unfused only.
21976         (*nmsub4<mode>) Modify to be unfused only.
21977         (*madd3<mode>) Remove.
21978         (*msub3<mode>) Remove.
21979         (*nmadd3<mode>) Remove.
21980         (*nmsub3<mode>) Remove.
21981         (*nmadd3<mode>_fastmath) Remove.
21982         (*nmsub3<mode>_fastmath) Remove.
21983         (*nmadd4<mode>_fastmath) Update condition.
21984         (*nmsub4<mode>_fastmath) Update condition.
21985
21986 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21987
21988         PR target/65956
21989         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
21990         alignment attribute, exploring one level down for records and arrays.
21991
21992 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21993
21994         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
21995         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
21996         Copy operand 1 to a temporary if !ext_register_operand.  Remove
21997         ancient extract_bit_field workaround.
21998         (*extv<mode>): Rename from *mov<mode>_extv_1.
21999         (*extvqi): Rename from *movqi_extv_1.
22000         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
22001         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
22002         to a temporary if !ext_register_operand.  Remove ancient
22003         extract_bit_field workaround.
22004         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
22005         (*extzvqi): Rename from *movqi_extzv_2.
22006         (*testqi_ext_3): Remove modes from const_int_operand predicated
22007         operands.  Add "n" constraint.
22008         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
22009         operand.  Add "J" constraint.
22010         (*btsq, *btrq, *btcq peephole2s): Remove mode from
22011         const_0_to_63 predicated operand.
22012         (regmode): New insn attribute.
22013         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
22014         to nonmemory_operand.  Use regmode insn attribute.
22015         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
22016         (*jcc_bt<mode>_mask): Remove mode from operand 3.
22017         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
22018         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
22019         operands.  Use "N" constraint instead of "n".
22020
22021 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
22022
22023         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
22024
22025 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
22026
22027         PR target/66749
22028         * config/i386/i386.c (iamcu_cost): New.
22029         (m_IAMCU): Likewise.
22030         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
22031         (processor_target_table): Add an entry for "iamcu".
22032         (processor_alias_table): Likewise.
22033         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
22034         (ix86_adjust_cost): Likewise.
22035         (ia32_multipass_dfa_lookahead): Likewise.
22036         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
22037         * config/i386/x86-tune.def: Updated for m_IAMCU.
22038
22039 2015-07-06  Richard Biener  <rguenther@suse.de>
22040
22041         PR tree-optimization/66772
22042         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
22043         values are available in the PHI node BB when there are
22044         still unexecutable edges.
22045
22046 2015-07-06  Richard Biener  <rguenther@suse.de>
22047
22048         PR tree-optimization/66767
22049         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
22050         Make sure to build the alignment test on a SSA name without
22051         final alignment info valid only if the alignment test
22052         evaluates to true.
22053
22054 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
22055
22056         PR target/66620
22057         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
22058         loop start when inserting LSETUP.
22059
22060 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
22061
22062         PR target/53383
22063         * config/i386/i386.c (ix86_option_override_internal): Allow
22064         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
22065
22066 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22067
22068         * read-md.c (decimal_string): Rename to ...
22069         (md_decimal_string): ... this.
22070         (handle_enum): Reflect this.
22071
22072 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22073
22074         PR target/66731
22075         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
22076
22077 2015-07-06  Richard Biener  <rguenther@suse.de>
22078
22079         PR middle-end/66759
22080         * match.pd: Add missing constraint of y to REAL_CST in
22081         REAL_CST - x CMP y to y - CST CMP x simplification.
22082
22083 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
22084
22085         PR tree-optimization/66757
22086         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
22087
22088 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
22089             Sandra Loosemore <sandra@codesourcery.com>
22090
22091         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
22092         Delete extern declaration.
22093         (gprel_constant_p): Add extern declaration.
22094         * config/nios2/constraints.md ("S"): Use gprel_constant_p
22095         instead of nios2_symbol_ref_in_small_data_p.
22096         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
22097         (nios2_symbol_ref_in_small_data_p): Make static.
22098         (gprel_constant_p): Make non-static.
22099
22100 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
22101
22102         * doc/fragments.texi (Target Fragment): Convert debian.org
22103         link to use https.
22104         * doc/install.texi (Configuration): Ditto.
22105
22106 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
22107
22108         PR tree-optimization/66718
22109         * tree-vect-stmts.c (vectorizable_call): Replace uses of
22110         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
22111
22112         PR tree-optimization/66718
22113         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
22114         vectorizable_load, vectorizable_condition): Move vectype,
22115         nunits, ncopies computation after checking what kind of statement
22116         stmt is.
22117
22118 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22119
22120         * target-insns.def (extv, extzv, insv): New targetm instruction
22121         patterns.
22122         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
22123         interface.
22124         * recog.c (simplify_while_replacing): Likewise.
22125
22126 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22127
22128         * target-insns.def (doloop_begin, doloop_end): New targetm
22129         instruction patterns.
22130         * loop-init.c: Include target.h.
22131         (pass_loop2::gate): Use the new targetm patterns instead of
22132         HAVE_*/gen_* interface.
22133         (pass_rtl_doloop::gate): Likewise.
22134         (pass_rtl_doloop::execute): Remove preprocessor condition.
22135         * hw-doloop.c: Build unconditionally.
22136         * loop-doloop.c: Likewise.
22137         (doloop_optimize): Use the new targetm patterns instead of
22138         HAVE_*/gen_* interface.
22139         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
22140         * modulo-sched.c (doloop_register_get): Likewise.
22141
22142 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22143
22144         * target-insns.def (clear_cache): New targetm instruction pattern.
22145         * builtins.c (expand_builtin___clear_cache): Use it instead of
22146         HAVE_*/gen_* interface.
22147
22148 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22149
22150         * target-insns.def (allocate_stack, check_stack, probe_stack)
22151         (probe_stack_address, split_stack_prologue, split_stack_space_check):
22152         New targetm instruction patterns.
22153         * explow.c (allocate_dynamic_stack_space): Use them instead of
22154         HAVE_*/gen_* interface.
22155         (emit_stack_probe): Likewise.
22156         (probe_stack_range): Likewise.
22157         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22158
22159 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22160
22161         * target-insns.def (stack_protect_set, stack_protect_test): New
22162         targetm instruction patterns.
22163         * cfgexpand.c (stack_protect_prologue): Use them instead of
22164         HAVE_*/gen_* interface.
22165         * function.c (stack_protect_epilogue): Likewise.
22166
22167 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22168
22169         * expr.h (gen_move_insn_uncast): Delete.
22170         * expr.c (gen_move_insn_uncast): Delete.
22171
22172 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22173
22174         * target-insns.def (restore_stack_block, restore_stack_function)
22175         (restore_stack_nonlocal, save_stack_block, save_stack_function)
22176         (save_stack_nonlocal): New targetm instruction patterns.
22177         * builtins.c (expand_builtin_apply): Use them instead of
22178         HAVE_*/gen_* interface.
22179         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
22180
22181 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22182
22183         * target-insns.def (trap): New targetm instruction pattern.
22184         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
22185         interface.
22186         * explow.c (allocate_dynamic_stack_space): Likewise.
22187         * ifcvt.c (find_if_header): Likewise.
22188
22189 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22190
22191         * target-insns.def (prefetch): New targetm instruction pattern.
22192         * tree-ssa-loop-prefetch.c: Include targeth.
22193         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
22194         of HAVE_*/gen_* interface.
22195         * builtins.c (expand_builtin_prefetch): Likewise.
22196         * toplev.c (process_options): Likewise.
22197
22198 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22199
22200         * target-insns.def (untyped_call, untyped_return): New targetm
22201         instruction patterns.
22202         * builtins.c (expand_builtin_apply): Use them instead of
22203         HAVE_*/gen_* interface.
22204         (result_vector): Define unconditionally.
22205
22206 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22207
22208         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
22209         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
22210         (nonlocal_goto_receiver): New targetm instruction patterns.
22211         * builtins.c (expand_builtin_setjmp_setup): Use them instead
22212         of HAVE_*/gen_* interface.
22213         (expand_builtin_setjmp_receiver): Likewise.
22214         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
22215         * except.c (expand_dw2_landing_pad_for_region): Likewise.
22216
22217 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22218
22219         * target.def: Add code_for_* hooks.
22220         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
22221         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
22222         * target-insns.def (casesi, tablejump): New targetm instruction
22223         patterns.
22224         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
22225         (do_tablejump): Likewise.
22226         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
22227         (expand_sjlj_dispatch_table): Likewise.
22228         * targhooks.c (default_case_values_threshold): Likewise.
22229
22230 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
22231
22232         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
22233         Use rtx_insn * instead of rtx.
22234         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
22235         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
22236         (nios2_call_tls_get_addr): Likewise.
22237         (nios2_emit_expensive_div): Likewise.
22238         (nios2_emit_move_sequence): Change return type to bool.
22239         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
22240         Change return type to bool.
22241
22242 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22243
22244         PR target/66747
22245         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
22246
22247 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
22248
22249         PR target/66114
22250         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
22251         of register_operand.  Remove constraint.
22252
22253 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
22254
22255         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
22256         the first argument.
22257
22258 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
22259
22260         * attribs.c (decl_attributes): Guard inform with the return value
22261         of the preceding warning.
22262
22263 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22264
22265         * doc/invoke.texi (moverride): Move to correct section.
22266
22267 2015-07-03  Richard Biener  <rguenther@suse.de>
22268
22269         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
22270         Copy from tree.c
22271         (dt_operand::gen_gimple_expr): After valueizing operands
22272         re-canonicalize operand order for commutative tree codes.
22273
22274 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
22275
22276         PR target/66746.
22277         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
22278         is defined.
22279         (__crc32w): Likewise.
22280         (__crc32d): Likewise.
22281         (__rdpmc): Likewise.
22282         (__rdtscp): Likewise.
22283         (_rdpmc): Likewise.
22284         (_rdtscp): Likewise.
22285         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
22286         is defined.
22287
22288 2015-07-03  Richard Biener  <rguenther@suse.de>
22289
22290         * fold-const.c (fold_mathfn_compare): Remove.
22291         (fold_inf_compare): Likewise.
22292         (fold_comparison): Move floating point comparison simplifications...
22293         * match.pd: ... to patterns here.  Introduce simple_comparisons
22294         operator list and use it for patterns formerly in fold_comparison.
22295
22296 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22297
22298         PR tree-optimization/66119
22299         * toplev.c (process_options): Don't set up default values for
22300         the sra_max_scalarization_size_{speed,size} parameters.
22301         * tree-sra (analyze_all_variable_accesses): If no values
22302         have been set for the sra_max_scalarization_size_{speed,size}
22303         parameters, call get_move_ratio to get target defaults.
22304
22305 2015-07-03  Richard Biener  <rguenther@suse.de>
22306
22307         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
22308         * match.pd: ... here.
22309
22310 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
22311
22312         PR target/37072
22313         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
22314         is not actually the default on FreeBSD.
22315
22316 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22317
22318         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
22319         definition.
22320         (CMPGE_8HI): Likewise.
22321         (CMPGE_4SI): Likewise.
22322         (CMPGE_2DI): Likewise.
22323         (CMPGE_U16QI): Likewise.
22324         (CMPGE_U8HI): Likewise.
22325         (CMPGE_U4SI): Likewise.
22326         (CMPGE_U2DI): Likewise.
22327         (CMPLE_16QI): Likewise.
22328         (CMPLE_8HI): Likewise.
22329         (CMPLE_4SI): Likewise.
22330         (CMPLE_2DI): Likewise.
22331         (CMPLE_U16QI): Likewise.
22332         (CMPLE_U8HI): Likewise.
22333         (CMPLE_U4SI): Likewise.
22334         (CMPLE_U2DI): Likewise.
22335         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22336         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
22337         ALTIVEC_BUILTIN_VEC_CMPLE.
22338         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
22339         floating-point vector modes.
22340         (vector_nlt<mode>): New define_expand.
22341         (vector_nltu<mode>): Likewise.
22342         (vector_ngt<mode>): Likewise.
22343         (vector_ngtu<mode>): Likewise.
22344
22345 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
22346
22347         PR rtl-optimization/66706
22348         * combine.c (make_compound_operation): If an AND of SUBREG of
22349         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
22350
22351 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
22352
22353         * tree-pass.h (make_pass_ch_vect): New.
22354         * passes.def: Add pass_ch_vect just before pass_if_conversion.
22355
22356         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
22357         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
22358         make_pass_ch_vect): New.
22359         (pass_ch): Extend ch_base.
22360
22361         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
22362         (ch_base::copy_headers): ...here.
22363
22364 2015-07-02  Richard Biener  <rguenther@suse.de>
22365
22366         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
22367         * fold-const.c (get_pointer_modulus_and_residue): Remove.
22368         (fold_binary_loc): Implement (T)ptr & CST in terms of
22369         get_pointer_alignment_1.
22370         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
22371         Make sure to build the alignment test on a SSA name without
22372         final alignment info valid only after the prologue.
22373
22374 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
22375
22376         * config/cris/cris.md ("epilogue"): Remove condition.
22377         ("prologue"): Ditto.
22378
22379 2015-07-02  Richard Biener  <rguenther@suse.de>
22380
22381         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
22382         parameter to record a condition that is false.
22383         (record_conditions): When recording an extra NE_EXPR that is
22384         true also record a EQ_EXPR that is false.
22385
22386 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
22387
22388         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
22389         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
22390         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
22391         (set_iv, find_interesting_uses_address, add_candidate_1): New
22392         argument to alloc_iv.
22393         (find_interesting_uses_op, find_interesting_uses_cond): Don't
22394         duplicate struct iv.
22395         (free_loop_data): Don't free struct iv explicitly.
22396         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
22397
22398 2015-07-01  DJ Delorie  <dj@redhat.com>
22399
22400         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
22401         (LIB_SPEC): Add.
22402         (SUPPORTS_DISCRIMINATOR): Define.
22403
22404 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22405
22406         PR bootstrap/66685
22407         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
22408         there are no CALLs in the same pattern.
22409
22410 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22411
22412         PR rtl-optimization/61047
22413         * rtlanal.c (get_initial_register_offset): New function.
22414         (rtx_addr_can_trap_p_1): Check offsets of stack references.
22415
22416 2015-07-01  Richard Biener  <rguenther@suse.de>
22417
22418         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
22419         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
22420         ~X CMP C -> X CMP' ~C to ...
22421         * match.pd: ... patterns here.
22422
22423 2015-07-01  Nick Clifton  <nickc@redhat.com>
22424
22425         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
22426         a 16-bit value into a 20-bit memory slot.
22427
22428 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22429
22430         * doc/sourcebuild.texi (AArch64-specific attributes): Document
22431         "aarch64_tiny", "aarch64_small", "aarch64_large",
22432         "aarch64_little_endian", "aarch64_big_endian".
22433
22434 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22435
22436         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
22437         Document "aarch64_small_fpic".
22438
22439 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22440
22441         * configure.ac: Add check for aarch64 assembler -fpic relocation
22442         modifier support.
22443         * configure: Regenerate.
22444         * config.in: Regenerate.
22445         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
22446         to -fPIC if not support of -fpic relocation modifier in assembler.
22447
22448 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22449
22450         PR bootstrap/66685
22451         * rtl.c (classify_insn): Handle returns in PARALLELs.
22452
22453 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
22454
22455         PR middle-end/66633
22456         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
22457         to true if the function is nested and if not optimizing.
22458         (convert_local_omp_clauses): Initialize need_frame to true if the
22459         function contains nested functions and if not optimizing.
22460
22461 2015-07-01  Richard Biener  <rguenther@suse.de>
22462
22463         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
22464         (X & Y) ^ Y -> ~X & Y transforms to ...
22465         * match.pd: ... here.
22466
22467 2015-07-01  Richard Biener <rguenther@suse.de>
22468
22469         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
22470         of converts to avoid uninteresting noise from the conversion
22471         simplifying patterns.
22472
22473 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
22474
22475         * config/c6x/c6x.c (try_rename_operands): Do not depend on
22476         gcc_assert evaluating its argument for side-effect.
22477
22478 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
22479
22480         PR target/64833
22481         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
22482         flag_pic is set.
22483
22484 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22485
22486         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
22487         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
22488         (hash_scc): Add this_ref_p and ref_p parameters and pass them
22489         to the inner DFS walk.
22490
22491 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22492
22493         * target-insns.def (jump): New targetm instruction pattern.
22494         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
22495         instead of gen_jump.
22496         (fix_up_crossing_landing_pad): Likewise.
22497         (add_labels_and_missing_jumps): Likewise.
22498         (fix_crossing_conditional_branches): Likewise.
22499         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
22500         (force_nonfallthru_and_redirect): Likewise.
22501         * cse.c (cse_insn): Likewise.
22502         * expmed.c (expand_divmod): Likewise.
22503         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
22504         * haifa-sched.c (init_before_recovery): Likewise.
22505         (sched_create_recovery_edges): Likewise.
22506         * ifcvt.c (find_cond_trap): Likewise.
22507         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
22508         (expand_float, expand_fix): Likewise.
22509         * stmt.c (emit_jump): Likewise.
22510
22511 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22512
22513         * defaults.h (HAVE_load_multiple, gen_load_multiple)
22514         (HAVE_store_multiple, gen_store_multiple): Delete.
22515         * target-insns.def (load_multiple, store_multiple): New targetm
22516         instruction patterns.
22517         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
22518         of HAVE_*/gen_* interface.
22519
22520 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22521
22522         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
22523         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
22524         (gen_mem_signal_fence): Delete.
22525         * target-insns.def (mem_signal_fence, mem_thread_fence)
22526         (memory_barrier): New targetm instruction patterns.
22527         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
22528         interface.
22529         (expand_mem_signal_fence): Likewise.
22530
22531 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22532
22533         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
22534         * target-insns.def (epilogue, prologue, sibcall_prologue): New
22535         targetm instruction patterns.
22536         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
22537         interface.
22538         * calls.c (expand_call): Likewise.
22539         * cfgrtl.c (cfg_layout_finalize): Likewise.
22540         * df-scan.c (df_get_entry_block_def_set): Likewise.
22541         (df_get_exit_block_use_set): Likewise.
22542         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
22543         * final.c (final_start_function): Likewise.
22544         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22545         (reposition_prologue_and_epilogue_notes): Likewise.
22546         * reorg.c (find_end_label): Likewise.
22547         * toplev.c (process_options): Likewise.
22548
22549 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
22550
22551         * typed-splay-tree.h: New file.
22552
22553 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
22554
22555         PR debug/66691
22556         * lra-int.h (lra_substitute_pseudo): Add a parameter.
22557         (lra_substitute_pseudo_within_insn): Ditto.
22558         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
22559         of constant.
22560         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
22561         to lra_substitute_pseudo.
22562         * lra-lives.c (process_bb_lives): Add an argument to
22563         lra_substitute_pseudo_within_insn call.
22564         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
22565         argument to lra_substitute_pseudo and
22566         lra_substitute_pseudo_within_insn calls.
22567         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
22568
22569 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22570
22571         * configure: Regenerated.
22572
22573 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22574
22575         * config.gcc: Support i[34567]86-*-elfiamcu target.
22576         * config/i386/iamcu.h: New.
22577         * config/i386/i386.opt: Add -miamcu.
22578         * doc/invoke.texi: Document -miamcu.
22579         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
22580         off x87/MMX/SSE/AVX codegen for -miamcu.
22581         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22582         __iamcu/__iamcu__ for -miamcu.
22583         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
22584         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
22585         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
22586         * config/i386/i386.c (ix86_option_override_internal): Ignore and
22587         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
22588         MCU by default.  Default long double to 64-bit for Intel MCU.
22589         Turn on -freg-struct-return for Intel MCU.  Issue an error when
22590         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
22591         AVX is turned on.
22592         (function_arg_advance_32): Pass value whose size is no larger
22593         than 8 bytes in registers for Intel MCU.
22594         (function_arg_32): Likewise.
22595         (ix86_return_in_memory): Return value whose size is no larger
22596         than 8 bytes in registers for Intel MCU.
22597         (iamcu_alignment): New function.
22598         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
22599         true.
22600         (ix86_local_alignment): Don't increase alignment for Intel MCU.
22601         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
22602         true.
22603
22604 2015-06-30  Marek Polacek  <polacek@redhat.com>
22605
22606         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
22607         both operands of the resulting expression.
22608
22609         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
22610         the final expression with the operand's type and then convert
22611         it to the type of the expression.
22612
22613 2015-06-30  Richard Biener  <rguenther@suse.de>
22614
22615         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
22616         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
22617         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
22618         * match.pd: ... to patterns here.
22619
22620 2015-06-30  Richard Biener  <rguenther@suse.de>
22621
22622         PR tree-optimization/66704
22623         * tree-vect-data-refs.c (vect_setup_realignment): Use
22624         make_ssa_name for non-SSA name source.
22625
22626 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
22627
22628         PR middle-end/66702
22629         * omp-low.c (simd_clone_adjust): Handle addressable linear
22630         or uniform parameters or non-gimple type uniform parameters.
22631
22632 2015-06-30  Richard Biener  <rguenther@suse.de>
22633
22634         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
22635         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
22636         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
22637         * match.pd: ... here.
22638         Add a few cases of A - B -> A + (-B) when B "easily" negates.
22639         Move (x & y) | x -> x and friends before
22640         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
22641
22642 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22643
22644         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
22645         -mfix-ut699 is not specified.
22646         (leon3_load): Rename into...
22647         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
22648         is specified.
22649
22650 2015-06-30  Marek Polacek  <polacek@redhat.com>
22651
22652         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
22653         * match.pd: ... here.
22654
22655 2015-06-30  Richard Biener  <rguenther@suse.de>
22656
22657         * target-insns.def (canonicalize_funcptr_for_compare): Add.
22658         * fold-const.c (build_range_check): Replace uses of
22659         HAVE_canonicalize_funcptr_for_compare.
22660         (fold_widened_comparison): Likewise.
22661         (fold_sign_changed_comparison): Likewise.
22662         * dojump.c: Include "target.h".
22663         (do_compare_and_jump): Replace uses of
22664         HAVE_canonicalize_funcptr_for_compare and
22665         gen_canonicalize_funcptr_for_compare.
22666         * expr.c (do_store_flag): Likewise.
22667
22668 2015-06-30  Tom de Vries  <tom@codesourcery.com>
22669
22670         PR tree-optimization/66652
22671         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22672         max_loop_iterations to determine if nit + 1 overflows.
22673
22674 2015-06-30  Richard Biener  <rguenther@suse.de>
22675
22676         * tree-vrp.c (register_edge_assert_for_2): Also register
22677         asserts for dominating conversion results.
22678
22679 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
22680
22681         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
22682         field in struct iv.
22683
22684 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
22685
22686         PR target/66509
22687         * configure.ac: Fix filds and fildq test for 64-bit.
22688         * configure: Regenerated.
22689
22690 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
22691
22692         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
22693         (nvptx_reorg): Here.  Keep the non-subreg pieces.
22694
22695 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
22696
22697         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
22698         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22699
22700 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
22701
22702         * config/i386/i386.md (*jcc_1): Use %! in asm template.
22703         Set attribute "length_nobnd" instead of "length".
22704         (*jcc_2): Ditto.
22705         (jump): Ditto.
22706         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
22707
22708 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
22709
22710         * config/nios2/nios2.c (nios2_delegitimize_address): Make
22711         assert less restrictive.
22712
22713 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22714
22715         PR fortran/66605
22716         * cgraphunit.c (cgraph_node::finalize_function): Do not call
22717         do_warn_unused_parameter.
22718         * function.c (do_warn_unused_parameter): Move from here.
22719         * function.h (do_warn_unused_parameter): Do not declare.
22720
22721 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22722
22723         PR target/65697
22724         * gcc.target/arm/armv-sync-comp-swap.c: New.
22725         * gcc.target/arm/armv-sync-op-acquire.c: New.
22726         * gcc.target/arm/armv-sync-op-full.c: New.
22727         * gcc.target/arm/armv-sync-op-release.c: New.
22728
22729 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22730
22731         PR target/65697
22732         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
22733         initial acquire barrier with final barrier.
22734
22735 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22736
22737         PR target/65697
22738         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
22739         initial acquire barrier with final barrier.
22740
22741 2015-06-29  Richard Henderson  <rth@redhat.com>
22742
22743         * config/i386/constraints.md (Bf): New constraint.
22744         * config/i386/i386-c.c (ix86_target_macros): Define
22745         __GCC_ASM_FLAG_OUTPUTS__.
22746         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
22747         as flags outputs.
22748         * doc/extend.texi (FlagOutputOperands): Document them.
22749
22750 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
22751
22752         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
22753         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
22754         unspec name.
22755         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
22756         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
22757         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
22758         (aarch64_symbol_context): Ditto.
22759         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
22760         and use new pattern name.
22761         (aarch64_expand_mov_immediate): Ditto.
22762         (aarch64_print_operand): Ditto.
22763         (aarch64_classify_tls_symbol): Ditto.
22764
22765 2015-06-29  Marek Polacek  <polacek@redhat.com>
22766             Marc Glisse  <marc.glisse@inria.fr>
22767
22768         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
22769         * match.pd: ... pattern here.
22770
22771 2015-06-29  Tom de Vries  <tom@codesourcery.com>
22772
22773         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
22774         function structure.
22775
22776 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22777
22778         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
22779         feature description, split out the native option, add a link to
22780         the feature documentation, rearrange and slightly rewrite text.
22781         (Aarch64 options, -mcpu): Likewise.
22782         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
22783         +rdma implies Adv. SIMD.
22784
22785 2015-06-29  Marek Polacek  <polacek@redhat.com>
22786
22787         PR c/66322
22788         * function.c (stack_protect_epilogue): Remove a cast to int.
22789         * doc/invoke.texi: Update -Wswitch-bool description.
22790
22791 2015-06-29  Richard Biener  <rguenther@suse.de>
22792
22793         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
22794         * fold-const.c (fold_binary_loc): Move &A - &B simplification
22795         via ptr_difference_const ...
22796         * match.pd: ... here.
22797         When matching (X ^ Y) == Y also match with swapped operands.
22798
22799 2015-06-29  Richard Biener  <rguenther@suse.de>
22800
22801         * lto-streamer.h (LTO_major_version): Bump to 5.
22802
22803 2015-06-29  Richard Biener  <rguenther@suse.de>
22804
22805         PR tree-optimization/66677
22806         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
22807         STMT_VINFO_VEC_STMT clobbering less strict.
22808
22809 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
22810
22811         PR middle-end/64130
22812         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
22813         division, compute max and min when value ranges for dividend and
22814         divisor are available.
22815
22816 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
22817             Sandra Loosemore <sandra@codesourcery.com>
22818
22819         * regrename.h (regrename_do_replace): Change to return bool.
22820         * regrename.c (rename_chains): Check return value of
22821         regname_do_replace.
22822         (regrename_do_replace): Re-validate the modified insns and
22823         return bool status.
22824         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
22825         Update to match rename_chains changes.
22826         * config/c6x/c6x.c (try_rename_operands): Assert that
22827         regrename_do_replace returns true.
22828
22829 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
22830
22831         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
22832         operand 2 here.  Use copy_addr_to_reg to copy non-index
22833         register operand 2 to a temporary.
22834         (<mode>_stx): Ditto for operand 1.
22835         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
22836         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
22837         (ix86_store_bounds): Ditto.
22838
22839 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
22840
22841         * print-tree.c (print_node) [TREE_VEC]: Print its length.
22842
22843 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
22844
22845         * gimple.c (gimple_call_set_fndecl): Remove.
22846         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
22847         build1_loc directly instead of build_fold_addr_expr_loc.
22848
22849 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22850
22851         * hash-map.h (hash_map::traverse): Use the definition of the
22852         Key typedef rather than the typedef itself.
22853
22854 2015-06-26  Martin Jambor  <mjambor@suse.cz>
22855
22856         PR debug/66301
22857         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
22858         NULL instead of calling dump_enabled_p.
22859
22860 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22861
22862         * config/aarch64/aarch64.opt: (override): New.
22863         * doc/invoke.texi (override): Document.
22864         * config/aarch64/aarch64.c (aarch64_flag_desc): New
22865         (aarch64_fusible_pairs): Likewise.
22866         (aarch64_tuning_flags): Likewise.
22867         (aarch64_tuning_override_function): Likewise.
22868         (aarch64_tuning_override_functions): Likewise.
22869         (aarch64_parse_one_option_token): Likewise.
22870         (aarch64_parse_boolean_options): Likewise.
22871         (aarch64_parse_fuse_string): Likewise.
22872         (aarch64_parse_tune_string): Likewise.
22873         (aarch64_parse_one_override_token): Likewise.
22874         (aarch64_parse_override_string): Likewise.
22875         (aarch64_override_options): Parse the -override string if it
22876         is present.
22877
22878 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22879
22880         * config/aarch64/aarch64-protos.h (tune_params): Remove
22881         const from members.
22882         (aarch64_tune_params): Remove const, change to no longer be
22883         a pointer.
22884         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
22885         change to no longer be a pointer, initialize to generic_tunings.
22886         (aarch64_min_divisions_for_recip_mul): Change dereference of
22887         aarch64_tune_params to member access.
22888         (aarch64_reassociation_width): Likewise.
22889         (aarch64_rtx_mult_cost): Likewise.
22890         (aarch64_address_cost): Likewise.
22891         (aarch64_branch_cost): Likewise.
22892         (aarch64_rtx_costs): Likewise.
22893         (aarch64_register_move_cost): Likewise.
22894         (aarch64_memory_move_cost): Likewise.
22895         (aarch64_sched_issue_rate): Likewise.
22896         (aarch64_builtin_vectorization_cost): Likewise.
22897         (aarch64_override_options): Take a copy of the selected tuning
22898         struct in to aarch64_tune_params, rather than just setting
22899         a pointer, change dereferences of aarch64_tune_params to member
22900         accesses.
22901         (aarch64_override_options_after_change): Change dereferences of
22902         aarch64_tune_params to member access.
22903         (aarch64_macro_fusion_p): Likewise.
22904         (aarch_macro_fusion_pair_p): Likewise.
22905         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
22906
22907 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22908
22909         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
22910         (aarch64_tune_flags): Likewise.
22911         (AARCH64_TUNE_FMA_STEERING): Likewise.
22912         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
22913         to AARCH64_FL_USE_FMA_STEERING_PASS.
22914         (cortex-a57.cortex-a53): Likewise.
22915         (cortex-a72): Use cortexa72_tunings.
22916         (cortex-a72.cortex-a53): Likewise.
22917         (exynos-m1): Likewise.
22918         * config/aarch64/aarch64-protos.h (tune_params): Add
22919         a field: extra_tuning_flags.
22920         * config/aarch64/aarch64-tuning-flags.def: New.
22921         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
22922         (aarch64_extra_tuning_flags): Likewise.
22923         (aarch64_tune_params): Declare here.
22924         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
22925         (cortexa53_tunings): Likewise.
22926         (cortexa57_tunings): Likewise.
22927         (thunderx_tunings): Likewise.
22928         (xgene1_tunings): Likewise.
22929         (cortexa72_tunings): New.
22930         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
22931          (gate): Check against aarch64_tune_params.
22932         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
22933         aarch64-protos.h.
22934
22935 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22936
22937         * config/aarch64/aarch64-fusion-pairs.def: New.
22938         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
22939         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
22940         aarch64_fusion_pairs.
22941         (AARCH64_FUSE_MOV_MOVK): Likewise.
22942         (AARCH64_FUSE_ADRP_ADD): Likewise.
22943         (AARCH64_FUSE_MOVK_MOVK): Likewise.
22944         (AARCH64_FUSE_ADRP_LDR): Likewise.
22945         (AARCH64_FUSE_CMP_BRANCH): Likewise.
22946
22947 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22948
22949         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
22950         SYMBOL_SMALL_GOT_28K.
22951         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
22952         relocation modifiers.
22953         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
22954         (ldr_got_small_28k_<mode>): New.
22955         (ldr_got_small_28k_sidi): New.
22956         * config/aarch64/iterators.md (got_modifier): New mode iterator.
22957         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
22958         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
22959         SYMBOL_SMALL_GOT_28K.
22960         (aarch64_rtx_costs): Add costs for new instruction sequences.
22961         (initialize_aarch64_code_model): Initialize new model.
22962         (aarch64_classify_symbol): Recognize new model and new symbol classification.
22963         (aarch64_asm_preferred_eh_data_format): Support new model.
22964         (aarch64_load_symref_appropriately): Generate new instruction
22965         sequences for -fpic.
22966         (TARGET_USE_PSEUDO_PIC_REG): New definition.
22967         (aarch64_use_pseudo_pic_reg): New function.
22968
22969 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22970
22971         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
22972         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
22973         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
22974         (aarch64_expand_mov_immediate): Ditto.
22975         (aarch64_print_operand): Ditto.
22976         (aarch64_classify_symbol): Ditto.
22977
22978 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
22979
22980         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
22981
22982 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
22983
22984         PR bootstrap/66638
22985         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
22986         assertion failed.  Remove assertion itself.
22987
22988 2015-06-26  Richard Biener  <rguenther@suse.de>
22989
22990         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
22991         and -A CMP CST -> A CMP -CST which is redundant with a pattern
22992         in match.pd.
22993         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
22994         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
22995         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
22996         * match.pd: ... patterns here.
22997
22998 2015-06-26  Marek Polacek  <polacek@redhat.com>
22999
23000         * match.pd ((x | y) & ~(x & y) -> x ^ y,
23001         (x | y) & (~x ^ y) -> x & y): New patterns.
23002
23003 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
23004
23005         * rtl.h (emit): Add an optional boolean parameter to control
23006         whether barriers are emitted.
23007         * emit-rtl.c (emit): Likewise.
23008         * gensupport.c (get_emit_function): Return null rather than "emit".
23009         * genemit.c (gen_emit_seq): Handle the null return value.
23010         Don't emit barriers after the final instruction in the sequence.
23011         * gentarget-def.c (main): Don't emit barriers after the instruction.
23012
23013 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23014
23015         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
23016         TARGET_UNIFIED_ASM.
23017
23018 2015-06-26  Richard Biener  <rguenther@suse.de>
23019
23020         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
23021
23022 2015-06-26  Richard Biener  <rguenther@suse.de>
23023
23024         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
23025         irrespective on whether the inner operation has a single use
23026         of both off are constant.
23027
23028 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
23029             Segher Boessenkool  <segher@kernel.crashing.org>
23030
23031         PR target/66412
23032         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
23033         before doing PUT_MODE or PUT_CODE on operands to avoid
23034         in-place RTX modification.
23035
23036 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23037
23038         * gentarget-def.c (def_target_insn): Cast return of strtol to
23039         unsigned int.
23040
23041 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23042
23043         * gimple.h (gimple_call_set_fn): Move inline function.
23044         * gimple.c (gimple_call_set_fn): Relocate here.
23045
23046 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
23047
23048         PR target/65979
23049         PR target/66611
23050         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
23051         the replacement insn will work.
23052
23053 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23054
23055         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
23056         by default.
23057
23058 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23059
23060         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
23061         * cgraph.h: Include ipa-ref.h and plugin-api.h.
23062         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
23063         (symtab_node::address_can_be_compared_p): Move function.
23064         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
23065         definition here.
23066         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
23067         * auto-profile.c: Likewise.
23068         * bb-reorder.c: Likewise.
23069         * builtins.c: Likewise.
23070         * calls.c: Likewise.
23071         * cfgexpand.c: Likewise.
23072         * cgraphbuild.c: Likewise.
23073         * cgraphclones.c: Likewise.
23074         * cgraphunit.c: Likewise.
23075         * combine.c: Likewise.
23076         * coverage.c: Likewise.
23077         * data-streamer-in.c: Likewise.
23078         * data-streamer-out.c: Likewise.
23079         * data-streamer.c: Likewise.
23080         * dbxout.c: Likewise.
23081         * dwarf2out.c: Likewise.
23082         * except.c: Likewise.
23083         * expr.c: Likewise.
23084         * final.c: Likewise.
23085         * fold-const.c: Likewise.
23086         * ggc-page.c: Likewise.
23087         * gimple-fold.c: Likewise.
23088         * gimple-iterator.c: Likewise.
23089         * gimple-pretty-print.c: Likewise.
23090         * gimple-streamer-in.c: Likewise.
23091         * gimple-streamer-out.c: Likewise.
23092         * gimple.c: Likewise.
23093         * gimplify.c: Likewise.
23094         * ipa-chkp.c: Likewise.
23095         * ipa-comdats.c: Likewise.
23096         * ipa-cp.c: Likewise.
23097         * ipa-devirt.c: Likewise.
23098         * ipa-icf-gimple.c: Likewise.
23099         * ipa-icf.c: Likewise.
23100         * ipa-inline-analysis.c: Likewise.
23101         * ipa-inline-transform.c: Likewise.
23102         * ipa-inline.c: Likewise.
23103         * ipa-polymorphic-call.c: Likewise.
23104         * ipa-profile.c: Likewise.
23105         * ipa-prop.c: Likewise.
23106         * ipa-pure-const.c: Likewise.
23107         * ipa-ref.c: Likewise.
23108         * ipa-reference.c: Likewise.
23109         * ipa-split.c: Likewise.
23110         * ipa-utils.c: Likewise.
23111         * ipa-visibility.c: Likewise.
23112         * ipa.c: Likewise.
23113         * langhooks.c: Likewise.
23114         * lto-cgraph.c: Likewise.
23115         * lto-compress.c: Likewise.
23116         * lto-opts.c: Likewise.
23117         * lto-section-in.c: Likewise.
23118         * lto-section-out.c: Likewise.
23119         * lto-streamer-in.c: Likewise.
23120         * lto-streamer-out.c: Likewise.
23121         * lto-streamer.c: Likewise.
23122         * omp-low.c: Likewise.
23123         * opts-global.c: Likewise.
23124         * passes.c: Likewise.
23125         * predict.c: Likewise.
23126         * print-tree.c: Likewise.
23127         * profile.c: Likewise.
23128         * ree.c: Likewise.
23129         * sanopt.c: Likewise.
23130         * stor-layout.c: Likewise.
23131         * symtab.c: Likewise.
23132         * toplev.c: Likewise.
23133         * trans-mem.c: Likewise.
23134         * tree-cfg.c: Likewise.
23135         * tree-chkp.c: Likewise.
23136         * tree-eh.c: Likewise.
23137         * tree-emutls.c: Likewise.
23138         * tree-inline.c: Likewise.
23139         * tree-nested.c: Likewise.
23140         * tree-parloops.c: Likewise.
23141         * tree-pretty-print.c: Likewise.
23142         * tree-profile.c: Likewise.
23143         * tree-sra.c: Likewise.
23144         * tree-ssa-alias.c: Likewise.
23145         * tree-ssa-live.c: Likewise.
23146         * tree-ssa-loop-ivcanon.c: Likewise.
23147         * tree-ssa-loop-ivopts.c: Likewise.
23148         * tree-ssa-pre.c: Likewise.
23149         * tree-ssa-sccvn.c: Likewise.
23150         * tree-ssa-strlen.c: Likewise.
23151         * tree-ssa-structalias.c: Likewise.
23152         * tree-streamer-in.c: Likewise.
23153         * tree-streamer-out.c: Likewise.
23154         * tree-streamer.c: Likewise.
23155         * tree-switch-conversion.c: Likewise.
23156         * tree-tailcall.c: Likewise.
23157         * tree-vect-data-refs.c: Likewise.
23158         * tree-vect-stmts.c: Likewise.
23159         * tree-vectorizer.c: Likewise.
23160         * tree.c: Likewise.
23161         * tsan.c: Likewise.
23162         * ubsan.c: Likewise.
23163         * value-prof.c: Likewise.
23164         * varasm.c: Likewise.
23165         * varpool.c: Likewise.
23166         * config/arm/arm.c: Likewise.
23167         * config/bfin/bfin.c: Likewise.
23168         * config/c6x/c6x.c: Likewise.
23169         * config/cris/cris.c: Likewise.
23170         * config/darwin-c.c: Likewise.
23171         * config/darwin.c: Likewise.
23172         * config/i386/i386.c: Likewise.
23173         * config/i386/winnt.c: Likewise.
23174         * config/microblaze/microblaze.c: Likewise.
23175         * config/mips/mips.c: Likewise.
23176         * config/rs6000/rs6000.c: Likewise.
23177         * config/rx/rx.c: Likewise.
23178         * config/s390/s390.c: Likewise.
23179         * config/tilegx/mul-tables.c: Likewise.
23180
23181 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23182
23183         * config/aarch64/aarch64.c, config/alpha/alpha.c,
23184         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
23185         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
23186         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
23187         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23188         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23189         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23190         config/microblaze/microblaze.c, config/mips/mips.c,
23191         config/mmix/mmix.c, config/mn10300/mn10300.c,
23192         config/moxie/moxie.c, config/msp430/msp430.c,
23193         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23194         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23195         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23196         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23197         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23198         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23199         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
23200         target-def.h include.
23201         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
23202
23203 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23204
23205         * Makefile.in (TARGET_DEF): Add target-insns.def.
23206         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
23207         (build/gentarget-def.o): New rule.
23208         (genprogrtl): Add target-def.
23209         * target-insns.def, gentarget-def.c: New files.
23210         * target.def: Add targetm.have_* and targetm.gen_* hooks,
23211         based on the contents of target-insns.def.
23212         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
23213         (HAVE_return, gen_return): Delete.
23214         * target-def.h: Include insn-target-def.h.
23215         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
23216         instead of direct calls.  Rely on them to do the appropriate assertions.
23217         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
23218         (convert_jumps_to_returns): Use targetm interface instead of
23219         direct calls.
23220         (thread_prologue_and_epilogue_insns): Likewise.
23221         * reorg.c (find_end_label, dbr_schedule): Likewise.
23222         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
23223         * shrink-wrap.c (convert_to_simple_return): Likewise.
23224         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
23225
23226 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23227
23228         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
23229         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23230         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
23231         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
23232         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23233         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23234         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23235         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
23236         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
23237         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23238         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23239         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23240         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23241         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23242         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23243         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
23244         includes to end.
23245
23246 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23247
23248         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
23249         (unbounded_int_hashmap_traits::key_type): Likewise.
23250         * hash-map.h (hash_map): Get the key type from the traits.
23251         * hash-traits.h (default_hash_traits): By default, inherit from the
23252         template parameter.
23253         * alias.c (alias_set_traits): Delete.
23254         (alias_set_entry_d::children): Use alias_set_hash as the first
23255         template parameter.
23256         (record_alias_subset): Update accordingly.
23257         * except.c (tree_hash_traits): Delete.
23258         (type_to_runtime_map): Use tree_hash as the first template parameter.
23259         (init_eh): Update accordingly.
23260         * genmatch.c (capture_id_map_hasher): Delete.
23261         (cid_map_t): Use nofree_string_hash as first template parameter.
23262         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
23263         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
23264         Use symbol_compare_hash as the first template parameter in
23265         subdivide_hash_map.
23266         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
23267         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
23268         template parameter.
23269         * passes.c (pass_registry_hasher): Delete.
23270         (name_to_pass_map): Use nofree_string_hash as the first template
23271         parameter.
23272         (register_pass_name): Update accordingly.
23273         * sanopt.c (sanopt_tree_map_traits): Delete.
23274         (sanopt_tree_triplet_map_traits): Delete.
23275         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
23276         template parameter.
23277         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
23278         the first template parameter.
23279         * sese.c (rename_map_hasher): Delete.
23280         (rename_map_type): Use tree_ssa_name_hash as the first template
23281         parameter.
23282         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
23283         (function_summary::m_map): Use map_hash as the first template
23284         parameter.
23285         (function_summary::release): Update accordingly.
23286         * tree-if-conv.c (phi_args_hash_traits): Delete.
23287         (predicate_scalar_phi): Use tree_operand_hash as the first template
23288         parameter to phi_arg_map.
23289         * tree-inline.h (dependence_hasher): Delete.
23290         (copy_body_data::dependence_map): Use dependence_hash as the first
23291         template parameter.
23292         * tree-inline.c (remap_dependence_clique): Update accordingly.
23293         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
23294         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
23295         parameter.
23296         (addr_stridxptr): Update accordingly.
23297         * value-prof.c (profile_id_traits): Delete.
23298         (cgraph_node_map): Use profile_id_hash as the first template
23299         parameter.
23300         (init_node_map): Update accordingly.
23301         * config/alpha/alpha.c (string_traits): Delete.
23302         (machine_function::links): Use nofree_string_hash as the first
23303         template parameter.
23304         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
23305         * config/m32c/m32c.c (pragma_traits): Delete.
23306         (pragma_htab): Use nofree_string_hash as the first template parameter.
23307         (m32c_note_pragma_address): Update accordingly.
23308         * config/mep/mep.c (pragma_traits): Delete.
23309         (pragma_htab): Use nofree_string_hash as the first template parameter.
23310         (mep_note_pragma_flag): Update accordingly.
23311         * config/mips/mips.c (mips16_flip_traits): Delete.
23312         (mflip_mips16_htab): Use nofree_string_hash as the first template
23313         parameter.
23314         (mflip_mips16_use_mips16_p): Update accordingly.
23315         (local_alias_traits): Delete.
23316         (mips16_local_aliases): Use nofree_string_hash as the first template
23317         parameter.
23318         (mips16_local_alias): Update accordingly.
23319
23320 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23321
23322         * hash-map-traits.h (default_hashmap_traits): Delete.
23323
23324 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23325
23326         * hash-map-traits.h (unbounded_hashmap_traits): New class.
23327         (unbounded_int_hashmap_traits): Likewise.
23328         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
23329
23330 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23331
23332         * ipa-icf.h (symbol_compare_hash): New class.
23333         (symbol_compare_hashmap_traits): Use it.
23334         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
23335         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
23336         (mem_alloc_description::reverse_mem_map_t): Remove redundant
23337         default_hashmap_traits.
23338         * sanopt.c (sanopt_tree_triplet_hash): New class.
23339         (sanopt_tree_triplet_map_traits): Use it.
23340
23341 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23342
23343         * gengtype-parse.c (require_template_declaration): Allow '+' in
23344         template parameters.  Consolidate cases.
23345         * hash-traits.h (int_hash): New class.
23346         * alias.c (alias_set_hash): New structure.
23347         (alias_set_traits): Use it.
23348         * symbol-summary.h (function_summary::map_hash): New class.
23349         (function_summary::summary_hashmap_traits): Use it.
23350         * tree-inline.h (dependence_hash): New class.
23351         (dependence_hasher): Use it.
23352         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
23353         * value-prof.c (profile_id_hash): New class.
23354         (profile_id_traits): Use it.
23355
23356 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23357
23358         * config/mips/mips.c (mips16_flip_traits): Use it.
23359         (local_alias_traits, mips16_local_aliases): Convert from a map of
23360         rtxes to a map of symbol names.
23361         (mips16_local_alias): Update accordingly.
23362
23363 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23364
23365         * hash-traits.h (string_hash, nofree_string_hash): New classes.
23366         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
23367         * passes.c (pass_registry_hasher): Likewise.
23368         * config/alpha/alpha.c (string_traits): Likewise.
23369         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
23370         * config/m32c/m32c.c (pragma_traits): Likewise.
23371         * config/mep/mep.c (pragma_traits): Likewise.
23372
23373 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23374
23375         * tree-hash-traits.h (tree_hash): New class.
23376         * except.c: Include tree-hash-traits.h.
23377         (tree_hash_traits): Use tree_hash.
23378
23379 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23380
23381         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
23382         * sese.c: Include tree-hash-traits.h.
23383         (rename_map_hasher): Use tree_ssa_name_hasher.
23384
23385 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23386
23387         * tree-hash-traits.h (tree_decl_hash): New class.
23388         * tree-ssa-strlen.c: Include tree-hash-traits.h.
23389         (stridxlist_hash_traits): Use tree_decl_hash.
23390
23391 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23392
23393         * tree-hash-traits.h: New file.
23394         (tree_operand_hash): New class.
23395         * sanopt.c: Include tree-hash-traits.h.
23396         (sanopt_tree_map_traits): Use tree_operand_hash.
23397         * tree-if-conv.c: Include tree-hash-traits.h.
23398         (phi_args_hash_traits): Use tree_operand_hash.
23399         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
23400         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
23401
23402 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23403
23404         * hash-map-traits.h: Include hash-traits.h.
23405         (simple_hashmap_traits): New class.
23406         * mem-stats.h (hash_map): Change the default traits to
23407         simple_hashmap_traits<default_hash_traits<Key> >.
23408
23409 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23410
23411         * hash-table.h: Update comments.
23412
23413 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23414
23415         * hash-traits.h (default_hash_traits): New structure.
23416         * hash-set.h (default_hashset_traits): Delete.
23417         (hash_set): Use default_hash_traits<Key> instead of
23418         default_hashset_traits.  Delete hash_entry type and use Key directly.
23419         * ipa-devirt.c (pair_traits): Delete.
23420         (default_hash_traits <type_pair>): Override.
23421         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
23422         (odr_types_equivalent_p, add_type_duplicate): Likewise.
23423
23424 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23425
23426         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
23427
23428 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23429
23430         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
23431         (has_is_empty, is_empty_helper): Delete.
23432         (has_mark_deleted, mark_deleted_helper): Delete.
23433         (has_mark_empty, mark_empty_helper): Delete.
23434         (hash_table::is_deleted): Call the Descriptor unconditionally.
23435         (hash_table::is_empty): Likewise.
23436         (hash_table::mark_deleted): Likewise.
23437         (hash_table::mark_empty): Likewise.
23438
23439 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23440
23441         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
23442         redundant typedefs and members.
23443         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
23444         redundant typedefs.
23445         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
23446         * ipa-devirt.c (odr_name_hasher): Likewise.
23447         (polymorphic_call_target_hasher): Likewise.
23448         * ira-costs.c (cost_classes_hasher): Likewise.
23449         * statistics.c (stats_counter_hasher): Likewise.
23450         * trans-mem.c (log_entry_hasher): Likewise.
23451         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
23452         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
23453         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
23454         * var-tracking.c (variable_hasher): Likewise.
23455         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
23456         Remove redundant typedefs and members.
23457
23458 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23459
23460         * hash-traits.h (ggc_cache_hasher): Rename to...
23461         (ggc_cache_remove): ...this and remove typedefs.
23462         (ggc_cache_ptr_hash): New class.
23463         * hash-table.h: Update commentary.
23464         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
23465         rather than ggc_cache_hasher.
23466         (const_wide_int_hasher, reg_attr_hasher): Likewise.
23467         (const_double_hasher, const_fixed_hasher): Likewise.
23468         * function.c (insn_cache_hasher): Likewise.
23469         * trans-mem.c (tm_wrapper_hasher): Likewise.
23470         * tree.h (tree_decl_map_cache_hasher): Likewise.
23471         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
23472         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
23473         * ubsan.c (tree_type_map_cache_hasher): Likewise.
23474         * varasm.c (tm_clone_hasher): Likewise.
23475         * config/i386/i386.c (dllimport_hasher): Likewise.
23476         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
23477         (tree_hasher): Likewise.
23478
23479 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23480
23481         * hash-traits.h (ggc_hasher): Rename to...
23482         (ggc_remover): ...this and remove typedefs.
23483         (ggc_cache_hasher): Update accordingly.  Add typedefs.
23484         (ggc_ptr_hash): New class.
23485         * hash-table.h: Update comment.
23486         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
23487         ggc_hasher.
23488         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
23489         (tree_descriptor_hasher): Likewise.
23490         * cgraph.c (function_version_hasher): Likewise.
23491         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
23492         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
23493         (dw_loc_list_hasher, addr_hasher): Likewise.
23494         * function.h (used_type_hasher): Likewise.
23495         * function.c (temp_address_hasher): Likewise.
23496         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
23497         * libfuncs.h (libfunc_hasher): Likewise.
23498         * lto-streamer.h (decl_state_hasher): Likewise.
23499         * optabs.c (libfunc_decl_hasher): Likewise.
23500         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
23501         * varasm.c (section_hasher, object_block_hasher): Likewise.
23502         (const_rtx_desc_hasher): Likewise.
23503         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
23504         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
23505
23506 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23507
23508         * hash-traits.h (free_ptr_hash): New class.
23509         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
23510         rather than typed_free_remove.  Remove redudant typedefs.
23511         (external_ref_hasher): Likewise.
23512         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
23513         (ehspec_hasher): Likewise.
23514         * ggc-common.c (saving_hasher): Likewise.
23515         * gimplify.c (gimplify_hasher): Likewise.
23516         * haifa-sched.c (delay_i2_hasher): Likewise.
23517         * loop-invariant.c (invariant_expr_hasher): Likewise.
23518         * loop-iv.c (biv_entry_hasher): Likewise.
23519         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
23520         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
23521         * tree-cfg.c (locus_discrim_hasher): Likewise.
23522         * tree-eh.c (finally_tree_hasher): Likewise.
23523         * tree-into-ssa.c (var_info_hasher): Likewise.
23524         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
23525         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
23526         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
23527         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
23528         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
23529         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
23530         (shared_bitmap_hasher): Likewise.
23531         * tree-ssa-threadupdate.c (redirection_data): Likewise.
23532         * tree-vectorizer.h (peel_info_hasher): Likewise.
23533         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
23534         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
23535
23536 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23537
23538         * hash-table.h: Update comments.
23539         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
23540         (nofree_ptr_hash): New class.
23541         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
23542         than typed_noop_remove.  Remove redudant typedefs.
23543         * attribs.c (attribute_hasher): Likewise.
23544         * cfg.c (bb_copy_hasher): Likewise.
23545         * cselib.c (cselib_hasher): Likewise.
23546         * dse.c (invariant_group_base_hasher): Likewise.
23547         * dwarf2cfi.c (trace_info_hasher): Likewise.
23548         * dwarf2out.c (macinfo_entry_hasher): Likewise.
23549         (comdat_type_hasher, loc_list_hasher): Likewise.
23550         * gcse.c (pre_ldst_expr_hasher): Likewise.
23551         * genmatch.c (id_base): Likewise.
23552         * genrecog.c (test_pattern_hasher): Likewise.
23553         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
23554         * haifa-sched.c (delay_i1_hasher): Likewise.
23555         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
23556         * ipa-icf.h (congruence_class_group_hash): Likewise.
23557         * ipa-profile.c (histogram_hash): Likewise.
23558         * ira-color.c (allocno_hard_regs_hasher): Likewise.
23559         * lto-streamer.h (string_slot_hasher): Likewise.
23560         * lto-streamer.c (tree_entry_hasher): Likewise.
23561         * plugin.c (event_hasher): Likewise.
23562         * postreload-gcse.c (expr_hasher): Likewise.
23563         * store-motion.c (st_expr_hasher): Likewise.
23564         * tree-sra.c (uid_decl_hasher): Likewise.
23565         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
23566         (ssa_name_var_hash): Likewise.
23567         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
23568         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
23569         * tree-ssa-pre.c (pre_expr_d): Likewise.
23570         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
23571         * vtable-verify.h (registration_hasher): Likewise.
23572         * vtable-verify.c (vtbl_map_hasher): Likewise.
23573         * config/arm/arm.c (libcall_hasher): Likewise.
23574         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
23575         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
23576         * config/sol2.c (comdat_entry_hasher): Likewise.
23577         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
23578         (print_fold_checksum, fold_checksum_tree): Likewise.
23579         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
23580         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
23581         (fold_build_call_array_loc): Likewise.
23582         * tree-ssa-ccp.c (gimple_htab): Likewise.
23583         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
23584         rather than pointer_type.
23585
23586 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23587
23588         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
23589         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
23590
23591 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23592
23593         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
23594         (ggc_hasher::ggc_mx): Likewise.
23595         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
23596         that duplicate ggc_hasher ones.
23597
23598 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23599
23600         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
23601         (gt_cleare_cache): Check here for deleted and empty entries.
23602         Replace handle_cache_entry with a call to keep_cache_entry.
23603         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
23604         (ggc_cache_hasher::keep_cache_entry): New function.
23605         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
23606         (tm_wrapper_hasher::keep_cache_entry): New function.
23607         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
23608         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23609         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
23610         (type_cache_hasher::keep_cache_entry): New function.
23611         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
23612         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23613         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
23614         (tree_type_map_cache_hasher::keep_cache_entry): New function.
23615         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
23616         (tm_clone_hasher::keep_cache_entry): New function.
23617         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
23618         (dllimport_hasher::keep_cache_entry): New function.
23619
23620 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23621
23622         * hash-table.h: Include hash-traits.h.
23623         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
23624         (ggc_cache_hasher): Move to...
23625         * hash-traits.h: ...this new file.
23626
23627 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23628
23629         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
23630         struct cl_optimization.
23631         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
23632         * tree.c (make_node_stat): Allocate cl_optimization struct.
23633         (copy_node_stat): Allocate and copy cl_optimization struct.
23634
23635 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23636
23637         * function.h (struct incoming_args): Move struct.
23638         (pass_by_reference, reference_callee_copied): Remove prototypes.
23639         * emit-rtl.h (struct incoming_args): Relocate struct here.
23640         * calls.h (pass_by_reference, reference_callee_copied): Relocate
23641         prototypes here.
23642         * function.c (pass_by_reference, reference_callee_copied): Move.
23643         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
23644         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
23645         * ipa-chkp.c: Include calls.h.
23646
23647 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
23648
23649         * alias.h (alias_set_type): Move typedef.
23650         * coretypes.h (alias_set_type): Relocate typedef here.
23651         * rtl.h: Don't include alias.h.
23652
23653 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23654
23655         * cgraph.h (cgraph_rtl_info): Move to rtl.h
23656         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
23657         and instance.
23658         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
23659         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
23660         doesn't exist.
23661         * calls.c: Include hard-reg-set.h before rtl.h.
23662         * ira.c: Likewise.
23663
23664 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
23665             Vladimir Makarov  <vmakarov@redhat.com>
23666
23667         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
23668         Add assert.
23669
23670 2015-06-25  Richard Biener  <rguenther@suse.de>
23671
23672         * fold-const.c (fold_binary_loc): Move simplification of
23673         (X <<>> C1) & C2 ...
23674         * match.pd: ... here.
23675
23676 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
23677
23678         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
23679
23680 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23681
23682         * match.pd: Add patterns for vec_conds between 1 and 0.
23683
23684 2015-06-25  Richard Biener  <rguenther@suse.de>
23685
23686         * tree-vect-stmts.c (vectorizable_conversion): Do not set
23687         STMT_VINFO_VEC_STMT for SLP.
23688         (vectorizable_store): Likewise.
23689         (vectorizable_load): Likewise.
23690         (vect_transform_stmt): Catch SLP vectorization clobbering
23691         STMT_VINFO_VEC_STMT.
23692
23693 2015-06-25  Richard Biener  <rguenther@suse.de>
23694
23695         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
23696         dumping.
23697         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
23698         cleanup resulting dead code and parameters.
23699         (vect_transform_slp_perm_load): Adjust.
23700
23701 2015-06-25  Nick Clifton  <nickc@redhat.com>
23702
23703         * config/bfin/bfin.c (bfin_expand_prologue): Set
23704         current_function_static_stack_size if flag_stack_usage_info is set.
23705         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
23706         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
23707         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
23708         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
23709
23710 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23711
23712         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
23713         comment that the generated IV is unsigned.
23714
23715 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23716
23717         PR target/29693
23718         * config/arm/arm.c (arm_dbx_register_number): Return
23719         DWARF_FRAME_REGISTERS by default.
23720
23721 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23722
23723         * dominance.c (calculate_dominance_info): Fix verify_dominators call
23724         argument.  Call verify_dominator when reusing dominator info.
23725
23726 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
23727
23728         PR target/66563
23729         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
23730         an additional element of the unspec vector.  Modify indices
23731         of operands.
23732         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
23733         * config/sh/sh.c (prepare_move_operands): Pass incremented
23734         const_int to gen_GOTaddr2picreg.
23735         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
23736
23737 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23738
23739         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
23740         Condition on TARGET_FLOAT.
23741
23742 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23743
23744         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
23745         and (no)crypto.
23746
23747 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23748
23749         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
23750
23751         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
23752         aarch64_err_no_fpadvsimd.
23753
23754         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
23755         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
23756         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
23757         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
23758         Turn error into assert, test TARGET_FLOAT.
23759         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
23760         TARGET_FLOAT.
23761
23762 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
23763
23764         PR debug/66482
23765         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
23766
23767 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
23768
23769         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
23770
23771 2015-06-24  Renlin Li <renlin.li@arm.com>
23772
23773         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
23774         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
23775
23776 2015-06-24  Richard Biener  <rguenther@suse.de>
23777
23778         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
23779         (main): Likewise.
23780         (lower_opt_convert): Support lowering of conditional view_convert.
23781         (parser::parse_operation): Likewise.
23782         (parser::parse_for): Likewise.
23783
23784 2015-06-24  Renlin Li  <renlin.li@arm.com>
23785
23786         * varasm.c (emit_local): Use unsigned int for align variable.
23787
23788 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23789
23790         PR target/63408
23791         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
23792         for negative numbers.
23793
23794 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23795
23796         PR rtl-optimization/66306
23797         * reload.c (find_reloads): Swap the match_dup info for
23798         commutative operands.
23799
23800 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23801
23802         * config/s390/vx-builtins.md
23803         ("vec_scatter_element<mode>_<non_vec_int>")
23804         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
23805         attribute with bhfgq.
23806
23807 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23808
23809         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
23810
23811 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23812
23813         * config/s390/s390-builtin-types.def: Add flag to indicate the
23814         options under which the function type is needed.
23815         * config/s390/s390-builtins.def: Add flag to indicate the options
23816         under which the builtin is enabled.
23817         * config/s390/s390-builtins.h: Add flags parameter to macro
23818         definitions.
23819         (bflags_for_builtin): New function.
23820         (flags_for_builtin): Renamed to ...
23821         (opflags_for_builtin): ... this.
23822         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
23823         flags_for_builtin to bflags_for_builtin and
23824         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
23825         * config/s390/s390.c: Add initialization of bflags_builtin and
23826         opflags_builtin arrays.
23827         Remove code for flags_builtin.
23828         (s390_init_builtins): Only create builtin function types if one of
23829         their flags is active.
23830         Only create builtins if all of their flags are active.
23831         (s390_expand_builtin): Rename flags_for_builtin to
23832         opflags_for_builtin.
23833
23834 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23835
23836         * config/s390/vecintrin.h: Remove internal builtins.
23837
23838 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23839
23840         * config/s390/s390.c (s390_secondary_reload): Fix check for
23841         GENERAL_REGS register class.
23842
23843 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23844
23845         * config/s390/s390.c (s390_support_vector_misalignment): Call
23846         default implementation for !TARGET_VX.
23847
23848 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23849
23850         * config/s390/s390.c (s390_legitimate_constant_p): Add
23851         TARGET_VX check.
23852
23853 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23854
23855         * config/s390/s390.c (s390_vector_abi): New variable definition.
23856         (s390_check_type_for_vector_abi): New function.
23857         (TARGET_ASM_FILE_END): New macro definition.
23858         (s390_asm_file_end): New function.
23859         (s390_function_arg): Call s390_check_type_for_vector_abi.
23860         (s390_gimplify_va_arg): Likewise.
23861         * configure: Regenerate.
23862         * configure.ac: Check for .gnu_attribute Binutils feature.
23863
23864 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
23865
23866         PR target/65803
23867         * config/bfin/bfin.c (hwloop_optimize): Initialize
23868         JUMP_LABEL for newly created jump.
23869
23870 2015-06-23  Tristan Gingold  <gingold@adacore.com>
23871
23872         * collect-utils.c (collect_wait): Unlink the response file here
23873         instead of...
23874         (do_wait): ...here.
23875         (utils_cleanup): ...and here.
23876
23877 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
23878
23879         * df-scan.c: Don't include target-def.h.
23880         * targhooks.c: Likewise.
23881         * config/arm/arm-c.c: Likewise.
23882         * config/i386/i386-c.c: Likewise.
23883         * config/nds32/nds32-cost.c: Likewise.
23884         * config/nds32/nds32-fp-as-gp.c: Likewise.
23885         * config/nds32/nds32-intrinsic.c: Likewise.
23886         * config/nds32/nds32-isr.c: Likewise.
23887         * config/nds32/nds32-md-auxiliary.c: Likewise.
23888         * config/nds32/nds32-memory-manipulation.c: Likewise.
23889         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23890         * config/nds32/nds32-predicates.c: Likewise.
23891
23892 2015-06-23  Richard Biener  <rguenther@suse.de>
23893
23894         PR tree-optimization/66636
23895         * tree-vect-stmts.c (vectorizable_store): Properly compute the
23896         def type for further defs for strided stores.
23897
23898 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
23899
23900         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
23901         conditional selects.
23902         (setcc_int<mode>, setcc_float<mode>): Reformat.
23903
23904 2015-06-23  Marek Polacek  <polacek@redhat.com>
23905
23906         * match.pd ((x + y) - (x | y) -> x & y,
23907         (x + y) - (x & y) -> x | y): New patterns.
23908
23909 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
23910
23911         PR 65711
23912         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
23913         '-dynamic-linker' within %{!shared: ...}.
23914
23915 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
23916
23917         PR target/66560
23918         * config/i386/predicates.md (addsub_vm_operator): New predicate.
23919         (addsub_vs_operator): Ditto.
23920         (addsub_vs_parallel): Ditto.
23921         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
23922         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
23923         Put minus RTX before plus and adjust vec_merge selector.
23924         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
23925         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
23926         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
23927         (addsub vec_merge splitters): New combiner splitters.
23928         (addsub vec_select/vec_concat splitters): Ditto.
23929
23930 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
23931
23932         PR tree-optimization/66449
23933         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
23934         POINTER_PLUS_EXPR for pointers.
23935
23936 2015-06-23  Alan Modra  <amodra@gmail.com>
23937
23938         * rtlanal.c (commutative_operand_precedence): Correct comments.
23939         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
23940         declaration.  Return an int.  Distinguish REG,REG return from
23941         others.
23942         (struct simplify_plus_minus_op_data): Make local to function.
23943         (simplify_plus_minus): Don't set canonicalized if merely sorting
23944         registers.  Avoid packing ops if nothing changes.  White space fixes.
23945
23946 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
23947
23948         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
23949         -fdump-ada-spec is passed but not if -fsyntax-only is.
23950
23951 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
23952
23953         PR bootstrap/63740
23954         * lra-lives.c (process_bb_lives): Check insn copying the same
23955         reload pseudo and don't create a copy for it.
23956
23957 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23958
23959         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
23960         for cond_stmt.
23961
23962 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23963
23964         * builtins.def (DEF_GOMP_BUILTIN): Test
23965         'flag_tree_parallelize_loops > 1' instead of
23966         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
23967
23968 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23969
23970         * dominance.c (calculate_dominance_info): Verify dominators if
23971         early-out.
23972
23973 2015-06-22  Marek Polacek  <polacek@redhat.com>
23974
23975         * match.pd ((x ^ y) ^ (x | y) -> x & y,
23976         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
23977         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
23978         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
23979
23980 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
23981
23982         PR target/65871
23983         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
23984         cost of embedded comparison.
23985
23986 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23987
23988         PR target/65914
23989         * config/rs6000/predicates.md (altivec_register_operand): Permit
23990         virtual stack registers.
23991         (vsx_register_operand): Likewise.
23992         (vfloat_operand): Likewise.
23993         (vint_operand): Likewise.
23994         (vlogical_operand): Likewise.
23995
23996 2015-06-22  Richard Biener  <rguenther@suse.de>
23997
23998         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
23999         and single_scalar_iteration_cost members.
24000         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
24001         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
24002         (vect_get_single_scalar_iteration_cost): Remove.
24003         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
24004         Use LOOP_VINFO_SCALAR_ITERATION_COST.
24005         * tree-vect-loop.c (destroy_loop_vec_info): Free
24006         scalar_cost_vec.
24007         (vect_get_single_scalar_iteration_cost): Compute result into
24008         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
24009         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
24010         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
24011         (vect_estimate_min_profitable_iters): Use them.
24012
24013 2015-06-22  Christian Bruel  <christian.bruel@st.com>
24014
24015         PR target/52144
24016         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
24017         (TARGET_INSERT_ATTRIBUTES): Define.
24018         (thumb_flipper): New var.
24019         * config/arm/arm.opt (-mflip-thumb): New switch.
24020
24021 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
24022             Martin Liska  <mliska@suse.cz>
24023
24024         PR ipa/65908
24025         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
24026         construction of arg_types.
24027         (sem_function::sem_function): Likewise.
24028         (sem_function::~sem_function): Remove destruction of arg_types.
24029         (sem_function::compatible_parm_types_p): New function.
24030         (sem_function::equals_wpa): Reorg matching of return values
24031         and parameter types.
24032         (sem_function::equals_private): Reorg mathcing of argument types.
24033         (sem_function::parse_tree_args): Remove.
24034         * ipa-icf.h (init_wpa): Do not call it.
24035         (parse_tree_args): Remove.
24036         (compatible_parm_types_p): Declare.
24037         (result_type): Remove.
24038         (arg_types): Remove.
24039
24040 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
24041
24042         PR ipa/66351
24043         * ipa-polymorphic-call.c
24044         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
24045         initializing alias oracle; fix formating; set base_alias_set if it
24046         is known.
24047
24048 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
24049
24050         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
24051         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
24052         (find_inc): Likewise.
24053         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
24054         swapping.
24055         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
24056         * df-scan.c (df_swap_refs): Remove.
24057         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
24058         * dominance.c (link_roots): Use std::swap instead of manually swapping.
24059         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
24060         * fold-const.c (fold_relational_const): Likewise.
24061         * genattrtab.c (simplify_test_exp): Likewise.
24062         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
24063         gimple_simplify): Likewise.
24064         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
24065         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
24066         * ipa-devirt.c (add_type_duplicate): Likewise.
24067         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
24068         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
24069         * lra.c (lra_create_copy): Likewise.
24070         * lto-streamer-out.c (DFS::DFS): Likewise.
24071         * modulo-sched.c (get_sched_window): Likewise.
24072         * omega.c (omega_pretty_print_problem): Likewise.
24073         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
24074         * reload1.c (reloads_unique_chain_p): Likewise.
24075         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
24076         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
24077         use std::swap.
24078         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
24079         manually swapping.
24080         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
24081         predicate_mem_writes): Likewise.
24082         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
24083         * tree-predcom.c (combine_chains): Likewise.
24084         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
24085         refs_may_alias_p_1): Likewise.
24086         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
24087         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
24088         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
24089         number_of_iterations_cond): Likewise.
24090         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
24091         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
24092         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
24093         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
24094         * tree-vrp.c (extract_range_from_binary_expr_1,
24095         extract_range_from_unary_expr_1): Likewise.
24096
24097 2015-06-20  Marek Polacek  <polacek@redhat.com>
24098
24099         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
24100
24101 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
24102
24103         PR target/66591
24104         * config/sh/sh.c (prepare_move_operands): Replace subreg
24105         index term with R0 for base and index addressing.
24106
24107 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
24108
24109         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
24110         op1 is an fp zero.
24111         (movsf_aarch64): Change condition from register_operand to
24112         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
24113         load1.  Change type for alternative 7 to store1.
24114         (movdf_aarch64): Likewise.
24115
24116 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
24117
24118         * config/vax/vax.md: Adjust sign/zero extend patterns to
24119         handle SUBREGs in operands[1].
24120
24121 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24122
24123         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
24124         of manually swapping.
24125         (expand_vec_perm_interleave2): Likewise.
24126
24127 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
24128
24129         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
24130         reuse bounds created for abnormal ssa names.
24131
24132 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
24133
24134         * config/nvptx/nvptx.md (allocate_stack): Rename to...
24135         (allocate_stack_<mode>): ... this, and add :P on both
24136         match_operand and unspec.
24137         (allocate_stack): New expander.
24138
24139 2015-06-19  Christian Bruel  <christian.bruel@st.com>
24140
24141         PR target/66541
24142         PR target/52144
24143         * config/arm/arm.c (arm_set_current_function): Handle
24144         explicit default options.
24145
24146 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24147
24148         * config/i386/i386.md (*movsicc_noc_zext): New insn.
24149         (zero-extended cmove with mem peephole2): New pattern.
24150         (cmove with mem peephole2): Merge patterns.
24151
24152 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
24153
24154         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
24155
24156 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
24157
24158         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
24159         * config/mips/mips.md (*madd4<mode>): Ditto.
24160         (*nmadd3<mode>) Ditto.
24161         (*nmadd4<mode>_fastmath): Ditto.
24162         (*nmadd3<mode>_fastmath): Ditto.
24163         (*nmsub4<mode>): Ditto.
24164         (*nmsub3<mode>): Ditto.
24165         (*nmsub4<mode>_fastmath): Ditto.
24166         (*nmsub3<mode>_fastmath): Ditto.
24167
24168 2015-06-18  Michael Matz  <matz@suse.de>
24169
24170         PR middle-end/66253
24171         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
24172         grouped strided stores.
24173         (vectorizable_load): Don't use the DR from first_stmt in
24174         the non-SLP grouped strided case.
24175
24176 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24177
24178         PR target/66569
24179         * function.c (assign_bounds): Add arguments assign_regs,
24180         assign_special, assign_bt.
24181         (assign_parms): For vararg functions handle bounds in BT
24182         and special slots after incoming vararg bounds.
24183
24184 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24185
24186         PR middle-end/66568
24187         * cfgexpand.c (expand_return): Handle missing bounds.
24188         (expand_gimple_stmt_1): Likewise.
24189         * tree-chkp.c (chkp_expand_zero_bounds): New.
24190         * tree-chkp.h (chkp_expand_zero_bounds): New.
24191
24192 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24193
24194         PR middle-end/66567
24195         * ipa-chkp.c (chkp_maybe_create_clone): Require
24196         functions to be instrumentable.
24197         * tree-chkp.c (chkp_replace_function_pointer): Use
24198         chkp_instrumentable_p instead of attribute check.
24199
24200 2015-06-18  Richard Biener  <rguenther@suse.de>
24201
24202         PR tree-optimization/66510
24203         * tree-vect-stmts.c (vectorizable_load): Properly compute the
24204         number of vector loads for SLP permuted loads.
24205         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
24206         check the stride for loop vectorization.
24207         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
24208         vectorization factor.
24209         (vect_analyze_group_access): If the group size is not a power
24210         of two require a epilogue loop.
24211         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
24212         compute and optimizing and alias test pruning after final
24213         vectorization factor computation.
24214         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
24215         vector alignment.
24216         (vect_transform_slp_perm_load): Properly compute the original
24217         number of vector load stmts.
24218
24219 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24220
24221         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
24222         "unlikely character , in @var" warning.
24223
24224 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
24225
24226         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
24227         (ix86_function_arg_advance): Ditto.
24228         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
24229
24230 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24231
24232         * function.h (struct rtl_data): Remove struct and accessor macros.
24233         * emit-rtl.h (struct rtl_data): Relocate to here.
24234         * Makefile.in (GTFILES): Add emit-rtl.h.
24235         * df-core.c: Include emit-rtl.h.
24236         * genattrtab.c: Likewise.
24237         * genconditions.c: Likewise.
24238         * genpreds.c: Likewise.
24239         * genrecog.c: Likewise.
24240         * regcprop.c: Likewise.
24241         * resource.c: Likewise.
24242         * sched-rgn.c: Likewise.
24243         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24244         * config/i386/winnt.c: Likewise.
24245
24246 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
24247
24248         PR middle-end/66429
24249         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
24250         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
24251         and has_force_vectorize_loops flags from cfun into
24252         child_cfun.
24253         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
24254         if simduid is non-NULL.
24255         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
24256         * passes.def (pass_simduid_cleanup): Add new pass after loop
24257         passes.
24258         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
24259         indirection from htab argument's type.
24260         (shrink_simd_arrays): New function.
24261         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
24262         Don't call adjust_simduid_builtins if there are no loops.
24263         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
24264         (pass_simduid_cleanup::execute): New method.
24265         (make_pass_simduid_cleanup): New function.
24266
24267 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
24268
24269         * tree-core.h (tree_target_option): Make opts field a pointer to a
24270         cl_target_option instead of an instance of the struct.
24271         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
24272         the structure.
24273         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
24274         TARGET_OPTION_NODE.
24275         (copy_node_stat): Allocate and copy struct cl_target_option.
24276
24277 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24278
24279         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
24280         Remove conditional exposure of prototypes.
24281         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
24282         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
24283         definitions in tree.h with functions.
24284         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
24285         anon_aggrname_p.
24286         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
24287
24288 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
24289
24290         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
24291         (*cmp<mode>_signed): ... this.
24292         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
24293         (*cmp<mode>_unsigned): ... this.  Remove %b.
24294
24295 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24296
24297         * coretypes.h: Include input.h and as-a.h.
24298         * rtl.h: Include input.h and as-a.h for generator files.
24299         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
24300         * vec.c: Don't include diagnostic-core.h.
24301         * alias.c: Do not include input.h, line-map.h or is-a.h.
24302         * asan.c: Likewise.
24303         * attribs.c: Likewise.
24304         * auto-inc-dec.c: Likewise.
24305         * auto-profile.c: Likewise.
24306         * bb-reorder.c: Likewise.
24307         * bt-load.c: Likewise.
24308         * builtins.c: Likewise.
24309         * caller-save.c: Likewise.
24310         * calls.c: Likewise.
24311         * ccmp.c: Likewise.
24312         * cfg.c: Likewise.
24313         * cfganal.c: Likewise.
24314         * cfgbuild.c: Likewise.
24315         * cfgcleanup.c: Likewise.
24316         * cfgexpand.c: Likewise.
24317         * cfghooks.c: Likewise.
24318         * cfgloop.c: Likewise.
24319         * cfgloop.h: Likewise.
24320         * cfgloopanal.c: Likewise.
24321         * cfgloopmanip.c: Likewise.
24322         * cfgrtl.c: Likewise.
24323         * cgraph.c: Likewise.
24324         * cgraphbuild.c: Likewise.
24325         * cgraphclones.c: Likewise.
24326         * cgraphunit.c: Likewise.
24327         * cilk-common.c: Likewise.
24328         * combine-stack-adj.c: Likewise.
24329         * combine.c: Likewise.
24330         * compare-elim.c: Likewise.
24331         * convert.c: Likewise.
24332         * coverage.c: Likewise.
24333         * cppbuiltin.c: Likewise.
24334         * cprop.c: Likewise.
24335         * cse.c: Likewise.
24336         * cselib.c: Likewise.
24337         * data-streamer-in.c: Likewise.
24338         * data-streamer-out.c: Likewise.
24339         * data-streamer.c: Likewise.
24340         * dbxout.c: Likewise.
24341         * dce.c: Likewise.
24342         * ddg.c: Likewise.
24343         * debug.c: Likewise.
24344         * df-core.c: Likewise.
24345         * df-problems.c: Likewise.
24346         * df-scan.c: Likewise.
24347         * df.h: Likewise.
24348         * dfp.c: Likewise.
24349         * diagnostic-core.h: Likewise.
24350         * diagnostic.c: Likewise.
24351         * dojump.c: Likewise.
24352         * dominance.c: Likewise.
24353         * domwalk.c: Likewise.
24354         * double-int.c: Likewise.
24355         * dse.c: Likewise.
24356         * dumpfile.c: Likewise.
24357         * dumpfile.h: Likewise.
24358         * dwarf2asm.c: Likewise.
24359         * dwarf2cfi.c: Likewise.
24360         * dwarf2out.c: Likewise.
24361         * emit-rtl.c: Likewise.
24362         * et-forest.c: Likewise.
24363         * except.c: Likewise.
24364         * explow.c: Likewise.
24365         * expmed.c: Likewise.
24366         * expr.c: Likewise.
24367         * final.c: Likewise.
24368         * fixed-value.c: Likewise.
24369         * fold-const.c: Likewise.
24370         * function.c: Likewise.
24371         * fwprop.c: Likewise.
24372         * gcc-plugin.h: Likewise.
24373         * gcse.c: Likewise.
24374         * generic-match-head.c: Likewise.
24375         * ggc-page.c: Likewise.
24376         * gimple-builder.c: Likewise.
24377         * gimple-expr.c: Likewise.
24378         * gimple-fold.c: Likewise.
24379         * gimple-iterator.c: Likewise.
24380         * gimple-low.c: Likewise.
24381         * gimple-match-head.c: Likewise.
24382         * gimple-pretty-print.c: Likewise.
24383         * gimple-ssa-isolate-paths.c: Likewise.
24384         * gimple-ssa-strength-reduction.c: Likewise.
24385         * gimple-streamer-in.c: Likewise.
24386         * gimple-streamer-out.c: Likewise.
24387         * gimple-streamer.h: Likewise.
24388         * gimple-walk.c: Likewise.
24389         * gimple.c: Likewise.
24390         * gimplify-me.c: Likewise.
24391         * gimplify.c: Likewise.
24392         * godump.c: Likewise.
24393         * graph.c: Likewise.
24394         * graphite-blocking.c: Likewise.
24395         * graphite-dependences.c: Likewise.
24396         * graphite-interchange.c: Likewise.
24397         * graphite-isl-ast-to-gimple.c: Likewise.
24398         * graphite-optimize-isl.c: Likewise.
24399         * graphite-poly.c: Likewise.
24400         * graphite-scop-detection.c: Likewise.
24401         * graphite-sese-to-poly.c: Likewise.
24402         * graphite.c: Likewise.
24403         * haifa-sched.c: Likewise.
24404         * hw-doloop.c: Likewise.
24405         * ifcvt.c: Likewise.
24406         * init-regs.c: Likewise.
24407         * input.c: Likewise.
24408         * internal-fn.c: Likewise.
24409         * ipa-chkp.c: Likewise.
24410         * ipa-comdats.c: Likewise.
24411         * ipa-cp.c: Likewise.
24412         * ipa-devirt.c: Likewise.
24413         * ipa-icf-gimple.c: Likewise.
24414         * ipa-icf.c: Likewise.
24415         * ipa-inline-analysis.c: Likewise.
24416         * ipa-inline-transform.c: Likewise.
24417         * ipa-inline.c: Likewise.
24418         * ipa-polymorphic-call.c: Likewise.
24419         * ipa-profile.c: Likewise.
24420         * ipa-prop.c: Likewise.
24421         * ipa-pure-const.c: Likewise.
24422         * ipa-ref.c: Likewise.
24423         * ipa-reference.c: Likewise.
24424         * ipa-split.c: Likewise.
24425         * ipa-utils.c: Likewise.
24426         * ipa-visibility.c: Likewise.
24427         * ipa.c: Likewise.
24428         * ira-build.c: Likewise.
24429         * ira-color.c: Likewise.
24430         * ira-conflicts.c: Likewise.
24431         * ira-costs.c: Likewise.
24432         * ira-emit.c: Likewise.
24433         * ira-lives.c: Likewise.
24434         * ira.c: Likewise.
24435         * jump.c: Likewise.
24436         * langhooks.c: Likewise.
24437         * lcm.c: Likewise.
24438         * loop-doloop.c: Likewise.
24439         * loop-init.c: Likewise.
24440         * loop-invariant.c: Likewise.
24441         * loop-iv.c: Likewise.
24442         * loop-unroll.c: Likewise.
24443         * lower-subreg.c: Likewise.
24444         * lra-assigns.c: Likewise.
24445         * lra-coalesce.c: Likewise.
24446         * lra-constraints.c: Likewise.
24447         * lra-eliminations.c: Likewise.
24448         * lra-lives.c: Likewise.
24449         * lra-remat.c: Likewise.
24450         * lra-spills.c: Likewise.
24451         * lra.c: Likewise.
24452         * lto-cgraph.c: Likewise.
24453         * lto-compress.c: Likewise.
24454         * lto-opts.c: Likewise.
24455         * lto-section-in.c: Likewise.
24456         * lto-section-out.c: Likewise.
24457         * lto-streamer-in.c: Likewise.
24458         * lto-streamer-out.c: Likewise.
24459         * lto-streamer.c: Likewise.
24460         * mcf.c: Likewise.
24461         * mode-switching.c: Likewise.
24462         * modulo-sched.c: Likewise.
24463         * omega.c: Likewise.
24464         * omp-low.c: Likewise.
24465         * optabs.c: Likewise.
24466         * opts-global.c: Likewise.
24467         * opts.h: Likewise.
24468         * passes.c: Likewise.
24469         * plugin.c: Likewise.
24470         * postreload-gcse.c: Likewise.
24471         * postreload.c: Likewise.
24472         * predict.c: Likewise.
24473         * pretty-print.h: Likewise.
24474         * print-rtl.c: Likewise.
24475         * print-tree.c: Likewise.
24476         * profile.c: Likewise.
24477         * real.c: Likewise.
24478         * realmpfr.c: Likewise.
24479         * recog.c: Likewise.
24480         * ree.c: Likewise.
24481         * reg-stack.c: Likewise.
24482         * regcprop.c: Likewise.
24483         * reginfo.c: Likewise.
24484         * regrename.c: Likewise.
24485         * regstat.c: Likewise.
24486         * reload.c: Likewise.
24487         * reload1.c: Likewise.
24488         * reorg.c: Likewise.
24489         * resource.c: Likewise.
24490         * rtl-chkp.c: Likewise.
24491         * rtl-error.c: Likewise.
24492         * rtlanal.c: Likewise.
24493         * rtlhooks.c: Likewise.
24494         * sanopt.c: Likewise.
24495         * sched-deps.c: Likewise.
24496         * sched-ebb.c: Likewise.
24497         * sched-rgn.c: Likewise.
24498         * sched-vis.c: Likewise.
24499         * sdbout.c: Likewise.
24500         * sel-sched-dump.c: Likewise.
24501         * sel-sched-ir.c: Likewise.
24502         * sel-sched.c: Likewise.
24503         * sese.c: Likewise.
24504         * shrink-wrap.c: Likewise.
24505         * simplify-rtx.c: Likewise.
24506         * stack-ptr-mod.c: Likewise.
24507         * statistics.c: Likewise.
24508         * stmt.c: Likewise.
24509         * stor-layout.c: Likewise.
24510         * store-motion.c: Likewise.
24511         * streamer-hooks.c: Likewise.
24512         * stringpool.c: Likewise.
24513         * symtab.c: Likewise.
24514         * target-globals.c: Likewise.
24515         * targhooks.c: Likewise.
24516         * toplev.c: Likewise.
24517         * tracer.c: Likewise.
24518         * trans-mem.c: Likewise.
24519         * tree-affine.c: Likewise.
24520         * tree-browser.c: Likewise.
24521         * tree-call-cdce.c: Likewise.
24522         * tree-cfg.c: Likewise.
24523         * tree-cfgcleanup.c: Likewise.
24524         * tree-chkp-opt.c: Likewise.
24525         * tree-chkp.c: Likewise.
24526         * tree-chrec.c: Likewise.
24527         * tree-complex.c: Likewise.
24528         * tree-data-ref.c: Likewise.
24529         * tree-dfa.c: Likewise.
24530         * tree-diagnostic.c: Likewise.
24531         * tree-dump.c: Likewise.
24532         * tree-eh.c: Likewise.
24533         * tree-emutls.c: Likewise.
24534         * tree-if-conv.c: Likewise.
24535         * tree-inline.c: Likewise.
24536         * tree-into-ssa.c: Likewise.
24537         * tree-iterator.c: Likewise.
24538         * tree-loop-distribution.c: Likewise.
24539         * tree-nested.c: Likewise.
24540         * tree-nrv.c: Likewise.
24541         * tree-object-size.c: Likewise.
24542         * tree-outof-ssa.c: Likewise.
24543         * tree-parloops.c: Likewise.
24544         * tree-phinodes.c: Likewise.
24545         * tree-predcom.c: Likewise.
24546         * tree-pretty-print.c: Likewise.
24547         * tree-profile.c: Likewise.
24548         * tree-scalar-evolution.c: Likewise.
24549         * tree-sra.c: Likewise.
24550         * tree-ssa-address.c: Likewise.
24551         * tree-ssa-alias.c: Likewise.
24552         * tree-ssa-ccp.c: Likewise.
24553         * tree-ssa-coalesce.c: Likewise.
24554         * tree-ssa-copy.c: Likewise.
24555         * tree-ssa-copyrename.c: Likewise.
24556         * tree-ssa-dce.c: Likewise.
24557         * tree-ssa-dom.c: Likewise.
24558         * tree-ssa-dse.c: Likewise.
24559         * tree-ssa-forwprop.c: Likewise.
24560         * tree-ssa-ifcombine.c: Likewise.
24561         * tree-ssa-live.c: Likewise.
24562         * tree-ssa-loop-ch.c: Likewise.
24563         * tree-ssa-loop-im.c: Likewise.
24564         * tree-ssa-loop-ivcanon.c: Likewise.
24565         * tree-ssa-loop-ivopts.c: Likewise.
24566         * tree-ssa-loop-manip.c: Likewise.
24567         * tree-ssa-loop-niter.c: Likewise.
24568         * tree-ssa-loop-prefetch.c: Likewise.
24569         * tree-ssa-loop-unswitch.c: Likewise.
24570         * tree-ssa-loop.c: Likewise.
24571         * tree-ssa-math-opts.c: Likewise.
24572         * tree-ssa-operands.c: Likewise.
24573         * tree-ssa-phiopt.c: Likewise.
24574         * tree-ssa-phiprop.c: Likewise.
24575         * tree-ssa-pre.c: Likewise.
24576         * tree-ssa-propagate.c: Likewise.
24577         * tree-ssa-reassoc.c: Likewise.
24578         * tree-ssa-sccvn.c: Likewise.
24579         * tree-ssa-scopedtables.c: Likewise.
24580         * tree-ssa-sink.c: Likewise.
24581         * tree-ssa-strlen.c: Likewise.
24582         * tree-ssa-structalias.c: Likewise.
24583         * tree-ssa-tail-merge.c: Likewise.
24584         * tree-ssa-ter.c: Likewise.
24585         * tree-ssa-threadedge.c: Likewise.
24586         * tree-ssa-threadupdate.c: Likewise.
24587         * tree-ssa-uncprop.c: Likewise.
24588         * tree-ssa-uninit.c: Likewise.
24589         * tree-ssa.c: Likewise.
24590         * tree-ssanames.c: Likewise.
24591         * tree-stdarg.c: Likewise.
24592         * tree-streamer-in.c: Likewise.
24593         * tree-streamer-out.c: Likewise.
24594         * tree-streamer.c: Likewise.
24595         * tree-switch-conversion.c: Likewise.
24596         * tree-tailcall.c: Likewise.
24597         * tree-vect-data-refs.c: Likewise.
24598         * tree-vect-generic.c: Likewise.
24599         * tree-vect-loop-manip.c: Likewise.
24600         * tree-vect-loop.c: Likewise.
24601         * tree-vect-patterns.c: Likewise.
24602         * tree-vect-slp.c: Likewise.
24603         * tree-vect-stmts.c: Likewise.
24604         * tree-vectorizer.c: Likewise.
24605         * tree-vrp.c: Likewise.
24606         * tree.c: Likewise.
24607         * tsan.c: Likewise.
24608         * ubsan.c: Likewise.
24609         * valtrack.c: Likewise.
24610         * value-prof.c: Likewise.
24611         * var-tracking.c: Likewise.
24612         * varasm.c: Likewise.
24613         * varpool.c: Likewise.
24614         * vmsdbgout.c: Likewise.
24615         * vtable-verify.c: Likewise.
24616         * web.c: Likewise.
24617         * wide-int.cc: Likewise.
24618         * xcoffout.c: Likewise.
24619         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
24620         * common/common-targhooks.c: Likewise.
24621         * config/aarch64/aarch64-builtins.c: Likewise.
24622         * config/aarch64/aarch64.c: Likewise.
24623         * config/alpha/alpha.c: Likewise.
24624         * config/arc/arc.c: Likewise.
24625         * config/arm/aarch-common.c: Likewise.
24626         * config/arm/arm-builtins.c: Likewise.
24627         * config/arm/arm-c.c: Likewise.
24628         * config/arm/arm.c: Likewise.
24629         * config/avr/avr-c.c: Likewise.
24630         * config/avr/avr-log.c: Likewise.
24631         * config/avr/avr.c: Likewise.
24632         * config/bfin/bfin.c: Likewise.
24633         * config/c6x/c6x.c: Likewise.
24634         * config/cr16/cr16.c: Likewise.
24635         * config/cris/cris.c: Likewise.
24636         * config/darwin-c.c: Likewise.
24637         * config/darwin.c: Likewise.
24638         * config/default-c.c: Likewise.
24639         * config/epiphany/epiphany.c: Likewise.
24640         * config/epiphany/mode-switch-use.c: Likewise.
24641         * config/epiphany/resolve-sw-modes.c: Likewise.
24642         * config/fr30/fr30.c: Likewise.
24643         * config/frv/frv.c: Likewise.
24644         * config/ft32/ft32.c: Likewise.
24645         * config/glibc-c.c: Likewise.
24646         * config/h8300/h8300.c: Likewise.
24647         * config/i386/i386-c.c: Likewise.
24648         * config/i386/i386.c: Likewise.
24649         * config/i386/msformat-c.c: Likewise.
24650         * config/i386/winnt-cxx.c: Likewise.
24651         * config/i386/winnt-stubs.c: Likewise.
24652         * config/i386/winnt.c: Likewise.
24653         * config/ia64/ia64-c.c: Likewise.
24654         * config/ia64/ia64.c: Likewise.
24655         * config/iq2000/iq2000.c: Likewise.
24656         * config/lm32/lm32.c: Likewise.
24657         * config/m32c/m32c-pragma.c: Likewise.
24658         * config/m32c/m32c.c: Likewise.
24659         * config/m32r/m32r.c: Likewise.
24660         * config/m68k/m68k.c: Likewise.
24661         * config/mcore/mcore.c: Likewise.
24662         * config/mep/mep-pragma.c: Likewise.
24663         * config/mep/mep.c: Likewise.
24664         * config/microblaze/microblaze-c.c: Likewise.
24665         * config/microblaze/microblaze.c: Likewise.
24666         * config/mips/mips.c: Likewise.
24667         * config/mmix/mmix.c: Likewise.
24668         * config/mn10300/mn10300.c: Likewise.
24669         * config/moxie/moxie.c: Likewise.
24670         * config/msp430/msp430-c.c: Likewise.
24671         * config/msp430/msp430.c: Likewise.
24672         * config/nds32/nds32-cost.c: Likewise.
24673         * config/nds32/nds32-fp-as-gp.c: Likewise.
24674         * config/nds32/nds32-intrinsic.c: Likewise.
24675         * config/nds32/nds32-isr.c: Likewise.
24676         * config/nds32/nds32-md-auxiliary.c: Likewise.
24677         * config/nds32/nds32-memory-manipulation.c: Likewise.
24678         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24679         * config/nds32/nds32-predicates.c: Likewise.
24680         * config/nds32/nds32.c: Likewise.
24681         * config/nios2/nios2.c: Likewise.
24682         * config/nvptx/nvptx.c: Likewise.
24683         * config/pa/pa.c: Likewise.
24684         * config/pdp11/pdp11.c: Likewise.
24685         * config/rl78/rl78-c.c: Likewise.
24686         * config/rl78/rl78.c: Likewise.
24687         * config/rs6000/rs6000-c.c: Likewise.
24688         * config/rs6000/rs6000.c: Likewise.
24689         * config/rx/rx.c: Likewise.
24690         * config/s390/s390-c.c: Likewise.
24691         * config/s390/s390.c: Likewise.
24692         * config/sh/sh-c.c: Likewise.
24693         * config/sh/sh-mem.cc: Likewise.
24694         * config/sh/sh.c: Likewise.
24695         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24696         * config/sh/sh_treg_combine.cc: Likewise.
24697         * config/sol2-c.c: Likewise.
24698         * config/sol2-cxx.c: Likewise.
24699         * config/sol2-stubs.c: Likewise.
24700         * config/sol2.c: Likewise.
24701         * config/sparc/sparc-c.c: Likewise.
24702         * config/sparc/sparc.c: Likewise.
24703         * config/spu/spu-c.c: Likewise.
24704         * config/spu/spu.c: Likewise.
24705         * config/stormy16/stormy16.c: Likewise.
24706         * config/tilegx/mul-tables.c: Likewise.
24707         * config/tilegx/tilegx-c.c: Likewise.
24708         * config/tilegx/tilegx.c: Likewise.
24709         * config/tilepro/mul-tables.c: Likewise.
24710         * config/tilepro/tilepro-c.c: Likewise.
24711         * config/tilepro/tilepro.c: Likewise.
24712         * config/v850/v850-c.c: Likewise.
24713         * config/v850/v850.c: Likewise.
24714         * config/vax/vax.c: Likewise.
24715         * config/visium/visium.c: Likewise.
24716         * config/vms/vms-c.c: Likewise.
24717         * config/vms/vms.c: Likewise.
24718         * config/vxworks.c: Likewise.
24719         * config/winnt-c.c: Likewise.
24720         * config/xtensa/xtensa.c: Likewise.
24721
24722 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
24723
24724         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
24725         function.
24726         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
24727
24728 2015-06-17  Richard Biener  <rguenther@suse.de>
24729
24730         PR tree-optimization/66251
24731         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
24732         stmts for SLP strided stores.
24733
24734         Revert
24735         2015-05-22  Richard Biener  <rguenther@suse.de>
24736
24737         PR tree-optimization/66251
24738         * tree-vect-stmts.c (vectorizable_conversion): Properly
24739         set STMT_VINFO_VEC_STMT even for the SLP case.
24740
24741         2015-05-26  Michael Matz  <matz@suse.de>
24742
24743         PR middle-end/66251
24744         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
24745         STMT_VINFO_VEC_STMT, also with SLP.
24746
24747 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
24748
24749         PR target/56766
24750         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
24751         (*avx_addsubv4df3_1s): Ditto.
24752         (*sse3_addsubv2df3_1): Ditto.
24753         (*sse3_addsubv2df3_1s): Ditto.
24754         (*avx_addsubv8sf3_1): Ditto.
24755         (*avx_addsubv8sf3_1s): Ditto.
24756         (*sse3_addsubv4sf3_1): Ditto.
24757         (*sse3_addsubv4sf3_1s): Ditto.
24758
24759 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
24760
24761         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
24762         (SYSROOT_SUFFIX_SPEC): Update.
24763         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
24764         (STARTFILE_PREFIX_SPEC): Update.
24765         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
24766         (MULTILIB_REQUIRED): New.
24767         (MULTILIB_OSDIRNAMES): New.
24768         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
24769         (MULTILIB_REQUIRED): New.
24770         (MULTILIB_OSDIRNAMES): New.
24771
24772 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
24773
24774         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
24775         * config/aarch64/aarch64-options-extensions.def: Update "fP",
24776         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
24777         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
24778         (AARCH64_FL_PAN): New.
24779         (AARCH64_FL_LOR): New.
24780         (AARCH64_FL_RDMA): New.
24781         (AARCH64_FL_FOR_ARCH8_1): New.
24782         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
24783         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
24784
24785 2015-06-16  Martin Liska  <mliska@suse.cz>
24786
24787         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
24788         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
24789         guard.
24790
24791 2015-06-16  Richard Biener  <rguenther@suse.de>
24792
24793         * tree-vect-stmts.c (vectorizable_store): Adjust.
24794         (vectorizable_load): Likewise.
24795         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24796         Simplify.
24797         (vect_create_data_ref_ptr): Likewise.
24798         (bump_vector_ptr): Adjust.
24799
24800 2015-06-16  Richard Biener  <rguenther@suse.de>
24801
24802         * tree-vect-stmts.c (vectorizable_load): Properly start loads
24803         with the first element if this is grouped loads.
24804
24805 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
24806
24807         * config/arm/arm-protos.h (struct tune_params): Rename
24808         log_op_non_sc to log_op_non_short_circuit, and rename enum
24809         values to expand SC to SHORT_CIRCUIT.
24810         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
24811         to LOG_OP_NON_SHORT_CIRCUIT.
24812         (arm_fastmul_tune):Likewise
24813         (arm_strongarm_tune): Likewise.
24814         (arm_xscale_tune): Likewise.
24815         (arm_9e_tune): Likewise.
24816         (arm_marvell_pj4_tune): Likewise.
24817         (arm_v6t2_tune): Likewise.
24818         (arm_cortex_tune): Likewise.
24819         (arm_cortex_a8_tune): Likewise.
24820         (arm_cortex_a7_tune): Likewise.
24821         (arm_cortex_a15_tune): Likewise.
24822         (arm_cortex_a53_tune): Likewise.
24823         (arm_cortex_a57_tune): Likewise.
24824         (arm_xgene1_tune): Likewise.
24825         (arm_cortex_a5_tune): Likewise.
24826         (arm_cortex_a9_tune): Likewise.
24827         (arm_cortex_a12_tune): Likewise.
24828         (arm_v7m_tune): Likewise.
24829         (arm_cortex_m7_tune): Likewise.
24830         (arm_v6m_tune): Likewise.
24831         (arm_fa726te_tune): Likewise.
24832
24833 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
24834
24835         * altivec.md: Delete UNSPEC_VMLADDUHM.
24836         (mulv4si3_p8): New pattern.
24837         (mulv4si3): Use it for POWER8.
24838         (mulv8hi3): Use vmladduhm with zero addend.
24839         (altivec_vmladduhm): Descriptive RTL.
24840
24841 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
24842
24843         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
24844         to use neon_move instead of mov_imm.
24845         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
24846         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
24847
24848         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
24849         aarch64_float_const_zero_rtx_p check before TFmode check.
24850         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
24851         an fp zero.
24852         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
24853         code and attributes to match.  Change condition from register_operand
24854         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
24855         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
24856         to store2.
24857
24858 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
24859
24860         PR debug/66535
24861         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
24862         there is no parent.
24863
24864 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
24865
24866         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
24867         HOST_WIDE_INT parameter.
24868
24869 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
24870
24871         PR ipa/66181
24872         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
24873         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
24874         TYPE_NO_FORCE_BLK.
24875         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
24876
24877 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
24878
24879         * rtl.h (classify_insn): Declare.
24880         * emit-rtl.c (classify_insn): Move to...
24881         * rtl.c: ...here and add generator support.
24882         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
24883         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
24884         * genemit.c (gen_emit_seq): New function.
24885         (gen_expand, gen_split): Use it.
24886
24887 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
24888
24889         * tree.c (make_vector_stat): Fix comment to state that the
24890         function returns a VECTOR_CST.
24891
24892 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
24893
24894         * gensupport.h (add_implicit_parallel): Declare.
24895         * genrecog.c (add_implicit_parallel): Move to...
24896         * gensupport.c (add_implicit_parallel): ...here.
24897         (process_one_cond_exec): Use it.
24898         * genemit.c (gen_insn): Likewise.
24899
24900 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
24901
24902         PR bootstrap/66448
24903         * passes.c (rest_of_decl_compilation): Do not register globals for
24904         early debug if they are declared in built-ins.
24905
24906 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
24907
24908         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
24909
24910 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24911
24912         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
24913         manually swapping.
24914         (noce_try_cmove_arith): Likewise.
24915         (noce_get_alt_condition): Likewise.
24916
24917 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
24918
24919         * common/config/i386/i386-common.c
24920         (OPTION_MASK_ISA_MWAITX_SET): New.
24921         (ix86_handle_option): Handle mwaitx.
24922         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
24923         (x86_64-*-*): Likewise.
24924         * config/i386/mwaitxintrin.h: New header.
24925         * config/i386/cpuid.h (bit_MWAITX):  Define.
24926         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
24927         MWAITX support.
24928         * config/i386/i386.opt (mwaitx): New.
24929         * config/i386/i386-builtin-types.def
24930         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
24931         * config/i386/i386-c.c: Define __MWAITX__ if needed.
24932         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
24933         (PTA_MWAITX): New.
24934         (ix86_option_override_internal): Handle new option.
24935         (processor_alias_table): Added PTA_MWAITX.
24936         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
24937         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
24938         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
24939         IX86_BUILTIN_MONITORX  built-ins.
24940         * config/i386/i386.h (TARGET_MWAITX): New.
24941         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
24942         UNSPEC_MONITORX.
24943         (mwaitx):  New pattern.
24944         (monitorx_<mode>): New pattern.
24945         * config/i386/x86intrin.h: Include mwaitxintrin.h.
24946         * doc/extend.texi: Document monitorx and mwaitx builtins.
24947         * doc/invoke.texi: Document -mmwaitx option.
24948
24949 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
24950
24951         * emit-rtl.c (need_atomic_barrier_p): Mask model with
24952         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
24953
24954 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24955
24956         * dbxout.c (xcoff_debug_hooks): Provide a function for
24957         register_main_translation_unit hook.
24958
24959 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24960
24961         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
24962         variants cases from switch.
24963         (rs6000_post_atomic_barrier): Same.
24964         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
24965         (rs6000_expand_atomic_exchange): Same.
24966         (rs6000_expand_atomic_op): Same.
24967         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
24968         SYNC variants cases from switch.
24969         (atomic_load): Same.
24970         (atomic_store): Same.
24971
24972 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
24973
24974         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
24975         CONST_INT for goto.
24976
24977 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
24978
24979         PR bootstrap/66448
24980         * dwarf2out.c (check_die): Check for common duplicate attributes.
24981         (add_location_or_const_value_attribute): Do not add duplicate
24982         attributes.
24983         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
24984         time around.
24985         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
24986         (gen_type_die_with_usage): Call check_die.
24987         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
24988
24989 2015-06-11  Jason Merrill  <jason@redhat.com>
24990
24991         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
24992         dies.
24993
24994 2015-06-11  Marek Polacek  <polacek@redhat.com>
24995
24996         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
24997
24998 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
24999
25000         PR bootstrap/66252
25001         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
25002         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
25003         (*addx_extend_sp32): Fix pasto.
25004         (*subx_extend): Rename into...
25005         (*subx_extend_sp32): ...this.
25006         (*adddi3_extend_sp32): Add earlyclobber.
25007         (*subdi3_insn_sp32): Likewise.
25008         (*subdi3_extend_sp32): Likewise.
25009         (*and_not_di_sp32): Likewise.
25010         (*or_not_di_sp32): Likewise.
25011         (*xor_not_di_sp32): Likewise.
25012         (*negdi2_sp32): Likewise.
25013         (*one_cmpldi2_sp32): Likewise.
25014
25015 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
25016
25017         * debug.h (struct gcc_debug_hooks): Add a
25018         register_main_translation_unit hook.
25019         * debug.c (do_nothing_debug_hooks): Provide a function for this
25020         new hook.
25021         * dbxout.c (dbx_debug_hooks): Likewise.
25022         * sdbout.c (sdb_debug_hooks): Likewise.
25023         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
25024         * dwarf2out.c (main_translation_unit): New global variable.
25025         (dwarf2out_register_main_translation_unit): New function
25026         implementing the new hook.
25027         (dwarf2_debug_hooks): Assign
25028         dwarf2out_register_main_translation_unit to this new hook.
25029         (dwarf2out_init): Associate any main translation unit to
25030         comp_unit_die ().
25031
25032 2015-06-11  Marek Polacek  <polacek@redhat.com>
25033
25034         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
25035
25036 2015-06-11  Marek Polacek  <polacek@redhat.com>
25037
25038         * match.pd: Use single_use throughout.
25039
25040 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25041
25042         * config/arm/arm.c (arm_option_params_internal): When optimising
25043         for speed set max_insns_skipped when arm_restrict_it.
25044
25045 2015-06-11  Christian Bruel  <christian.bruel@st.com>
25046
25047         PR target/52144
25048         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
25049          macros in ...
25050         (arm_cpu_builtins): New function.
25051         (arm_pragma_target_parse): Call arm_cpu_builtins.
25052         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
25053         (arm_register_target_pragmas): Likewise.
25054         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
25055          Call arm_register_target_pragmas.
25056         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
25057         (arm_pragma_target_parse): Likewise.
25058
25059 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25060
25061         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
25062         of the second operand.
25063
25064 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
25065
25066         PR target/66473
25067         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
25068         to prepare mask operand for AVX512 modes.
25069
25070 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
25071
25072         PR target/66474
25073         * doc/md.texi (Machine Constraints): Document that on the PowerPC
25074         if you use a constraint that targets a VSX register, you must use
25075         %x<n> in the template.
25076
25077 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
25078
25079         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
25080         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
25081         (define_insn "trap"): New definition.
25082
25083 2015-06-10  Richard Biener  <rguenther@suse.de>
25084
25085         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
25086         out from ...
25087         (vect_supported_load_permutation_p): ... here.  Handle
25088         supportable permutations in reductions.
25089         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
25090         for vectorizing strided group loads.
25091
25092 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
25093
25094         PR target/66470
25095         * config/i386/i386.c (ix86_split_long_move): For collisions
25096         involving direct tls segment refs, move the UNSPEC_TP possibly
25097         wrapped in ZERO_EXTEND out of the address for lea, to each of
25098         the memory loads.
25099
25100 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25101
25102         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
25103         dmb sy. Adjust tabs.
25104
25105 2015-06-10  Tom de Vries  <tom@codesourcery.com>
25106
25107         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
25108
25109 2015-06-10  Martin Liska  <mliska@suse.cz>
25110
25111         PR bootstrap/66471
25112         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
25113         all enum values in mem_alloc_origin.
25114         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
25115         name.
25116         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
25117         * bitmap.c (bitmap_register): Likewise.
25118         (dump_bitmap_statistics): Likewise.
25119         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
25120         (ggc_record_overhead): Likewise.
25121         * hash-map.h: Likewise.
25122         * hash-set.h: Likewise.
25123         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
25124         * hash-table.h: Likewise.
25125         * vec.c (vec_prefix::register_overhead): Likewise.
25126         (vec_prefix::release_overhead): Likewise.
25127         (dump_vec_loc_statistics): Likewise.
25128
25129 2015-06-09  Christian Bruel  <christian.bruel@st.com>
25130
25131         PR target/52144
25132         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
25133         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
25134         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
25135         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
25136         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
25137         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
25138         (arm_valid_target_attribute_p): Likewise.
25139         (arm_set_current_function, arm_can_inline_p): Likewise.
25140         (arm_valid_target_attribute_rec): Likewise.
25141         (arm_previous_fndecl): New variable.
25142         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
25143         (TARGET_CAN_INLINE_P): Define.
25144         (arm_asm_trampoline_template): Emit mode.
25145         (arm_file_start): Don't set unified syntax.
25146         (arm_declare_function_name): Set unified syntax and mode.
25147         (arm_option_override): Init target_option_default_node.
25148         and target_option_current_node.
25149         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
25150         (*call_symbol): Likewise.
25151         * doc/extend.texi: Document ARM/Thumb target attribute.
25152         * doc/invoke.texi: Likewise.
25153
25154 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25155
25156         Revert:
25157         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25158         PR rtl-optimization/64164
25159         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25160         * tree-ssa-copyrename.c: Removed.
25161         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25162         -ftree-coalesce-vars.
25163         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25164         * common.opt (ftree-copyrename): Ignore.
25165         (ftree-coalesce-inlined-vars): Likewise.
25166         * doc/invoke.texi: Remove the ignored options above.
25167         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25168         * tree-ssa-coalesce.h: ... here.
25169         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25170         headers required by it.
25171         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25172         across variables when flag_tree_coalesce_vars.  Check register
25173         use and promoted modes to allow coalescing.  Moved to
25174         tree-ssa-coalesce.c.
25175         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25176         with its member functions to tree-ssa-coalesce.c.
25177         (var_map_base_init): Likewise.  Renamed to
25178         compute_samebase_partition_bases.
25179         (partition_view_normal): Drop want_bases parameter.
25180         (partition_view_bitmap): Likewise.
25181         * tree-ssa-live.h: Adjust declarations.
25182         * tree-ssa-coalesce.c: Include explow.h.
25183         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25184         default defs at the entry point.
25185         (dump_part_var_map): New.
25186         (compute_optimized_partition_bases): New, called by...
25187         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25188         of compute_samebase_partition_bases.  Adjust.
25189         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25190         * cfgexpand.c (leader_merge): New.
25191         (get_rtl_for_parm_ssa_default_def): New.
25192         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25193         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25194         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25195         redundant MEM attr setting.
25196         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25197         from...
25198         (expand_one_stack_var): ... this.  New wrapper to check and
25199         skip already expanded SSA partitions.
25200         (record_alignment_for_reg_var): New, factored out of...
25201         (expand_one_var): ... this.
25202         (expand_one_ssa_partition): New.
25203         (adjust_one_expanded_partition_var): New.
25204         (expand_one_register_var): Check and skip already expanded SSA
25205         partitions.
25206         (expand_used_vars): Don't create DECLs for anonymous SSA
25207         names.  Expand all SSA partitions, then adjust all SSA names.
25208         (pass::execute): Replace the loops that set
25209         SA.partition_to_pseudo from partition leaders and cleared
25210         DECL_RTL for multi-location variables, and that which used to
25211         rename vars and set attrs, with one that clears DECL_RTL and
25212         checks that PARMs and RESULTs default_defs match DECL_RTL.
25213         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25214         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25215         * explow.c (promote_ssa_mode): New.
25216         * explow.h (promote_ssa_mode): Declare.
25217         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25218         * function.c: Include cfgexpand.h.
25219         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25220         (use_register_for_parm_decl): Wrapper for the above to
25221         special-case the result_ptr.
25222         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25223         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25224         multiple locations.
25225         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25226         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25227         (assign_parm_setup_block): Prefer SSA-assigned location.
25228         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25229         if stack_parm is NULL.
25230         (assign_parm_setup_stack): Prefer SSA-assigned location.
25231         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25232         rtl before testing for pointer bounds.  Special-case result_ptr.
25233         (expand_function_start): Maybe reset DECL_RTL of result.
25234         Prefer SSA-assigned location for result and static chain.
25235         Factor out DECL_RESULT and SET_DECL_RTL.
25236         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25237         anonymous SSA names.  Use promote_ssa_mode.
25238         (get_temp_reg): Likewise.
25239         (remove_ssa_form): Adjust.
25240         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25241         and get its reg_usage for reg invalidation.
25242         (compute_bb_dataflow): Pass it insn.
25243         (emit_notes_in_bb): Likewise.
25244         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25245         fail assert on conversion between unsigned types.
25246
25247 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25248
25249         PR tree-optimization/65460
25250         * omp-low.c (expand_omp_target): Set parallelized_function on
25251         cgraph_node for child_fn.
25252
25253 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25254
25255         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
25256         parallelized_function before add_new_function.
25257
25258 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
25259
25260         * gcc-plugin.h: Move decls to plugin.h and include it.
25261         * plugin.h: Relocate decls from gcc-plugin.h
25262         * ggc-page.c: Include required header files.
25263         * passes.c: Likewise.
25264         * cgraphunit.c: Likewise.
25265
25266 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25267
25268         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
25269
25270 2015-06-09  Jason Merrill  <jason@redhat.com>
25271
25272         PR bootstrap/66448
25273         * toplev.c (check_global_declaration): Don't warn about a clone.
25274
25275 2015-06-09  Marek Polacek  <polacek@redhat.com>
25276
25277         PR tree-optimization/66299
25278         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
25279         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
25280         patterns.
25281
25282 2015-06-09  Richard Biener  <rguenther@suse.de>
25283
25284         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
25285         (vect_analyze_slp_instance): Instead do not falsely drop
25286         load permutations.
25287
25288 2015-06-09  Richard Biener  <rguenther@suse.de>
25289
25290         PR middle-end/66423
25291         * match.pd: Handle A % (unsigned)(1 << B).
25292
25293 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
25294
25295         * varasm.c (output_object_block_htab): Remove.
25296         (output_object_block_compare): New.
25297         (output_object_blocks): Sort named object_blocks before outputting
25298         them.
25299
25300 2015-06-09  Richard Biener  <rguenther@suse.de>
25301
25302         PR tree-optimization/66419
25303         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
25304         consider GROUP_GAP when detecting a perfect subchain.
25305
25306 2015-06-09  Nick Clifton  <nickc@redhat.com>
25307
25308         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
25309         place read only data in the .frodata section.
25310
25311 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
25312
25313         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
25314         (atomic_store<mode>): Likewise.
25315
25316 2015-06-09  Richard Biener  <rguenther@suse.de>
25317
25318         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
25319
25320 2015-06-09  Richard Biener  <rguenther@suse.de>
25321
25322         PR middle-end/66413
25323         * tree-inline.c (insert_init_debug_bind): Unshare value.
25324
25325 2015-06-09  Richard Biener  <rguenther@suse.de>
25326
25327         PR tree-optimization/66396
25328         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
25329         Rename virtual operands.
25330
25331 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25332
25333         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
25334         always return false.
25335
25336 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25337
25338         PR rtl-optimization/64164
25339         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25340         * tree-ssa-copyrename.c: Removed.
25341         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25342         -ftree-coalesce-vars.
25343         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25344         * common.opt (ftree-copyrename): Ignore.
25345         (ftree-coalesce-inlined-vars): Likewise.
25346         * doc/invoke.texi: Remove the ignored options above.
25347         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25348         * tree-ssa-coalesce.h: ... here.
25349         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25350         headers required by it.
25351         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25352         across variables when flag_tree_coalesce_vars.  Check register
25353         use and promoted modes to allow coalescing.  Moved to
25354         tree-ssa-coalesce.c.
25355         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25356         with its member functions to tree-ssa-coalesce.c.
25357         (var_map_base_init): Likewise.  Renamed to
25358         compute_samebase_partition_bases.
25359         (partition_view_normal): Drop want_bases parameter.
25360         (partition_view_bitmap): Likewise.
25361         * tree-ssa-live.h: Adjust declarations.
25362         * tree-ssa-coalesce.c: Include explow.h.
25363         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25364         default defs at the entry point.
25365         (dump_part_var_map): New.
25366         (compute_optimized_partition_bases): New, called by...
25367         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25368         of compute_samebase_partition_bases.  Adjust.
25369         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25370         * cfgexpand.c (leader_merge): New.
25371         (get_rtl_for_parm_ssa_default_def): New.
25372         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25373         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25374         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25375         redundant MEM attr setting.
25376         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25377         from...
25378         (expand_one_stack_var): ... this.  New wrapper to check and
25379         skip already expanded SSA partitions.
25380         (record_alignment_for_reg_var): New, factored out of...
25381         (expand_one_var): ... this.
25382         (expand_one_ssa_partition): New.
25383         (adjust_one_expanded_partition_var): New.
25384         (expand_one_register_var): Check and skip already expanded SSA
25385         partitions.
25386         (expand_used_vars): Don't create DECLs for anonymous SSA
25387         names.  Expand all SSA partitions, then adjust all SSA names.
25388         (pass::execute): Replace the loops that set
25389         SA.partition_to_pseudo from partition leaders and cleared
25390         DECL_RTL for multi-location variables, and that which used to
25391         rename vars and set attrs, with one that clears DECL_RTL and
25392         checks that PARMs and RESULTs default_defs match DECL_RTL.
25393         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25394         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25395         * explow.c (promote_ssa_mode): New.
25396         * explow.h (promote_ssa_mode): Declare.
25397         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25398         * function.c: Include cfgexpand.h.
25399         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25400         (use_register_for_parm_decl): Wrapper for the above to
25401         special-case the result_ptr.
25402         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25403         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25404         multiple locations.
25405         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25406         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25407         (assign_parm_setup_block): Prefer SSA-assigned location.
25408         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25409         if stack_parm is NULL.
25410         (assign_parm_setup_stack): Prefer SSA-assigned location.
25411         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25412         rtl before testing for pointer bounds.  Special-case result_ptr.
25413         (expand_function_start): Maybe reset DECL_RTL of result.
25414         Prefer SSA-assigned location for result and static chain.
25415         Factor out DECL_RESULT and SET_DECL_RTL.
25416         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25417         anonymous SSA names.  Use promote_ssa_mode.
25418         (get_temp_reg): Likewise.
25419         (remove_ssa_form): Adjust.
25420         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25421         and get its reg_usage for reg invalidation.
25422         (compute_bb_dataflow): Pass it insn.
25423         (emit_notes_in_bb): Likewise.
25424         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25425         fail assert on conversion between unsigned types.
25426
25427 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25428
25429         PR debug/58315
25430         * tree-inline.c (reset_debug_binding): New.
25431         (reset_debug_bindings): Likewise.
25432         (expand_call_inline): Call it.
25433
25434 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25435
25436         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
25437         TYPE_STRING_FLAG.
25438
25439 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25440
25441         * lto-streamer-out.c (lto_output_location): Stream
25442         reserved locations correctly.
25443         * lto-streamer-in.c (lto_output_location): Likewise.
25444
25445 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
25446
25447         * coretypes.h: Include hash-table.h and hash-set.h for host files.
25448         * ggc.h: Don't include statistics.h>
25449         * hash-map.h: Remove all includes.
25450         * hash-set.h: Likewise.
25451         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
25452         the include list. Remove <new>.
25453         * inchash.h: Remove all includes.
25454         * mem-stats.h: Likewise.
25455         * vec.h: No special processing for generators or ggc.
25456         * alias.c : Adjust include files.
25457         * alloc-pool.c : Likewise.
25458         * alloc-pool.h : Likewise.
25459         * asan.c : Likewise.
25460         * attribs.c : Likewise.
25461         * auto-inc-dec.c : Likewise.
25462         * auto-profile.c : Likewise.
25463         * bb-reorder.c : Likewise.
25464         * bitmap.c : Likewise.
25465         * bitmap.h : Likewise.
25466         * bt-load.c : Likewise.
25467         * builtins.c : Likewise.
25468         * caller-save.c : Likewise.
25469         * calls.c : Likewise.
25470         * ccmp.c : Likewise.
25471         * cfg.c : Likewise.
25472         * cfganal.c : Likewise.
25473         * cfgbuild.c : Likewise.
25474         * cfgcleanup.c : Likewise.
25475         * cfgexpand.c : Likewise.
25476         * cfghooks.c : Likewise.
25477         * cfgloop.c : Likewise.
25478         * cfgloop.h : Likewise.
25479         * cfgloopanal.c : Likewise.
25480         * cfgloopmanip.c : Likewise.
25481         * cfgrtl.c : Likewise.
25482         * cgraph.c : Likewise.
25483         * cgraphbuild.c : Likewise.
25484         * cgraphclones.c : Likewise.
25485         * cgraphunit.c : Likewise.
25486         * cilk-common.c : Likewise.
25487         * combine-stack-adj.c : Likewise.
25488         * combine.c : Likewise.
25489         * compare-elim.c : Likewise.
25490         * context.c : Likewise.
25491         * convert.c : Likewise.
25492         * coverage.c : Likewise.
25493         * cppbuiltin.c : Likewise.
25494         * cprop.c : Likewise.
25495         * cse.c : Likewise.
25496         * cselib.c : Likewise.
25497         * data-streamer-in.c : Likewise.
25498         * data-streamer-out.c : Likewise.
25499         * data-streamer.c : Likewise.
25500         * data-streamer.h : Likewise.
25501         * dbxout.c : Likewise.
25502         * dce.c : Likewise.
25503         * ddg.c : Likewise.
25504         * debug.c : Likewise.
25505         * df-core.c : Likewise.
25506         * df-problems.c : Likewise.
25507         * df-scan.c : Likewise.
25508         * df.h : Likewise.
25509         * dfp.c : Likewise.
25510         * dojump.c : Likewise.
25511         * dominance.c : Likewise.
25512         * domwalk.c : Likewise.
25513         * double-int.c : Likewise.
25514         * dse.c : Likewise.
25515         * dumpfile.c : Likewise.
25516         * dwarf2asm.c : Likewise.
25517         * dwarf2cfi.c : Likewise.
25518         * dwarf2out.c : Likewise.
25519         * emit-rtl.c : Likewise.
25520         * et-forest.c : Likewise.
25521         * except.c : Likewise.
25522         * except.h : Likewise.
25523         * explow.c : Likewise.
25524         * expmed.c : Likewise.
25525         * expr.c : Likewise.
25526         * final.c : Likewise.
25527         * fixed-value.c : Likewise.
25528         * fold-const.c : Likewise.
25529         * function.c : Likewise.
25530         * fwprop.c : Likewise.
25531         * gcc-plugin.h : Likewise.
25532         * gcc.c : Likewise.
25533         * gcse-common.c : Likewise.
25534         * gcse.c : Likewise.
25535         * genattrtab.c : Likewise.
25536         * genautomata.c : Likewise.
25537         * genconditions.c : Likewise.
25538         * genemit.c : Likewise.
25539         * generic-match-head.c : Likewise.
25540         * genextract.c : Likewise.
25541         * gengtype-state.c : Likewise.
25542         * gengtype.c : Likewise.
25543         * genhooks.c : Likewise.
25544         * genmatch.c : Likewise.
25545         * genmodes.c : Likewise.
25546         * genrecog.c : Likewise.
25547         * gensupport.c : Likewise.
25548         * ggc-common.c : Likewise.
25549         * ggc-internal.h : Likewise.
25550         * ggc-none.c : Likewise.
25551         * ggc-page.c : Likewise.
25552         * gimple-builder.c : Likewise.
25553         * gimple-expr.c : Likewise.
25554         * gimple-fold.c : Likewise.
25555         * gimple-iterator.c : Likewise.
25556         * gimple-low.c : Likewise.
25557         * gimple-match-head.c : Likewise.
25558         * gimple-pretty-print.c : Likewise.
25559         * gimple-ssa-isolate-paths.c : Likewise.
25560         * gimple-ssa-strength-reduction.c : Likewise.
25561         * gimple-ssa.h : Likewise.
25562         * gimple-streamer-in.c : Likewise.
25563         * gimple-streamer-out.c : Likewise.
25564         * gimple-streamer.h : Likewise.
25565         * gimple-walk.c : Likewise.
25566         * gimple.c : Likewise.
25567         * gimplify-me.c : Likewise.
25568         * gimplify.c : Likewise.
25569         * godump.c : Likewise.
25570         * graph.c : Likewise.
25571         * graphds.c : Likewise.
25572         * graphite-blocking.c : Likewise.
25573         * graphite-dependences.c : Likewise.
25574         * graphite-interchange.c : Likewise.
25575         * graphite-isl-ast-to-gimple.c : Likewise.
25576         * graphite-optimize-isl.c : Likewise.
25577         * graphite-poly.c : Likewise.
25578         * graphite-scop-detection.c : Likewise.
25579         * graphite-sese-to-poly.c : Likewise.
25580         * graphite.c : Likewise.
25581         * haifa-sched.c : Likewise.
25582         * hard-reg-set.h : Likewise.
25583         * hw-doloop.c : Likewise.
25584         * ifcvt.c : Likewise.
25585         * inchash.c : Likewise.
25586         * incpath.c : Likewise.
25587         * init-regs.c : Likewise.
25588         * input.c : Likewise.
25589         * internal-fn.c : Likewise.
25590         * ipa-chkp.c : Likewise.
25591         * ipa-comdats.c : Likewise.
25592         * ipa-cp.c : Likewise.
25593         * ipa-devirt.c : Likewise.
25594         * ipa-icf-gimple.c : Likewise.
25595         * ipa-icf.c : Likewise.
25596         * ipa-inline-analysis.c : Likewise.
25597         * ipa-inline-transform.c : Likewise.
25598         * ipa-inline.c : Likewise.
25599         * ipa-polymorphic-call.c : Likewise.
25600         * ipa-profile.c : Likewise.
25601         * ipa-prop.c : Likewise.
25602         * ipa-pure-const.c : Likewise.
25603         * ipa-ref.c : Likewise.
25604         * ipa-reference.c : Likewise.
25605         * ipa-split.c : Likewise.
25606         * ipa-utils.c : Likewise.
25607         * ipa-visibility.c : Likewise.
25608         * ipa.c : Likewise.
25609         * ira-build.c : Likewise.
25610         * ira-color.c : Likewise.
25611         * ira-conflicts.c : Likewise.
25612         * ira-costs.c : Likewise.
25613         * ira-emit.c : Likewise.
25614         * ira-lives.c : Likewise.
25615         * ira.c : Likewise.
25616         * jump.c : Likewise.
25617         * langhooks.c : Likewise.
25618         * lcm.c : Likewise.
25619         * libfuncs.h : Likewise.
25620         * lists.c : Likewise.
25621         * loop-doloop.c : Likewise.
25622         * loop-init.c : Likewise.
25623         * loop-invariant.c : Likewise.
25624         * loop-iv.c : Likewise.
25625         * loop-unroll.c : Likewise.
25626         * lower-subreg.c : Likewise.
25627         * lra-assigns.c : Likewise.
25628         * lra-coalesce.c : Likewise.
25629         * lra-constraints.c : Likewise.
25630         * lra-eliminations.c : Likewise.
25631         * lra-lives.c : Likewise.
25632         * lra-remat.c : Likewise.
25633         * lra-spills.c : Likewise.
25634         * lra.c : Likewise.
25635         * lto-cgraph.c : Likewise.
25636         * lto-compress.c : Likewise.
25637         * lto-opts.c : Likewise.
25638         * lto-section-in.c : Likewise.
25639         * lto-section-out.c : Likewise.
25640         * lto-streamer-in.c : Likewise.
25641         * lto-streamer-out.c : Likewise.
25642         * lto-streamer.c : Likewise.
25643         * lto-streamer.h : Likewise.
25644         * mcf.c : Likewise.
25645         * mode-switching.c : Likewise.
25646         * modulo-sched.c : Likewise.
25647         * omega.c : Likewise.
25648         * omp-low.c : Likewise.
25649         * optabs.c : Likewise.
25650         * opts-global.c : Likewise.
25651         * opts.h : Likewise.
25652         * passes.c : Likewise.
25653         * plugin.c : Likewise.
25654         * postreload-gcse.c : Likewise.
25655         * postreload.c : Likewise.
25656         * predict.c : Likewise.
25657         * print-rtl.c : Likewise.
25658         * print-tree.c : Likewise.
25659         * profile.c : Likewise.
25660         * read-md.c : Likewise.
25661         * read-md.h : Likewise.
25662         * read-rtl.c : Likewise.
25663         * real.c : Likewise.
25664         * realmpfr.c : Likewise.
25665         * recog.c : Likewise.
25666         * ree.c : Likewise.
25667         * reg-stack.c : Likewise.
25668         * regcprop.c : Likewise.
25669         * reginfo.c : Likewise.
25670         * regrename.c : Likewise.
25671         * regstat.c : Likewise.
25672         * reload.c : Likewise.
25673         * reload1.c : Likewise.
25674         * reorg.c : Likewise.
25675         * resource.c : Likewise.
25676         * rtl-chkp.c : Likewise.
25677         * rtl.c : Likewise.
25678         * rtl.h : Likewise.
25679         * rtlanal.c : Likewise.
25680         * rtlhash.c : Likewise.
25681         * rtlhash.h : Likewise.
25682         * rtlhooks.c : Likewise.
25683         * sanopt.c : Likewise.
25684         * sched-deps.c : Likewise.
25685         * sched-ebb.c : Likewise.
25686         * sched-rgn.c : Likewise.
25687         * sched-vis.c : Likewise.
25688         * sdbout.c : Likewise.
25689         * sel-sched-dump.c : Likewise.
25690         * sel-sched-ir.c : Likewise.
25691         * sel-sched-ir.h : Likewise.
25692         * sel-sched.c : Likewise.
25693         * sese.c : Likewise.
25694         * shrink-wrap.c : Likewise.
25695         * shrink-wrap.h : Likewise.
25696         * simplify-rtx.c : Likewise.
25697         * stack-ptr-mod.c : Likewise.
25698         * statistics.c : Likewise.
25699         * stmt.c : Likewise.
25700         * stor-layout.c : Likewise.
25701         * store-motion.c : Likewise.
25702         * stringpool.c : Likewise.
25703         * symtab.c : Likewise.
25704         * target-globals.c : Likewise.
25705         * targhooks.c : Likewise.
25706         * tlink.c : Likewise.
25707         * toplev.c : Likewise.
25708         * tracer.c : Likewise.
25709         * trans-mem.c : Likewise.
25710         * tree-affine.c : Likewise.
25711         * tree-affine.h : Likewise.
25712         * tree-browser.c : Likewise.
25713         * tree-call-cdce.c : Likewise.
25714         * tree-cfg.c : Likewise.
25715         * tree-cfgcleanup.c : Likewise.
25716         * tree-chkp-opt.c : Likewise.
25717         * tree-chkp.c : Likewise.
25718         * tree-chrec.c : Likewise.
25719         * tree-complex.c : Likewise.
25720         * tree-data-ref.c : Likewise.
25721         * tree-dfa.c : Likewise.
25722         * tree-diagnostic.c : Likewise.
25723         * tree-dump.c : Likewise.
25724         * tree-eh.c : Likewise.
25725         * tree-eh.h : Likewise.
25726         * tree-emutls.c : Likewise.
25727         * tree-hasher.h : Likewise.
25728         * tree-if-conv.c : Likewise.
25729         * tree-inline.c : Likewise.
25730         * tree-inline.h : Likewise.
25731         * tree-into-ssa.c : Likewise.
25732         * tree-iterator.c : Likewise.
25733         * tree-loop-distribution.c : Likewise.
25734         * tree-nested.c : Likewise.
25735         * tree-nrv.c : Likewise.
25736         * tree-object-size.c : Likewise.
25737         * tree-outof-ssa.c : Likewise.
25738         * tree-parloops.c : Likewise.
25739         * tree-phinodes.c : Likewise.
25740         * tree-predcom.c : Likewise.
25741         * tree-pretty-print.c : Likewise.
25742         * tree-profile.c : Likewise.
25743         * tree-scalar-evolution.c : Likewise.
25744         * tree-sra.c : Likewise.
25745         * tree-ssa-address.c : Likewise.
25746         * tree-ssa-alias.c : Likewise.
25747         * tree-ssa-ccp.c : Likewise.
25748         * tree-ssa-coalesce.c : Likewise.
25749         * tree-ssa-copy.c : Likewise.
25750         * tree-ssa-copyrename.c : Likewise.
25751         * tree-ssa-dce.c : Likewise.
25752         * tree-ssa-dom.c : Likewise.
25753         * tree-ssa-dse.c : Likewise.
25754         * tree-ssa-forwprop.c : Likewise.
25755         * tree-ssa-ifcombine.c : Likewise.
25756         * tree-ssa-live.c : Likewise.
25757         * tree-ssa-loop-ch.c : Likewise.
25758         * tree-ssa-loop-im.c : Likewise.
25759         * tree-ssa-loop-ivcanon.c : Likewise.
25760         * tree-ssa-loop-ivopts.c : Likewise.
25761         * tree-ssa-loop-manip.c : Likewise.
25762         * tree-ssa-loop-niter.c : Likewise.
25763         * tree-ssa-loop-prefetch.c : Likewise.
25764         * tree-ssa-loop-unswitch.c : Likewise.
25765         * tree-ssa-loop.c : Likewise.
25766         * tree-ssa-math-opts.c : Likewise.
25767         * tree-ssa-operands.c : Likewise.
25768         * tree-ssa-phiopt.c : Likewise.
25769         * tree-ssa-phiprop.c : Likewise.
25770         * tree-ssa-pre.c : Likewise.
25771         * tree-ssa-propagate.c : Likewise.
25772         * tree-ssa-reassoc.c : Likewise.
25773         * tree-ssa-sccvn.c : Likewise.
25774         * tree-ssa-scopedtables.c : Likewise.
25775         * tree-ssa-sink.c : Likewise.
25776         * tree-ssa-strlen.c : Likewise.
25777         * tree-ssa-structalias.c : Likewise.
25778         * tree-ssa-tail-merge.c : Likewise.
25779         * tree-ssa-ter.c : Likewise.
25780         * tree-ssa-threadedge.c : Likewise.
25781         * tree-ssa-threadupdate.c : Likewise.
25782         * tree-ssa-uncprop.c : Likewise.
25783         * tree-ssa-uninit.c : Likewise.
25784         * tree-ssa.c : Likewise.
25785         * tree-ssanames.c : Likewise.
25786         * tree-stdarg.c : Likewise.
25787         * tree-streamer-in.c : Likewise.
25788         * tree-streamer-out.c : Likewise.
25789         * tree-streamer.c : Likewise.
25790         * tree-streamer.h : Likewise.
25791         * tree-switch-conversion.c : Likewise.
25792         * tree-tailcall.c : Likewise.
25793         * tree-vect-data-refs.c : Likewise.
25794         * tree-vect-generic.c : Likewise.
25795         * tree-vect-loop-manip.c : Likewise.
25796         * tree-vect-loop.c : Likewise.
25797         * tree-vect-patterns.c : Likewise.
25798         * tree-vect-slp.c : Likewise.
25799         * tree-vect-stmts.c : Likewise.
25800         * tree-vectorizer.c : Likewise.
25801         * tree-vectorizer.h : Likewise.
25802         * tree-vrp.c : Likewise.
25803         * tree.c : Likewise.
25804         * tsan.c : Likewise.
25805         * ubsan.c : Likewise.
25806         * valtrack.c : Likewise.
25807         * valtrack.h : Likewise.
25808         * value-prof.c : Likewise.
25809         * var-tracking.c : Likewise.
25810         * varasm.c : Likewise.
25811         * varpool.c : Likewise.
25812         * vec.c: Likewise.
25813         * vmsdbgout.c : Likewise.
25814         * vtable-verify.c : Likewise.
25815         * vtable-verify.h : Likewise.
25816         * web.c : Likewise.
25817         * wide-int.cc : Likewise.
25818         * xcoffout.c : Likewise.
25819         * config/aarch64/aarch64-builtins.c : Likewise.
25820         * config/aarch64/aarch64.c : Likewise.
25821         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
25822         * config/alpha/alpha.c : Likewise.
25823         * config/arc/arc.c : Likewise.
25824         * config/arm/aarch-common.c : Likewise.
25825         * config/arm/arm-builtins.c : Likewise.
25826         * config/arm/arm-c.c : Likewise.
25827         * config/arm/arm.c : Likewise.
25828         * config/avr/avr-c.c : Likewise.
25829         * config/avr/avr-log.c : Likewise.
25830         * config/avr/avr.c : Likewise.
25831         * config/bfin/bfin.c : Likewise.
25832         * config/c6x/c6x.c : Likewise.
25833         * config/cr16/cr16.c : Likewise.
25834         * config/cris/cris.c : Likewise.
25835         * config/darwin-c.c : Likewise.
25836         * config/darwin.c : Likewise.
25837         * config/default-c.c : Likewise.
25838         * config/epiphany/epiphany.c : Likewise.
25839         * config/epiphany/mode-switch-use.c : Likewise.
25840         * config/epiphany/resolve-sw-modes.c : Likewise.
25841         * config/fr30/fr30.c : Likewise.
25842         * config/frv/frv.c : Likewise.
25843         * config/ft32/ft32.c : Likewise.
25844         * config/glibc-c.c : Likewise.
25845         * config/h8300/h8300.c : Likewise.
25846         * config/i386/i386-c.c : Likewise.
25847         * config/i386/i386.c : Likewise.
25848         * config/i386/msformat-c.c : Likewise.
25849         * config/i386/winnt-cxx.c : Likewise.
25850         * config/i386/winnt-stubs.c : Likewise.
25851         * config/i386/winnt.c : Likewise.
25852         * config/ia64/ia64-c.c : Likewise.
25853         * config/ia64/ia64.c : Likewise.
25854         * config/iq2000/iq2000.c : Likewise.
25855         * config/lm32/lm32.c : Likewise.
25856         * config/m32c/m32c-pragma.c : Likewise.
25857         * config/m32c/m32c.c : Likewise.
25858         * config/m32r/m32r.c : Likewise.
25859         * config/m68k/m68k.c : Likewise.
25860         * config/mcore/mcore.c : Likewise.
25861         * config/mep/mep-pragma.c : Likewise.
25862         * config/mep/mep.c : Likewise.
25863         * config/microblaze/microblaze-c.c : Likewise.
25864         * config/microblaze/microblaze.c : Likewise.
25865         * config/mips/mips.c : Likewise.
25866         * config/mmix/mmix.c : Likewise.
25867         * config/mn10300/mn10300.c : Likewise.
25868         * config/moxie/moxie.c : Likewise.
25869         * config/msp430/msp430-c.c : Likewise.
25870         * config/msp430/msp430.c : Likewise.
25871         * config/nds32/nds32-cost.c : Likewise.
25872         * config/nds32/nds32-fp-as-gp.c : Likewise.
25873         * config/nds32/nds32-intrinsic.c : Likewise.
25874         * config/nds32/nds32-isr.c : Likewise.
25875         * config/nds32/nds32-md-auxiliary.c : Likewise.
25876         * config/nds32/nds32-memory-manipulation.c : Likewise.
25877         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
25878         * config/nds32/nds32-predicates.c : Likewise.
25879         * config/nds32/nds32.c : Likewise.
25880         * config/nios2/nios2.c : Likewise.
25881         * config/nvptx/nvptx.c : Likewise.
25882         * config/pa/pa.c : Likewise.
25883         * config/pdp11/pdp11.c : Likewise.
25884         * config/rl78/rl78-c.c : Likewise.
25885         * config/rl78/rl78.c : Likewise.
25886         * config/rs6000/rs6000-c.c : Likewise.
25887         * config/rs6000/rs6000.c : Likewise.
25888         * config/rx/rx.c : Likewise.
25889         * config/s390/s390-c.c : Likewise.
25890         * config/s390/s390.c : Likewise.
25891         * config/sh/sh-c.c : Likewise.
25892         * config/sh/sh-mem.cc : Likewise.
25893         * config/sh/sh.c : Likewise.
25894         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
25895         * config/sh/sh_treg_combine.cc : Likewise.
25896         * config/sol2-c.c : Likewise.
25897         * config/sol2-cxx.c : Likewise.
25898         * config/sol2-stubs.c : Likewise.
25899         * config/sol2.c : Likewise.
25900         * config/sparc/sparc-c.c : Likewise.
25901         * config/sparc/sparc.c : Likewise.
25902         * config/spu/spu-c.c : Likewise.
25903         * config/spu/spu.c : Likewise.
25904         * config/stormy16/stormy16.c : Likewise.
25905         * config/tilegx/mul-tables.c : Likewise.
25906         * config/tilegx/tilegx-c.c : Likewise.
25907         * config/tilegx/tilegx.c : Likewise.
25908         * config/tilepro/mul-tables.c : Likewise.
25909         * config/tilepro/tilepro-c.c : Likewise.
25910         * config/tilepro/tilepro.c : Likewise.
25911         * config/v850/v850-c.c : Likewise.
25912         * config/v850/v850.c : Likewise.
25913         * config/vax/vax.c : Likewise.
25914         * config/visium/visium.c : Likewise.
25915         * config/vms/vms-c.c : Likewise.
25916         * config/vms/vms.c : Likewise.
25917         * config/vxworks.c : Likewise.
25918         * config/winnt-c.c : Likewise.
25919         * config/xtensa/xtensa.c : Likewise.
25920
25921 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25922
25923         PR lto/65378
25924         * ipa-utils.h (warn_types_mismatch): Update prototype.
25925         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
25926         parameters.
25927         (type_mismatch_p): New function.
25928         (warn_types_mismatch): Reorg to work better on non-C++ types.
25929         (odr_types_equivalent_p): Add loc1/loc2 parameters.
25930         (add_type_duplicate): Update.
25931
25932 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25933
25934         PR rtl-optimization/66444
25935         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
25936         call_used_regs.
25937
25938 2015-06-08  Richard Biener  <rguenther@suse.de>
25939
25940         PR tree-optimization/66422
25941         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
25942         block after inserted gcc_unreachable.
25943
25944 2015-06-08  Nick Clifton  <nickc@redhat.com>
25945
25946         * config/rx/rx.c (rx_function_value): Do not promote vector types.
25947         (rx_promote_function_mode): Likewise.
25948         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
25949
25950 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
25951
25952         * genattrtab.c (insn_alternatives): Change type from int *
25953         to uint64_t *.
25954         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
25955         (get_attr_value): Change type of num_alt to uint64_t.
25956         (compute_alternative_mask): Change return type from
25957         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
25958         (make_alternative_compare, mk_attr_alt): Change argument type
25959         from int to uint64_t.
25960         (simplify_test_exp): Change type of i from int to uint64_t.
25961         Shift ((uint64_t) 1) instead of 1 up.
25962         (main): Adjust oballocvec first argument from int to uint64_t.
25963         Shift ((uint64_t) 1) instead of 1 up.
25964
25965 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
25966
25967         PR other/65366
25968         * gdbhooks.py: Import sys.
25969         (intptr): New function.  Replace int(...) by intptr(...).
25970
25971 2015-06-08  Richard Biener  <rguenther@suse.de>
25972
25973         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
25974         adjustment for gaps at the end of a SLP load group properly.
25975         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
25976         all permutations we can generate.
25977         (vect_transform_slp_perm_load): Use the correct group-size.
25978
25979 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
25980
25981         * genmatch.c (expr::gen_transform): For conditions, guess the type
25982         from the second operand.
25983
25984 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25985
25986         PR tree-optimization/66442
25987         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
25988         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
25989         if the loop latch is not a singleton.  Use
25990         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
25991
25992 2015-06-08  Marek Polacek  <polacek@redhat.com>
25993
25994         PR sanitizer/66452
25995         * toplev.c (check_global_declaration): Don't warn about artificial
25996         decls.
25997
25998 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25999
26000         PR tree-optimization/66436
26001         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
26002         dump file.
26003         * gimplify.c: Add tree-dump.h include.
26004         (gimplify_function_tree): Dump function to gimple dump file.
26005         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
26006         dump file.
26007
26008 2015-06-08  Tom de Vries  <tom@codesourcery.com>
26009
26010         PR tree-optimization/66435
26011         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
26012         function.
26013
26014 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
26015
26016         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
26017         of ptr_type_node to not be ptr_to_node.
26018         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
26019         TREE_TYPE of pointers.
26020         * gimple-expr.c (useless_type_conversion): Reorder the check for
26021         function pointers and TYPE_CANONICAL.
26022
26023 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
26024
26025         PR bootstrap/66319
26026         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
26027         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
26028         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
26029         later.
26030         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
26031         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
26032         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
26033         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
26034         and non iso if unix2003.
26035
26036 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
26037
26038         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
26039
26040 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
26041
26042         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
26043         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
26044         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
26045         except.c, final.c, function.c, gcse-common.c, genemit.c,
26046         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
26047         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
26048         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
26049         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
26050         more derived ones.
26051
26052 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
26053
26054         * combine.c (combine_split_insns): Remove cast.
26055         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
26056         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
26057         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
26058         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
26059         * genemit.c (gen_split): Change return type of generated functions to
26060         rtx_insn.
26061         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
26062         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
26063         gen_peephole2_* functions.
26064         (print_subroutine, main): Likewise.
26065         * recog.c (peephole2_optimize): Remove cast.
26066         (peep2_next_insn): Promote return type to rtx_insn.
26067         * recog.h (peep2_next_insn): Fix prototype.
26068         * rtl.h (try_split, split_insns): Likewise.
26069
26070 2015-06-06  DJ Delorie  <dj@redhat.com>
26071
26072         * config/msp430/msp430.c (msp430_asm_integer): Support addition
26073         and subtraction too.
26074
26075 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
26076
26077         PR target/66410
26078         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
26079         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
26080         instead of Snd.  Disparage Sid/z alternative with '^'.
26081
26082 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
26083
26084         * dwarf2out.c: Remove deferred_locations*.
26085         (dwarf2_debug_hooks): Add early_finish hook.
26086         Remove global_decl hook.
26087         Add early_global_decl and late_global_decl hook.
26088         New global early_dwarf.
26089         New structure set_early_dwarf.
26090         (output_die): Indicate whether a DIE was generated early
26091         when generating assembly with -dA.
26092         (struct limbo_die_struct): Document created_for field.
26093         Remove file_table_last_lookup.
26094         (remove_AT): Return TRUE if successful.
26095         (remove_child_TAG): Clear die_parent.
26096         (reparent_child): New function abstracted from...
26097         (splice_child_die): ...here.
26098         (new_die): ICE if a DIE ends up in limbo too late.
26099         (check_die): New.
26100         (defer_location): Remove.
26101         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
26102         (fill_variable_array_bounds): New.
26103         (decl_start_label): Call fill_variable_array_bounds.
26104         (gen_formal_parameter_die): Rewrite to reuse previously generated
26105         DIEs.
26106         (gen_subprogram_die): Same.
26107         (gen_variable_die): Same.
26108         (gen_const_die): Same.
26109         (gen_label_die): Same.
26110         (gen_lexical_block_die): Same.
26111         (decl_will_get_specification_p): New.
26112         (local_function_static): New.
26113         (gen_struct_or_union_type_die): Fill in variable-length fields.
26114         (gen_typedef_die): Fill in variable-length typedefs.
26115         (gen_tagged_type_die): Gracefully return on error_mark_node.
26116         Handle re-entrancy.
26117         (gen_type_die_with_usage): Handle variable-length types.
26118         Remove duplicate code for ARRAY_TYPE case.
26119         (process_scope_var): Only process imported modules during early
26120         dwarf.
26121         (dwarf2out_early_global_decl): New.
26122         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
26123         (dwarf2out_type_decl): Set early_dwarf while calling
26124         dwarf2out_decl.
26125         (dwarf2out_decl): Verify that we did not recreate a previously
26126         generated DIE.
26127         Do not return on DECL_EXTERNALs in VAR_DECLs.
26128         Abstract some code to local_function_static.
26129         (lookup_filename): Remove use of file_table_last_lookup.
26130         Gracefully exit on missing file_name.
26131         (dwarf2out_finish): Verify limbo list.
26132         Remove deferred_locations_list use.
26133         Move deferred_asm_name and limbo flushing to...
26134         (dwarf2out_early_finish): ...here.  New.
26135         (dwarf2out_c_finalize): Remove set of deferred_location_list,
26136         deferred_asm_name, and file_table_last_lookup.
26137         * cgraph.h (referred_to_p): Add default argument.
26138         * cgraphunit.c (referred_to_p): Add and handle include_self
26139         argument.
26140         (analyze_functions): Add first_time argument.
26141         Call check_global_declaration for all symbols.
26142         Call late_global_decl for nodes for moribund nodes.
26143         (finalize_compilation_unit): Add new argument to
26144         analyze_functions.
26145         Call early_global_decl for functions.
26146         Call early_finish debug hook.
26147         * dbxout.c (dbxout_early_global_decl): New.
26148         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
26149         (dbx_debug_hooks): Add new hooks.
26150         (xcoff_debug_hooks): Same.
26151         * debug.c (do_nothing_debug_hooks): Add early_finish field.
26152         Add early and late debug hooks.
26153         Remove global_decl hook.
26154         * debug.h (struct gcc_debug_hooks): Add early_finish,
26155         early_global_decl, and late_global_decl fields.
26156         Remove global_decl field.
26157         Document gcc_debug_hooks.
26158         * gengtype.c (output_typename): Remove.
26159         * godump.c (go_early_global_decl): New.
26160         (go_late_global_decl): New.
26161         (go_global_decl): Remove.
26162         (dump_go_spec_init): Remove global_decl.  Add
26163         {early,late}_global_decl.
26164         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
26165         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
26166         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
26167         (write_global_declarations): Remove.
26168         (global_decl_processing): New.
26169         * langhooks.h (struct lang_hooks_for_decls): Remove
26170         final_write_globals field.
26171         Add post_compilation_parsing_cleanups field.
26172         * passes.c (rest_of_decl_compilation): Call early_global_decl.
26173         * sdbout.c: Add early and late_global_decl hooks.  Remove
26174         sdbout_global_decl hook.
26175         Add early_finish field for sdb_debug_hooks.
26176         (sdbout_global_decl): Remove.
26177         (sdbout_early_global_decl): New.
26178         (sdbout_late_global_decl): New.
26179         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
26180         * toplev.c (check_global_declaration): Rename from
26181         check_global_declaration_1.
26182         Adapt to use symtab infrastructure.
26183         (check_global_declarations): Remove.
26184         (emit_debug_global_declarations): Remove.
26185         (compile_file): Remove call to final_write_globals langhook.
26186         Run the actual compilation process.
26187         Perform any post compilation parser cleanups.
26188         Generate late debug info.
26189         * toplev.h (check_global_declaration): New.
26190         (check_global_declaration_1): Remove.
26191         (check_global_declarations): Remove.
26192         (write_global_declarations): Remove.
26193         (emit_debug_global_declarations): Remove.
26194         (global_decl_processing): New.
26195         * tree-core.h (struct tree_block): Add DIE field.
26196         * tree.h (BLOCK_DIE): New.
26197         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
26198         throughout.
26199         (vmsdbgout_early_global_decl): New.
26200         (vmsdbgout_late_global_decl): New.
26201         Add early_finish debug hook field to vmsdbg_debug_hooks.
26202         Remove vmsdbgout_decl to vmsdbgout_function_decl.
26203         Add early and late_global_decl debug hooks.
26204
26205 2015-06-05  Julian Brown  <julian@codesourcery.com>
26206             Sandra Loosemore  <sandra@codesourcery.com>
26207
26208         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
26209         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
26210         to print-sysroot-suffix.sh script.
26211
26212 2015-06-05  Tom de Vries  <tom@codesourcery.com>
26213
26214         merge from gomp4 branch:
26215         2015-05-28  Tom de Vries  <tom@codesourcery.com>
26216
26217         PR tree-optimization/65443
26218         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
26219         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
26220         (try_transform_to_exit_first_loop_alt): New function.
26221         (transform_to_exit_first_loop): Use
26222         try_transform_to_exit_first_loop_alt.
26223
26224 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
26225
26226         * builtins.c (expand_builtin_atomic_compare_exchange): Call
26227         emit_cmp_and_jump_insns with the mode of target.
26228
26229 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26230
26231         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
26232
26233 2015-06-04  DJ Delorie  <dj@redhat.com>
26234
26235         * config/msp430/msp430.md (movsi_s): New.  Special case for
26236         storing a 20-bit symbol into a 32-bit register.
26237         * config/msp430/msp430.c (msp430_subreg): Add support for it.
26238         * config/msp430/predicates.md (msp430_symbol_operand): New.
26239
26240 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
26241
26242         * c-family/c-common.c (noplt): New attribute.
26243         (handle_noplt_attribute): New handler.
26244         * calls.c (prepare_call_address): Check for noplt
26245         attribute.
26246         * config/i386/i386.c (ix86_expand_call): Check
26247         for noplt attribute.
26248         (ix86_nopic_noplt_attribute_p): New function.
26249         (ix86_output_call_insn): Output indirect call for non-pic
26250         no plt calls.
26251         * doc/extend.texi (noplt): Document new attribute.
26252         * doc/invoke.texi: Document new attribute.
26253
26254 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
26255
26256         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
26257         real.h, and fixed-value.h when included in host source files.
26258         * double-int.h: Remove redundant #includes listed above.
26259         * fixed-value.h: Likewise.
26260         * real.h: Likewise.
26261         * wide-int.h: Likewise.
26262         * inchash.h: Likewise.
26263         * rtl.h: Add some include files When included from a generator file.
26264         * target.h: Remove wide-int.h and insn-modes.h from the include list.
26265         * internal-fn.h: Don't include coretypes.h.
26266         * alias.c: Adjust includes for restructured coretypes.h.
26267         * asan.c: Likewise.
26268         * attribs.c: Likewise.
26269         * auto-inc-dec.c: Likewise.
26270         * auto-profile.c: Likewise.
26271         * bb-reorder.c: Likewise.
26272         * bt-load.c: Likewise.
26273         * builtins.c: Likewise.
26274         * caller-save.c: Likewise.
26275         * calls.c: Likewise.
26276         * ccmp.c: Likewise.
26277         * cfg.c: Likewise.
26278         * cfganal.c: Likewise.
26279         * cfgbuild.c: Likewise.
26280         * cfgcleanup.c: Likewise.
26281         * cfgexpand.c: Likewise.
26282         * cfghooks.c: Likewise.
26283         * cfgloop.c: Likewise.
26284         * cfgloop.h: Likewise.
26285         * cfgloopanal.c: Likewise.
26286         * cfgloopmanip.c: Likewise.
26287         * cfgrtl.c: Likewise.
26288         * cgraph.c: Likewise.
26289         * cgraphbuild.c: Likewise.
26290         * cgraphclones.c: Likewise.
26291         * cgraphunit.c: Likewise.
26292         * cilk-common.c: Likewise.
26293         * combine-stack-adj.c: Likewise.
26294         * combine.c: Likewise.
26295         * compare-elim.c: Likewise.
26296         * convert.c: Likewise.
26297         * coverage.c: Likewise.
26298         * cppbuiltin.c: Likewise.
26299         * cprop.c: Likewise.
26300         * cse.c: Likewise.
26301         * cselib.c: Likewise.
26302         * data-streamer-in.c: Likewise.
26303         * data-streamer-out.c: Likewise.
26304         * data-streamer.c: Likewise.
26305         * dbxout.c: Likewise.
26306         * dce.c: Likewise.
26307         * ddg.c: Likewise.
26308         * debug.c: Likewise.
26309         * df-core.c: Likewise.
26310         * df-problems.c: Likewise.
26311         * df-scan.c: Likewise.
26312         * df.h: Likewise.
26313         * dfp.c: Likewise.
26314         * dojump.c: Likewise.
26315         * dominance.c: Likewise.
26316         * domwalk.c: Likewise.
26317         * double-int.c: Likewise.
26318         * dse.c: Likewise.
26319         * dumpfile.c: Likewise.
26320         * dwarf2asm.c: Likewise.
26321         * dwarf2cfi.c: Likewise.
26322         * dwarf2out.c: Likewise.
26323         * dwarf2out.h: Likewise.
26324         * emit-rtl.c: Likewise.
26325         * et-forest.c: Likewise.
26326         * except.c: Likewise.
26327         * explow.c: Likewise.
26328         * expmed.c: Likewise.
26329         * expr.c: Likewise.
26330         * final.c: Likewise.
26331         * fixed-value.c: Likewise.
26332         * fold-const.c: Likewise.
26333         * function.c: Likewise.
26334         * fwprop.c: Likewise.
26335         * gcc-plugin.h: Likewise.
26336         * gcse.c: Likewise.
26337         * generic-match-head.c: Likewise.
26338         * ggc-page.c: Likewise.
26339         * gimple-builder.c: Likewise.
26340         * gimple-expr.c: Likewise.
26341         * gimple-fold.c: Likewise.
26342         * gimple-iterator.c: Likewise.
26343         * gimple-low.c: Likewise.
26344         * gimple-match-head.c: Likewise.
26345         * gimple-pretty-print.c: Likewise.
26346         * gimple-ssa-isolate-paths.c: Likewise.
26347         * gimple-ssa-strength-reduction.c: Likewise.
26348         * gimple-streamer-in.c: Likewise.
26349         * gimple-streamer-out.c: Likewise.
26350         * gimple-streamer.h: Likewise.
26351         * gimple-walk.c: Likewise.
26352         * gimple.c: Likewise.
26353         * gimplify-me.c: Likewise.
26354         * gimplify.c: Likewise.
26355         * godump.c: Likewise.
26356         * graph.c: Likewise.
26357         * graphite-blocking.c: Likewise.
26358         * graphite-dependences.c: Likewise.
26359         * graphite-interchange.c: Likewise.
26360         * graphite-isl-ast-to-gimple.c: Likewise.
26361         * graphite-optimize-isl.c: Likewise.
26362         * graphite-poly.c: Likewise.
26363         * graphite-scop-detection.c: Likewise.
26364         * graphite-sese-to-poly.c: Likewise.
26365         * graphite.c: Likewise.
26366         * haifa-sched.c: Likewise.
26367         * hooks.h: Likewise.
26368         * hw-doloop.c: Likewise.
26369         * ifcvt.c: Likewise.
26370         * incpath.c: Likewise.
26371         * init-regs.c: Likewise.
26372         * internal-fn.c: Likewise.
26373         * ipa-chkp.c: Likewise.
26374         * ipa-comdats.c: Likewise.
26375         * ipa-cp.c: Likewise.
26376         * ipa-devirt.c: Likewise.
26377         * ipa-icf-gimple.c: Likewise.
26378         * ipa-icf.c: Likewise.
26379         * ipa-inline-analysis.c: Likewise.
26380         * ipa-inline-transform.c: Likewise.
26381         * ipa-inline.c: Likewise.
26382         * ipa-polymorphic-call.c: Likewise.
26383         * ipa-profile.c: Likewise.
26384         * ipa-prop.c: Likewise.
26385         * ipa-pure-const.c: Likewise.
26386         * ipa-ref.c: Likewise.
26387         * ipa-reference.c: Likewise.
26388         * ipa-split.c: Likewise.
26389         * ipa-utils.c: Likewise.
26390         * ipa-visibility.c: Likewise.
26391         * ipa.c: Likewise.
26392         * ira-build.c: Likewise.
26393         * ira-color.c: Likewise.
26394         * ira-conflicts.c: Likewise.
26395         * ira-costs.c: Likewise.
26396         * ira-emit.c: Likewise.
26397         * ira-lives.c: Likewise.
26398         * ira.c: Likewise.
26399         * jump.c: Likewise.
26400         * langhooks.c: Likewise.
26401         * lcm.c: Likewise.
26402         * loop-doloop.c: Likewise.
26403         * loop-init.c: Likewise.
26404         * loop-invariant.c: Likewise.
26405         * loop-iv.c: Likewise.
26406         * loop-unroll.c: Likewise.
26407         * lower-subreg.c: Likewise.
26408         * lra-assigns.c: Likewise.
26409         * lra-coalesce.c: Likewise.
26410         * lra-constraints.c: Likewise.
26411         * lra-eliminations.c: Likewise.
26412         * lra-lives.c: Likewise.
26413         * lra-remat.c: Likewise.
26414         * lra-spills.c: Likewise.
26415         * lra.c: Likewise.
26416         * lto-cgraph.c: Likewise.
26417         * lto-compress.c: Likewise.
26418         * lto-opts.c: Likewise.
26419         * lto-section-in.c: Likewise.
26420         * lto-section-out.c: Likewise.
26421         * lto-streamer-in.c: Likewise.
26422         * lto-streamer-out.c: Likewise.
26423         * lto-streamer.c: Likewise.
26424         * mcf.c: Likewise.
26425         * mode-switching.c: Likewise.
26426         * modulo-sched.c: Likewise.
26427         * omega.c: Likewise.
26428         * omp-low.c: Likewise.
26429         * optabs.c: Likewise.
26430         * opts-global.c: Likewise.
26431         * passes.c: Likewise.
26432         * plugin.c: Likewise.
26433         * postreload-gcse.c: Likewise.
26434         * postreload.c: Likewise.
26435         * predict.c: Likewise.
26436         * print-rtl.c: Likewise.
26437         * print-tree.c: Likewise.
26438         * profile.c: Likewise.
26439         * real.c: Likewise.
26440         * realmpfr.c: Likewise.
26441         * realmpfr.h: Likewise.
26442         * recog.c: Likewise.
26443         * ree.c: Likewise.
26444         * reg-stack.c: Likewise.
26445         * regcprop.c: Likewise.
26446         * reginfo.c: Likewise.
26447         * regrename.c: Likewise.
26448         * regs.h: Likewise.
26449         * regstat.c: Likewise.
26450         * reload.c: Likewise.
26451         * reload1.c: Likewise.
26452         * reorg.c: Likewise.
26453         * resource.c: Likewise.
26454         * rtl-chkp.c: Likewise.
26455         * rtlanal.c: Likewise.
26456         * rtlhooks.c: Likewise.
26457         * sanopt.c: Likewise.
26458         * sched-deps.c: Likewise.
26459         * sched-ebb.c: Likewise.
26460         * sched-rgn.c: Likewise.
26461         * sched-vis.c: Likewise.
26462         * sdbout.c: Likewise.
26463         * sel-sched-dump.c: Likewise.
26464         * sel-sched-ir.c: Likewise.
26465         * sel-sched.c: Likewise.
26466         * sese.c: Likewise.
26467         * shrink-wrap.c: Likewise.
26468         * shrink-wrap.h: Likewise.
26469         * simplify-rtx.c: Likewise.
26470         * stack-ptr-mod.c: Likewise.
26471         * statistics.c: Likewise.
26472         * stmt.c: Likewise.
26473         * stor-layout.c: Likewise.
26474         * store-motion.c: Likewise.
26475         * stringpool.c: Likewise.
26476         * symtab.c: Likewise.
26477         * target-globals.c: Likewise.
26478         * targhooks.c: Likewise.
26479         * toplev.c: Likewise.
26480         * tracer.c: Likewise.
26481         * trans-mem.c: Likewise.
26482         * tree-affine.c: Likewise.
26483         * tree-affine.h: Likewise.
26484         * tree-browser.c: Likewise.
26485         * tree-call-cdce.c: Likewise.
26486         * tree-cfg.c: Likewise.
26487         * tree-cfgcleanup.c: Likewise.
26488         * tree-chkp-opt.c: Likewise.
26489         * tree-chkp.c: Likewise.
26490         * tree-chrec.c: Likewise.
26491         * tree-complex.c: Likewise.
26492         * tree-data-ref.c: Likewise.
26493         * tree-dfa.c: Likewise.
26494         * tree-diagnostic.c: Likewise.
26495         * tree-dump.c: Likewise.
26496         * tree-eh.c: Likewise.
26497         * tree-emutls.c: Likewise.
26498         * tree-if-conv.c: Likewise.
26499         * tree-inline.c: Likewise.
26500         * tree-into-ssa.c: Likewise.
26501         * tree-iterator.c: Likewise.
26502         * tree-loop-distribution.c: Likewise.
26503         * tree-nested.c: Likewise.
26504         * tree-nrv.c: Likewise.
26505         * tree-object-size.c: Likewise.
26506         * tree-outof-ssa.c: Likewise.
26507         * tree-parloops.c: Likewise.
26508         * tree-phinodes.c: Likewise.
26509         * tree-predcom.c: Likewise.
26510         * tree-pretty-print.c: Likewise.
26511         * tree-pretty-print.h: Likewise.
26512         * tree-profile.c: Likewise.
26513         * tree-scalar-evolution.c: Likewise.
26514         * tree-sra.c: Likewise.
26515         * tree-ssa-address.c: Likewise.
26516         * tree-ssa-alias.c: Likewise.
26517         * tree-ssa-ccp.c: Likewise.
26518         * tree-ssa-coalesce.c: Likewise.
26519         * tree-ssa-copy.c: Likewise.
26520         * tree-ssa-copyrename.c: Likewise.
26521         * tree-ssa-dce.c: Likewise.
26522         * tree-ssa-dom.c: Likewise.
26523         * tree-ssa-dse.c: Likewise.
26524         * tree-ssa-forwprop.c: Likewise.
26525         * tree-ssa-ifcombine.c: Likewise.
26526         * tree-ssa-live.c: Likewise.
26527         * tree-ssa-loop-ch.c: Likewise.
26528         * tree-ssa-loop-im.c: Likewise.
26529         * tree-ssa-loop-ivcanon.c: Likewise.
26530         * tree-ssa-loop-ivopts.c: Likewise.
26531         * tree-ssa-loop-manip.c: Likewise.
26532         * tree-ssa-loop-niter.c: Likewise.
26533         * tree-ssa-loop-prefetch.c: Likewise.
26534         * tree-ssa-loop-unswitch.c: Likewise.
26535         * tree-ssa-loop.c: Likewise.
26536         * tree-ssa-loop.h: Likewise.
26537         * tree-ssa-math-opts.c: Likewise.
26538         * tree-ssa-operands.c: Likewise.
26539         * tree-ssa-phiopt.c: Likewise.
26540         * tree-ssa-phiprop.c: Likewise.
26541         * tree-ssa-pre.c: Likewise.
26542         * tree-ssa-propagate.c: Likewise.
26543         * tree-ssa-reassoc.c: Likewise.
26544         * tree-ssa-sccvn.c: Likewise.
26545         * tree-ssa-scopedtables.c: Likewise.
26546         * tree-ssa-sink.c: Likewise.
26547         * tree-ssa-strlen.c: Likewise.
26548         * tree-ssa-structalias.c: Likewise.
26549         * tree-ssa-tail-merge.c: Likewise.
26550         * tree-ssa-ter.c: Likewise.
26551         * tree-ssa-threadedge.c: Likewise.
26552         * tree-ssa-threadupdate.c: Likewise.
26553         * tree-ssa-uncprop.c: Likewise.
26554         * tree-ssa-uninit.c: Likewise.
26555         * tree-ssa.c: Likewise.
26556         * tree-ssanames.c: Likewise.
26557         * tree-stdarg.c: Likewise.
26558         * tree-streamer-in.c: Likewise.
26559         * tree-streamer-out.c: Likewise.
26560         * tree-streamer.c: Likewise.
26561         * tree-switch-conversion.c: Likewise.
26562         * tree-tailcall.c: Likewise.
26563         * tree-vect-data-refs.c: Likewise.
26564         * tree-vect-generic.c: Likewise.
26565         * tree-vect-loop-manip.c: Likewise.
26566         * tree-vect-loop.c: Likewise.
26567         * tree-vect-patterns.c: Likewise.
26568         * tree-vect-slp.c: Likewise.
26569         * tree-vect-stmts.c: Likewise.
26570         * tree-vectorizer.c: Likewise.
26571         * tree-vrp.c: Likewise.
26572         * tree.c: Likewise.
26573         * tsan.c: Likewise.
26574         * ubsan.c: Likewise.
26575         * valtrack.c: Likewise.
26576         * value-prof.c: Likewise.
26577         * var-tracking.c: Likewise.
26578         * varasm.c: Likewise.
26579         * varpool.c: Likewise.
26580         * vmsdbgout.c: Likewise.
26581         * vtable-verify.c: Likewise.
26582         * web.c: Likewise.
26583         * wide-int-print.cc: Likewise.
26584         * wide-int-print.h: Likewise.
26585         * wide-int.cc: Likewise.
26586         * xcoffout.c: Likewise.
26587         * config/aarch64/aarch64-builtins.c: Likewise.
26588         * config/aarch64/aarch64.c: Likewise.
26589         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26590         * config/alpha/alpha.c: Likewise.
26591         * config/arc/arc.c: Likewise.
26592         * config/arm/aarch-common.c: Likewise.
26593         * config/arm/arm-builtins.c: Likewise.
26594         * config/arm/arm-c.c: Likewise.
26595         * config/arm/arm.c: Likewise.
26596         * config/avr/avr-c.c: Likewise.
26597         * config/avr/avr-log.c: Likewise.
26598         * config/avr/avr.c: Likewise.
26599         * config/bfin/bfin.c: Likewise.
26600         * config/c6x/c6x.c: Likewise.
26601         * config/cr16/cr16.c: Likewise.
26602         * config/cris/cris.c: Likewise.
26603         * config/darwin-c.c: Likewise.
26604         * config/darwin.c: Likewise.
26605         * config/default-c.c: Likewise.
26606         * config/epiphany/epiphany.c: Likewise.
26607         * config/epiphany/mode-switch-use.c: Likewise.
26608         * config/epiphany/resolve-sw-modes.c: Likewise.
26609         * config/fr30/fr30.c: Likewise.
26610         * config/frv/frv.c: Likewise.
26611         * config/ft32/ft32.c: Likewise.
26612         * config/glibc-c.c: Likewise.
26613         * config/h8300/h8300.c: Likewise.
26614         * config/i386/i386-c.c: Likewise.
26615         * config/i386/i386.c: Likewise.
26616         * config/i386/msformat-c.c: Likewise.
26617         * config/i386/winnt-cxx.c: Likewise.
26618         * config/i386/winnt-stubs.c: Likewise.
26619         * config/i386/winnt.c: Likewise.
26620         * config/ia64/ia64-c.c: Likewise.
26621         * config/ia64/ia64.c: Likewise.
26622         * config/iq2000/iq2000.c: Likewise.
26623         * config/lm32/lm32.c: Likewise.
26624         * config/m32c/m32c-pragma.c: Likewise.
26625         * config/m32c/m32c.c: Likewise.
26626         * config/m32r/m32r.c: Likewise.
26627         * config/m68k/m68k.c: Likewise.
26628         * config/mcore/mcore.c: Likewise.
26629         * config/mep/mep-pragma.c: Likewise.
26630         * config/mep/mep.c: Likewise.
26631         * config/microblaze/microblaze-c.c: Likewise.
26632         * config/microblaze/microblaze.c: Likewise.
26633         * config/mips/mips.c: Likewise.
26634         * config/mmix/mmix.c: Likewise.
26635         * config/mn10300/mn10300.c: Likewise.
26636         * config/moxie/moxie.c: Likewise.
26637         * config/msp430/msp430-c.c: Likewise.
26638         * config/msp430/msp430.c: Likewise.
26639         * config/nds32/nds32-cost.c: Likewise.
26640         * config/nds32/nds32-fp-as-gp.c: Likewise.
26641         * config/nds32/nds32-intrinsic.c: Likewise.
26642         * config/nds32/nds32-isr.c: Likewise.
26643         * config/nds32/nds32-md-auxiliary.c: Likewise.
26644         * config/nds32/nds32-memory-manipulation.c: Likewise.
26645         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26646         * config/nds32/nds32-predicates.c: Likewise.
26647         * config/nds32/nds32.c: Likewise.
26648         * config/nios2/nios2.c: Likewise.
26649         * config/nvptx/nvptx.c: Likewise.
26650         * config/pa/pa.c: Likewise.
26651         * config/pdp11/pdp11.c: Likewise.
26652         * config/rl78/rl78-c.c: Likewise.
26653         * config/rl78/rl78.c: Likewise.
26654         * config/rs6000/rs6000-c.c: Likewise.
26655         * config/rs6000/rs6000.c: Likewise.
26656         * config/rx/rx.c: Likewise.
26657         * config/s390/s390-c.c: Likewise.
26658         * config/s390/s390.c: Likewise.
26659         * config/sh/sh-c.c: Likewise.
26660         * config/sh/sh-mem.cc: Likewise.
26661         * config/sh/sh.c: Likewise.
26662         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
26663         * config/sh/sh_treg_combine.cc: Likewise.
26664         * config/sol2-c.c: Likewise.
26665         * config/sol2-cxx.c: Likewise.
26666         * config/sol2-stubs.c: Likewise.
26667         * config/sol2.c: Likewise.
26668         * config/sparc/sparc-c.c: Likewise.
26669         * config/sparc/sparc.c: Likewise.
26670         * config/spu/spu-c.c: Likewise.
26671         * config/spu/spu.c: Likewise.
26672         * config/stormy16/stormy16.c: Likewise.
26673         * config/tilegx/mul-tables.c: Likewise.
26674         * config/tilegx/tilegx-c.c: Likewise.
26675         * config/tilegx/tilegx.c: Likewise.
26676         * config/tilepro/mul-tables.c: Likewise.
26677         * config/tilepro/tilepro-c.c: Likewise.
26678         * config/tilepro/tilepro.c: Likewise.
26679         * config/v850/v850-c.c: Likewise.
26680         * config/v850/v850.c: Likewise.
26681         * config/vax/vax.c: Likewise.
26682         * config/visium/visium.c: Likewise.
26683         * config/vms/vms-c.c: Likewise.
26684         * config/vms/vms.c: Likewise.
26685         * config/vxworks.c: Likewise.
26686         * config/winnt-c.c: Likewise.
26687         * config/xtensa/xtensa.c: Likewise.
26688         * common/config/bfin/bfin-common.c: Likewise.
26689
26690 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
26691
26692         * tree.h (tree_code_for_canonical_type_merging): New function.
26693         * tree.c (gimple_canonical_types_compatible_p): Use
26694         tree_code_for_canonical_type_merging..
26695
26696 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26697
26698         PR c++/66192
26699         PR target/66200
26700         * doc/tm.texi: Regenerate.
26701         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
26702         * target.def (TARGET_RELAXED_ORDERING): Likewise.
26703         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
26704         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
26705         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
26706         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
26707         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
26708         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
26709         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
26710
26711 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26712
26713         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
26714         register fma steering pass.
26715         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
26716         AARCH64_TUNE_FMA_STEERING.
26717
26718 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
26719
26720         * tree.c (verify_type_variant): Verify that type and variant is
26721         compatible.
26722         (gimple_canonical_types_compatible_p): Look for main variants.
26723
26724 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
26725
26726         * config.gcc (powerpc*-*-*): Add support for a new configure
26727         option --with-advance-toolchain=<xxx> which overrides using the
26728         default header files, libraries and dynamic linker.
26729
26730         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
26731         specs to support the configure --with-advance-toolchain=<xxx>
26732         option.
26733         (INCLUDE_EXTRA_SPEC): Likewise.
26734         (LINK_OS_EXTRA_SPEC32): Likewise.
26735         (LINK_OK_EXTRA_SPEC64): Likewise.
26736         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
26737         (DYNAMIC_LINKER_PREFIX): Likewise.
26738         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
26739         toolchain support.
26740         (GLIBC_DYNAMIC_LINKER32): Likewise.
26741         (GLIBC_DYNAMIC_LINKER64): Likewise.
26742         (LINK_OS_LINUX_SPEC32): Likewise.
26743         (LINK_OS_LINUX_SPEC64): Likewise.
26744
26745         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
26746         configuration option.
26747
26748 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
26749
26750         PR target/66275
26751         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
26752         to determine current function ABI.
26753         (ix86_function_value_regno_p): Ditto.
26754
26755 2015-06-03  Martin Liska  <mliska@suse.cz>
26756
26757         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
26758         * bitmap.h (struct bitmap_usage): Likewise.
26759         * ggc-common.c (struct ggc_usage): Likewise.
26760         * mem-stats.h (struct mem_location): Likewise.
26761         (struct mem_usage): Likewise.
26762         * vec.c (struct vec_usage): Likewise.
26763
26764 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
26765
26766         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
26767         -Bsymbolic.
26768
26769 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
26770
26771         * doc/plugins.texi (enum plugin_event): New event.
26772         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
26773         and PLUGIN_FINISH_FUNCTION.
26774         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
26775         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
26776
26777 2015-06-03  Richard Biener  <rguenther@suse.de>
26778
26779         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26780         compute GROUP_GAP for the first element.
26781         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
26782         on in-group gaps.
26783
26784 2015-06-03  Nick Clifton  <nickc@redhat.com>
26785
26786         * config/rl78/rl78-real.md: Add peepholes to avoid a register
26787         copy when calling a function.
26788         * config/rl78/rl78.c (need_to_save): Do not push the frame
26789         pointer in an interrupt handler prologue if it is never used.
26790
26791 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26792
26793         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
26794
26795 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26796
26797         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
26798         reference when cloning alias node.
26799
26800 2015-06-03  Martin Liska  <mliska@suse.cz>
26801
26802         * alloc-pool.h (struct pool_usage): Correct space padding.
26803         * ggc-page.c (ggc_print_statistics): Align columns in a report.
26804         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
26805         * tree.c (dump_tree_statistics): Align columns in a report.
26806
26807 2015-06-03  Martin Liska  <mliska@suse.cz>
26808
26809         * alloc-pool.c (allocate_pool_descriptor): Remove.
26810         (struct pool_output_info): Likewise.
26811         (print_alloc_pool_statistics): Likewise.
26812         (dump_alloc_pool_statistics): Likewise.
26813         * alloc-pool.h (struct pool_usage): New struct.
26814         (pool_allocator::initialize): Change usage of memory statistics
26815         to a new interface.
26816         (pool_allocator::release): Likewise.
26817         (pool_allocator::allocate): Likewise.
26818         (pool_allocator::remove): Likewise.
26819         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
26820         for a pool allocator.
26821         * mem-stats.h (struct mem_location): Add new ctor.
26822         (struct mem_usage): Add counter for number of
26823         instances.
26824         (mem_alloc_description::register_descriptor): New overload of
26825         * mem-stats.h (mem_location::to_string): New function.
26826         * bitmap.h (struct bitmap_usage): Use this new function.
26827         * ggc-common.c (struct ggc_usage): Likewise.
26828         the function.
26829
26830 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26831
26832         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
26833         of GCC_INSN_FLAGS_H block.
26834
26835 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
26836
26837         * explow.c (plus_constant): Update check after force_const_mem call
26838         to see if the value returned is not a NULL_RTX.
26839
26840 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26841
26842         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
26843         remove instumentation thunks calling reachable functions.
26844         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
26845         * lto/lto-partition.c (privatize_symbol_name_1): New.
26846         (privatize_symbol_name): Privatize both decl and orig_decl
26847         names for instrumented functions.
26848         * cgraph.c (cgraph_node::verify_node): Add transparent
26849         alias chain check for instrumented node.
26850
26851 2015-06-03  Marek Polacek  <polacek@redhat.com>
26852
26853         PR c/64223
26854         PR c/29358
26855         * tree.c (attribute_value_equal): Handle attribute format.
26856         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
26857
26858 2015-06-03  Richard Biener  <rguenther@suse.de>
26859
26860         PR tree-optimization/63916
26861         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
26862         Forward-propagate non-invariant addresses by splicing their
26863         reference ops if the result isn't going to be used by PRE.
26864         (vn_reference_lookup_3): Remove pointless assert.
26865
26866 2015-06-03  Richard Biener  <rguenther@suse.de>
26867
26868         PR tree-optimization/66375
26869         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
26870         add to the evolution before following SSA edges.
26871
26872 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
26873
26874         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
26875         (dump_use, dump_cand, find_induction_variables): Pass new argument
26876         to dump_iv.
26877         (record_use): Preserve the ssa name information in IV.
26878
26879 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26880
26881         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
26882         NO_MODE_TEST.
26883         (add_mode_tests): Don't add mode tests if the predicate only
26884         accepts scalar constant integers.  Otherwise, allow the mode
26885         of "op" to be VOIDmode if the predicate does accept such integers.
26886
26887 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
26888
26889         PR target/66258
26890         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
26891         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
26892         (aarch64_secondary_reload): Likewise
26893         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
26894         to !TARGET_FLOAT.
26895         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
26896         Likewise.
26897
26898 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
26899             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26900
26901         PR target/65768
26902         * cprop.c (try_replace_reg): Check cost of constants before propagating.
26903
26904 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26905
26906         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
26907         provide access to the IBM extended double floating point mode if
26908         long double is IEEE 128-bit floating point.
26909         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
26910         point if long double is the IBM extended double type.
26911
26912         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
26913         enable adding IEEE 128-bit floating point support.
26914         (-mfloat128-software): Likewise.
26915         (-mfloat128-sw): Likewise.
26916
26917         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
26918         128-bit floating point types to occupy any register if
26919         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
26920         -mfloat128-software is enabled.
26921         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
26922         support.
26923         (rs6000_option_override_internal): Add -mfloat128-* support.
26924         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
26925
26926         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
26927         and float128 type nodes.
26928         (ieee128_float_type_node): Likewise.
26929         (ibm128_float_type_node): Likewise.
26930
26931 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26932
26933         PR target/66136
26934         * config/aarch64/geniterators.sh: Rewrite in awk.
26935
26936 2015-06-02  Martin Liska  <mliska@suse.cz>
26937
26938         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
26939         values to avoid -Wmaybe-uninitialized errors.
26940
26941 2015-06-02  Richard Biener  <rguenther@suse.de>
26942
26943         PR debug/65549
26944         * dwarf2out.c (lookup_context_die): New function.
26945         (resolve_addr): Avoid forcing a full DIE for the
26946         target of a DW_TAG_GNU_call_site during late compilation.
26947         Instead create a stub DIE without a type if we have a
26948         context DIE present.
26949
26950 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
26951
26952         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
26953
26954 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26955
26956         PR tree-optimization/48052
26957         * cfgloop.h (struct control_iv): New.
26958         (struct loop): New field control_ivs.
26959         * tree-ssa-loop-niter.c : Include "stor-layout.h".
26960         (number_of_iterations_lt): Set no_overflow information.
26961         (number_of_iterations_exit): Init control iv in niter struct.
26962         (record_control_iv): New.
26963         (estimate_numbers_of_iterations_loop): Call record_control_iv.
26964         (loop_exits_before_overflow): New.  Interface factored out of
26965         scev_probably_wraps_p.
26966         (scev_probably_wraps_p): Factor loop niter related code into
26967         loop_exits_before_overflow.
26968         (free_numbers_of_iterations_estimates_loop): Free control ivs.
26969         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
26970
26971 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
26972
26973         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
26974         the target doesn't belong to the current function.
26975
26976 2015-06-02  Marek Polacek  <polacek@redhat.com>
26977
26978         PR middle-end/66345
26979         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
26980         get_maxval_strlen does not produce an INTEGER_CST.
26981
26982 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
26983
26984         * config/arc/constraints.md: Use lower-case names in match_code.
26985         * config/mmix/constraints.md: Likewise.
26986
26987 2015-06-02  Richard Biener  <rguenther@suse.de>
26988
26989         PR tree-optimization/65961
26990         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
26991         check and clarify dump message.
26992         (vect_build_slp_tree): If all children are built up from scalars
26993         build up the parent from scalars instead.
26994         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
26995
26996 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
26997
26998         PR other/65366
26999         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
27000         instead of print ... .
27001
27002 2015-06-02  Alan Modra  <amodra@gmail.com>
27003
27004         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
27005         2014-08-11 change.
27006
27007 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
27008
27009         PR tree-optimization/52563
27010         PR tree-optimization/62173
27011         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
27012         (alloc_iv, set_iv): New parameter.
27013         (determine_biv_step): Delete.
27014         (find_bivs): Inline original determine_biv_step.  Pass new
27015         argument to set_iv.
27016         (idx_find_step): Use no_overflow information for conversion.
27017         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
27018         resolve_mixers handle folded_casts.
27019         (instantiate_scev_name): Change bool parameter to bool pointer.
27020         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
27021         (instantiate_array_ref, instantiate_scev_not): Ditto.
27022         (instantiate_scev_3, instantiate_scev_2): Ditto.
27023         (instantiate_scev_1, instantiate_scev_r): Ditto.
27024         (instantiate_scev_convert, ): Change parameter.  Pass argument
27025         to chrec_convert_aggressive.
27026         (instantiate_scev): Change argument.
27027         (resolve_mixers): New parameter and set it.
27028         (scev_const_prop): New argument.
27029         * tree-scalar-evolution.h (resolve_mixers): New parameter.
27030         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
27031         of chrec_conert_1.
27032         (chrec_convert): New parameter.  Move definition below.
27033         (chrec_convert_aggressive): New parameter and set it.  Call
27034         convert_affine_scev.
27035         * tree-chrec.h (chrec_convert): New parameter.
27036         (chrec_convert_aggressive): Ditto.
27037
27038 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27039
27040         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
27041         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
27042         the LHS of a no-return call if its type has variable size.
27043         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
27044         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
27045
27046 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
27047
27048         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
27049         * config.in: Regenerate.
27050
27051 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27052
27053         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
27054         consecutive accesses within outer-loop with force_vectorize
27055         for references with zero step in inner-loop.
27056
27057 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
27058
27059         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
27060         rather than from gcc/build directory.
27061
27062 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
27063
27064         PR target/65697
27065         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
27066         for __sync memory models, emit initial loads and final barriers as
27067         appropriate.
27068
27069 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
27070
27071         PR target/65697
27072         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
27073         (aarch64_split_atomic_op): Check for __sync memory models, emit
27074         appropriate initial loads and final barriers.
27075
27076 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
27077
27078         * Makefile.in: Fix gcov dependencies that should
27079         not point to a build folder.
27080
27081 2015-06-01  Richard Biener  <rguenther@suse.de>
27082
27083         Revert
27084         2015-05-29  Richard Biener  <rguenther@suse.de>
27085
27086         PR tree-optimization/66314
27087         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27088         parameter that says which loop the new block belongs to.
27089         (ssa_create_duplicates): Blocks duplicated for the threaded
27090         path belong to the loop of the thread destination.
27091
27092 2015-06-01  Martin Liska  <mliska@suse.cz>
27093
27094         * sched-deps.c: Include pool-alloc.h before
27095         cselib.h header file is included.
27096
27097 2015-06-01  Richard Biener  <rguenther@suse.de>
27098
27099         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
27100         functions.
27101
27102 2015-06-01  Martin Liska  <mliska@suse.cz>
27103
27104         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
27105         a function local variable.
27106
27107 2015-06-01  Martin Liska  <mliska@suse.cz>
27108
27109         * alloc-pool.c (create_alloc_pool): Remove.
27110         (empty_alloc_pool): Likewise.
27111         (free_alloc_pool): Likewise.
27112         (free_alloc_pool_if_empty): Likewise.
27113         (pool_alloc): Likewise.
27114         (pool_free): Likewise.
27115         * alloc-pool.h: Remove old declarations.
27116
27117 2015-06-01  Martin Liska  <mliska@suse.cz>
27118
27119         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
27120         (ira_create_object): Likewise.
27121         (ira_create_allocno): Likewise.
27122         (ira_create_live_range): Likewise.
27123         (copy_live_range): Likewise.
27124         (ira_finish_live_range): Likewise.
27125         (ira_free_allocno_costs): Likewise.
27126         (finish_allocno): Likewise.
27127         (finish_allocnos): Likewise.
27128         (initiate_prefs): Likewise.
27129         (ira_create_pref): Likewise.
27130         (finish_pref): Likewise.
27131         (finish_prefs): Likewise.
27132         (initiate_copies): Likewise.
27133         (ira_create_copy): Likewise.
27134         (finish_copy): Likewise.
27135         (finish_copies): Likewise.
27136         (finish_prefs): Likewise.
27137
27138 2015-06-01  Martin Liska  <mliska@suse.cz>
27139
27140         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
27141         (allocate_and_init_ipcp_value): Likewise.
27142         (ipcp_lattice::add_value): Likewise.
27143         (merge_agg_lats_step): Likewise.
27144         (ipcp_driver): Likewise.
27145         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
27146         (ipa_free_all_structures_after_iinln): Likewise.
27147         * ipa-prop.h: Likewise.
27148
27149 2015-06-01  Martin Liska  <mliska@suse.cz>
27150
27151         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
27152         pool allocator.
27153         (set_hint_predicate): Likewise.
27154         (inline_summary_alloc): Likewise.
27155         (reset_inline_edge_summary): Likewise.
27156         (reset_inline_summary): Likewise.
27157         (set_cond_stmt_execution_predicate): Likewise.
27158         (set_switch_stmt_execution_predicate): Likewise.
27159         (compute_bb_predicates): Likewise.
27160         (estimate_function_body_sizes): Likewise.
27161         (inline_free_summary): Likewise.
27162
27163 2015-06-01  Martin Liska  <mliska@suse.cz>
27164
27165         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
27166         (ipa_edge_duplication_hook): Likewise.
27167         (ipa_free_all_structures_after_ipa_cp): Likewise.
27168         (ipa_free_all_structures_after_iinln): Likewise.
27169
27170 2015-06-01  Martin Liska  <mliska@suse.cz>
27171
27172         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
27173         (ipa_profile_generate_summary): Likewise.
27174         (ipa_profile_read_summary): Likewise.
27175         (ipa_profile): Likewise.
27176
27177 2015-06-01  Martin Liska  <mliska@suse.cz>
27178
27179         * tree-ssa-structalias.c (new_var_info): Use new type-based
27180         pool allocator.
27181         (new_constraint): Likewise.
27182         (init_alias_vars): Likewise.
27183         (delete_points_to_sets): Likewise.
27184
27185 2015-06-01  Martin Liska  <mliska@suse.cz>
27186
27187         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
27188         (free_strinfo): Likewise.
27189         (pass_strlen::execute): Likewise.
27190
27191 2015-06-01  Martin Liska  <mliska@suse.cz>
27192
27193         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
27194         pool allocator.
27195         (vn_reference_insert_pieces): Likewise.
27196         (vn_phi_insert): Likewise.
27197         (visit_reference_op_call): Likewise.
27198         (copy_phi): Likewise.
27199         (copy_reference): Likewise.
27200         (process_scc): Likewise.
27201         (allocate_vn_table): Likewise.
27202         (free_vn_table): Likewise.
27203
27204 2015-06-01  Martin Liska  <mliska@suse.cz>
27205
27206         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
27207         pool allocator.
27208         (add_repeat_to_ops_vec): Likewise.
27209         (get_ops): Likewise.
27210         (maybe_optimize_range_tests): Likewise.
27211         (init_reassoc): Likewise.
27212         (fini_reassoc): Likewise.
27213
27214 2015-06-01  Martin Liska  <mliska@suse.cz>
27215
27216         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
27217         pool allocator.
27218         (bitmap_set_new): Likewise.
27219         (get_or_alloc_expr_for_constant): Likewise.
27220         (get_or_alloc_expr_for): Likewise.
27221         (phi_translate_1): Likewise.
27222         (compute_avail): Likewise.
27223         (init_pre): Likewise.
27224         (fini_pre): Likewise.
27225
27226 2015-06-01  Martin Liska  <mliska@suse.cz>
27227
27228         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
27229         (delete_dep_node): Likewise.
27230         (create_deps_list): Likewise.
27231         (free_deps_list): Likewise.
27232         (sched_deps_init): Likewise.
27233         (sched_deps_finish): Likewise.
27234
27235 2015-06-01  Martin Liska  <mliska@suse.cz>
27236
27237         * regcprop.c (free_debug_insn_changes): Use new type-based
27238         pool allocator.
27239         (replace_oldest_value_reg): Likewise.
27240         (pass_cprop_hardreg::execute): Likewise.
27241
27242 2015-06-01  Martin Liska  <mliska@suse.cz>
27243
27244         * ira-build.c (initiate_cost_vectors): Use new type-based
27245         pool allocator.
27246         (ira_allocate_cost_vector): Likewise.
27247         (ira_free_cost_vector): Likewise.
27248         (finish_cost_vectors): Likewise.
27249
27250 2015-06-01  Martin Liska  <mliska@suse.cz>
27251
27252         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
27253         pool allocator.
27254         (free_sched_pools): Likewise.
27255         * sel-sched-ir.h (_list_alloc): Likewise.
27256         (_list_remove): Likewise.
27257
27258 2015-06-01  Martin Liska  <mliska@suse.cz>
27259
27260         * stmt.c (add_case_node): Use new type-based pool allocator.
27261         (expand_case): Likewise.
27262         (expand_sjlj_dispatch_table): Likewise.
27263
27264 2015-06-01  Martin Liska  <mliska@suse.cz>
27265
27266         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
27267         (free_bb): Likewise.
27268         (pass_cse_reciprocals::execute): Likewise.
27269
27270 2015-06-01  Martin Liska  <mliska@suse.cz>
27271
27272         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
27273         (sra_deinitialize) Likewise.
27274         (create_access_1) Likewise.
27275         (build_accesses_from_assign) Likewise.
27276         (create_artificial_child_access) Likewise.
27277
27278 2015-06-01  Martin Liska  <mliska@suse.cz>
27279
27280         * dse.c (get_group_info):Use new type-based pool allocator.
27281         (dse_step0) Likewise.
27282         (free_store_info) Likewise.
27283         (delete_dead_store_insn) Likewise.
27284         (free_read_records) Likewise.
27285         (record_store) Likewise.
27286         (replace_read) Likewise.
27287         (check_mem_read_rtx) Likewise.
27288         (scan_insn) Likewise.
27289         (dse_step1) Likewise.
27290         (dse_step7) Likewise.
27291
27292 2015-06-01  Martin Liska  <mliska@suse.cz>
27293
27294         * df-scan.c (struct df_scan_problem_data):Use new type-based
27295         pool allocator.
27296         (df_scan_free_internal) Likewise.
27297         (df_scan_alloc) Likewise.
27298         (df_grow_reg_info) Likewise.
27299         (df_free_ref) Likewise.
27300         (df_insn_create_insn_record) Likewise.
27301         (df_mw_hardreg_chain_delete) Likewise.
27302         (df_insn_info_delete) Likewise.
27303         (df_free_collection_rec) Likewise.
27304         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
27305         (df_sort_and_compress_mws) Likewise.
27306         (df_ref_create_structure) Likewise.
27307         (df_ref_record) Likewise.
27308
27309 2015-06-01  Martin Liska  <mliska@suse.cz>
27310
27311         * df-problems.c (df_chain_create):Use new type-based pool allocator.
27312         (df_chain_unlink_1) Likewise.
27313         (df_chain_unlink) Likewise.
27314         (df_chain_remove_problem) Likewise.
27315         (df_chain_alloc) Likewise.
27316         (df_chain_free) Likewise.
27317         * df.h (struct dataflow) Likewise.
27318
27319 2015-06-01  Martin Liska  <mliska@suse.cz>
27320
27321         * cselib.c (new_elt_list):Use new type-based pool allocator.
27322         (new_elt_loc_list) Likewise.
27323         (unchain_one_elt_list) Likewise.
27324         (unchain_one_elt_loc_list) Likewise.
27325         (unchain_one_value) Likewise.
27326         (new_cselib_val) Likewise.
27327         (cselib_init) Likewise.
27328         (cselib_finish) Likewise.
27329
27330 2015-06-01  Martin Liska  <mliska@suse.cz>
27331
27332         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
27333         (sh_reorg) Likewise.
27334
27335 2015-06-01  Martin Liska  <mliska@suse.cz>
27336
27337         * cfg.c (initialize_original_copy_tables):Use new type-based
27338         pool allocator.
27339         (free_original_copy_tables) Likewise.
27340         (copy_original_table_clear) Likewise.
27341         (copy_original_table_set) Likewise.
27342
27343 2015-06-01  Martin Liska  <mliska@suse.cz>
27344
27345         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
27346         pool allocator.
27347         (asan_mem_ref_new) Likewise.
27348         (free_mem_ref_resources) Likewise.
27349
27350 2015-06-01  Martin Liska  <mliska@suse.cz>
27351
27352         * var-tracking.c (variable_htab_free):Use new type-based
27353         pool allocator.
27354         (attrs_list_clear) Likewise.
27355         (attrs_list_insert) Likewise.
27356         (attrs_list_copy) Likewise.
27357         (shared_hash_unshare) Likewise.
27358         (shared_hash_destroy) Likewise.
27359         (unshare_variable) Likewise.
27360         (var_reg_delete_and_set) Likewise.
27361         (var_reg_delete) Likewise.
27362         (var_regno_delete) Likewise.
27363         (drop_overlapping_mem_locs) Likewise.
27364         (variable_union) Likewise.
27365         (insert_into_intersection) Likewise.
27366         (canonicalize_values_star) Likewise.
27367         (variable_merge_over_cur) Likewise.
27368         (dataflow_set_merge) Likewise.
27369         (remove_duplicate_values) Likewise.
27370         (variable_post_merge_new_vals) Likewise.
27371         (dataflow_set_preserve_mem_locs) Likewise.
27372         (dataflow_set_remove_mem_locs) Likewise.
27373         (variable_from_dropped) Likewise.
27374         (variable_was_changed) Likewise.
27375         (set_slot_part) Likewise.
27376         (clobber_slot_part) Likewise.
27377         (delete_slot_part) Likewise.
27378         (loc_exp_insert_dep) Likewise.
27379         (notify_dependents_of_changed_value) Likewise.
27380         (emit_notes_for_differences_1) Likewise.
27381         (vt_emit_notes) Likewise.
27382         (vt_initialize) Likewise.
27383         (vt_finalize) Likewise.
27384
27385 2015-06-01  Martin Liska  <mliska@suse.cz>
27386
27387         * ira-color.c (init_update_cost_records):Use new type-based
27388         pool allocator.
27389         (get_update_cost_record) Likewise.
27390         (free_update_cost_record_list) Likewise.
27391         (finish_update_cost_records) Likewise.
27392         (initiate_cost_update) Likewise.
27393
27394 2015-06-01  Martin Liska  <mliska@suse.cz>
27395
27396         * lra.c (init_insn_regs): Use new type-based pool allocator.
27397         (new_insn_reg) Likewise.
27398         (free_insn_reg) Likewise.
27399         (free_insn_regs) Likewise.
27400         (finish_insn_regs) Likewise.
27401         (init_insn_recog_data) Likewise.
27402         (init_reg_info) Likewise.
27403         (finish_reg_info) Likewise.
27404         (lra_free_copies) Likewise.
27405         (lra_create_copy) Likewise.
27406         (invalidate_insn_data_regno_info) Likewise.
27407
27408 2015-06-01  Martin Liska  <mliska@suse.cz>
27409
27410         * lra-lives.c (free_live_range): Use new type-based pool allocator.
27411         (free_live_range_list) Likewise.
27412         (create_live_range) Likewise.
27413         (copy_live_range) Likewise.
27414         (lra_merge_live_ranges) Likewise.
27415         (remove_some_program_points_and_update_live_ranges) Likewise.
27416         (lra_live_ranges_init) Likewise.
27417         (lra_live_ranges_finish) Likewise.
27418
27419 2015-06-01  Martin Liska  <mliska@suse.cz>
27420
27421         * et-forest.c (et_new_occ): Use new type-based pool allocator.
27422         (et_new_tree): Likewise.
27423         (et_free_tree): Likewise.
27424         (et_free_tree_force): Likewise.
27425         (et_free_pools): Likewise.
27426         (et_split): Likewise.
27427
27428 2015-06-01  Martin Liska  <mliska@suse.cz>
27429
27430         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
27431         to header file.
27432         * alloc-pool.h (pool_allocator::pool_allocator): New function.
27433         (pool_allocator::release): Likewise.
27434         (inline pool_allocator::release_if_empty): Likewise.
27435         (inline pool_allocator::~pool_allocator): Likewise.
27436         (pool_allocator::allocate): Likewise.
27437         (pool_allocator::remove): Likewise.
27438
27439 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27440
27441         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
27442         in comment.
27443
27444 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27445
27446         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
27447         to fusible_ops.
27448         * config/arm/arm.c (arm_print_tune_info): Likewise.
27449         (arm_macro_fusion_p): Likewise.
27450         (arm_macro_fusion_pair_p): Likewise.
27451
27452 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27453
27454         * config/aarch64/aarch64-protos.h (tune_params): Rename
27455         fuseable_ops to fusible_ops.
27456         * config/aarch64/aarch64.c (generic_tunings): Rename
27457         fuseable_ops to fusible_ops.
27458         (cortexa53_tunings): Likewise.
27459         (cortexa57_tunings): Likewise.
27460         (thunderx_tunings): Likewise.
27461         (xgene1_tunings): Likewise.
27462         (aarch64_macro_fusion_p): Likewise.
27463         (aarch64_macro_fusion_pair_p): Likewise.
27464
27465 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27466
27467         * config/s390/driver-native.c: New file.
27468         * config/s390/x-native: New file.
27469         * config.host: Add new files for s390.
27470         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
27471         and -march=native
27472         * config.gcc: Likewise.
27473         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
27474         * config/s390/s390-opts.h (enum processor_type): Ditto.
27475         * config/s390/s390.c (s390_option_override): Catch unhandled
27476         PROCESSOR_NATIVE
27477
27478 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
27479
27480         PR target/65527
27481         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
27482         redirection for instrumented calls.
27483         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
27484         (append_compiler_options): Append -fcheck-pointer-bounds.
27485         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
27486         (chkp_redirect_edge): New.
27487         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
27488         (chkp_redirect_edge): New.
27489
27490 2015-06-01  Richard Biener  <rguenther@suse.de>
27491
27492         PR tree-optimization/66280
27493         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
27494         def-use walking.
27495
27496 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27497
27498         * config/aarch64/aarch64.md
27499         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
27500         logic_shift_imm.
27501
27502 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27503
27504         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
27505         Remove obsolete kludge.
27506
27507 2015-06-01  Richard Biener  <rguenther@suse.de>
27508
27509         * tree-ssa-reassoc.c (get_rank): Simplify.
27510
27511 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
27512
27513         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
27514         * configure: Regenerated.
27515
27516 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
27517
27518         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
27519         issue (add space between string literal and macro).
27520         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
27521
27522 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
27523
27524         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
27525         implict or explicit -fPIE or -fpie.
27526
27527 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
27528
27529         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
27530
27531 2015-05-28  DJ Delorie  <dj@redhat.com>
27532
27533         * expmed.c (extract_bit_field_1): Avoid clobbering a
27534         yet-to-be-used base/index register.
27535
27536 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
27537
27538         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
27539         (alias_stats): Add num_universal.
27540         (alias_set_subset_of): Special case pointers; be ready for NULL
27541         children.
27542         (alias_sets_conflict_p): Special case pointers; be ready for NULL
27543         children.
27544         (init_alias_set_entry): Break out from ...
27545         (record_alias_subset): ... here; propagate new fields;
27546         allocate children only when really needed.
27547         (get_alias_set): Do less generous pointer globbing.
27548         (dump_alias_stats_in_alias_c): Update statistics.
27549
27550 2015-05-30  Alan Modra  <amodra@gmail.com>
27551
27552         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
27553         correct block for use of r12.
27554         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
27555
27556 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27557
27558         PR target/66215
27559         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
27560         with -mhotpatch=.
27561
27562 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
27563
27564         PR tree-optimization/66142
27565         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
27566         virtual phis that feed themselves.
27567
27568 2015-05-29  Richard Biener  <rguenther@suse.de>
27569
27570         PR tree-optimization/66314
27571         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27572         parameter that says which loop the new block belongs to.
27573         (ssa_create_duplicates): Blocks duplicated for the threaded
27574         path belong to the loop of the thread destination.
27575
27576 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27577
27578         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
27579         to cleanup-saved-temps.
27580         * doc/sourcebuild.texi (Clean up generated test files): Expand
27581         introduction.
27582         (dg-keep-saved-temps): Document new proc.
27583         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
27584         cleanup-saved-temps): Remove.
27585
27586 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
27587
27588         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
27589         gcc_AC_CHECK_DECLS.
27590         * configure: Regenerate.
27591
27592 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27593
27594         * config/nios2/linux.h (CPP_SPEC): Define.
27595
27596 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27597
27598         * config/microblaze/linux.h (CPP_SPEC): Define.
27599
27600 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27601
27602         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
27603         -pthread is specified.
27604
27605 2015-05-28  Richard Biener  <rguenther@suse.de>
27606
27607         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
27608         (vect_fixup_scalar_cycles_with_patterns): Likewise.
27609         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
27610         after pattern recog.
27611         (vect_create_epilog_for_reduction): Properly handle reductions
27612         with patterns.
27613         (vectorizable_reduction): Likewise.
27614         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
27615         reduction chains.
27616         (vect_get_constant_vectors): Create the correct number of
27617         initial values for reductions.
27618         (vect_schedule_slp_instance): Handle reduction chains that are
27619         type changing properly.
27620         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
27621
27622 2015-05-28  Richard Biener  <rguenther@suse.de>
27623
27624         PR tree-optimization/66142
27625         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
27626         values better in memcpy destination handling.  Handle non-aliasing
27627         we discover here.
27628
27629 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
27630
27631         PR target/63810
27632         * config/darwin-c.c (version_components): New global enum.
27633         (parse_version, version_as_legacy_macro)
27634         (version_as_modern_macro, macosx_version_as_macro): New functions.
27635         (version_as_macro): Remove.
27636         (darwin_cpp_builtins): Use new function.
27637
27638 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
27639
27640         * builtins.c (expand_builtin_acc_on_device): Mark parameters
27641         with ATTRIBUTE_UNUSED.
27642
27643 2015-05-28  Julian Brown  <julian@codesourcery.com>
27644
27645         PR libgomp/65742
27646
27647         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
27648         sequence for !ACCEL_COMPILER.
27649
27650 2015-05-28  Nick Clifton  <nickc@redhat.com>
27651
27652         * config/rx/rx.c (push_regs): New function.  Extracts code from...
27653         (rx_expand_prologue): ... here.  Use push_regs to push even small
27654         spans of registers.
27655         (pop_regs): New function.
27656         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
27657         registers.
27658
27659 2015-05-28  Richard Biener  <rguenther@suse.de>
27660
27661         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
27662         member.
27663         (SLP_INSTANCE_BODY_COST_VEC): Remove.
27664         (vect_update_slp_costs_according_to_vf): Likewise.
27665         (vect_slp_analyze_operations): Update prototype.
27666         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
27667         vect_update_slp_costs_according_to_vf, adjust.
27668         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
27669         (vect_analyze_slp_cost_1): Likewise.
27670         (vect_analyze_slp_cost): Likewise.  Properly deal with
27671         widening reduction ops.  Commit body costs.
27672         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
27673         cost for loops from here.
27674         (vect_slp_analyze_operations): But do it from here when
27675         the vectorization factor is known and stmts are analyzed.
27676         (vect_bb_vectorization_profitable_p): Simplify.
27677         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
27678         (vect_update_slp_costs_according_to_vf): Remove.
27679
27680 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
27681             H.J. Lu  <hongjiu.lu@intel.com>
27682
27683         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
27684         (BUILD_CFLAGS): Likewise.
27685         (BUILD_CXXFLAGS): Likewise.
27686         (LINKER): Add @NO_PIE_FLAG@.
27687         (BUILD_LDFLAGS): Likewise.
27688         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
27689         --enable-default-pie.
27690         * common.opt (fPIE): Initialize to -1.
27691         (fpie): Likewise.
27692         (no-pie): New option.
27693         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
27694         * configure.ac: Add --enable-default-pie.
27695         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
27696         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
27697         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
27698         * gcc.c (NO_PIE_SPEC): New.
27699         (PIE_SPEC): Likewise.
27700         (NO_FPIE1_SPEC): Likewise.
27701         (FPIE1_SPEC): Likewise.
27702         (NO_FPIE2_SPEC): Likewise.
27703         (FPIE2_SPEC): Likewise.
27704         (NO_FPIE2_SPEC): Likewise.
27705         (FPIE_SPEC): Likewise.
27706         (NO_FPIE_SPEC): Likewise.
27707         (NO_FPIC1_SPEC): Likewise.
27708         (FPIC1_SPEC): Likewise.
27709         (NO_FPIC2_SPEC): Likewise.
27710         (FPIC2_SPEC): Likewise.
27711         (NO_FPIC2_SPEC): Likewise.
27712         (FPIC_SPEC): Likewise.
27713         (NO_FPIC_SPEC): Likewise.
27714         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
27715         (FPIE1_OR_FPIC1_SPEC): Likewise.
27716         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
27717         (FPIE2_OR_FPIC2_SPEC): Likewise.
27718         (NO_FPIE_AND_FPIC_SPEC): Likewise.
27719         (FPIE_OR_FPIC_SPEC): Likewise.
27720         (LD_PIE_SPEC): Likewise.
27721         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
27722         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
27723         * config/darwin.h (PIE_SPEC): Renamed to ...
27724         (DARWIN_PIE_SPEC): This.
27725         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
27726         * config/darwin9.h (PIE_SPEC): Renamed to ...
27727         (DARWIN_PIE_SPEC): This.
27728         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
27729         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
27730         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
27731         FPIE2_OR_FPIC2_SPEC.
27732         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
27733         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
27734         * config/sol2.h (ASM_PIC_SPEC): Likewise.
27735         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27736         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27737         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27738         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
27739         * config/m32r/m32r.h (ASM_SPEC): Likewise.
27740         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
27741         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
27742         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
27743         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
27744         * config/sparc/linux.h (ASM_SPEC): Likewise.
27745         * config/sparc/linux64.h (ASM_SPEC): Likewise.
27746         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
27747         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
27748         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
27749         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27750         * config/sparc/sparc.h (ASM_SPEC): Likewise.
27751         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
27752         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
27753         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
27754         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
27755         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
27756         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
27757         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
27758         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
27759         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
27760         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
27761         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
27762         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
27763         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
27764         * config/vax/linux.h (ASM_SPEC): Likewise.
27765         * doc/install.texi: Document --enable-default-pie.
27766         * doc/invoke.texi: Document -no-pie.
27767         * config.in: Regenerated.
27768         * configure: Likewise.
27769
27770 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27771
27772         PR rtl-optimization/66168
27773         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
27774         can_move_invariant_reg.
27775
27776 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
27777
27778         PR target/66148
27779         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
27780         REG_EQUAL note when doing insert.
27781
27782         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
27783         instead of "%d" for 'o' operand.
27784
27785 2015-05-27  Nathan Sidwell  <nathan@acm.org>
27786
27787         PR c++/66270
27788         * tree.c (build_pointer_type_for_mode): Canonical type does not
27789         inherit can_alias_all.
27790         (build_reference_type_for_mode): Likewise.
27791
27792 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27793
27794         * expr.h (array_at_struct_end_p): Move to...
27795         (array_ref_element_size): Likewise.
27796         (component_ref_field_offset): Likewise.
27797         * tree.h (array_ref_element_size): ...here.
27798         (array_at_struct_end_p): Likewise.
27799         (component_ref_field_offset): Likewise.
27800         * expr.c (array_ref_element_size): Move to...
27801         (array_ref_low_bound): Likewise.
27802         (array_at_struct_end_p): Likewise.
27803         (array_ref_up_bound): Likewise.
27804         (component_ref_field_offset): Likewise.
27805         * tree.c (array_ref_element_size): ...here.
27806         (array_ref_low_bound): Likewise.
27807         (array_ref_up_bound): Likewise.
27808         (array_at_struct_end_p): Likewise.
27809         (component_ref_field_offset): Likewise.
27810
27811 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27812             Szabolcs Nagy  <szabolcs.nagy@arm.com>
27813
27814         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
27815
27816 2015-05-27  Jason Merrill  <jason@redhat.com>
27817
27818         PR bootstrap/66304
27819         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
27820         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
27821         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
27822
27823 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
27824
27825         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
27826         is true.
27827
27828         * statistics.c (statistics_fini_pass): Print pass name.
27829
27830 2015-05-27  Richard Biener  <rguenther@suse.de>
27831
27832         PR tree-optimization/66272
27833         Revert parts of
27834         2014-08-15  Richard Biener  <rguenther@suse.de>
27835
27836         PR tree-optimization/62031
27837         * tree-data-ref.c (dr_analyze_indices): Do not set
27838         DR_UNCONSTRAINED_BASE.
27839         (dr_may_alias_p): All indirect accesses have to go the
27840         formerly DR_UNCONSTRAINED_BASE path.
27841         * tree-data-ref.h (struct indices): Remove
27842         unconstrained_base member.
27843         (DR_UNCONSTRAINED_BASE): Remove.
27844
27845 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
27846
27847         * dwarf2out.c: Remove block_map.
27848         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
27849         (gen_lexical_block_die): Same.
27850         (dwarf2out_function_decl): Remove block_map use.
27851         (dwarf2out_c_finalize): Same.
27852         * tree-core.h (struct tree_block): Add die field.
27853         * tree.h (BLOCK_DIE): New.
27854
27855 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27856
27857         PR target/65358
27858         * expr.c (memory_load_overlap): New function.
27859         (emit_push_insn): When pushing partial args to the stack would
27860         clobber the register part load the overlapping part into a pseudo
27861         and put it into the hard reg after pushing.  Change return type
27862         to bool.  Add bool argument.
27863         * expr.h (emit_push_insn): Change return type to bool.
27864         Add bool argument.
27865         * calls.c (expand_call): Cancel sibcall optimization when encountering
27866         partial argument on targets with ARGS_GROW_DOWNWARD and
27867         !STACK_GROWS_DOWNWARD.
27868         (emit_library_call_value_1): Update callsite of emit_push_insn.
27869         (store_one_arg): Likewise.
27870
27871 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27872
27873         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
27874
27875 2015-05-27  Martin Liska  <mliska@suse.cz>
27876
27877         * Makefile.in: Add additional dependencies related to memory report
27878         enhancement.
27879         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
27880         * bitmap.c (struct bitmap_descriptor_d): Remove.
27881         (struct loc): Likewise.
27882         (struct bitmap_desc_hasher): Likewise.
27883         (bitmap_desc_hasher::hash): Likewise.
27884         (bitmap_desc_hasher::equal): Likewise.
27885         (get_bitmap_descriptor): Likewise.
27886         (bitmap_register): User new memory descriptor API.
27887         (register_overhead): Likewise.
27888         (bitmap_find_bit): Register nsearches and search_iter statistics.
27889         (struct bitmap_output_info): Remove.
27890         (print_statistics): Likewise.
27891         (dump_bitmap_statistics): Use new memory descriptor.
27892         * bitmap.h (struct bitmap_usage): New class.
27893         * genmatch.c: Extend header file inclusion.
27894         * genpreds.c: Likewise.
27895         * ggc-common.c (struct ggc_usage): New class.
27896         (struct ggc_loc_desc_hasher): Remove.
27897         (ggc_loc_desc_hasher::hash): Likewise.
27898         (ggc_loc_desc_hasher::equal): Likewise.
27899         (struct ggc_ptr_hash_entry): Likewise.
27900         (struct ptr_hash_hasher): Likewise.
27901         (ptr_hash_hasher::hash): Likewise.
27902         (ptr_hash_hasher::equal): Likewise.
27903         (make_loc_descriptor): Likewise.
27904         (ggc_prune_ptr): Likewise.
27905         (dump_ggc_loc_statistics): Use new memory descriptor.
27906         (ggc_record_overhead): Likewise.
27907         (ggc_free_overhead): Likewise.
27908         (final_cmp_statistic): Remove.
27909         (cmp_statistic): Likewise.
27910         (ggc_add_statistics): Liekwise.
27911         (ggc_prune_overhead_list): Likewise.
27912         * hash-map-traits.h: New file.
27913         * hash-map.h (struct default_hashmap_traits): Move the traits to a
27914         separate header file.
27915         * hash-set.h: Pass memory statistics info to ctor.
27916         * hash-table.c (void dump_hash_table_loc_statistics): New function.
27917         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
27918         (hash_table::~hash_table): Register memory release operation.
27919         (hash_table::alloc_entries): Handle memory allocation operation.
27920         (hash_table::expand): Likewise.
27921         * inchash.c (iterative_hash_hashval_t): Move implementation to header
27922         file.
27923         (iterative_hash_host_wide_int): Likewise.
27924         * inchash.h (class hash): Likewise.
27925         * mem-stats-traits.h: New file.
27926         * mem-stats.h: New file.
27927         (mem_location): Add new class.
27928         (mem_usage): Likewise.
27929         (mem_alloc_description): Likewise.
27930         * sese.c: Add new header file inclusision.
27931         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
27932         and hash_set.
27933         * tree-sra.c: Add new header file inclusision.
27934         * vec.c (struct vec_descriptor): Remove.
27935         (hash_descriptor): Likewise.
27936         (struct vec_usage): Likewise.
27937         (struct ptr_hash_entry): Likewise.
27938         (hash_ptr): Likewise.
27939         (eq_ptr): Likewise.
27940         (vec_prefix::register_overhead): Use new memory descriptor API.
27941         (vec_prefix::release_overhead): Likewise.
27942         (add_statistics): Remove.
27943         (dump_vec_loc_statistics): Use new memory descriptor API.
27944         * vec.h (struct vec_prefix): Likewise.
27945         (va_heap::reserve): Likewise.
27946         (va_heap::release): Likewise.
27947         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
27948
27949 2015-05-27  Richard Biener  <rguenther@suse.de>
27950
27951         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
27952         earlier and remove ??? comment.
27953         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
27954         and got called from loop analysis bail out.  Always pass the SLP
27955         node to the vectorizable_* functions.
27956         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
27957         the premature SLP check here.
27958         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
27959         detected SLP stmts.
27960         (vect_detect_hybrid_slp_1): Likewise.
27961
27962 2015-05-26  Jeff Law  <law@redhat.com>
27963
27964         * combine.c (find_split_point): Verify that the shift count is a
27965         constant when choosing (plus (ashift ...)) as a split point.
27966
27967         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
27968         No functional changes.
27969
27970 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
27971
27972         * ipa-polymorphic-call.c
27973         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
27974         case when call target is already known.
27975
27976 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
27977
27978         PR target/65979
27979         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
27980         take into account the case that operands[1] and operands[2]
27981         are the same register.
27982
27983 2015-05-26  Michael Matz  <matz@suse.de>
27984
27985         PR middle-end/66251
27986
27987         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
27988         stores.
27989         (vect_create_vectorized_demotion_stmts): Always set
27990         STMT_VINFO_VEC_STMT, also with SLP.
27991         (vectorizable_store): Handle strided group stores.
27992
27993 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
27994
27995         PR target/66049
27996         * config/aarch64/aarch64.md
27997         (*adds_shift_imm_<mode>):  New pattern.
27998         (*subs_shift_imm_<mode>):  Likewise.
27999         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
28000         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
28001         (*add_uxt<mode>_shift2): Likewise.
28002         (*add_uxtsi_shift2_uxtw): Likewise.
28003         (*sub_uxt<mode>_shift2): Likewise.
28004         (*sub_uxtsi_shift2_uxtw): Likewise.
28005
28006 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
28007
28008         * config/rs6000/constraints.md (Y, U): Use match_test.
28009
28010 2015-05-26  Christian Bruel  <christian.bruel@st.com>
28011
28012         PR target/52144
28013         * config/arm/arm.c (arm_option_check_internal)
28014         (arm_option_params_internal): Check opts->target_flags to set macros.
28015         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
28016         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
28017         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
28018         (builtin_define): Replaced with def_or_undef_macro.
28019         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
28020         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
28021         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
28022         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
28023         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
28024         (TARGET_ARM_FEATURE_LDREX_P)
28025         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
28026         * config/arm/arm-c.c (def_or_undef_macro): New function.
28027         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
28028
28029 2015-05-26  Christian Bruel  <christian.bruel@st.com>
28030
28031         * c-common.h (builtin_define_with_int_value)
28032         (builtin_define_type_sizeof): Declare.
28033         * c-cppbuiltin.c (builtin_define_with_int_value)
28034         (builtin_define_type_sizeof): Externalize.
28035         (builtin_define_std): Cleanup declaration.
28036         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
28037         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
28038         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
28039         (builtin_define, builtin_assert): New macros.
28040
28041 2015-05-26  Richard Biener  <rguenther@suse.de>
28042
28043         PR tree-optimization/66142
28044         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
28045         MEM_REFs for the same base address.
28046
28047 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28048
28049         PR ipa/66181
28050         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
28051
28052 2015-05-26  Jason Merrill  <jason@redhat.com>
28053
28054         * configure.ac: Set CXXFLAGS for ISL test.
28055         * configure: Regenerate.
28056
28057         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
28058         strstr and basename.
28059         * configure: Regenerate.
28060
28061 2015-05-26  Richard Biener  <rguenther@suse.de>
28062
28063         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
28064         X % C -> X & (C - 1) for C being a power-of two to ...
28065         * match.pd: ... patterns.
28066
28067 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
28068
28069         * match.pd (swapped_tcc_comparison): New operator list.
28070         (-A CMP -B): New simplification.
28071         * fold-const.c (fold_comparison): Remove corresponding code.
28072
28073 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
28074
28075         * caller-save.c (init_caller_save): Base temporary register numbers
28076         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
28077         * cfgloopanal.c (init_set_costs): Likewise.
28078         * dojump.c (prefer_and_bit_test): Likewise.
28079         * expr.c (init_expr_target): Likewise.
28080         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28081         * lower-subreg.c (init_lower_subreg): Likewise.
28082         * postreload.c (reload_cse_regs_1): Likewise.
28083
28084 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
28085
28086         * gensupport.h (compute_test_codes): Declare.
28087         * gensupport.c (compute_predicate_codes): Rename to...
28088         (compute_test_codes): ...this.  Generalize error message.
28089         (process_define_predicate): Update accordingly.
28090         * genpreds.c (compute_maybe_allows): Delete.
28091         (add_constraint): Use compute_test_codes to determine whether
28092         something can accept a SUBREG, REG or MEM.
28093
28094 2015-05-26  Torvald Riegel  <triegel@redhat.com>
28095
28096         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
28097         'memory model' to align with C++11; fix description of memory orders;
28098         fix a few typos.
28099
28100 2015-05-26  Richard Biener  <rguenther@suse.de>
28101
28102         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
28103         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
28104         detect whether we apply SLP.  Remove call to
28105         vect_update_slp_costs_according_to_vf.
28106         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
28107         vect_update_slp_costs_according_to_vf from here.  Dispatch
28108         to vect_slp_analyze_operations to analyze SLP stmts.
28109         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
28110         unused bb_vec_info parameter, adjust assert.
28111         (vect_slp_analyze_operations): Pass in the slp instance tree
28112         instead of bb_vec_info.
28113         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
28114         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
28115
28116 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28117
28118         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
28119         Q_REGS.  Expand comment.
28120         (REG_CLASS_NAMES): Ditto.
28121         (REG_CLASS_CONTENTS): Ditto.
28122
28123 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
28124
28125         PR target/66274
28126         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
28127         when LEGACY_INT_REGNO_P is processed.
28128
28129 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28130
28131         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
28132
28133 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
28134
28135         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
28136         register if not marked dead/unused, before return.
28137
28138 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28139
28140         PR lto/66180
28141         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
28142         is set; check for assembler name at LTO time.
28143         (type_in_anonymous_namespace): Remove hacks, check that all
28144         anonymous types are called "<anon>"
28145         (odr_type_p): Simplify; add check for "<anon>"
28146         (odr_subtypes_equivalent): Add odr_type_p check.
28147         * tree.c (need_assembler_name_p): Even anonymous namespace needs
28148         assembler name.
28149
28150 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28151
28152         * ipa-utils.h (method_class_type): Remove.
28153         * cgraphunit.c (walk_polymorphic_call_targets): Use
28154         TYPE_METHOD_BASETYPE.
28155         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
28156         on main variants only.
28157         (method_class_type): Remove.
28158         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
28159         (build_type_inheritance_graph): Likewise.
28160         * ipa-icf.c (sem_function::equals_wpa): Likewise.
28161         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
28162         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
28163
28164 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28165
28166         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
28167         is_typedef_decl, typedef_variant_p): Constify.
28168         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
28169         is_typedef_decl, typedef_variant_p): Constify.
28170
28171 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28172
28173         * defaults.h (gen_tablejump): New function.
28174         (HAVE_tablejump): Add default value.
28175         * expr.c: Adjust.
28176         * stmt.c: Likewise.
28177
28178 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28179
28180         * defaults.h (gen_store_multiple): New function.
28181         (HAVE_store_multiple): Add default value.
28182         * expr.c (move_block_from_reg): Adjust.
28183
28184 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28185
28186         * defaults.h (gen_load_multiple): New function.
28187         (HAVE_load_multiple): Add default value.
28188         * expr.c (move_block_to_reg): Adjust.
28189
28190 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28191
28192         * defaults.h (gen_mem_signal_fence): New function.
28193         (HAVE_mem_signal_fence): Add default value.
28194         * optabs.c: Adjust.
28195
28196 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28197
28198         * defaults.h (gen_memory_barrier): New function.
28199         (HAVE_memory_barrier): Add default value.
28200         * optabs.c: Adjust.
28201
28202 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28203
28204         * defaults.h (gen_mem_thread_fence): New function.
28205         (HAVE_mem_thread_fence): Add default definition.
28206         * optabs.c: Adjust.
28207
28208 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28209
28210         * combine.c (find_split_point): Check the value of HAVE_lo_sum
28211         instead of if it is defined.
28212         (combine_simplify_rtx): Likewise.
28213         * lra-constraints.c (process_address_1): Likewise.
28214         * config/darwin.c: Adjust.
28215         * genconfig.c (main): Always define HAVE_lo_sum.
28216
28217 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28218
28219         * genmatch.c (parser::parse_operation): Reject expanding
28220         operator-list inside 'for'.
28221
28222 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28223
28224         * genmatch.c (parser::parse_for): Reject iterator if used as
28225         operator-list.
28226
28227 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28228
28229         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
28230         after end of id-list.
28231
28232 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28233
28234         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
28235         we do not try to compute canonical type for type that does not need
28236         alias set.
28237         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
28238         FUNCITON_TYPE.
28239         * tree.h (type_with_alias_set_p): New.
28240
28241 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28242
28243         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
28244         function attributes.
28245         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
28246
28247 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
28248
28249         * Makefile.in (check_gcc_parallelize): Delete.
28250         (lang_checks_parallelized): Update comment.
28251
28252 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
28253
28254         PR rtl-optimization/66237
28255         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
28256         location of an "as_a" cast.
28257
28258 2015-05-22  Jeff Law  <law@redhat.com>
28259
28260         * config/pa/pa.md (non-canonical shift-add insns): Remove.
28261         (peepholes with non-canonical RTL sources): Remove.
28262         (peepholes for indexed stores of FP regs in integer modes): Match and
28263         generate canonical RTL.
28264
28265 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28266
28267         PR tree-optimization/63387
28268         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
28269         ((x ord x) & (y ord y) -> (x ord y),
28270         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
28271         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
28272         vectors like scalars.
28273
28274 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28275
28276         * convert.c (convert_to_integer, convert_to_vector): Include the
28277         types in the error message.
28278
28279 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28280
28281         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
28282         simplifications.
28283
28284 2015-05-22  Jeff Law  <law@redhat.com>
28285
28286         * config/pa/pa.md (integer_indexed_store splitters): Use
28287         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
28288         insns -- adjusting the constant 2nd operand accordingly.
28289
28290         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
28291         (plus (ashift X log2) Y) if it is a split point.
28292
28293         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
28294         out of hppa_legitimize_address to handle both forms of a multiply
28295         by 2, 4 or 8.
28296         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
28297         Always generate the ASHIFT variant as the result is not directly
28298         used in a MEM.  Update comments and refactor slightly to improve
28299         readability.
28300
28301 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28302
28303         PR target/65491
28304         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
28305         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
28306         (aarch64_composite_type_p): Return false if given type and mode are
28307         for a short vector.
28308
28309 2015-05-22  Richard Biener  <rguenther@suse.de>
28310
28311         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
28312         member.
28313         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
28314         patterns when determining whether SLP is pure.
28315         (vect_is_slp_reduction): Remove check for pattern stmts.
28316         (vect_is_simple_reduction_1): Remove dead code.
28317         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
28318         (vect_get_and_check_slp_defs): Pass in the stmt number.
28319         Allow the first def in a reduction to be not a pattern stmt when
28320         the rest of the stmts def are patterns.
28321         (vect_build_slp_tree_1): Allow tcc_expression codes like
28322         SAD_EXPR and DOT_PROD_EXPR.
28323         (vect_build_slp_tree): Adjust.
28324         (vect_analyze_slp): Refactor and move BB vect error message ...
28325         (vect_slp_analyze_bb_1): ... here.
28326
28327 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
28328
28329         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
28330         for CSWTCH temporary.
28331
28332 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28333
28334         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
28335         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
28336         unknown unspecs.
28337
28338 2015-05-22  Richard Biener  <rguenther@suse.de>
28339
28340         PR tree-optimization/66251
28341         * tree-vect-stmts.c (vectorizable_conversion): Properly
28342         set STMT_VINFO_VEC_STMT even for the SLP case.
28343
28344 2015-05-22  Marek Polacek  <polacek@redhat.com>
28345
28346         * doc/extend.texi: Use @pxref instead of @xref.
28347
28348 2015-05-22  hiraditya  <hiraditya@msn.com>
28349
28350         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
28351         redundant if.
28352
28353 2015-05-22  Richard Biener  <rguenther@suse.de>
28354
28355         PR tree-optimization/65701
28356         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
28357         Move peeling cost models into one place.  Peel for alignment
28358         for single loads only if an aligned load is cheaper than
28359         an unaligned load.
28360
28361 2015-05-22  Marek Polacek  <polacek@redhat.com>
28362
28363         PR c/47043
28364         * doc/extend.texi (Enumerator Attributes): New section.
28365         Document syntax of enumerator attributes.
28366
28367 2015-05-22  Richard Biener  <rguenther@suse.de>
28368
28369         * tree-vect-loop.c (get_reduction_op): New function.
28370         (vect_model_reduction_cost): Use it, add reduc_index parameter.
28371         Make ready for BB reductions.
28372         (vect_create_epilog_for_reduction): Use get_reduction_op.
28373         (vectorizable_reduction): Init reduc_index to a valid value.
28374         Adjust vect_model_reduction_cost call.
28375         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
28376         operand for reduction defaults.  Add SAD_EXPR support.
28377         Assert we have a neutral op for SLP reductions.
28378         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
28379         walking pattern stmt ops only recurse to SSA names.
28380
28381 2015-05-22  Richard Biener  <rguenther@suse.de>
28382
28383         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
28384         assert with guard, remove check on detected reduction.
28385         (vect_recog_sad_pattern): Likewise.
28386         (vect_recog_widen_sum_pattern): Likewise.
28387
28388 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28389
28390         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
28391         __always_inline__ attribute.
28392         (vaesdq_u8): Likewise.
28393         (vaesmcq_u8): Likewise.
28394         (vaesimcq_u8): Likewise.
28395         (vsha1cq_u32): Likewise.
28396         (vsha1mq_u32): Likewise.
28397         (vsha1pq_u32): Likewise.
28398         (vsha1h_u32): Likewise.
28399         (vsha1su0q_u32): Likewise.
28400         (vsha1su1q_u32): Likewise.
28401         (vsha256hq_u32): Likewise.
28402         (vsha256h2q_u32): Likewise.
28403         (vsha256su0q_u32): Likewise.
28404         (vsha256su1q_u32): Likewise.
28405         (vmull_p64): Likewise.
28406         (vmull_high_p64): Likewise.
28407
28408 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28409
28410         * final.c (final_scan_insn): Don't check HAVE_peephole with the
28411         preprocessor.
28412         * output.h: Likewise.
28413         * genconfig.c (main): Alwways define HAVE_peephole.
28414         * genpeep.c: Don't emit checks of HAVE_peephole.
28415
28416 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28417
28418         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
28419         check HAVE_conditional_move with the preprocessor.
28420
28421 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28422
28423         * genconfig.c (main): Always define HAVE_conditional_move.
28424         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
28425         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
28426         is defined.
28427
28428 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28429
28430         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
28431         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
28432         and FRAME_POINTER_REGNUM with the preprocessor.
28433
28434 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28435
28436         * defaults.h: Add default for STACK_PUSH_CODE.
28437         * expr.c: Don't redefine STACK_PUSH_CODE.
28438         * recog.c: Likewise.
28439
28440 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28441
28442         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
28443         sched-deps.c: Use if instead of preprocessor checks with
28444         STACK_GROWS_DOWNWARD.
28445
28446 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28447
28448         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
28449         is defined.
28450         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
28451         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
28452         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
28453         * doc/tm.texi: Regenerate.
28454
28455 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
28456
28457         PR target/66232
28458         * config/i386/constraints.md (Bg): New constraint for GOT memory
28459         operand.
28460         * config/i386/i386.md (*call_got_x32): New pattern.
28461         (*call_value_got_x32): Likewise.
28462         * config/i386/predicates.md (GOT_memory_operand): New predicate.
28463
28464 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
28465
28466         PR tree-optimization/66233
28467         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
28468         Simplify.
28469
28470 2015-05-21  Jeff Law  <law@redhat.com>
28471
28472         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
28473         than MULT for shadd sequences.
28474
28475 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
28476
28477         * alias.c (alias_stats): New static var.
28478         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
28479         (dump_alias_stats_in_alias_c): New function.
28480         * alias.h (dump_alias_stats_in_alias_c): Declare.
28481         * tree-ssa-alias.c (dump_alias_stats): Call it.
28482
28483 2015-05-08  Michael Matz  <matz@suse.de>
28484
28485         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
28486         to strided_p.
28487         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
28488         (STMT_VINFO_STRIDED_P): ... this.
28489         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
28490         (vect_verify_datarefs_alignment): Likewise.
28491         (vect_enhance_data_refs_alignment): Likewise.
28492         (vect_analyze_data_ref_access): Likewise.
28493         (vect_analyze_data_refs): Accept strided stores.
28494         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
28495         (vect_model_load_cost): Adjust for macro rename.
28496         (vectorizable_mask_load_store): Likewise.
28497         (vectorizable_load): Likewise.
28498         (vectorizable_store): Open code strided stores.
28499
28500 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28501
28502         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
28503         Document sqrt_insn.
28504
28505 2015-05-21  Richard Biener  <rguenther@suse.de>
28506
28507         PR c++/66211
28508         * match.pd: Guard pattern optimzing (int)(float)int
28509         conversions to apply only on GIMPLE.
28510
28511 2015-05-21  Jeff Law  <law@redhat.com>
28512
28513         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
28514         multiply-accumulate/shift-add insn generation.
28515
28516 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
28517
28518         PR target/54236
28519         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
28520         operands[1] are the same.
28521
28522 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
28523
28524         PR middle-end/66221
28525         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
28526         build_distinct_type_copy to copy bounds.
28527
28528 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
28529
28530         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
28531         Change to unsigned int.
28532
28533 2015-05-20  Jeff Law  <law@redhat.com>
28534
28535         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
28536         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
28537         (pa_shadd_constant_p): Allow constants for shadd insns rather
28538         than valid scaling constants for memory addresses.
28539         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
28540         * config/pa/predicates.md (mem_shadd_operand): New predicate.
28541         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
28542         (shift-add insns using ASHIFT): New patterns.
28543
28544 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
28545
28546         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
28547         feasible.
28548         (fix_up_fall_thru_edges): Likewise.
28549         (fix_crossing_conditional_branches): Likewise. Promote jump targets
28550         from to rtx_insn to rtx_code_label where feasible.
28551         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
28552         gen_move_insn (returned type changed to rtx_insn).
28553         * builtins.c (expand_errno_check): Fix arguments of
28554         do_compare_rtx_and_jump (now expects rtx_code_label).
28555         (expand_builtin_acc_on_device): Likewise.
28556         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
28557         invert_jump (now exprects rtx_jump_insn).
28558         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
28559         (construct_init_block): Use rtx_code_label.
28560         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
28561         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
28562         calling redirect_jump.
28563         (patch_jump_insn): Likewise.
28564         (redirect_branch_edge): Likewise.
28565         (force_nonfallthru_and_redirect): Likewise.
28566         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
28567         when suitable.
28568         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
28569         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
28570         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
28571         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
28572         to store the value retured by gen_label_rtx.
28573         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
28574         rtx_jump_insn.
28575         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
28576         (split_branches): Fix calls of redirect_jump.
28577         * dojump.c (jumpifnot): Promote argument type from rtx to
28578         rtx_code_label.
28579         (jumpifnot_1): Likewise.
28580         (jumpif): Likewise.
28581         (jumpif_1): Likewise.
28582         (do_jump_1): Likewise.
28583         (do_jump): Likewise. Use rtx_code_label when feasible.
28584         (do_jump_by_parts_greater_rtx): Likewise.
28585         (do_jump_by_parts_zero_rtx): Likewise.
28586         (do_jump_by_parts_equality_rtx): Likewise.
28587         (do_compare_rtx_and_jump): Likewise.
28588         * dojump.h: Update function prototypes.
28589         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
28590         returns rtx_insn).
28591         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
28592         rtx_jump_insn.
28593         (emit_label_before): Likewise.
28594         (emit_jump_insn_after_noloc): Likewise.
28595         (emit_jump_insn_after_setloc): Likewise.
28596         (emit_jump_insn_after): Likewise
28597         (emit_jump_insn_before_setloc): Likewise.
28598         (emit_jump_insn_before): Likewise.
28599         (emit_label_before): Promote return type to rtx_code_label.
28600         (emit_label): Likewise.
28601         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
28602         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
28603         gen_move_insn.
28604         (emit_stack_restore): Likewise.
28605         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
28606         (do_cmp_and_jump): Likewise.
28607         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
28608         from rtx to rtx_code_label.
28609         (gen_move_insn_uncast): New function.
28610         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
28611         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
28612         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
28613         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
28614         invert_jump_1 and redirect_jump_1.
28615         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
28616         do_compare_rtx_and_jump.
28617         (expand_addsub_overflow): Likewise.
28618         (expand_neg_overflow): Likewise.
28619         (expand_mul_overflow): Likewise.
28620         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
28621         return value of gen_move_insn.
28622         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
28623         * loop-doloop.c (add_test): Use rtx_code_label.
28624         (doloop_modify): Likewise.
28625         (doloop_optimize): Likewise.
28626         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
28627         * lra-constraints.c (emit_spill_move): Remove cast of value returned
28628         by gen_move_insn.
28629         (inherit_reload_reg): Add cast when calling dump_insn_slim.
28630         (split_reg): Likewise.
28631         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
28632         gen_move_insn.
28633         * optabs.c (expand_binop_directly): Remove casts of values returned by
28634         maybe_gen_insn.
28635         (expand_unop_direct): Likewise.
28636         (expand_abs): Likewise.
28637         (maybe_emit_unop_insn): Likewise.
28638         (maybe_gen_insn): Promote return type to rtx_insn.
28639         * optabs.h: Update prototype of maybe_gen_insn.
28640         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
28641         redundant cast.
28642         * recog.c (struct peep2_insn_data): Promote type of insn field to
28643         rtx_insn.
28644         (peep2_reinit_state): Use NULL instead of NULL_RTX.
28645         (peep2_attempt): Remove casts of insn in peep2_insn_data.
28646         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
28647         * recog.h (struct insn_gen_fn): Promote return types of function
28648         pointers and operator ().from rtx to rtx_insn.
28649         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
28650         (fill_eager_delay_slots): Likewise.
28651         (relax_delay_slots): Likewise.
28652         (make_return_insns): Likewise.
28653         (dbr_schedule): Likewise.
28654         (optimize_skips): Likewise.
28655         (reorg_redirect_jump): Likewise.
28656         (fill_slots_from_thread): Likewise.
28657         * reorg.h: Update prototypes.
28658         * resource.c (find_dead_or_set_registers): Use dyn_cast to
28659         rtx_jump_insn instead of check.  Use it's jump_target method.
28660         * rtl.h (rtx_jump_insn::jump_label): Define new method.
28661         (rtx_jump_insn::jump_target): Define new method.
28662         (rtx_jump_insn::set_jump_target): Define new method.
28663         * rtlanal.c (tablejump_p): Promote type of one local variable.
28664         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
28665         (sched_analyze_insn): Likewise.
28666         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
28667         (print_insn): Likewise.
28668         * stmt.c (label_rtx): Promote return type to rtx_insn.
28669         (force_label_rtx): Likewise.
28670         (jump_target_rtx): Define new function.
28671         (expand_label): Use it, get rid of one cast.
28672         (expand_naked_return): Promote rtx to rtx_code_label.
28673         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
28674         (expand_case): Use rtx_code_label instread of rtx where feasible.
28675         (expand_sjlj_dispatch_table): Likewise.
28676         (emit_case_nodes): Likewise.
28677         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
28678         * store-motion.c (insert_store): Make use of new return type of
28679         gen_move_insn and remove a cast.
28680         (replace_store_insn): Likewise.
28681
28682 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
28683
28684         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
28685         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
28686
28687 2015-05-20  Jeff Law  <law@redhat.com>
28688
28689         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
28690         dispose of the jump thread path when the jump threading
28691         opportunity is cancelled.
28692
28693 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28694
28695         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
28696         when printing the caret character.
28697
28698 2015-05-20  Marek Polacek  <polacek@redhat.com>
28699
28700         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
28701
28702 2015-05-20  Marek Polacek  <polacek@redhat.com>
28703
28704         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
28705         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
28706         * gimple-fold.c (canonicalize_bool): Likewise.
28707         (same_bool_result_p): Likewise.
28708         * tree-if-conv.c (parse_predicate): Likewise.
28709
28710 2015-05-20  Marek Polacek  <polacek@redhat.com>
28711
28712         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
28713         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
28714
28715 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28716
28717         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
28718         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
28719         values.
28720
28721 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
28722
28723         * config/mips/mips.h (micromips_globals): Declare.
28724
28725 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
28726
28727         * timevar.def (TV_INITIALIZE_RTL): New.
28728         * toplev.c (initialize_rtl): Use an auto_timevar to account this
28729         function's time to TV_INITIALIZE_RTL.
28730
28731 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
28732
28733         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
28734         gimple_build_nop calls.
28735         (chkp_find_bounds_for_elem): Likewise.
28736         (chkp_get_zero_bounds): Likewise.
28737         (chkp_get_none_bounds): Likewise.
28738         (chkp_get_bounds_by_definition): Likewise.
28739         (chkp_generate_extern_var_bounds): Likewise.
28740         (chkp_get_bounds_for_decl_addr): Likewise.
28741         (chkp_get_bounds_for_string_cst): Likewise.
28742
28743 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
28744
28745         PR tree-optimization/65447
28746         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
28747         (dump_use, dump_uses): Support to dump sub use.
28748         (record_use): New parameters to support sub use.  Remove call to
28749         dump_use.
28750         (record_sub_use, record_group_use): New functions.
28751         (compute_max_addr_offset, split_all_small_groups): New functions.
28752         (group_address_uses, rewrite_use_address): New functions.
28753         (strip_offset): New declaration.
28754         (find_interesting_uses_address): Call record_group_use.
28755         (add_candidate): New assertion.
28756         (infinite_cost_p): Move definition forward.
28757         (add_costs): Check INFTY cost and return immediately.
28758         (get_computation_cost_at): Clear setup cost and dependent bitmap
28759         for sub uses.
28760         (determine_use_iv_cost_address): Compute cost for sub uses.
28761         (rewrite_use_address_1): Rename from old rewrite_use_address.
28762         (free_loop_data): Free sub uses.
28763         (tree_ssa_iv_optimize_loop): Call group_address_uses.
28764
28765 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28766             Jim Wilson  <jim.wilson@linaro.org>
28767
28768         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
28769         new  fields loadv and storev.
28770         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
28771         Initialize loadv and storev.
28772         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
28773         (cortexa53_extra_costs): Likewise.
28774         (cortexa57_extra_costs): Likewise.
28775         (xgene1_extra_costs): Likewise.
28776         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
28777         rtx_costs.
28778
28779 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28780
28781         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
28782          storev.
28783         (cortexa8_extra_costs): Likewise.
28784         (cortexa5_extra_costs): Likewise.
28785         (cortexa7_extra_costs): Likewise.
28786         (cortexa12_extra_costs): Likewise.
28787         (cortexa15_extra_costs): Likewise.
28788         (v7m_extra_costs): Likewise.
28789
28790 2015-05-20  Jeff Law  <law@redhat.com>
28791
28792         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
28793         instead of open-coded version.  Also delete the jump thread created
28794         within this function.
28795
28796 2015-05-20  Alan Modra  <amodra@gmail.com>
28797
28798         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
28799         stack adjusting insn.  Formatting.
28800         (rs6000_emit_prologue): Track stack adjusting insn, and use of
28801         r12.  If possible, emit first -fsplit-stack arg pointer insn
28802         before stack adjust.  Don't use r12 to save cr if split-stack.
28803
28804 2015-05-20  Alan Modra  <amodra@gmail.com>
28805
28806         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
28807         Define.
28808         (rs6000_supports_split_stack): New function.
28809         * config/rs6000/rs6000.c (machine_function): Add
28810         split_stack_arg_pointer.
28811         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
28812         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
28813         rather than virtual_incoming_args_rtx.
28814         (rs6000_va_start): Likewise.
28815         (split_stack_arg_pointer_used_p): New function.
28816         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
28817         (morestack_ref): New var.
28818         (gen_add3_const, rs6000_expand_split_stack_prologue,
28819         rs6000_internal_arg_pointer, rs6000_live_on_entry,
28820         rs6000_split_stack_space_check): New functions.
28821         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
28822         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
28823         (UNSPECV_SPLIT_STACK_RETURN): Define.
28824         (split_stack_prologue, load_split_stack_limit,
28825         load_split_stack_limit_di, load_split_stack_limit_si,
28826         split_stack_return, split_stack_space_check): New expands and insns.
28827         * config/rs6000/rs6000-protos.h
28828         (rs6000_expand_split_stack_prologue): Declare.
28829         (rs6000_split_stack_space_check): Declare.
28830
28831 2015-05-20  Alan Modra  <amodra@gmail.com>
28832
28833         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
28834         (direct_return): Test vrsave_size rather than vrsave_mask.
28835         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
28836         (rs6000_emit_epilogue): Likewise.
28837
28838 2015-05-20  Alan Modra  <amodra@gmail.com>
28839
28840         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
28841         when not saving registers.
28842         (debug_stack_info): Adjust to omit printing unused offsets,
28843         as before.
28844         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
28845         expression.
28846
28847 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28848
28849         PR c++/65835
28850         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
28851         value_type to const char *.
28852
28853 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
28854
28855         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
28856         to build a biarch toolchain again.
28857
28858 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28859
28860         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
28861         or implicit declarations.
28862         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
28863         into it.
28864         (get_odr_type): Check type has linkage before adding bases.
28865         (register_odr_type): Check that type has linkage before adding it.
28866         (type_known_to_have_no_deriavations_p): Rename to ..
28867         (type_known_to_have_no_derivations_p): This one.
28868         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
28869         (type_known_to_have_no_derivations_p): This one.
28870         * ipa-polymorphic-call.c
28871         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
28872         type has linkage.
28873
28874 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28875
28876         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
28877         (layout_type): Use RECORD_OR_UNION_TYPE_P.
28878
28879 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28880
28881         * config/s390/s390.c (s390_vector_bool_type_p): New function.
28882         (s390_invalid_binary_op): New function.
28883         (TARGET_INVALID_BINARY_OP): Define macro.
28884
28885 2015-05-19  David Sherwood  <david.sherwood@arm.com>
28886
28887         * loop-invariant.c (create_new_invariant): Don't calculate address cost
28888         if mode is not a scalar integer.
28889         (get_inv_cost): Increase computational cost for unused invariants.
28890
28891 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28892
28893         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
28894         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
28895         * config/s390/s390-builtin-types.def: New file.
28896         * config/s390/s390-builtins.def: New file.
28897         * config/s390/s390-builtins.h: New file.
28898         * config/s390/s390-c.c: New file.
28899         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
28900         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
28901         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
28902         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
28903         prototypes.
28904         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
28905         Include.
28906         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
28907         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
28908         variable definitions.
28909         (s390_const_operand_ok): New function.
28910         (s390_expand_builtin): Rewrite.
28911         (s390_init_builtins): New function.
28912         (s390_handle_vectorbool_attribute): New function.
28913         (s390_attribute_table): Add s390_vector_bool attribute.
28914         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
28915         (s390_branch_condition_mask): Generate masks for new modes.
28916         (s390_expand_vec_compare_cc): New function.
28917         (s390_mangle_type): Add mangling for vector bool types.
28918         (enum s390_builtin): Remove.
28919         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
28920         efpc builtins.
28921         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
28922         s390_cpu_cpp_builtins.
28923         (REGISTER_TARGET_PRAGMAS): New macro.
28924         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
28925         (insn_cmp mode attribute): Add new CC modes.
28926         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
28927         (lcbb): New pattern definition.
28928         * config/s390/s390intrin.h: Include vecintrin.h.
28929         * config/s390/t-s390: New file.
28930         * config/s390/vecintrin.h: New file.
28931         * config/s390/vector.md: Include vx-builtins.md.
28932         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
28933         support.
28934
28935 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28936
28937         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
28938         CCVFHE.
28939         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
28940         (s390_select_ccmode): Likewise.
28941         (s390_canonicalize_comparison): Swap operands if necessary.
28942         (s390_expand_vec_compare_scalar): Expand DFmode compare using
28943         single element vector instructions.
28944         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
28945         (s390_branch_condition_mask): Generate CC masks for the new modes.
28946         * config/s390/s390.md (v0, vf, vd): New mode attributes.
28947         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
28948         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
28949         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
28950         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
28951         (*extend<DSF:mode><BFP:mode>2): New insn definition.
28952         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
28953         (extend<DSF:mode><BFP:mode>2): Turn into expander.
28954         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
28955         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
28956         (sqrt<mode>2): Add vector instruction.
28957
28958 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28959
28960         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
28961         constraints.
28962         * config/s390/predicates.md (const0_operand, constm1_operand)
28963         (constable_operand): Accept vector operands.
28964         * config/s390/s390-modes.def: Add supported vector modes.
28965         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
28966         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
28967         (s390_bytemask_vector_p, s390_expand_vec_strlen)
28968         (s390_expand_vec_compare, s390_expand_vcond)
28969         (s390_expand_vec_init): Add prototypes.
28970         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
28971         (s390_vector_mode_supported_p): New function.
28972         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
28973         (s390_contiguous_bitmask_vector_p): New function.
28974         (s390_bytemask_vector_p): New function.
28975         (s390_split_ok_p): Vector regs don't work either.
28976         (regclass_map): Add VEC_REGS.
28977         (s390_legitimate_constant_p): Handle vector constants.
28978         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
28979         (legitimate_reload_vector_constant_p): New function.
28980         (s390_preferred_reload_class): Handle CONST_VECTOR.
28981         (s390_reload_symref_address):  Likewise.
28982         (s390_secondary_reload): Vector memory instructions only support
28983         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
28984         (s390_emit_ccraw_jump): New function.
28985         (s390_expand_vec_strlen): New function.
28986         (s390_expand_vec_compare): New function.
28987         (s390_expand_vcond): New function.
28988         (s390_expand_vec_init): New function.
28989         (s390_dwarf_frame_reg_mode): New function.
28990         (print_operand): Handle addresses with 'O' and 'R' constraints.
28991         (NR_C_MODES, constant_modes): Add vector modes.
28992         (s390_output_pool_entry): Handle vector constants.
28993         (s390_hard_regno_mode_ok): Handle vector registers.
28994         (s390_class_max_nregs): Likewise.
28995         (s390_cannot_change_mode_class): New function.
28996         (s390_invalid_arg_for_unprototyped_fn): New function.
28997         (s390_function_arg_vector): New function.
28998         (s390_function_arg_float): Remove size variable.
28999         (s390_pass_by_reference): Handle vector arguments.
29000         (s390_function_arg_advance): Likewise.
29001         (s390_function_arg): Likewise.
29002         (s390_return_in_memory): Vector values are returned in a VR if
29003         possible.
29004         (s390_function_and_libcall_value): Handle vector arguments.
29005         (s390_gimplify_va_arg): Likewise.
29006         (s390_call_saved_register_used): Consider the arguments named.
29007         (s390_conditional_register_usage): Disable v16-v31 for non-vec
29008         targets.
29009         (s390_preferred_simd_mode): New function.
29010         (s390_support_vector_misalignment): New function.
29011         (s390_vector_alignment): New function.
29012         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
29013         (TARGET_VECTOR_MODE_SUPPORTED_P)
29014         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
29015         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
29016         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
29017         (TARGET_VECTOR_ALIGNMENT): Define target macro.
29018         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
29019         (FIRST_PSEUDO_REGISTER): Increase value.
29020         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
29021         (VECTOR_REG_P): Define macros.
29022         (FIXED_REGISTERS, CALL_USED_REGISTERS)
29023         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
29024         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
29025         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
29026         Add vector registers.
29027         (CANNOT_CHANGE_MODE_CLASS): Call C function.
29028         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
29029         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
29030         memory.
29031         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
29032         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
29033         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
29034         (VR*_REGNUM): New constants.
29035         (ALL): New mode iterator.
29036         (INTALL): Remove mode iterator.
29037         Include vector.md.
29038         (movti): Implement TImode moves for VRs.
29039         Disable TImode splitter for VR targets.
29040         Implement splitting TImode GPR<->VR moves.
29041         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
29042         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
29043         reload<mode>_la_in, reload<mode>_la_out.
29044         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
29045         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
29046         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
29047         (mov<mode> SF SD): Prefer lder, lde for loading.
29048         Add lrl and strl instructions.
29049         Add vector instructions.
29050         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
29051         Call s390_expand_vec_strlen on z13.
29052         (*cc_to_int): Change predicate to nonimmediate_operand.
29053         (addti3): Rename to *addti3.  New expander.
29054         (subti3): Rename to *subti3.  New expander.
29055         * config/s390/vector.md: New file.
29056
29057 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29058
29059         * common/config/s390/s390-common.c (processor_flags_table): Add
29060         z13.
29061         * config.gcc: Add z13.
29062         * config/s390/s390-opts.h (enum processor_type): Add
29063         PROCESSOR_2964_Z13.
29064         * config/s390/s390.c (s390_adjust_priority): Check for
29065         PROCESSOR_2964_Z13.
29066         (s390_reorg): Likewise.
29067         (s390_sched_reorder): Likewise.
29068         (s390_sched_variable_issue): Likewise.
29069         (s390_loop_unroll_adjust): Likewise.
29070         (s390_option_override): Likewise. Default to -mvx when available.
29071         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
29072         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
29073         (TARGET_VX_ABI): Define macros.
29074         macros.
29075         (TARGET_DEFAULT): Add MASK_OPT_VX.
29076         * config/s390/s390.md ("cpu" attribute): Add z13.
29077         ("cpu_facility" attribute): Add vec.
29078         * config/s390/s390.opt (processor_type): Add z13.
29079         (mvx): New options.
29080         * doc/invoke.texi: Add z13 option for -march.
29081
29082 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29083
29084         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
29085         mode check to make sure that only scalar integer values are
29086         accepted.
29087
29088 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
29089
29090         * tree.c (verify_type_variant): Fix #undef.
29091         (gimple_canonical_types_compatible_p): Move here from lto.c
29092         (verify_type): Verify TYPE_CANONICAL compatibility.
29093         * tree.h (gimple_canonical_types_compatible_p): Declare.
29094
29095 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29096
29097         PR middle-end/66199
29098         * tree.h (OMP_TEAMS_COMBINED): Define.
29099         * gimplify.c (enum gimplify_omp_var_data): Add
29100         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
29101         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
29102         (omp_notice_variable): Accept both ORT_TEAMS
29103         and ORT_COMBINED_TEAMS.  Don't recurse if
29104         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
29105         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
29106         GOVD_FIRSTPRIVATE.
29107         (omp_no_lastprivate): New function.
29108         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
29109         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
29110         notice_outer and set appropriate bits, otherwise make
29111         sure default(none) combined constructs won't complain.
29112         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
29113         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
29114         omp_no_lastprivate either remove the clause or turn it
29115         into OMP_CLAUSE_PRIVATE.
29116         (gimplify_omp_for): Fix up handling of implicit
29117         lastprivate or linear iterators.
29118         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
29119         ORT_COMBINED_TEAMS.
29120         * omp-low.c (lower_omp_for_lastprivate): For combined
29121         for simd use fd.loop.n2 from the for rather than simd.
29122
29123 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29124
29125         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
29126         instead of gen_rtx_raw_REG.
29127         (cris_expand_epilogue): Likewise.
29128         * config/microblaze/microblaze.c (microblaze_classify_address):
29129         Likewise.
29130         * config/sparc/sparc.md: Likewise.
29131
29132 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
29133
29134         * config/alpha/alpha.c (alpha_legitimize_reload_address)
29135         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
29136         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
29137         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
29138         Use CASE_CONST_SCALAR_INT.
29139         (print_operand) <case 'M'>: Use mode_width_operand to check the
29140         value of the constant.
29141         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
29142         * config/alpha/predicates.md (input_operand): Use general_operand
29143         instead of match_code as operand check.
29144         (symbolic_operand): Use match_code with subexpression digits.
29145         * config/alpha/constraints.md (Q): Ditto.
29146
29147 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29148
29149         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
29150
29151 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29152
29153         * config/s390/s390.c (s390_secondary_reload): Fix check for
29154         load/store relative.
29155
29156 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29157
29158         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
29159         alternative_mask to uint64_t.
29160
29161 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29162
29163         PR tree-optimization/66187
29164         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
29165         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
29166         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
29167
29168 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
29169
29170         * diagnostic.c (diagnostic_report_current_module): Strengthen
29171         local "new_map" from const line_map * to
29172         const line_map_ordinary *.
29173         * genmatch.c (error_cb): Likewise for local "map".
29174         (output_line_directive): Likewise for local "map".
29175         * input.c (expand_location_1): Likewise for local "map".
29176         Pass NULL rather than &map to
29177         linemap_unwind_to_first_non_reserved_loc, since the value is never
29178         read from there, and the value written back not read from here.
29179         (is_location_from_builtin_token): Strengthen local "map" from
29180         const line_map * to const line_map_ordinary *.
29181         (dump_location_info): Strengthen locals "map" from
29182         line_map *, one to const line_map_ordinary *, the other
29183         to const line_map_macro *.
29184         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
29185         const line_map * to const line_map_macro *.
29186         (maybe_unwind_expanded_macro_loc): Add a call to
29187         linemap_check_macro when writing to the "map" field of the
29188         loc_map_pair.
29189         Introduce local const line_map_ordinary * "ord_map", using it in
29190         place of "map" in the part of the function where we know we have
29191         an ordinary map.  Strengthen local "m" from const line_map * to
29192         const line_map_ordinary *.
29193
29194 2015-05-19  Nick Clifton  <nickc@redhat.com>
29195
29196         PR target/66156
29197         * config/msp430/msp430.md (zero_extendhisi2): Add support for
29198         separate source and destination registers.
29199
29200 2015-05-19  Richard Biener  <rguenther@suse.de>
29201
29202         PR tree-optimization/66165
29203         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
29204         for no load permutation.
29205
29206         PR tree-optimization/66185
29207         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
29208         when building the SLP node from scalars.
29209
29210 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29211             Tristan Gingold  <gingold@adacore.com>
29212
29213         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
29214         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
29215         (expand_stack_restore): Call record_new_stack_level.
29216         (expand_stack_save): Do not call do_pending_stack_adjust.
29217         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
29218         * calls.c (expand_call): Call record_new_stack_level for alloca.
29219         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
29220         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
29221         (update_sjlj_context): New global function.
29222         * except.h (update_sjlj_context): Declare.
29223         * explow.c (record_new_stack_level): New global function.
29224         (allocate_dynamic_stack_space): Call record_new_stack_level.
29225         * explow.h (record_new_stack_level): Declare.
29226         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
29227         * cfgrtl.c (duplicate_insn_chain): Likewise.
29228
29229 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29230
29231         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
29232         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
29233         STACK_GROWS_DOWNWARD as normal if.
29234         (expand_call): Likewise.
29235
29236 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
29237
29238         PR target/54236
29239         * config/sh/sh.md (*round_int_even): New insn_and_split and
29240         accompanying new unnamed split.
29241
29242 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29243
29244         * bitmap.c (bitmap_set_range): Handle count==1 specially.
29245         (bitmap_clear_range): Likewise.
29246         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
29247         bitmap_set_range unconditionally.
29248         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29249         * df-scan.c (df_mark_reg): Likewise.
29250         * haifa-sched.c (setup_ref_regs): Likewise.
29251         * sched-rgn.c (update_live_1): Likewise.
29252
29253 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29254
29255         * regs.h (END_HARD_REGNO): Delete.
29256         (END_REGNO): Move to...
29257         * rtl.h: ...here.
29258         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
29259         * caller-save.c (mark_set_regs): Likewise.
29260         * combine.c (move_deaths, distribute_notes): Likewise.
29261         * cse.c (invalidate, invalidate_for_call): Likewise.
29262         * df-scan.c (df_ref_record): Likewise.
29263         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
29264         (record_last_reg_set_info): Likewise.
29265         * reg-stack.c (convert_regs_exit): Likewise.
29266         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
29267         * resource.c (update_live_status): Likewise.
29268         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
29269
29270 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29271
29272         * rtl.h (reg_info): Add an nregs field.
29273         (REG_NREGS): Use it.
29274         (SET_REGNO_RAW): Delete.
29275         (set_regno_raw): New function.
29276         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
29277         (END_REGNO): Redefine in terms of REG_NREGS.
29278         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
29279         SET_REGNO_RAW.
29280         * emit-rtl.c (set_mode_and_regno): Likewise.
29281         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
29282         instead of SET_REGNO_RAW.
29283
29284 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29285
29286         * rtl.h (PUT_MODE_RAW): New macro.
29287         (PUT_REG_NOTE_KIND): Use it.
29288         (set_mode_and_regno): Declare.
29289         (gen_raw_REG): Change regno to "unsigned int".
29290         (gen_rtx_REG): Change "unsigned" to "unsigned int".
29291         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
29292         use set_mode_and_regno to change the mode of registers.
29293         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
29294         * emit-rtl.c (set_mode_and_regno): New function.
29295         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
29296         * caller-save.c (reg_save_code): Use set_mode_and_regno.
29297         * expr.c (init_expr_target): Likewise.
29298         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29299         * postreload.c (reload_cse_simplify_operands): Likewise.
29300
29301 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29302
29303         * caller-save.c (init_caller_save): Use word_mode and
29304         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
29305         * expr.c (init_expr_target): Likewise.
29306         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29307         * postreload.c (reload_cse_regs_1): Likewise.
29308
29309 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29310
29311         * rtl.def (REG): Change format to "r".
29312         * rtl.h (rtunion): Remove rt_reg.
29313         (reg_info): New structure.
29314         (rtx_def): Add reg field to main union.
29315         (X0REGATTR): Delete.
29316         (REG_CHECK): New macro.
29317         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
29318         * rtl.c (rtx_format): Document "r".
29319         (rtx_code_size): Handle REG specially.
29320         * gengenrtl.c (special_format): Return true for formats
29321         that include 'r'.
29322         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
29323         Deal with REG_ATTRS after the field loop.
29324         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
29325         * expmed.c (init_expmed): Call gen_raw_REG instead of
29326         gen_rtx_raw_REG.
29327         * expr.c (init_expr_target): Likewise.
29328         * regcprop.c (maybe_mode_change): Likewise.
29329         * varasm.c (make_decl_rtl): Likewise.
29330         * final.c (leaf_renumber_regs_insn): Return early after
29331         handling REGs.
29332         * genemit.c (gen_exp): Handle 'r' fields.
29333         * genpeep.c (match_rtx): Likewise.
29334         * gensupport.c (subst_pattern_match): Likewise.
29335         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
29336         (alter_constraints, subst_dup): Likewise.
29337         * read-rtl.c (read_rtx_code): Likewise.
29338         * print-rtl.c (print_rtx): Likewise.
29339         * genrecog.c (find_operand, find_matching_operand): Likewise.
29340         (validate_pattern, match_pattern_2): Likewise.
29341         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
29342         (rtx_test::regno_field): New function.
29343         (operator ==, safe_to_hoist_p, transition_parameter_type)
29344         (parameter_type_string, print_parameter_value)
29345         (print_nonbool_test, print_test): Handle new enum values.
29346         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
29347         * lra-constraints.c (operands_match_p): Likewise.
29348
29349 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29350
29351         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
29352         Change type of new_regno to unsigned int.
29353         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
29354         new_regno to unsigned int.
29355         (df_ref_change_reg_with_loc): Remove old_regno parameter.
29356         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
29357         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
29358         (SET_REGNO_RAW): Add space after ",".
29359
29360 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29361
29362         * rtl.h (REG_NREGS): New macro
29363         * alias.c (record_set): Use it.
29364         * cfgcleanup.c (mark_effect): Likewise.
29365         * combine.c (likely_spilled_retval_1): Likewise.
29366         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
29367         (move_deaths, distribute_notes): Likewise.
29368         * cselib.c (cselib_record_set): Likewise.
29369         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29370         * df-scan.c (df_mark_reg): Likewise.
29371         * dse.c (look_for_hardregs): Likewise.
29372         * dwarf2out.c (reg_loc_descriptor): Likewise.
29373         (multiple_reg_loc_descriptor): Likewise.
29374         * expr.c (write_complex_part, read_complex_part): Likewise.
29375         (emit_move_complex): Likewise.
29376         * haifa-sched.c (setup_ref_regs): Likewise.
29377         * ira-lives.c (mark_hard_reg_live): Likewise.
29378         * lra.c (lra_set_insn_recog_data): Likewise.
29379         * mode-switching.c (create_pre_exit): Likewise.
29380         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
29381         (reload_combine_recognize_pattern): Likewise.
29382         (reload_combine_note_use, move2add_record_mode): Likewise.
29383         (reload_cse_move2add): Likewise.
29384         * reg-stack.c (subst_stack_regs_pat): Likewise.
29385         * regcprop.c (kill_value, copy_value): Likewise.
29386         (copyprop_hardreg_forward_1): Likewise.
29387         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
29388         (build_def_use): Likewise.
29389         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
29390         (deps_analyze_insn): Likewise.
29391         * sched-rgn.c (check_live_1, update_live_1): Likewise.
29392         * sel-sched.c (count_occurrences_equiv): Likewise.
29393         * valtrack.c (dead_debug_insert_temp): Likewise.
29394
29395 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29396
29397         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
29398         * dse.c (note_add_store): Likewise.
29399         * ira-lives.c (mark_hard_reg_dead): Likewise.
29400         * loop-invariant.c (mark_reg_store): Likewise.
29401         (mark_reg_death): Likewise.
29402         * postreload.c (reload_combine): Likewise.
29403         (reload_combine_note_store): Likewise.
29404         (reload_combine_note_use): Likewise.
29405         * recog.c (peep2_reg_dead_p): Likewise.
29406
29407 2015-05-19  Alan Modra  <amodra@gmail.com>
29408
29409         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
29410         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
29411         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
29412         unused predicates.
29413         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
29414         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
29415         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
29416         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
29417
29418 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
29419
29420         * config/mips/mips.md (JOIN_MODE): New mode iterator.
29421         (join2_load_Store<JOIN_MODE:mode>): New pattern.
29422         (join2_loadhi): Likewise.
29423         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
29424         load-load and store-stores.
29425         * config/mips/mips.opt (mload-store-pairs): New option.
29426         (TARGET_LOAD_STORE_PAIRS): New macro.
29427         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
29428         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
29429         * config/mips/mips.c (mips_load_store_bonding_p): New function.
29430
29431 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
29432
29433         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
29434         explicit swaps.
29435         * dojump.c (do_compare_rtx_and_jump): Likewise.
29436         * expmed.c (emit_store_flag_1): Likewise.
29437         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
29438         * final.c (sprint_ul): Use std::reverse for reversing a string.
29439         * fold-const.c (extract_muldiv_1): Use std::swap.
29440         * genmodes.c (emit_mode_int_n): Likewise.
29441         * ifcvt.c (dead_or_predicable): Likewise.
29442         * ira-build.c (ira_merge_live_ranges): Likewise.
29443         (swap_allocno_copy_ends_if_necessary): Likewise.
29444         * ira.c (ira_setup_alts): Likewise.
29445         * loop-iv.c (iv_analyze_expr): Likewise.
29446         (implies_p): Likewise.
29447         (canon_condition): Likewise.
29448         * lra-constraints.c (swap_operands): Likewise.
29449         * lra-lives.c (lra_merge_live_ranges): Likewise.
29450         * omega.c (swap): Remove.
29451         (bswap): Remove.
29452         (omega_unprotect_1): Use std::swap.
29453         (omega_solve_geq): Likewise.
29454         * optabs.c (expand_binop_directly): Likewise.
29455         (expand_binop): Likewise.
29456         (emit_conditional_move): Likewise.
29457         (emit_conditional_add): Likewise.
29458         * postreload.c (reload_cse_simplify_operands): Likewise.
29459         * reg-stack.c (emit_swap_insn): Likewise.
29460         (swap_to_top): Likewise.
29461         (compare_for_stack_reg): Likewise.
29462         (subst_asm_stack_regs): Likewise.
29463         * reload.c (find_reloads): Likewise.
29464         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
29465         * sel-sched.c (invoke_reorder_hooks): Likewise.
29466         (create_block_for_bookkeeping): Likewise.
29467         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
29468         (lambda_matrix_right_hermite): Use std::swap.
29469         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
29470         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29471         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
29472         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
29473         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
29474         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
29475         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
29476         * tree-vrp.c (compare_ranges): Likewise.
29477         * var-tracking.c (add_with_sets): Likewise.
29478         (vt_find_locations): Likewise.
29479
29480 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
29481
29482         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
29483         pie executables.
29484         (FBSD_ENDFILE_SPEC): Likewise.
29485         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
29486         config/freebsd-spec.h.
29487         (ENDFILE_SPEC): Likewise.
29488
29489 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
29490             Richard Henderson  <rth@redhat.com>
29491
29492         PR target/57032
29493         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
29494         Check for a memory location that is not a reference (using an AND)
29495         to an unaligned location here.
29496         * config/alpha/predicates.md (normal_memory_operand): Remove.
29497
29498 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
29499
29500         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
29501         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
29502
29503 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
29504
29505         * config/mips/mips.c (micromips_globals): New variable.
29506         (mips_set_compression_mode): Save and reinitialize target-dependent
29507         state for microMIPS.
29508
29509 2015-05-18  Martin Liska  <mliska@suse.cz>
29510
29511         * dbgcnt.def: Add new counter.
29512         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
29513
29514 2015-05-18  Martin Liska  <mliska@suse.cz>
29515
29516         * dbgcnt.def: Sort counters.
29517         * opts.c (common_handle_option): Do not compile if
29518         -fdbg-cnt-list is enabled.
29519
29520 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29521
29522         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
29523         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
29524         address operator to va_list operand.
29525         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
29526         unconditionally.
29527         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
29528         operand.
29529         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
29530         * config/s390/s390.c (s390_gimplify_va_arg): Same.
29531         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
29532
29533 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29534
29535         * tree-ssa-tail-merge.c: Fix whitespace.
29536
29537 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
29538
29539         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
29540         cortex-a17, and cortex-a17.cortex-a7.
29541
29542 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
29543
29544         PR target/54236
29545         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
29546
29547 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
29548
29549         PR target/66174
29550         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
29551         QImode inner modes for TARGET_AVX512BW.  Force mask operand
29552         to a register for AVX512F modes.
29553
29554 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29555
29556         * toplev.c (emit_debug_global_declarations): Do not output debug info
29557         when doing slim LTO objects.
29558
29559 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29560
29561         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
29562         odr_types_equivalent_p): Declare.
29563         (odr_type_p): Use gcc_checking_assert.
29564         (type_in_anonymous_namespace_p) Declare.
29565         (type_with_linkage_p): Declare.
29566         * common.opt (Wlto-type-mismatch): New warning.
29567         * ipa-devirt.c (compound_type_base): New function.
29568         (odr_or_derived_type_p): New function.
29569         (odr_types_equivalent_p): New function.
29570         (add_type_duplicate): Simplify.
29571         (type_with_linkage_p): Add hack to prevent false positives on C types
29572         (type_in_anonymous_namespace_p): Likewise.
29573         * tree.c (need_assembler_name_p): Use type_with_linkage.
29574         * tree.h (type_in_anonymous_namespace_p): Remove.
29575         * doc/invoke.texi (-Wlto-type-mismatch): Document
29576
29577 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29578
29579         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
29580         (verify_type): Verify STRING_FLAG.
29581
29582 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29583
29584         PR fortran/44054
29585         * tree-pretty-print.c (percent_K_format): Replace locus pointer
29586         with accessor function.
29587         * tree-diagnostic.c (diagnostic_report_current_function): Use
29588         diagnostic_location function.
29589         (maybe_unwind_expanded_macro_loc): Likewise.
29590         (virt_loc_aware_diagnostic_finalizer): Likewise.
29591         (default_tree_printer): Replace locus pointer with accessor function.
29592         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
29593         (diagnostic_set_info_translated): Initialize second location.
29594         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
29595         (diagnostic_show_locus): Handle two locations. Call
29596         diagnostic_print_caret_line.
29597         (diagnostic_print_caret_line): New.
29598         (default_diagnostic_starter): Use diagnostic_location function.
29599         (diagnostic_report_diagnostic): Use diagnostic_location function.
29600         (verbatim): Do not set text.locus.
29601         * diagnostic.h (struct diagnostic_info): Remove location field.
29602         (struct diagnostic_context): Make caret_chars an array of two.
29603         (diagnostic_location): New inline.
29604         (diagnostic_expand_location): Handle two locations.
29605         (diagnostic_same_line): New inline.
29606         (diagnostic_print_caret_line): Declare.
29607         (CARET_LINE_MARGIN): New constant.
29608         * pretty-print.c (pp_printf): Do not set text.locus.
29609         (pp_verbatim): Do not set text.locus.
29610         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
29611         (struct text_info): Replace locus pointer with locations
29612         array. Add accessor functions.
29613
29614 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
29615             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29616
29617         PR target/65768
29618         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
29619         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
29620          large constants in register instead of splitting them.
29621
29622 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
29623
29624         PR target/66140
29625         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
29626         replacements in memory addresses.
29627         (get_unaligned_address): Ditto.
29628
29629 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
29630
29631         * config/ft32/*: New files for FT32 port.
29632         * doc/install.texi: Add FT32 information.
29633         * doc/invoke.texi: Add FT32 information.
29634         * doc/md.texi: Add FT32 information.
29635         * doc/contrib.texi: Self added.
29636
29637 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
29638
29639         PR tree-optimization/64454
29640         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
29641         (-1 - A -> ~A): Remove unnecessary condition.
29642
29643 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
29644
29645         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
29646         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
29647         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
29648
29649 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
29650
29651         * ipa-chkp.h (chkp_wrap_function): New.
29652         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
29653         (chkp_wrap_function_name): New.
29654         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
29655         to get wrapper name.
29656         * lto-cgraph.c: Include ipa-chkp.h.
29657         (input_cgraph_1): Avoid alias chain for wrappers.
29658
29659 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
29660
29661         PR middle-end/66134
29662         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
29663         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
29664
29665 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29666
29667         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
29668         (AARCH64_FL_SLOWMUL): Delete.
29669         (AARCH64_FL_CRC): Redefine to 1<<3.
29670         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
29671
29672 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29673
29674         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
29675         casting.
29676
29677 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29678
29679         * config/alpha/alpha.md (extendqidi2): Use general_operand
29680         instead of some_operand for operand[1] predicate.
29681         (extendhidi2): Ditto.
29682         (cbranchdi4): Use general_operand instead of some_operand
29683         for operand[1] and operands[2] predicates.
29684         (cstoredi4): Ditto.
29685         * config/alpha/predicates.md (some_operand): Remove unused predicate.
29686         (some_ni_operand): Ditto.
29687
29688 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29689
29690         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
29691         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
29692         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
29693         low part of the constant using alpha_emit_set_const_1.
29694         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
29695
29696 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
29697
29698         * varasm.c (output_constant_pool_1): Pass down alignment from
29699         constant pool entry's descriptor to output_constant_pool_2.
29700         (output_object_block): Add comment prior to call to
29701         output_constant_pool_1.
29702
29703 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
29704
29705         PR rtl-optimization/65862
29706         * target.def (ira_change_pseudo_allocno_class): New hook.
29707         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
29708         value of the hook.
29709         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
29710         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
29711         hook.
29712         * ira-costs.c (find_costs_and_classes): Call the hook and change
29713         classes when it is necessary.
29714         * doc/tm.texi: Update.
29715
29716 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
29717
29718         * config/i386/i386.md (sibcall_memory): Check that register with
29719         callee address is not also used as one of the arguments, instead
29720         of checking that it is not live after the sibcall.
29721         (sibcall_pop_memory): Ditto.
29722         (sibcall_value_memory): Ditto.
29723         (sibcall_value_pop_memory): Ditto.
29724
29725 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
29726
29727         * generic-match-head.c (types_match): Handle non-types.
29728         * gimple-match-head.c (types_match): Likewise.
29729         * match.pd: Remove unnecessary TREE_TYPE for types_match.
29730
29731 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
29732
29733         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
29734         (csneg3<mode>_insn): Enable expansion of pattern.
29735
29736 2015-05-14  Nick Clifton  <nickc@redhat.com>
29737
29738         * config/rl78/rl78.c (rl78_select_section): Select the correct
29739         default section based upon the category of the decl.
29740
29741 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29742
29743         PR rtl-optimization/30967
29744         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
29745         destination mode for the cost of scc patterns.
29746
29747 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29748
29749         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
29750         using SWIM248 mode iterator.
29751         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
29752         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
29753         for operand[2] constraint.
29754         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
29755
29756 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29757
29758         PR middle-end/66133
29759         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
29760         make sure it is never noreturn, even when the task body does not
29761         return.
29762         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
29763         right before GIMPLE_OMP_RETURN.
29764         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
29765         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
29766         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
29767
29768 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29769
29770         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
29771         * tree-ssa-math-opts.c: Include params.h
29772         (pow_synth_sqrt_info): New struct.
29773         (representable_as_half_series_p): New function.
29774         (get_fn_chain): Likewise.
29775         (print_nested_fn): Likewise.
29776         (dump_fractional_sqrt_sequence): Likewise.
29777         (dump_integer_part): Likewise.
29778         (expand_pow_as_sqrts): Likewise.
29779         (gimple_expand_builtin_pow): Use above to attempt to expand
29780         pow as series of square roots.  Removed now unused variables.
29781
29782 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29783
29784         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
29785         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
29786         Remove *p0 and *p1 arguments.  Rewrite function.
29787         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
29788         (alpha_split_const_mov): Update calls to alpha_extract_integer and
29789         alpha_emit_set_long_const.
29790         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
29791         (alpha_output_mi_thunk_osf): Ditto.
29792         * config/alpha/alpha.md (movti): Do not check operands[1]
29793         for CONST_DOUBLE.
29794
29795 2015-05-13  Richard Biener  <rguenther@suse.de>
29796
29797         PR tree-optimization/66129
29798         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
29799         commutative.
29800         (vect_schedule_slp_instance): Fix typo.
29801
29802 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
29803
29804         * common.opt (fdump-internal-locations): New option.
29805         * input.c: Include diagnostic-core.h.
29806         (get_end_location): New function.
29807         (write_digit): New function.
29808         (write_digit_row): New function.
29809         (dump_location_range): New function.
29810         (dump_labelled_location_range): New function.
29811         (dump_location_info): New function.
29812         * input.h (dump_location_info): New prototype.
29813         * toplev.c (compile_file): Handle flag_dump_locations.
29814
29815 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
29816
29817         * gimple-expr.h (is_gimple_constant): Reorder.
29818         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
29819
29820 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29821
29822         * combine.c (simplify_set): When generating a CC set, if the
29823         source already is in the correct mode, do not wrap it in a
29824         compare.  Simplify the rest of that code.
29825
29826 2015-05-13  Richard Biener  <rguenther@suse.de>
29827
29828         PR tree-optimization/66123
29829         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
29830         a taken edge.
29831
29832 2015-05-13  Richard Biener  <rguenther@suse.de>
29833
29834         PR middle-end/66110
29835         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
29836         specially.
29837         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
29838
29839 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29840
29841         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
29842         * aclocal.m4: Regenerated with automake-1.11.6.
29843
29844 2015-05-13  Tom de Vries  <tom@codesourcery.com>
29845
29846         PR tree-optimization/66010
29847         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
29848         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
29849         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
29850         and rval based on do_deref.
29851
29852 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29853
29854         PR target/65103
29855         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
29856         link time constants into adress expressions and therefore set
29857         their cost to 0.
29858
29859 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29860
29861         PR target/66112
29862         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
29863         Use SWI248 iterator instead of SWI.
29864         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
29865         Use eq_attr "alternative" "0" instead of match_test in
29866         length_immediate attribute computation.
29867         (*mulvhi4, *mulvhi4_1): New define_insns.
29868
29869         PR target/66112
29870         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
29871         SIGNED to get precision of non-negative value.
29872
29873 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29874
29875         PR target/66048
29876         * function.c (diddle_return_value_1): Process bounds first.
29877         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
29878         register.
29879
29880 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29881
29882         PR rtl-optimization/64616
29883         * loop-invariant.c (can_move_invariant_reg): New.
29884         (move_invariant_reg): Call above new function to decide whether
29885         instruction can just be moved, skipping creation of temporary
29886         register.
29887
29888 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29889
29890         PR target/pr66047.c
29891         * i386.c (ix86_function_sseregparm): Only return -1 if local function
29892         with implied regparm is called from -mno-sse function.
29893         (init_cumulative_args): Output error if ix86_function_sseregparm
29894         return -1 and SSE register would be needed.
29895         (function_arg_advance_32): Likewise.
29896         (function_arg_32): Likewise.
29897         * i386.h (ix86_args): Add decl field.
29898
29899 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29900
29901         PR ipa/65873
29902         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
29903         inlines across optimization boundary.
29904
29905 2015-05-12  Jason Merrill  <jason@redhat.com>
29906
29907         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
29908         string literal and macro name.
29909
29910 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
29911
29912         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
29913         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
29914         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
29915
29916 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29917
29918         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
29919         (-Wmisleading-indentation): New option.
29920         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
29921
29922 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
29923
29924         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
29925         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
29926         (alpha_extract_integer): Ditto.
29927         (alpha_legitimate_constant_p): Ditto.
29928         (alpha_split_tmode_pair): Ditto.
29929         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
29930         (alpha_expand_mov): Ditto.
29931         (print_operand): Remove handling of 'H' modifier.
29932         <case 'm'>: Remove CONST_DOUBLE handling.
29933         (summarize_insn): Handle CONST_WIDE_INT.
29934         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
29935         (anddi3): Ditto.
29936         (movti): Handle CONST_WIDE_INT.
29937         * config/alpha/constraints.md ('H'): Remove constraint definition.
29938         ('G'): Do not match MODE_FLOAT class.
29939         * config/alpha/predicates.md (const0_operand): Also match
29940         const_wide_int.
29941         (non_add_const_operand): Ditto.
29942         (non_zero_const_operand): Ditto.
29943         (some_operand): Ditto.
29944         (input_operand): Ditto.  Handle CONST_WIDE_INT.
29945         (and_operand): Do not match const_double.
29946         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
29947
29948 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
29949
29950         PR target/65697
29951         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
29952         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
29953         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
29954         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
29955         is_mm_seq_cst, is_mm_sync): New accessor functions.
29956         * builtins.c (expand_builtin_sync_operation,
29957         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
29958         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
29959         (get_memmodel,  expand_builtin_atomic_compare_exchange,
29960         expand_builtin_atomic_load, expand_builtin_atomic_store,
29961         expand_builtin_atomic_clear): Use new accessor routines.
29962         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
29963         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
29964         (maybe_emit_sync_lock_test_and_set): Use new accessors and
29965         MEMMODEL_SYNC_ACQUIRE.
29966         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
29967         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
29968         expand_atomic_store): Use new accessors.
29969         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
29970         * tsan.c (instrument_builtin_call): Update check for memory model beyond
29971         final enum to use MEMMODEL_LAST.
29972         * c-family/c-common.c: Use new accessor for memmodel_base.
29973         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
29974         accessors.
29975         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
29976         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
29977         mem_thread_fence, *dmb): Likewise.
29978         * config/alpha/alpha.c (alpha_split_compare_and_swap,
29979         alpha_split_compare_and_swap_12): Likewise.
29980         * config/arm/arm.c (arm_expand_compare_and_swap,
29981         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
29982         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
29983         atomic_loaddi): Likewise.
29984         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
29985         Likewise.
29986         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
29987         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
29988         use new accessors.
29989         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
29990         atomic_store<mode>, atomic_compare_and_swap<mode>,
29991         atomic_exchange<mode>): Use new accessors.
29992         * config/mips/mips.c (mips_process_sync_loop): Likewise.
29993         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
29994         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
29995         rs6000_post_atomic_barrier): Add new cases.
29996         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
29997         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
29998         (atomic_load<mode>): Add new cases and use new accessors.
29999         (store_quadpti): Add new cases.
30000         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
30001         accessors.
30002         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
30003         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
30004         model, not 8.
30005
30006 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
30007
30008         * ipa-devirt.c (type_with_linkage_p): New function.
30009         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
30010         type has linkage.
30011         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
30012         (can_be_name_hashed_p): Simplify.
30013         (hash_odr_name): Check that type has linkage before checking if it is
30014         anonymous.
30015         (types_same_for_odr): Likewise.
30016         (odr_name_hasher::equal): Likewise.
30017         (odr_subtypes_equivalent_p): Likewise.
30018         (warn_types_mismatch): Likewise.
30019         (get_odr_type): Likewise.
30020         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
30021         * ipa-utils.h (odr_type_p): Move offline.
30022         * tree.c (need_assembler_name_p): Fix handling of types
30023         without linkages.
30024         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
30025
30026 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
30027
30028         * timevar.c (timevar_enable): Delete in favor of...
30029         (g_timer): New global.
30030         (struct timevar_def): Move to timevar.h inside class timer.
30031         (struct timevar_stack_def): Likewise.
30032         (timevars): Delete global in favor of field "m_timevars" within
30033         class timer in timevar.h
30034         (stack): Likewise, in favor of field "m_stack".
30035         (unused_stack_instances): Likewise, in favor of field
30036         "m_unused_stack_instances".
30037         (start_time): Likewise, in favor of field "m_start_time".
30038         (get_time): Eliminate check for timevar_enable.
30039         (timer::timer): New function, built from part of timevar_init.
30040         (timevar_init): Rewrite idempotency test from using
30041         "timevar_enable" bool to using dynamic allocation of "g_timer".
30042         Move rest of implementation into timer's constructor.
30043         (timevar_push_1): Rename to...
30044         (timer::push): ...this, adding "m_" prefixes to variables that
30045         are now fields of timer.
30046         (timevar_pop_1): Likewise, rename to...
30047         (timer::pop): ...this, and add "m_" prefixes.
30048         (timevar_start): Replace test for "timevar_enable" with one for
30049         "g_timer", and move bulk of implementation to...
30050         (timer::start): ...here, adding "m_" prefixes.
30051         (timevar_stop): Likewise, from here...
30052         (timer::stop): ...to here.
30053         (timevar_cond_start): Likewise, from here...
30054         (timer::cond_start): ...to here.
30055         (timevar_cond_stop): Likewise, from here...
30056         (timer::cond_stop): ...to here.
30057         (validate_phases): Rename to...
30058         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
30059         locals "total" and "tv" const.
30060         (timevar_print): Rename to...
30061         (timer::print): ...this, and add "m_" prefixes.  Make locals
30062         "total" and "tv" const.  Eliminate test for timevar_enable.
30063         * timevar.h (timevar_enable): Eliminate.
30064         (g_timer): New declaration.
30065         (timevar_push_1): Eliminate.
30066         (timevar_pop_1): Eliminate.
30067         (timevar_print): Eliminate.
30068         (class timer): New class.
30069         (timevar_push): Rewrite to use g_timer.
30070         (timevar_pop): Likewise.
30071         * toplev.c (toplev::~toplev): Likewise.
30072
30073 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
30074
30075         * arm-protos.h (arm_sched_autopref): Delete.
30076         (tune_params): Re-organize, use enums for flag values.
30077         (FUSE_OPS): New macro.
30078         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
30079         (ARM_PREFETCH_BENEFICIAL): Likewise.
30080         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
30081         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
30082         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
30083         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
30084         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
30085         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
30086         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
30087         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
30088         format.
30089         (arm_option_override, thumb2_reorg, arm_print_tune_info)
30090         (aarch_macro_fusion_pair_p): Update uses of current_tune.
30091         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
30092
30093 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
30094
30095         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
30096         "break".
30097
30098 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
30099             Sandra Loosemore <sandra@codesourcery.com>
30100
30101         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
30102         value.
30103         (REG_CLASS_NAMES): Add "IJMP_REGS".
30104         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
30105         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
30106         use new "c" register constraint.
30107         * config/nios2/constraint.md (c): New register constraint
30108         corresponding to IJMP_REGS.
30109
30110 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30111
30112         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
30113         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
30114         define_splits): Delete, revamp, transmogrify into ...
30115         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
30116         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
30117         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
30118         New.
30119
30120 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30121
30122         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
30123         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
30124
30125 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30126
30127         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
30128         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
30129         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
30130         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
30131         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
30132         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
30133         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
30134         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
30135         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
30136         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
30137         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
30138         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
30139         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
30140         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
30141         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
30142         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
30143         and 30 corresponding splitters): Delete.
30144
30145 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30146
30147         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
30148         zero_extract.
30149
30150 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30151
30152         * combine.c (recog_for_combine_1): New function, factored out
30153         from recog_for_combine.
30154         (change_zero_ext): New function.
30155         (recog_for_combine): If recog fails, try again with the pattern
30156         modified by change_zero_ext; if that still fails, restore the
30157         pattern.
30158
30159 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30160
30161         * combine.c (get_undo_marker): New function.
30162         (undo_to_marker): New function, largely factored out from ...
30163         (undo_all): ... this.  Adjust.
30164
30165 2015-05-12  Richard Biener  <rguenther@suse.de>
30166
30167         PR tree-optimization/66101
30168         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
30169         fixup if we turn a loop exit edge to a fallthru edge.
30170
30171 2015-05-12  Richard Biener  <rguenther@suse.de>
30172
30173         PR tree-optimization/37021
30174         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
30175         (SLP_TREE_TWO_OPERATORS): New define.
30176         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
30177         SLP_TREE_TWO_OPERATORS.
30178         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
30179         SLP node.
30180         (vect_build_slp_tree): Adjust.
30181         (vect_analyze_slp_cost_1): Likewise.
30182         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
30183         emitting two vector stmts and mixing the results.
30184
30185 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30186
30187         * call.c (print_z_candidates): Remove dead code.
30188
30189 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30190
30191         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
30192         and zEC12_simple_fp.
30193         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
30194         to 1.
30195
30196 2015-05-12  Tom de Vries  <tom@codesourcery.com>
30197
30198         PR tree-optimization/66010
30199         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
30200         ifn_va_arg.
30201         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
30202         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
30203         va_lists are passed, and remove corresponding handling.
30204         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
30205         do_deref argument to ifn_va_arg.
30206         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
30207         ifn_va_arg.
30208
30209 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30210
30211         PR target/65955
30212         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
30213         REG before taking its REGNO.
30214
30215 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30216
30217         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
30218         rsp->sign_bit_copies and rsp->nonzero_bits into ...
30219         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
30220         present to get more accurate information about the number of sign bit
30221         copies and non zero bits.
30222
30223 2015-05-12  Richard Biener  <rguenther@suse.de>
30224
30225         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
30226         do not allow unrolling.
30227
30228 2015-05-11  Richard Henderson  <rth@redhat.com>
30229
30230         * config/i386/i386-modes.def (CCP): New.
30231         * config/i386/i386.c (put_condition_code): Handle it.
30232         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
30233
30234 2015-05-11  Richard Henderson  <rth@redhat.com>
30235
30236         * target.def (md_asm_clobbers): Replace with...
30237         (md_asm_adjust): this.
30238         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
30239         (TARGET_MD_ASM_ADJUST): New.
30240         * tm.texi: Rebuild.
30241         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
30242         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
30243         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
30244
30245         * cfgexpand.c (check_operand_nalternatives): Accept vector of
30246         constraints instead of lists of outputs and inputs.
30247         (expand_asm_stmt): Save and restore input_location around the
30248         body of the function.  Move asm data into vectors instead of
30249         building tree lists.  Generate cleanup sequences as needed,
30250         rather than waiting til the end.  Use new md_asm_adjust hook.
30251
30252         * config/vxworks.c: Include vec.h before target.h.
30253         * gimple.c: Likewise.
30254         * incpath.c: Likewise.
30255         * mode-switching.c: Likewise.
30256
30257         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
30258         (cris_md_asm_adjust): this.
30259         (TARGET_MD_ASM_CLOBBERS): Remove.
30260         (TARGET_MD_ASM_ADJUST): New.
30261         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
30262         (ix86_md_asm_adjust): this.
30263         (TARGET_MD_ASM_CLOBBERS): Remove.
30264         (TARGET_MD_ASM_ADJUST): New.
30265         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
30266         (mn10300_md_asm_adjust): this.
30267         (TARGET_MD_ASM_CLOBBERS): Remove.
30268         (TARGET_MD_ASM_ADJUST): New.
30269         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
30270         (rs6000_md_asm_adjust): this.
30271         (TARGET_MD_ASM_CLOBBERS): Remove.
30272         (TARGET_MD_ASM_ADJUST): New.
30273         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
30274         (visium_md_asm_adjust): this.
30275         (TARGET_MD_ASM_CLOBBERS): Remove.
30276         (TARGET_MD_ASM_ADJUST): New.
30277
30278 2015-05-11  Richard Henderson  <rth@redhat.com>
30279
30280         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
30281         if noutputs is zero.
30282         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
30283
30284         * cfgexpand.c (expand_asm_operands): Merge into...
30285         (expand_asm_stmt): ... here.
30286
30287         * cfgexpand.c (expand_asm_operands): Don't call
30288         resolve_asm_operand_names.
30289         * stmt.c (resolve_asm_operand_names): Clarify block comment.
30290
30291 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
30292
30293         * dwarf2out.c (gen_member_die): Sanity check that we access
30294         TYPE_MAIN_VARIANT for TYPE_METHODS.
30295         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
30296         checking TYPE_METHODS.
30297         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
30298         if non-null.
30299         (build_distinct_type_copy): Clear TYPE_METHODS.
30300         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
30301         (verify_type): Allow TYPE_METHODS to be error_mark_node.
30302         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
30303
30304 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
30305
30306         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
30307         (emit_pattern_before_setloc): Likewise.
30308
30309 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30310
30311         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
30312         for define_peephole2s.
30313         (get_peephole2_pattern): New function.
30314         (main): Use it.  Call validate_pattern.
30315
30316 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30317
30318         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
30319         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
30320         (Last callee saved reg is different for AVR_TINY architecture)
30321
30322 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30323
30324         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
30325         when looking for memory references.
30326
30327 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30328
30329         PR target/65753
30330         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
30331         via function pointers.
30332
30333 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30334
30335         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
30336         indirect call by forcing address into a pseudo with -fno-plt.
30337         * common.opt (flag_plt): New option.
30338         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
30339         ([-fno-plt]): Document.
30340
30341 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
30342
30343         PR bootstrap/66105
30344         * config/rs6000/option-defaults.h: Add space between string literal
30345         and macro name.
30346
30347 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30348
30349         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
30350         accross ARM targets.
30351
30352 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30353
30354         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
30355         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
30356
30357 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30358
30359         PR rtl-optimization/66076
30360         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
30361         Don't grow the heap array if it is already big enough from a
30362         previous iteration.
30363
30364 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30365
30366         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
30367         (is_called_in_ARM_mode): Remove.
30368         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
30369         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
30370         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
30371          arm_declare_function_name.
30372
30373 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30374
30375         * config/arm/arm.c (arm_option_override): Reoganized and split into :
30376         (arm_option_params_internal); New function.
30377         (arm_option_check_internal): New function.
30378         (arm_option_override_internal): New function.
30379         (thumb_code, thumb1_code): Remove.
30380         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
30381         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
30382         (thumb_code, thumb1_code): Remove.
30383         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
30384
30385 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30386
30387         * config/alpha/alpha.c (alpha_emit_set_const_1)
30388         (alpha_emit_set_long_const, alpha_extract_integer)
30389         (alpha_legitimate_constant_p, alpha_split_const_mov)
30390         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
30391         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30392         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
30393         HOST_WIDE_INT_1U.
30394         * config/alpha/predicates.md (mode_mask_operand): Do not match
30395         const_double RTX.
30396         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30397         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
30398         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
30399         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30400         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
30401
30402 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
30403
30404         PR target/65780
30405         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
30406         default_binds_local_p_2.
30407         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
30408         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
30409
30410 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30411
30412         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
30413
30414 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30415
30416         Patch by Richard Biener
30417         * coverage.c (coverage_obj_init): Delay building of type variant
30418         until the type is finished.
30419
30420 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30421
30422         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
30423         mismatch between C and C++ type; compoare correctly ARG_TYPES
30424         for non-prototypes and output correctly parameter index for METHOD_TYPE.
30425         (odr_types_equivalent_p): Fix wording of warning about attributes;
30426         it is OK to match prototype and non-prototype.
30427
30428 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30429
30430         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
30431         TYPE_ARG_TYPES list.
30432         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
30433         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
30434
30435 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30436
30437         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
30438         * tree.h (is_lang_specific): Constify.
30439
30440 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
30441
30442         PR tree-optimization/64454
30443         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
30444         Rewrite.
30445
30446 2015-05-08  Jason Merrill  <jason@redhat.com>
30447
30448         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
30449         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
30450         config/darwin.h, config/darwin9.h, config/elfos.h,
30451         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
30452         config/microblaze/microblaze.h, config/mips/mips.h,
30453         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
30454         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
30455         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
30456         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
30457         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
30458         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
30459         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
30460         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
30461         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
30462         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
30463         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
30464         between string literal and macro name.
30465
30466 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30467
30468         * jump.c: Change argument types to rtx_insn *.
30469         * rtl.h: Adjust.
30470
30471 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30472
30473         * lra-constraints.c: Change argument type to rtx_insn *.
30474
30475 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30476
30477         * df-problems.c: Change argument type to rtx_insn *.
30478
30479 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30480
30481         * combine.c: Change argument type to rtx_insn *.
30482
30483 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30484
30485         * rtl.h: Adjust.
30486         * rtlanal.c: Change argument type to rtx_insn *.
30487
30488 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30489
30490         * sched-deps.c: Change argument types to rtx_insn *.
30491         * sched-int.h: Adjust.
30492
30493 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30494
30495         * dwarf2cfi.c: Change argument type to rtx_insn *.
30496
30497 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30498
30499         * ira.c (decrease_live_ranges_number): Changetype of local
30500         variable to rtx_insn *.
30501         * recog.c: Change argument types to rtx_insn *.
30502         * recog.h: Adjust.
30503
30504 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30505
30506         * reorg.c: Change argument types to rtx_insn *.
30507
30508 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30509
30510         * ira-color.c: Change argument types to rtx_insn *.
30511         * lra-eliminations.c: Likewise.
30512         * ira.h: Adjust.
30513
30514 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30515
30516         * gcse.c: Change argument types to rtx_insn *.
30517
30518 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30519
30520         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
30521
30522 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30523
30524         * emit-rtl.c (emit_debug_insn_before): Change argument type to
30525         rtx_insn *.
30526         * rtl.h: Adjust.
30527
30528 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30529
30530         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
30531         * rtl.h: Adjust.
30532
30533 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30534
30535         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
30536         * rtl.h: Adjust.
30537
30538 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30539
30540         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
30541         * rtl.h: Adjust.
30542
30543 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30544
30545         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
30546         * rtl.h: Adjust.
30547
30548 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30549
30550         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
30551         to rtx_insn *.
30552         * rtl.h: Adjust.
30553
30554 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30555
30556         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
30557         to rtx_insn *.
30558         * rtl.h: Likewise.
30559
30560 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30561
30562         * except.c (can_nonlocal_goto): Change type of argument to
30563         rtx_insn *.
30564         * rtl.h: Adjust.
30565
30566 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30567
30568         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
30569         * rtl.h: Adjust.
30570
30571 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30572
30573         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
30574         * cfgrtl.c (can_delete_label_p): Adjust.
30575         * rtl.h: likewise.
30576
30577 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30578
30579         * reorg.c (stop_search_p): Change argument to rtx_insn *.
30580
30581 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30582
30583         * except.c (make_reg_eh_region_note): Change argument to
30584         rtx_insn *.
30585         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
30586         * except.h: Adjust.
30587
30588 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30589
30590         * mode-switching.c (commit_mode_sets): Change type of local
30591         variable from rtx to rtx_insn *.
30592
30593 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
30594
30595         * doc/install.texi (--enable-languages): Add missing jit and lto info.
30596         Add ^ to grep command.
30597         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
30598         arg to last gimple_simplify declaration.  Add missing gimple_build
30599         declaration for built-in function case with four tree args.
30600
30601 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30602             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30603
30604         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
30605         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
30606         (GNU_USER_DYNAMIC_LINKERN32): Update.
30607
30608 2015-05-08  Richard Biener  <rguenther@suse.de>
30609
30610         PR tree-optimization/66036
30611         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30612         Handle strided group loads.
30613         (vect_verify_datarefs_alignment): Likewise.
30614         (vect_enhance_data_refs_alignment): Likewise.
30615         (vect_analyze_group_access): Likewise.
30616         (vect_analyze_data_ref_access): Likewise.
30617         (vect_analyze_data_ref_accesses): Likewise.
30618         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
30619         (vectorizable_load): Likewise.
30620
30621 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
30622
30623         * config/rs6000/rs6000.md: Require operand inequality in one
30624         of the peepholes.
30625
30626 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30627             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
30628
30629         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
30630         from (set ...).
30631         * config/rx/rx.md (movdi, movdf): Likewise.
30632         Likewise for define_peephole2s.
30633
30634 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30635
30636         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
30637         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
30638         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
30639         vtst_u64): Rewrite using gcc vector extensions.
30640
30641 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30642
30643         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
30644         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
30645
30646 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30647
30648         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
30649
30650 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30651
30652         * config/glibc-stdint.h (OPTION_MUSL): Define.
30653         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
30654         Change the definition based on OPTION_MUSL for 64 bit targets.
30655         * config/linux.h (OPTION_MUSL): Redefine.
30656         * config/alpha/linux.h (OPTION_MUSL): Redefine.
30657         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
30658         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
30659
30660 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30661             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30662
30663         * config.gcc (LIBC_MUSL): New tm_defines macro.
30664         * config/linux.h (OPTION_MUSL): Define.
30665         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
30666         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
30667         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30668         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30669         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30670         * config/linux.opt (mmusl): New option.
30671         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
30672         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30673         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30674         * configure: Regenerate.
30675
30676 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
30677             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30678
30679         PR target/48904
30680         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
30681         * config/i386/knetbsd-gnu64.h: New file.
30682
30683 2015-05-08  Marek Polacek  <polacek@redhat.com>
30684
30685         PR c/64918
30686         * doc/invoke.texi: Document -Woverride-init-side-effects.
30687
30688 2015-05-07  Marek Polacek  <polacek@redhat.com>
30689
30690         PR c/65179
30691         * doc/invoke.texi: Document -Wshift-negative-value.
30692
30693 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
30694
30695         * gcov-tool.c (do_merge): Refactore to remove int ret.
30696         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
30697         !type == FUNC to type != FUNC.
30698         * reload.h (struct target_reload): Changee to type of
30699         x_spill_indirect_levels from bool to unsigned char.
30700
30701 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
30702
30703         * rtl.h (always_void_p): New function.
30704         * gengenrtl.c (always_void_p): Likewise.
30705         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
30706         with code foo are always VOIDmode.
30707         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
30708         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
30709         compare-elim.c, config/aarch64/aarch64.c,
30710         config/aarch64/aarch64.md, config/alpha/alpha.c,
30711         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
30712         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
30713         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
30714         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
30715         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
30716         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
30717         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
30718         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
30719         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
30720         config/ia64/vect.md, config/iq2000/iq2000.c,
30721         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
30722         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
30723         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
30724         config/mep/mep.c, config/microblaze/microblaze.c,
30725         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
30726         config/mn10300/mn10300.c, config/msp430/msp430.c,
30727         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
30728         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
30729         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
30730         config/rs6000/altivec.md, config/rs6000/rs6000.c,
30731         config/rs6000/rs6000.md, config/rs6000/vector.md,
30732         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
30733         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
30734         config/sh/sh.md, config/sh/sh_treg_combine.cc,
30735         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
30736         config/spu/spu.md, config/stormy16/stormy16.c,
30737         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
30738         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
30739         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
30740         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
30741         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
30742         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
30743         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
30744         var-tracking.c: Update calls accordingly.
30745
30746 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
30747
30748         PR middle-end/192
30749         PR middle-end/54303
30750         * varasm.c (function_mergeable_rodata_prefix): New function.
30751         (mergeable_string_section): Use it.
30752         (mergeable_constant_section): Use it.
30753
30754 2015-05-07  Jeff Law  <law@redhat.com>
30755
30756         PR target/39726
30757         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30758         simplifier to narrow arithmetic.
30759         * generic-match-head.c: (types_match, single_use): New functions.
30760         * gimple-match-head.c: (types_match, single_use): New functions.
30761
30762 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
30763
30764         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
30765         rtx type.
30766
30767 2015-05-07  Richard Biener  <rguenther@suse.de>
30768
30769         PR tree-optimization/66002
30770         * passes.def: Schedule another pass_merge_phi after ifcombine, right
30771         before phiopt.
30772
30773 2015-05-07  Marek Polacek  <polacek@redhat.com>
30774             Martin Uecker  <uecker@eecs.berkeley.edu>
30775
30776         * doc/invoke.texi: Document -fsanitize=bounds-strict.
30777         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
30778         into SANITIZE_NONDEFAULT.
30779         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
30780
30781 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
30782
30783         PR target/66015
30784         * config/alpha/alpha.c (alpha_override_options_after_change): New.
30785         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
30786         (alpha_override_options): Move align_loops, align_jumps and
30787         align_functions handling into alpha_override_options_after_change.
30788
30789 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
30790             Chris Jones  <chrisj@nvidia.com>
30791             Joshua Conner  <jconner@nvidia.com>
30792
30793         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
30794         linking of crtfastmath.o.
30795         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
30796
30797 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
30798
30799         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
30800         (cstore<mode>4_unsigned_imm): New expander.
30801         (cstore<mode>4): Remove empty constraint strings.  Use the new
30802         expanders.
30803
30804 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
30805
30806         PR target/64208
30807         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
30808         alternatives.
30809
30810 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30811
30812         * config/aarch64/geniterators.sh: Use standard BRE in sed.
30813
30814 2015-05-06  Alan Modra  <amodra@gmail.com>
30815
30816         PR target/66033
30817         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
30818         (UNSPEC_NOP): Define.
30819         (reload_vsx_from_gpr<mode>): Add missing DONE.
30820         (reload_gpr_from_vsx<mode>): Likewise.
30821         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
30822         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
30823
30824 2015-05-06  Christian Bruel  <christian.bruel@st.com>
30825
30826         PR target/66015
30827         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
30828         align_jumps, align_functions into aarch64_override_options_after_change.
30829
30830 2015-05-06  Richard Biener  <rguenther@suse.de>
30831
30832         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
30833         vect_transform_slp_perm_load to check if we support a permutation
30834         for basic-block vectorization.
30835
30836 2015-05-06  Nick Clifton  <nickc@redhat.com>
30837
30838         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
30839         used, even if it is not being used as a frame pointer.
30840
30841 2015-05-05  Jason Merrill  <jason@redhat.com>
30842
30843         * dwarf2out.c (gen_member_die): Don't emit anything for an
30844         anonymous class constructor.
30845
30846 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
30847
30848         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
30849         that it reflects the block structure.
30850         (afdo_propagate_edge): Likewise.
30851         (afdo_calculate_branch_prob): Likewise.
30852         (afdo_annotate_cfg): Likewise.
30853         * cfgcleanup.c (equal_different_set_p): Likewise.
30854         (try_crossjump_to_edge): Likewise.
30855         * cgraph.c (cgraph_node::verify_node): Likewise.
30856         * cgraphunit.c (expand_all_functions): Likewise.
30857         * config/i386/i386.c (ix86_expand_copysign): Likewise.
30858         (exact_dependency_1): Likewise.
30859         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
30860         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
30861         * gensupport.c (process_define_subst): Likewise.
30862         * lto-wrapper.c (merge_and_complain): Likewise.
30863         * tree-if-conv.c (if_convertible_bb_p): Likewise.
30864         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
30865         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
30866         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
30867         * tree-vect-loop.c (vectorizable_reduction): Likewise.
30868         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
30869         * tree-vect-stmts.c (vectorizable_shift): Likewise.
30870         * tree-vrp.c (vrp_finalize): Likewise.
30871         * tree.c (variably_modified_type_p): Likewise.
30872
30873 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
30874
30875         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
30876         on darwin12 and later.
30877         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
30878         file to pass -rdynamic on darwin12 and later.
30879         * config/darwin.opt (rdynamic): Add.
30880
30881 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30882
30883         * doc/extend.texi (C Extensions): Update menu for moved Variable
30884         Attributes and Type Attributes sections.
30885
30886 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30887
30888         PR target/65990
30889         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
30890         if rep_8byte stringop strategy was specified for 32-bit target.
30891
30892 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
30893
30894         PR target/65915
30895         * config/i386/i386.md (vector convert to float spltiter): Check for
30896         xmm16+, when splitting scalar float conversion.
30897         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
30898
30899 2015-05-05  Nick Clifton  <nickc@redhat.com>
30900
30901         * config/msp430/msp430-opts.h (enum msp430_regions): New.
30902         * config/msp430/msp430.c (msp430_override_options): Complain if
30903         -mcode-region or -mdata-region is used on a non MSP430X.
30904         (msp430_section_attr): New function.  Checks lower, upper and
30905         either attributes.
30906         (msp430_attribute_table): Add lower, upper and either.
30907         (gen_prefix): New function.  Generates a prefix for a section
30908         name.
30909         (msp430_select_section): New function - handles the choice of
30910         section for an object.  Takes into account memory region
30911         attributes and options.
30912         (msp430_function_section): Use gen_prefix.
30913         (TARGET_SECTION_TYPE_FLAGS): Define.
30914         (msp430_section_type_flags): New function.
30915         (TARGET_ASM_UNIQUE_SECTION): Define.
30916         (msp430_unique_section): New function.
30917         (msp430_output_aligned_decl_common): New function.
30918         (msp430_do_not_relax_short_jumps): New function.
30919         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
30920         Define.
30921         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
30922         * config/msp430/msp430-protos.h
30923         (msp430_do_not_relax_short_jumps): New prototype.
30924         (msp430_output_aligned_decl_common): New prototype.
30925         * config/msp430/msp430.md (length): New attribute.
30926         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
30927         then use a long code sequence for short jumps.
30928         * config/msp430/msp430.opt (mcode-region): New.
30929         (mdata-region): New.
30930         * doc/invoke.texi: Document new options.
30931         * doc/extend.texi: Document new attributes.
30932
30933 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30934
30935         * config/aarch64-protos.h (struct cpu_branch_cost): New.
30936         (tune_params): Add field branch_costs.
30937         (aarch64_branch_cost): Declare.
30938         * config/aarch64.c (generic_branch_cost): New.
30939         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
30940         (cortexa53_tunings): Likewise.
30941         (cortexa57_tunings): Likewise.
30942         (thunderx_tunings): Likewise.
30943         (xgene1_tunings): Likewise.
30944         (aarch64_branch_cost): Define.
30945         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
30946
30947 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30948
30949         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
30950         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
30951         * config/i386/i386.md: Ditto.
30952         * config/i386/winnt.c: Ditto.
30953
30954 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30955
30956         * doc/extend.texi (__atomic Builtins): Move implementation details
30957         to the end of the description, rewrite opening paragraphs, state
30958         difference with __sync builtins, state C11/C++11 assumptions,
30959         weaken itemized descriptions, add explanation of memory model
30960         behaviour, expand description of compare-exchange, simplify text.
30961
30962 2015-05-05  Renlin Li  <renlin.li@arm.com>
30963
30964         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
30965
30966 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
30967
30968         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
30969         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30970         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
30971         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30972         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
30973         * configure: Regenerate.
30974         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
30975         * doc/install.texi (aarch64*-*-*): Document new
30976         --enable-fix-cortex-a53-843419 option.
30977         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
30978         and -mno-fix-cortex-a53-843419 options.
30979
30980 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30981
30982         PR target/65871
30983         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
30984
30985 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
30986
30987         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
30988         fix overactive TYPE_MIN_VALUE check and add FIXME for type
30989         compatibility problems.
30990
30991 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30992
30993         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
30994         constraints.
30995         (cbranchsi4_reg): New.
30996         * config/microblaze/microblaze.c
30997         (microblaze_expand_conditional_branch_reg): New.
30998         * config/microblaze/microblaze-protos.h
30999         (microblaze_expand_conditional_branch_reg): New prototype.
31000
31001 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
31002
31003         * config/microblaze/microblaze.md (peephole2): New.
31004
31005 2015-05-04  Jeff Law  <law@redhat.com>
31006
31007         Revert:
31008         2015-05-04  Jeff Law  <law@redhat.com>
31009
31010         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
31011         simplifier to narrow arithmetic.
31012         * generic-match-head.c: (types_match, single_use): New functions.
31013         * gimple-match-head.c: (types_match, single_use): New functions.
31014
31015 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31016
31017         PR target/65987
31018         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
31019         (split_branches): Likewise.
31020
31021 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
31022
31023         * common.opt (fdelete-null-pointer-checks): Init to -1.
31024         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
31025         override flag_delete_null_pointer_checks default.
31026         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
31027         behavior re address zero.  Better document target-specific behavior.
31028         (-fisolate-errneous-paths-dereference): Mention relationship to
31029         -fdelete-null-pointer-checks.
31030
31031 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
31032
31033         PR tree-optimization/65984
31034         * ubsan.c: Include tree-cfg.h.
31035         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
31036         stmt_could_throw_p test, rename can_throw variable to ends_bb.
31037
31038 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
31039
31040         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
31041         to CONST_DOUBLE_P predicate.
31042         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
31043         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
31044         allow only operands that satisfy standard_sse_constant_p predicate.
31045         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
31046         to CONST_DOUBLE_P predicate.
31047
31048 2015-05-04  Jeff Law  <law@redhat.com>
31049
31050         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
31051         simplifier to narrow arithmetic.
31052         * generic-match-head.c: (types_match, single_use): New functions.
31053         * gimple-match-head.c: (types_match, single_use): New functions.
31054
31055 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
31056
31057         * config/arm/arm.c: Restore bootstrap.
31058
31059 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
31060
31061         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
31062         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
31063         as CONST_WIDE_INT, not CONST_DOUBLE.
31064         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
31065         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
31066         (ix86_find_base_term): Do not check for CONST_DOUBLE.
31067         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
31068         (ix86_build_signbit_mask): Rewrite using wide ints.
31069         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
31070         (ix86_rtx_costs): Handle CONST_WIDE_INT.
31071         (find_constant): Ditto.
31072         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
31073         using gen_int_mode.
31074         * config/i386/predicates.md (x86_64_immediate_operand)
31075         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
31076         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
31077         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
31078         (const0_operand): Also match const_wide_int.
31079         (constm1_operand): Ditto.
31080         (const1_operand): Ditto.
31081
31082 2015-05-04  Richard Biener  <rguenther@suse.de>
31083
31084         PR tree-optimization/65965
31085         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
31086         store groups at gaps.
31087
31088 2015-05-04  Richard Biener  <rguenther@suse.de>
31089
31090         PR tree-optimization/65935
31091         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
31092         then make sure to apply that swapping to the IL.
31093
31094 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
31095
31096         * Makefile.in (PATCHLEVEL_c): New variable.
31097         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
31098         expand the same way as if DEVPHASE_c was non-empty.
31099
31100 2015-05-04  Kai Tietz  <ktietz@redhat.com>
31101
31102         PR target/65559
31103         * lto-wrapper.c (run_gcc): Open filename
31104         in binary-mode.
31105
31106 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
31107
31108         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
31109         sections up in file, to immediately after the Function Attributes
31110         section.
31111
31112 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
31113
31114         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
31115
31116 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31117
31118         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
31119         (insert_partition_copy_on_edge): Adjust.
31120         (insert_rtx_to_part_on_edge): Likewise.
31121         (insert_part_to_rtx_on_edge): Likewise.
31122
31123 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31124
31125         * function.c (set_return_jump_label): Change type of argument to
31126         rtx_insn *.
31127         * function.h (set_return_jump_label): Adjust.
31128
31129 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31130
31131         * reload.h (struct reg_equivs_t): Change type of init to
31132         rtx_insn *.
31133         * ira.c (fix_reg_equiv_init): Adjust.
31134         * reload1.c (eliminate_regs_1): Likewise.
31135         (init_eliminable_invariants): Likewise.
31136
31137 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31138
31139         * cselib.c (fp_setter_insn): Take a rtx_insn *.
31140         * cselib.h (fp_setter_insn): Adjust.
31141
31142 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31143
31144         * recog.c (struct validate_replace_src_data): Change type of
31145         insn field to rtx_insn *.
31146         (validate_replace_src_group): Change type of argument to rtx_insn *.
31147         * recog.h (validate_replace_src_group): Adjust.
31148
31149 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31150
31151         * haifa-sched.c: Change the type of some variables to rtx_insn *.
31152         * sched-deps.c: Likewise.
31153         * sched-int.h: Likewise.
31154         * sched-rgn.c: Likewise.
31155         * sel-sched.c: Likewise.
31156
31157 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31158
31159         to rtx_insn *.
31160         * config/i386/i386.c: Change the type of some arguments to
31161         rtx_insn *.
31162         * config/arm/arm.c: Likewise.
31163
31164 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31165
31166         * lra-constraints.c: Change type of some arguments to rtx_insn *.
31167
31168 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31169
31170         * regcprop.c (kill_autoinc_value): Change type of argument to
31171         rtx_insn *.
31172
31173 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31174
31175         * genrecog.c (print_subroutine): Adjust.
31176         * recog.c (get_bool_attr_mask_uncached): Likewise.
31177         * recog.h (struct recog_data_d): Change the type of insn to
31178         rtx_insn *.
31179
31180 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31181
31182         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
31183
31184 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31185
31186         * df-problems.c (df_set_note): Change type of argument to
31187         rtx_insn *.
31188
31189 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31190
31191         * builtins.c (expand_builtin_trap): Change type of local
31192         variable to rtx_insn *.
31193         (add_sched_insns_for_speculation): Likewise.
31194         (ix86_emit_save_regs): Likewise.
31195         (get_scratch_register_on_entry): Likewise.
31196         (ix86_emit_restore_reg_using_pop): Likewise.
31197         (ix86_emit_leave): Likewise.
31198         (ix86_emit_restore_regs_using_mov): Likewise.
31199         (ix86_expand_epilogue): Likewise.
31200         Likewise.
31201         (rl78_alloc_physical_registers_umul): Likewise.
31202         * cselib.c (discard_useless_locs): Likewise.
31203         (cselib_invalidate_regno): Likewise.
31204         (cselib_invalidate_mem): Likewise.
31205         * function.c (expand_function_start): Likewise.
31206         (emit_use_return_register_into_block): Likewise.
31207         * gcse.c: Likewise.
31208         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
31209         * ifcvt.c (noce_get_alt_condition): Likewise.
31210         * loop-doloop.c (doloop_condition_get): Likewise.
31211         * lra-constraints.c (inherit_in_ebb): Likewise.
31212         * modulo-sched.c (sms_schedule_by_order): Likewise.
31213         * recog.c (next_insn_tests_no_inequality): Likewise.
31214         * reorg.c (emit_delay_sequence): Likewise.
31215         (update_reg_dead_notes): Likewise.
31216         (fix_reg_dead_note): Likewise.
31217         (fill_slots_from_thread): Likewise.
31218         (delete_computation): Likewise.
31219
31220 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
31221
31222         * doc/extend.texi (Variable Attributes): Add menu and proper
31223         @nodes to subsections.  Move Microsoft Windows attributes to
31224         their own subsection.
31225         (Type Attributes): Reorganize introduction to remove duplicate
31226         list of attributes.  Add menu and proper @nodes to subsections.
31227         Alphabetize the main table of common attributes.
31228
31229 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
31230
31231         * match.pd: New simplification patterns.
31232         (x + (x & 1))  -> ((x + 1) & ~1)
31233         (x & ~(x & y)) -> ((x & ~y))
31234         (x | ~(x | y)) -> ((x | ~y))
31235
31236 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31237
31238         * target.def (attribute_table): Mention that struct attribute_spec
31239         is defined in tree-core.h rather than tree.h
31240         * doc/tm.texi: Regenerate.
31241
31242 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
31243
31244         * genrecog.c (test): Rename to rtx_test.  Update rest of file
31245         accordingly.
31246
31247 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
31248
31249         PR translation/65959
31250         * params.h (DEFPARAM): Rename msgid to nocmsgid.
31251
31252 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31253
31254         * config/aarch64/aarch64-protos.h (tune_params):
31255         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
31256         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
31257         Return value depending on target.
31258         (generic_tunings): Initialize new target settings.
31259         (cortexa53_tunings): Likewise.
31260         (cortexa57_tunings): Likewise.
31261         (thunderx_tunings): Likewise.
31262         (xgene1_tunings): Likewise.
31263
31264 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31265
31266         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
31267         Make Cortex-A53 shift costs more accurate.
31268
31269 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31270
31271         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
31272         UNSIGNED_FLOAT.
31273
31274 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31275
31276         * config/aarch64/aarch64.c (aarch64_rtx_costs):
31277         Calculate cost of op0 and op1 in PLUS and MINUS cases.
31278
31279 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31280
31281         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
31282         Add cost of op0 in the compare-with-fpzero case.
31283
31284 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
31285
31286         * builtins.c (fold_builtin_1): Remove spurious second
31287         semicolon.
31288         * cgraph.h (symtab_node::get_availability): Likewise.
31289         * opts.c (common_handle_option): Remove spurious second semicolon.
31290         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
31291         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
31292
31293 2015-04-30  Caroline Tice  <cmtice@google.com>
31294
31295         PR gcov-profile/65929
31296         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
31297         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
31298         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
31299         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
31300         * doc/tm.texi: Regenerate.
31301         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
31302         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
31303         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
31304         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
31305
31306 2015-04-30  Marek Polacek  <polacek@redhat.com>
31307
31308         * varasm.c (handle_cache_entry): Fix logic.
31309
31310 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31311
31312         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
31313         (*extrsi5_insn_uxtw_alt): Likewise.
31314         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
31315         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
31316         operations.
31317
31318 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31319
31320         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
31321         fabd in ABS case.
31322
31323 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31324
31325         * config/aarch64/aarch64.md
31326         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
31327         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
31328         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
31329         appropriately.  Handle alternative EON form.
31330
31331 2015-04-30  Renlin Li  <renlin.li@arm.com>
31332
31333         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
31334         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
31335
31336 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31337
31338         PR ipa/65873
31339         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
31340         -fstrict-aliasing boundaries.
31341
31342 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31343
31344         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
31345         and [SU]MNEGL patterns.
31346
31347 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31348
31349         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
31350         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
31351         combined arithmetic-shift ops.  Properly handle all shift and extend
31352         operations that can occur in combination with PLUS/MINUS.
31353         Rename maybe_fma to compound_p.
31354         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
31355         arithmetic and shift operations.
31356
31357 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31358
31359         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
31360         rather than arith_shift cost when costing ADD/MINUS of an
31361         extended value.
31362
31363 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31364
31365         PR lto/65948
31366         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
31367         to itself.
31368
31369 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
31370
31371         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
31372         are for the same position.
31373
31374 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
31375
31376         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
31377         vectorize_loops.
31378         (vectorize_loops): Use it.
31379
31380 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31381
31382         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
31383         for aggregate types.
31384         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
31385         type to be non_ODR.
31386         * tree.c (need_assembler_name_p): Compute mangled name for
31387         non-fundamental types and integer types.
31388
31389 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
31390
31391         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
31392         manual swaps.
31393         * expr.c (expand_expr_real_2): Likewise.
31394
31395 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31396
31397         * tree.c (build_common_builtin_nodes): Do not build
31398         __builtin_alloca_with_align as equivalent of library alloca.
31399
31400 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31401
31402         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
31403         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
31404         bugus variants.
31405         * tree.c: Include print-tree.h and ipa-utils.h
31406         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
31407         (free_lang_data_in_cgraph): Call verify_type.
31408         (verify_type_variant): New function.
31409         (verify_type): New function.
31410         * tree.h (verify_type): Declare.
31411
31412 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
31413
31414         * config/mips/mips-cpus.def: (mips4): Change default processor
31415         from PROCESSOR_R8000 to PROCESSOR_R10000.
31416
31417 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
31418
31419         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
31420         la/jalr instead of jal.
31421
31422 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
31423
31424         PR target/65871
31425         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
31426         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
31427         (setcc+movzbl peephole2): Check also clobbered reg.
31428         (setcc+andl peephole2): Ditto.
31429
31430 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31431
31432         PR libgomp/65099
31433         * config/nvptx/mkoffload.c (target_ilp32): New variable.
31434         (main): Set it depending on "-foffload-abi=[...]".
31435         (compile_native, main): Use it to pass "-m32" or "-m64" to the
31436         compiler.
31437
31438 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31439
31440         PR target/65770
31441         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
31442         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
31443         Flip lane index back at assembly time for bigendian.
31444
31445 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31446
31447         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
31448         * gimplify.c (gimplify_omp_workshare): Use it.
31449
31450 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31451
31452         * Makefile.in (build/genrecog.o): Depend on inchash.h.
31453         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
31454         build/inchash.o
31455         * genrecog.c: Rewrite most of the code except for the third page.
31456
31457 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31458
31459         * inchash.h, inchash.c: Include bconfig.h for build objects.
31460         * Makefile.in (build/inchash.o): New rule.
31461
31462 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
31463
31464         PR target/65924
31465         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
31466         number in type attribute expression.
31467
31468 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31469
31470         * loop-iv.c (canon_condition): Generalize to all types of integer
31471         constant.
31472
31473 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
31474
31475         * gimple-walk.c: Prune duplicate or unneeded includes.
31476         (walk_gimple_asm): Only call parse_input_constraint or
31477         parse_output_constraint if their findings are used.
31478         Honour parse_input_constraint and parse_output_constraint
31479         result.
31480
31481 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31482
31483         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
31484
31485 2015-04-29  Tom de Vries  <tom@codesourcery.com>
31486
31487         PR tree-optimization/65893
31488         * passes.def (pass_all_optimizations): Move pass_stdarg to after
31489         pass_dce.
31490
31491 2015-04-29  Richard Biener  <rguenther@suse.de>
31492
31493         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
31494         compute GROUP_SIZE for basic-block SLP.
31495         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
31496         take into account gaps.
31497         (vect_get_mask_element): Properly reject references to previous
31498         vectors.
31499         (vect_transform_slp_perm_load): Likewise.
31500
31501 2015-04-29  Christian Bruel  <christian.bruel@st.com>
31502
31503         PR target/64835
31504         * config/i386/i386.c (ix86_default_align): New function.
31505         (ix86_override_options_after_change): Call ix86_default_align.
31506         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
31507         (ix86_override_options_after_change): New function.
31508
31509 2015-04-28  Jeff Law  <law@redhat.com>
31510
31511         * tree-ssa-dom.c (record_equality); Fix comment typos.
31512
31513 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31514
31515         PR tree-optimization/65887
31516         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
31517
31518 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
31519
31520         * doc/extend.texi (Declaring Attributes of Functions): Split into
31521         subsections by target.  Alphabetize the table of common attributes.
31522         Rewrite some of the introductory text to reflect the new structure.
31523         Update some cross-references to point to the new subsections.
31524         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
31525         duplicate copies in the discussion of function, label, and type
31526         attributes.
31527
31528 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
31529
31530         PR bootstrap/65910
31531         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
31532
31533 2015-04-28  Jason Merrill  <jason@redhat.com>
31534
31535         PR c++/65734
31536         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
31537         (finalize_type_size): Respect TYPE_USER_ALIGN.
31538         (layout_type) [ARRAY_TYPE]: Likewise.
31539
31540 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
31541
31542         * config/arm/arm.md (*arm_movt): Fix type attribute.
31543         (*cmpsi_shiftsi): Likewise.
31544         (*cmpsi_shiftsi_swp): Likewise.
31545         (*movsicc_insn): Likewise.
31546         (*cond_move): Likewise.
31547         (*if_plus_move): Likewise.
31548         (*if_move_plus): Likewise.
31549         (*if_arith_move): Likewise.
31550         (*if_move_arith): Likewise.
31551         (*if_shift_move): Likewise.
31552         (*if_move_shift): Likewise.
31553         (*arm_movtas_ze): Likewise.
31554         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
31555         redundancy and type attribute.
31556         (*thumb2_movsi_insn): Fix type attribute.
31557         (*thumb2_addsi_short): Likewise.
31558         (thumb2_addsi3_compare0): Likewise.
31559         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
31560         attributes accordingly.
31561
31562 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
31563
31564         PR other/65911
31565         * function.c (pad_to_arg_alignment): Add parentheses.
31566
31567 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
31568
31569         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
31570         libgcc/config/frv/elf-lib.h.
31571
31572 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31573
31574         * tree-call-cdce.c: Fix example in header comment.
31575
31576 2015-04-28  Richard Biener  <rguenther@suse.de>
31577
31578         PR tree-optimization/62283
31579         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
31580         fails fatally and we are vectorizing a basic-block simply
31581         cause the child to be constructed piecewise.
31582         (vect_analyze_slp_cost_1): Adjust.
31583         (vect_detect_hybrid_slp_stmts): Likewise.
31584         (vect_bb_slp_scalar_cost): Likewise.
31585         (vect_get_constant_vectors): For piecewise constructed
31586         constants place them after the last def.
31587         (vect_get_slp_defs): Adjust.
31588         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
31589         externals for basic-block vectorization.
31590
31591 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31592
31593         PR target/63503
31594         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
31595         aarch64-*-*.
31596         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
31597         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
31598         (AARCH64_TUNE_FMA_STEERING): Likewise.
31599         * config/aarch64/aarch64-cores.def: Set
31600         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
31601         FMUL/FMADD instructions.
31602         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
31603         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
31604         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
31605         * config/aarch64/cortex-a57-fma-steering.h: New file.
31606         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
31607
31608 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
31609
31610         * gensupport.c (std_preds): Add missing codes to address_operand entry.
31611
31612 2015-04-28  Richard Biener  <rguenther@suse.de>
31613
31614         PR tree-optimization/65851
31615         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
31616         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
31617         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
31618         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
31619         (ccp_visit_phi_node): Adjust.
31620         (evaluate_stmt): For simplifications to SSA names return its
31621         lattice value if that isn't VARYING.  Return immediately when
31622         simplified to a constant.
31623         (visit_assignment): Adjust.
31624         (ccp_visit_stmt): Likewise.
31625
31626 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31627
31628         PR tree-optimization/65818
31629         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
31630         evaluated.
31631
31632 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31633
31634         * calls.c (save_fixed_argument_area): Don't check
31635         ARGS_GROW_DOWNWARD with the preprocessor.
31636         (restore_fixed_argument_area): Likewise.
31637         (mem_overlaps_already_clobbered_arg_p): Likewise.
31638         (check_sibcall_argument_overlap): Likewise.
31639         (expand_call): Likewise.
31640         (emit_library_call_value_1): Likewise.
31641         (store_one_arg): Likewise.
31642         * function.c (assign_parms): Likewise.
31643         (locate_and_pad_parm): Likewise.
31644         (pad_to_arg_alignment): Likewise.
31645         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31646
31647 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31648
31649         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
31650         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
31651         * calls.c (save_fixed_argument_area): Don't chekc if
31652         ARGS_GROW_DOWNWARD is defined.
31653         (restore_fixed_argument_area): Likewise.
31654         (mem_overlaps_already_clobbered_arg_p): Likewise.
31655         (check_sibcall_argument_overlap): Likewise.
31656         (expand_call): Likewise.
31657         (emit_library_call_value_1): Likewise.
31658         (store_one_arg): Likewise.
31659         * function.c (assign_parms): Likewise.
31660         (locate_and_pad_parm): Likewise.
31661         (pad_to_arg_alignment): Likewise.
31662         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31663
31664 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31665
31666         * defaults.h (gen_epilogue): New function.
31667         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
31668         defined.
31669         * cfgrtl.c (cfg_layout_finalize): Likewise.
31670         * df-scan.c: Likewise.
31671         * function.c (thread_prologue_and_epilogue_insns): Likewise.
31672         (reposition_prologue_and_epilogue_notes): Likewise.
31673         * reorg.c (find_end_label): Likewise.
31674         * toplev.c: Likewise.
31675
31676 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31677
31678         * bb-reorder.c (HAVE_return): Don't check if its undefined.
31679         * defaults.h (gen_simple_return): New function.
31680         (gen_simple_return): Likewise.
31681         (HAVE_return): Add default definition to false.
31682         (HAVE_simple_return): Likewise.
31683         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
31684         HAVE_return and HAVE_simple_return are defined.
31685         * function.c (gen_return_pattern): Likewise.
31686         (convert_jumps_to_returns): Likewise.
31687         (thread_prologue_and_epilogue_insns): Likewise.
31688         * reorg.c (find_end_label): Likewise.
31689         (dbr_schedule): Likewise.
31690         * shrink-wrap.c: Likewise.
31691         * shrink-wrap.h: Likewise.
31692
31693 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31694
31695         * defaults.h (EPILOGUE_USES): Add default definition of false.
31696         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
31697         * resource.c (init_resource_info): Likewise.
31698
31699 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31700
31701         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
31702         to false.
31703         * dwarf2out.c (field_byte_offset): REmove check if
31704         PCC_BITFIELD_TYPE_MATTERS is defined.
31705         * stor-layout.c (layout_decl): Likewise.
31706         (update_alignment_for_field): Likewise.
31707         (place_field): Likewise.
31708
31709 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31710
31711         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
31712         true.
31713         * regrename.c (check_new_reg_p): Remove check if
31714         HARD_REGNO_RENAME_OK is defined.
31715         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
31716
31717 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31718
31719         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
31720         * cse.c (fold_rtx): Likewise.
31721         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
31722         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
31723         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
31724         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
31725         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
31726         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
31727         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
31728         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
31729         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
31730         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
31731         * Likewise.
31732         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
31733         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
31734         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
31735         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
31736         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
31737         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
31738         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
31739         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
31740         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
31741         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
31742         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
31743         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
31744         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
31745         * doc/tm.texi: Regenerate.
31746         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
31747         either true or false.
31748
31749 2015-04-27  Jeff Law  <law@redhat.com>
31750
31751         PR tree-optimization/65217
31752         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
31753         of them has a single use, make sure it is the LHS of the implied
31754         copy.
31755
31756 2015-04-28  Alan Modra  <amodra@gmail.com>
31757
31758         PR target/65810
31759         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
31760         (offsettable_ok_by_alignment): Use minimum of decl and toc
31761         pointer alignment.  Replace dead code with assertion.
31762         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
31763         case if size exceeds toc pointer alignment.
31764         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
31765         (rs6000_emit_move): Likewise.
31766         * configure.ac: Add linker toc pointer alignment check.
31767         * configure: Regenerate.
31768         * config.in: Regenerate.
31769
31770 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
31771
31772         * config.gcc: Add h8300-*-linux.
31773         * config/h8300/linux.h: New.
31774         * config/h8300/t-linux: New.
31775         * config/h8300/h8300.c (h8300_option_override): Normal mode
31776         is not supported for h8300-*-linux.
31777         (h8300_file_start): Target priority change.
31778         (get_shift_alg): Likewise.
31779         (h8300_shift_need_scratch_p): Likewise.
31780         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
31781         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
31782
31783 2015-04-27  Caroline Tice  <cmtice@google.com>
31784
31785         * final.c (final_scan_insn):  Output cold_function_name as function
31786         type.
31787         * varasm.c (cold_function_name):  Make global.
31788         (assemble_start_function):  Re-set cold_function_name.
31789         (assemble_end_function): Output cold partition size.
31790         * varasm.h (cold_function_name):  Declare global.
31791
31792 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
31793
31794         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
31795         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
31796         constraint.
31797         (*movxi_internal_avx512f): Ditto.
31798         (define_split): Check for xmm16+, when splitting scalar float_extend.
31799         (*extendsfdf2_mixed): Use "v" constraint.
31800         (define_split): Check for xmm16+, when splitting scalar float_truncate.
31801         (*truncdfsf_fast_sse): Use "v" constraint.
31802         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
31803         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
31804         (define_peephole2): Check for xmm16+, when converting scalar
31805         float_truncate.
31806         (define_peephole2): Check for xmm16+, when converting scalar
31807         float_extend.
31808         (*fop_<mode>_comm_mixed): Use "v" constraint.
31809         (*fop_<mode>_comm_sse): Ditto.
31810         (*fop_<mode>_1_mixed): Ditto.
31811         (*sqrt<mode>2_sse): Ditto.
31812         (*ieee_s<ieee_maxmin><mode>3): Ditto.
31813
31814 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31815
31816         * combine.c (simplify_if_then_else): Use std::swap instead
31817         of manually swapping.
31818         (known_cond): Likewise.
31819         (simplify_comparison): Likewise.
31820
31821 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
31822
31823         PR target/64579
31824         * config/rs6000/htm.md: Remove all define_expands.
31825         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
31826         UNSPECV_HTM_TABORTWCI): Remove.
31827         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
31828         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
31829         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
31830         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
31831         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
31832         tabortwci_internal): Remove define_insns.
31833         (tabort<wd>c, tabort<wd>ci): New define_insns.
31834         (tabort): Use gpc_reg_operand.
31835         (tcheck): Remove operand.
31836         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
31837         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
31838         expected value.
31839         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
31840         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
31841         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
31842         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
31843         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
31844         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
31845         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
31846         (tcheck): Remove builtin argument.
31847         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
31848         not TARGET_64BIT.
31849         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
31850         tabortdc and tabortdci builtins when not in 64-bit mode.
31851         Modify code to handle the loss of the HTM define_expands.
31852         Emit code to copy the CR register to TARGET.
31853         (htm_init_builtins): Modify code to handle the loss of the HTM
31854         define_expands.
31855         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
31856         (RS6000_BTC_64BIT): Likewise.
31857         (RS6000_BTC_CR): New macro.
31858         * doc/extend.texi: Update documentation for htm builtins.
31859
31860 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31861
31862         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
31863         of manually swapping.
31864         (simplify_associative_operation): Likewise.
31865         (simplify_binary_operation): Likewise.
31866         (simplify_plus_minus): Likewise.
31867         (simplify_relational_operation): Likewise.
31868         (simplify_ternary_operation): Likewise.
31869
31870 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31871
31872         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
31873         (xs_hi_nonmemory_operand): Remove error.
31874         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
31875         general_operand rather than xs_hi_general_operand.
31876
31877 2015-04-27  Richard Biener  <rguenther@suse.de>
31878
31879         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
31880         (record_equivalences_from_stmt): Valueize rhs.
31881         (record_equality): Canonicalize x and y order via
31882         tree_swap_operands_p.  Do not swap operands for same loop depth.
31883
31884 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
31885
31886         PR target/65296
31887         PR target/65895
31888         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
31889         Add hint how to use own spec file.
31890
31891 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
31892
31893         PR tree-optimization/65875
31894         * tree-vrp.c (update_value_range): If in is_new case setting
31895         old_vr to VR_VARYING, also set new_vr to it.  Remove
31896         old_vr->type == VR_VARYING test.
31897         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
31898         SSA_PROP_INTERESTING if update_value_range returned true,
31899         but new range is VR_VARYING.
31900
31901 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31902
31903         * combine.c (sign_extend_short_imm): New.
31904         (set_nonzero_bits_and_sign_copies): Use above new function for sign
31905         extension of src short immediate.
31906         (reg_nonzero_bits_for_combine): Likewise for tem.
31907
31908 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31909
31910         * stor-layout.c (self_referential_component_ref_p): New predicate.
31911         (copy_self_referential_tree_r): Use it.
31912         (self_referential_size): Punt for simple operations directly involving
31913         self-referential component references.
31914         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
31915
31916 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31917
31918         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
31919
31920 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31921
31922         * vec.h (vec): Make splice arguments const.  Update definitions
31923         accordingly.
31924
31925 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
31926
31927         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
31928         alternatives.
31929
31930 2015-04-26  Tom de Vries  <tom@codesourcery.com>
31931
31932         PR tree-optimization/65826
31933         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
31934
31935 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
31936
31937         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
31938         (*madd3<mode>): Ditto.
31939         (*msub4<mode>): Ditto.
31940         (*msub3<mode>): Ditto.
31941         (*nmadd4<mode>): Ditto.
31942         (*nmadd3<mode>): Ditto.
31943         (*nmadd4<mode>_fastmath): Ditto.
31944         (*nmadd3<mode>_fastmath): Ditto.
31945         (*nmsub4<mode>): Ditto.
31946         (*nmsub3<mode>): Ditto.
31947         (*nmsub4<mode>_fastmath): Ditto.
31948         (*nmsub3<mode>_fastmath): Ditto.
31949
31950 2015-04-24  Jason Merrill  <jason@redhat.com>
31951
31952         PR c++/50800
31953         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
31954         down when building TYPE_CANONICAL.
31955         (build_pointer_type_for_mode): Likewise.
31956
31957 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
31958
31959         * genrecog.c (validate_pattern): Check matching constraint refers
31960         to a lower numbered operand.
31961
31962 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31963
31964         PR target/65849
31965         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
31966         save to independent variables use the Save attribute.  This will
31967         allow these options to be modified with the #pragma/attribute
31968         target support.
31969         (-mallow-movmisalign): Likewise.
31970         (-mallow-df-permute): Likewise.
31971         (-msched-groups): Likewise.
31972         (-malways-hint): Likewise.
31973         (-malign-branch-targets): Likewise.
31974         (-mvectorize-builtins): Likewise.
31975         (-msave-toc-indirect): Likewise.
31976
31977         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
31978         can be set via the #pragma/attribute target support.
31979         (rs6000_opt_vars): Likewise.
31980         (rs6000_inner_target_options): If VSX was set, also set
31981         -mno-avoid-indexed-addresses.
31982
31983 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31984
31985         * config/arm/iterators.md (shiftable_ops): Rename to...
31986         (SHIFTABLE_OPS): ... This.  Update use in comments.
31987         (ior_xor): Rename to...
31988         (IOR_XOR): ... This.
31989         (vqh_ops): Rename to...
31990         (VQH_OPS): ... This.
31991         (vqhs_ops): Rename to...
31992         (VQHS_OPS): ... This.
31993         (rshifts): Rename to...
31994         (RSHIFTS): ... This.
31995         (returns): Rename to...
31996         (RETURNS): ... This.
31997         * config/arm/arm.md: Update uses of the above.
31998         * config/arm/neon.md: Likewise.
31999
32000 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32001
32002         * config.host (case ${host}): Add aarch64*-*-linux case.
32003         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
32004         fields to all the cores.
32005         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
32006         Add MCPU_MTUNE_NATIVE_SPECS.
32007         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
32008         field to all extensions.
32009         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
32010         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
32011         Adjust definition of AARCH64_OPT_EXTENSION.
32012         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
32013         (MCPU_MTUNE_NATIVE_SPECS): Define.
32014         * config/aarch64/driver-aarch64.c: New file.
32015         * config/aarch64/x-arch64: New file.
32016         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
32017         -mtune and -march.
32018
32019 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32020             Wei Mi  <wmi@google.com>
32021
32022         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
32023         * config/i386/i386.c (extract_base_offset_in_addr): New function.
32024         (ix86_operands_ok_for_move_multiple): Ditto.
32025         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
32026         (movlpd/movhpd to movupd peephole2): Ditto.
32027
32028 2015-04-24  Marek Polacek  <polacek@redhat.com>
32029
32030         PR c/61534
32031         * input.h (from_macro_expansion_at): Define.
32032
32033         PR c/63357
32034         * doc/invoke.texi: Update description of -Wlogical-op.
32035
32036 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32037
32038         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
32039         ternary operator in fprintf and harmonize spacing.
32040
32041 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32042
32043         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
32044         Mark operand1 commutative.
32045
32046 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
32047
32048         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
32049         input operands in memory.
32050         (*vec_concatv2si_sse4_1): Ditto.
32051         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
32052         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
32053         register_operand.
32054         (vec_extract_hi_v32hi): Ditto.
32055         (vec_extract_hi_v64hi): Ditto.
32056         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
32057
32058 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32059             Steven Bosscher <steven@gcc.gnu.org>
32060
32061         PR rtl-optimization/34503
32062         * cprop.c (cprop_reg_p): New.
32063         (hash_scan_set): Use above function to check if register can be
32064         propagated.
32065         (find_avail_set): Return up to two sets, one whose source is a
32066         register and one whose source is a constant.  Sets are returned in an
32067         array passed as parameter rather than as a return value.
32068         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
32069         sets returned by find_avail_set, starting with the one whose source is
32070         a constant. Use cprop_reg_p to check if register can be propagated.
32071         (do_local_cprop): Use cprop_reg_p to check if register can be
32072         propagated.
32073         (implicit_set_cond_p): Likewise.
32074
32075 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32076
32077         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
32078         (sem_function::equals): IGNORED_NODES parameter is now unused;
32079         update call of equals_private.
32080         (sem_function::equals_private): Do not call equals_wpa; skip
32081         gimple body matching if there is no body.
32082         (sem_function::init): Add logic to hash tthunk info.
32083         (sem_function::parse): Also parse thunks.
32084         * ipa-icf.h (equals_private): Update declaration.
32085
32086 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32087
32088         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
32089         asterisk from name so this can be generated directly.
32090         (*altivec_stvx_<mode>_internal): Likewise.
32091         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
32092         that this is never called during or after reload/lra.
32093         (rs6000_frame_related): Remove split_reg
32094         argument and logic that references it.
32095         (emit_frame_save): Remove last parameter from call to
32096         rs6000_frame_related.
32097         (rs6000_emit_prologue): Remove last parameter from eight calls to
32098         rs6000_frame_related.  Force generation of stvx instruction for
32099         Altivec register saves.  Remove split_reg handling, which is no
32100         longer needed.
32101         (rs6000_emit_epilogue):  Force generation of lvx instruction for
32102         Altivec register restores.
32103
32104 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32105
32106         * config/rs6000/rs6000.opt (mcrypto): Change option description to
32107         match category changes in ISA 2.07B.
32108
32109 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32110
32111         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
32112         iterators.
32113         (cmp_op, cmp_type): New code attributes.
32114         (NEON_VCMP, NEON_VACMP): New int iterators.
32115         (cmp_op_unsp): New int attribute.
32116         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
32117         (neon_vceq<mode>): Delete.
32118         (neon_vc<cmp_op><mode>_insn): New pattern.
32119         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
32120         (neon_vcgeu<mode>): Delete.
32121         (neon_vcle<mode>): Likewise.
32122         (neon_vclt<mode>: Likewise.
32123         (neon_vcage<mode>): Likewise.
32124         (neon_vcagt<mode>): Likewise.
32125         (neon_vca<cmp_op><mode>): New define_expand.
32126         (neon_vca<cmp_op><mode>_insn): New pattern.
32127         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
32128
32129 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32130
32131         * tree.h (attribute_value_equal): Declare.
32132         * tree.c (attribute_value_equal): Export.
32133
32134 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32135
32136         * ipa-icf.c (sem_item::compare_attributes): New function.
32137         (sem_item::compare_referenced_symbol_properties): Compare variable
32138         attributes.
32139         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
32140         (sem_function::param_used_p): New function.
32141         (sem_function::equals_wpa): Fix attribute comparsion; match
32142         parameter type codes; do not compare paremter flags when
32143         they are not used; compare edge flags; compare indirect calls.
32144         (sem_item::update_hash_by_addr_refs): Hash reference type.
32145         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
32146         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
32147         reference use type.
32148         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
32149         * ipa-icf.h (compare_attributes, param_used_p): Declare.
32150
32151 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32152
32153         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
32154         cleanup.
32155         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
32156         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
32157         (sem_item::compare_referenced_symbol_properties): New.
32158         (sem_item::hash_referenced_symbol_properties): New.
32159         (sem_item::compare_cgraph_references): Rename to ...
32160         (sem_item::compare_symbol_references): ... this one; use
32161         compare_referenced_symbol_properties.
32162         (sem_function::equals_wpa): Do not compare
32163         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
32164         DECL_IS_OPERATOR_NEW; compare pointer sizes.
32165         (sem_item::update_hash_by_addr_refs): Call
32166         hash_referenced_symbol_properties.
32167         (sem_item::update_hash_by_local_refs): Cleanup.
32168         (sem_function::merge): Do not mix up symbol properties.
32169         (sem_variable::equals_wpa): Use compare_symbol_references.
32170         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
32171         (sem_item::hash_referenced_symbol_properties): New.
32172         (sem_item::compare_symbol_references): New.
32173         (sem_item::compare_cgraph_references): Remove.
32174
32175 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
32176
32177         PR target/26702
32178         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
32179         Emit size of local.
32180
32181 2015-04-23  Nick Clifton  <nickc@redhat.com>
32182
32183         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
32184         ATTRIBUTE_UNUSED to x parameter.
32185         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
32186
32187 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32188
32189         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
32190         TARGET_CRYPTO to TARGET_P8_VECTOR>
32191         (crypto_vpermxor_<mode>): Likewise.
32192         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
32193         (BU_CRYPTO_3A): Likewise.
32194         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
32195         (BU_CRYPTO_OVERLOAD_3A): New #define.
32196         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
32197         (VPMSUMH): Likewise.
32198         (VPMSUMW): Likewise.
32199         (VPMSUMD): Likewise.
32200         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
32201         (VPERMXOR_V4SI): Likewise.
32202         (VPERMXOR_V8HI): Likewise.
32203         (VPERMXOR_V16QI): Likewise.
32204         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
32205         BU_CRYPTO_OVERLOAD_2A.
32206         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
32207         BU_CRYPTO_OVERLOAD_3A.
32208         * config/rs6000/rs6000.opt (mcrypto): Change description of
32209         option.
32210
32211 2015-04-23  Richard Biener  <rguenther@suse.de>
32212
32213         * passes.def: Remove copy propagation passes run directly after CCP.
32214         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
32215         SSA names.
32216         (ccp_visit_phi_node): Rework to handle first executable edge
32217         specially.
32218
32219 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
32220
32221         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32222         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32223         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32224         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
32225         (thumb_legimitimize_reload_address): Remove.
32226         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
32227         Remove.
32228         (thumb_legimitimize_reload_address): Remove.
32229
32230 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32231
32232         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
32233
32234 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32235
32236         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
32237         MAX_LDM_STM_OPS.
32238         (store_multiple): Likewise.
32239
32240 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32241
32242         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
32243         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
32244         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
32245         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
32246         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
32247         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
32248         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
32249         Specify issue_rate value.
32250         (arm_issue_rate): Look up issue rate from tuning structs. Remove
32251         large switch statement.
32252         (arm_marvell_pj4_tune): New struct.
32253         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
32254         struct.
32255
32256 2015-04-23  Richard Biener  <rguenther@suse.de>
32257
32258         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
32259         (vect_find_last_store_in_slp_instance): Rename to ...
32260         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
32261         (vect_analyze_slp_cost_1): Use vector_load for constant defs
32262         and vec_construct for external defs when estimating prologue cost.
32263         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
32264         Compute costs here only when vectorizing loops.
32265         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
32266         have been determined.
32267         (vect_schedule_slp_instance): Simplify vectorized code placement
32268         and prepare for in-BB external defs.
32269         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
32270         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
32271         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
32272         guard.
32273         (vect_model_load_cost): Likewise.
32274         (vectorizable_store): Instead add it here.
32275         (vectorizable_load): Likewise.
32276         (vect_is_simple_use): Dump def type textually.
32277
32278 2015-04-23  Richard Biener  <rguenther@suse.de>
32279
32280         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
32281         * cfgloop.c (verify_loop_structure): Verify the root loop node.
32282         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
32283         instead of get_eh_region_from_lp_number.
32284         * loop-init.c (fix_loop_structure): If we removed a loop, reset
32285         the SCEV cache.
32286
32287 2015-04-23  Anton Blanchard  <anton@samba.org>
32288
32289         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
32290         need for -mprofile-kernel to save LR to stack.
32291
32292 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32293
32294         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
32295         adjustments.
32296         (insn_is_swappable_p): Return 1 for a convert from double to
32297         single precision when all of its uses are splats of BE element
32298         zero.
32299
32300 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
32301
32302         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
32303
32304 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32305
32306         PR target/65456
32307         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
32308         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
32309         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
32310         option.
32311         (rs6000_builtin_mask_for_load): Return 0 for targets with
32312         efficient unaligned VSX accesses so that the vectorizer will use
32313         direct unaligned loads.
32314         (rs6000_builtin_support_vector_misalignment): Always return true
32315         for targets with efficient unaligned VSX accesses.
32316         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
32317         stores on targets with efficient unaligned VSX accesses is almost
32318         always the same as the cost of an aligned load or store, so model
32319         it that way.
32320         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
32321         unaligned vectors if we have efficient unaligned VSX accesses.
32322         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
32323         undocumented option.
32324
32325 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32326
32327         Revert:
32328         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32329
32330         * config.gcc (LIBC_MUSL): New tm_defines macro.
32331         * config/linux.h (OPTION_MUSL): Define.
32332         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32333         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32334         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32335
32336         * config/linux.opt (mmusl): New option.
32337         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32338         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32339
32340         * configure: Regenerate.
32341
32342 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32343
32344         * config.gcc (LIBC_MUSL): New tm_defines macro.
32345         * config/linux.h (OPTION_MUSL): Define.
32346         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32347         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32348         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32349
32350         * config/linux.opt (mmusl): New option.
32351         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32352         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32353
32354         * configure: Regenerate.
32355
32356 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
32357
32358         * doc/invoke.texi (-fsanitize-sections): Update description.
32359         * asan.c (set_sanitized_sections): Parse incoming arg.
32360         (section_sanitized_p): Support wildcards.
32361
32362 2015-04-22  Tom de Vries  <tom@codesourcery.com>
32363
32364         PR tree-optimization/65823
32365         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
32366         equality between ap_copy and ap.
32367
32368 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32369
32370         PR target/47098
32371         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
32372
32373 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32374
32375         PR target/47122
32376         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
32377
32378 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32379
32380         PR target/55144
32381         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
32382         remove already contained t-files.
32383
32384 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32385
32386         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
32387         Remove unneeded forward declarations.
32388         (suitable_for_tail_call_opt_p): Commentary typo fix.
32389
32390 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32391
32392         * varasm.c (emit_bss): Remove redundant guard.
32393
32394 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32395
32396         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
32397
32398 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32399
32400         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
32401
32402 2015-04-22  Hale Wang  <hale.wang@arm.com>
32403             Terry Guo  <terry.guo@arm.com>
32404
32405         PR rtl-optimization/64818
32406         * combine.c (can_combine_p): Don't combine user-specified
32407         register if it is in an asm input.
32408
32409 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
32410
32411         PR ipa/65076
32412         * passes.def (early_optimizations): Add pass_dse.
32413
32414 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32415
32416         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
32417         * reorg.c (redundant_insn): Remove ifdef
32418         INSN_REFERENCES_ARE_DELAYED.
32419         * resource.c (mark_referenced_resources): Likewise.
32420
32421 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32422
32423         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
32424         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
32425         * resource.c (mark_set_resources): Likewise.
32426
32427 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32428
32429         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
32430         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32431         (flow_find_head_matching_sequence): Likewise.
32432         (try_head_merge_bb): Likewise.
32433         * combine.c (can_combine_p): Likewise.
32434         (try_combine): Likewise.
32435         (distribute_notes): Likewise.
32436         * df-problems.c (can_move_insns_across): Likewise.
32437         * final.c (final): Likewise.
32438         * gcse.c (insert_insn_end_basic_block): Likewise.
32439         * ira.c (find_moveable_pseudos): Likewise.
32440         * reorg.c (try_merge_delay_insns): Likewise.
32441         (fill_simple_delay_slots): Likewise.
32442         (fill_slots_from_thread): Likewise.
32443         * sched-deps.c (sched_analyze_2): Likewise.
32444
32445 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32446
32447         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
32448         PIC_OFFSET_TABLE_REGNUM.
32449
32450 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32451
32452         * alias.c (init_alias_target): Remove ifdef
32453         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
32454         * df-scan.c (df_insn_refs_collect): Likewise.
32455         (df_get_regular_block_artificial_uses): Likewise.
32456         (df_get_eh_block_artificial_uses): Likewise.
32457         (df_get_entry_block_def_set): Likewise.
32458         (df_get_exit_block_use_set): Likewise.
32459         * emit-rtl.c (gen_rtx_REG): Likewise.
32460         * ira.c (ira_setup_eliminable_regset): Likewise.
32461         * reginfo.c (init_reg_sets_1): Likewise.
32462         * regrename.c (rename_chains): Likewise.
32463         * reload1.c (reload): Likewise.
32464         (eliminate_regs_in_insn): Likewise.
32465         * resource.c (mark_referenced_resources): Likewise.
32466         (init_resource_info): Likewise.
32467
32468 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32469
32470         * defaults.h (MASK_RETURN_ADDR): New definition.
32471         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32472         MASK_RETURN_ADDR.
32473
32474 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32475
32476         * defaults.h (RETURN_ADDR_OFFSET): New definition.
32477         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32478         RETURN_ADDR_OFFSET.
32479         (expand_builtin_frob_return_addr): Likewise.
32480
32481 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32482
32483         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
32484         (try_redirect_by_replacing_jump): Likewise.
32485         (rtl_tidy_fallthru_edge): Likewise.
32486         * combine.c (insn_a_feeds_b): Likewise.
32487         (find_split_point): Likewise.
32488         (simplify_set): Likewise.
32489         * cprop.c (cprop_jump): Likewise.
32490         * cse.c (cse_extended_basic_block): Likewise.
32491         * df-problems.c (can_move_insns_across): Likewise.
32492         * function.c (emit_use_return_register_into_block): Likewise.
32493         * haifa-sched.c (sched_init): Likewise.
32494         * ira.c (find_moveable_pseudos): Likewise.
32495         * loop-invariant.c (find_invariant_insn): Likewise.
32496         * lra-constraints.c (curr_insn_transform): Likewise.
32497         * postreload.c (reload_combine_recognize_const_pattern):
32498         * Likewise.
32499         * reload.c (find_reloads): Likewise.
32500         * reorg.c (delete_scheduled_jump): Likewise.
32501         (steal_delay_list_from_target): Likewise.
32502         (steal_delay_list_from_fallthrough): Likewise.
32503         (redundant_insn): Likewise.
32504         (fill_simple_delay_slots): Likewise.
32505         (fill_slots_from_thread): Likewise.
32506         (delete_computation): Likewise.
32507         * sched-rgn.c (add_branch_dependences): Likewise.
32508
32509 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32510
32511         * genconfig.c (main): Always define HAVE_cc0.
32512         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
32513         HAVE_cc0.
32514         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32515         (flow_find_head_matching_sequence): Likewise.
32516         (try_head_merge_bb): Likewise.
32517         * cfgrtl.c (rtl_merge_blocks): Likewise.
32518         (try_redirect_by_replacing_jump): Likewise.
32519         (rtl_tidy_fallthru_edge): Likewise.
32520         * combine.c (do_SUBST_MODE): Likewise.
32521         (insn_a_feeds_b): Likewise.
32522         (combine_instructions): Likewise.
32523         (can_combine_p): Likewise.
32524         (try_combine): Likewise.
32525         (find_split_point): Likewise.
32526         (subst): Likewise.
32527         (simplify_set): Likewise.
32528         (distribute_notes): Likewise.
32529         * cprop.c (cprop_jump): Likewise.
32530         * cse.c (cse_extended_basic_block): Likewise.
32531         * df-problems.c (can_move_insns_across): Likewise.
32532         * final.c (final): Likewise.
32533         (final_scan_insn): Likewise.
32534         * function.c (emit_use_return_register_into_block): Likewise.
32535         * gcse.c (insert_insn_end_basic_block): Likewise.
32536         * haifa-sched.c (sched_init): Likewise.
32537         * ira.c (find_moveable_pseudos): Likewise.
32538         * loop-invariant.c (find_invariant_insn): Likewise.
32539         * lra-constraints.c (curr_insn_transform): Likewise.
32540         * optabs.c (prepare_cmp_insn): Likewise.
32541         * postreload.c (reload_combine_recognize_const_pattern):
32542         * Likewise.
32543         * reload.c (find_reloads): Likewise.
32544         (find_reloads_address_1): Likewise.
32545         * reorg.c (delete_scheduled_jump): Likewise.
32546         (steal_delay_list_from_target): Likewise.
32547         (steal_delay_list_from_fallthrough): Likewise.
32548         (try_merge_delay_insns): Likewise.
32549         (redundant_insn): Likewise.
32550         (fill_simple_delay_slots): Likewise.
32551         (fill_slots_from_thread): Likewise.
32552         (delete_computation): Likewise.
32553         (relax_delay_slots): Likewise.
32554         * sched-deps.c (sched_analyze_2): Likewise.
32555         * sched-rgn.c (add_branch_dependences): Likewise.
32556
32557 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32558
32559         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
32560         that is trivially ded on non cc0 targets.
32561         (simplify_set): Likewise.
32562         (mark_used_regs_combine): Likewise.
32563         * cse.c (new_basic_block): Likewise.
32564         (fold_rtx): Likewise.
32565         (cse_insn): Likewise.
32566         (cse_extended_basic_block): Likewise.
32567         (set_live_p): Likewise.
32568         * rtlanal.c (canonicalize_condition): Likewise.
32569         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
32570
32571 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32572
32573         * conditions.h: Define macros even if HAVE_cc0 is undefined.
32574         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
32575         * final.c: Likewise.
32576         * jump.c: Likewise.
32577         * recog.c: Likewise.
32578         * recog.h: Declare functions even when HAVE_cc0 is undefined.
32579         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
32580
32581 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32582
32583         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
32584         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
32585         * builtins.c (expand_builtin): Remove check if
32586         EH_RETURN_DATA_REGNO is defined.
32587         * df-scan.c (df_bb_refs_collect): Likewise.
32588         (df_get_exit_block_use_set): Likewise.
32589         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
32590         * ira-lives.c (process_bb_node_lives): Likewise.
32591         * lra-lives.c (process_bb_lives): Likewise.
32592
32593 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32594
32595         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
32596         FIRST_PSEUDO_REG): New.
32597         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
32598         (ARG_POINTER_REGNUM): Define to ARGP_REG.
32599         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
32600         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
32601         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
32602         (FIRST_INT_REG): New.
32603         (LAST_INT_REG): New.
32604         (FIRST_*_REG): Define using *_REG.
32605         (LAST_*_REG): Ditto.
32606         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
32607         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
32608         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
32609
32610 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32611
32612         * expmed.c: (synth_mult): Only assume overlapping
32613         shift with previous steps in alg_sub_t_m2 case.
32614
32615 2015-04-21  Richard Biener  <rguenther@suse.de>
32616
32617         PR tree-optimization/65650
32618         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
32619         transitions involving copies.
32620         (set_lattice_value): Adjust for copy lattice state.
32621         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
32622         if that doesn't dominate the merge point.
32623         (bit_value_unop): Adjust what we treat as varying mask.
32624         (bit_value_binop): Likewise.
32625         (bit_value_assume_aligned): Likewise.
32626         (evaluate_stmt): When we simplified to a SSA name record a copy
32627         instead of dropping to varying.
32628         (visit_assignment): Simplify.
32629
32630         * gimple-match.h (gimple_simplify): Add another callback.
32631         * gimple-fold.c (fold_stmt_1): Adjust caller.
32632         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
32633         for the 2nd callback.
32634         * gimple-match-head.c (gimple_simplify): Add a callback that is
32635         used to valueize the stmt operands and use it that way.
32636
32637 2015-04-21  Richard Biener  <rguenther@suse.de>
32638
32639         PR tree-optimization/65788
32640         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
32641
32642 2015-04-21  Richard Biener  <rguenther@suse.de>
32643
32644         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
32645         vec_construct cost by vec_stmt_cost.
32646
32647 2015-04-21  Richard Biener  <rguenther@suse.de>
32648
32649         * cfghooks.h (create_basic_block): Replace with two overloads
32650         for RTL and GIMPLE.
32651         (split_block): Likewise.
32652         * cfghooks.c (split_block): Rename to ...
32653         (split_block_1): ... this.
32654         (split_block): Add two type-safe overloads for RTL and GIMPLE.
32655         (split_block_after_labels): Call split_block_1.
32656         (create_basic_block): Rename to ...
32657         (create_basic_block_1): ... this.
32658         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
32659         (create_empty_bb): Call create_basic_block_1.
32660         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
32661         split_block_after_labels.
32662         * omp-low.c (expand_parallel_call): Likewise.
32663         (expand_omp_target): Likewise.
32664         (simd_clone_adjust): Likewise.
32665         * tree-chkp.c (chkp_get_entry_block): Likewise.
32666         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
32667         create_basic_block overload.
32668         (cgraph_node::expand_thunk): Likewise.
32669         * tree-cfg.c (make_blocks): Likewise.
32670         (handle_abnormal_edges): Likewise.
32671         * tree-inline.c (copy_bb): Likewise.
32672
32673 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32674
32675         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
32676         New pattern.
32677         (*xor_one_cmplsidi3_ze): Likewise.
32678
32679 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32680
32681         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
32682         use df_remove_problem rather than manually removing problems, leaving
32683         holes in df->problems_in_order[].
32684
32685 2015-04-21  Tom de Vries  <tom@codesourcery.com>
32686
32687         PR tree-optimization/65802
32688         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
32689
32690 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32691
32692         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
32693         Increase to 128.
32694         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
32695         at '.'.  Assert that there's enough space for everything.
32696
32697 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32698
32699         PR tree-optimization/64950
32700         Revert:
32701         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
32702
32703         PR target/41089
32704         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
32705         as volatile.
32706
32707 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
32708
32709         PR rtl-optimization/64916
32710         * cfgcleanup.c (values_equal_p): New function.
32711         (can_replace_by): Use it.
32712
32713 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
32714
32715         PR c++/65801
32716         * doc/invoke.texi ([-Wnarrowing]): Update.
32717
32718 2015-04-20  Jeff Law  <law@redhat.com>
32719
32720         PR tree-optimization/65658
32721         * tree-ssa-threadupdate.c (redirection_block_p): Remove
32722         redundant test for GIMPLE_ASSIGN in last change.
32723
32724 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
32725
32726         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
32727         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
32728         (legitimize_tls_address): Ditto.
32729         (ix86_expand_move): Ditto.
32730         (ix86_expand_binary_operator): Remove reload_in_progress checks.
32731         (ix86_expand_unary_operator): Ditto.
32732         * config/i386/predicates.md (index_register_operand): Ditto.
32733
32734 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
32735
32736         * reorg.c (try_merge_delay_insns): Improve correctness checking
32737         for targets with multiple delay slots.
32738
32739 2015-04-20  Jeff Law  <law@redhat.com>
32740
32741         PR tree-optimization/65658
32742         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
32743         statements too.
32744
32745 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32746
32747         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
32748         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
32749         Delete.
32750
32751 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
32752
32753         PR debug/65807
32754         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
32755
32756 2015-04-20  Richard Biener  <rguenther@suse.de>
32757
32758         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
32759         * gimple-fold.c (gimple_build_valueize): New function.
32760         (gimple_build): Always use gimple_build_valueize as valueize hook.
32761
32762 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32763
32764         PR target/64134
32765         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
32766         and overwrite variable parts if <= 1/2 the elements are variable.
32767
32768 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32769
32770         PR rtl-optimization/65805
32771         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
32772         Don't use difference of offset and previous offset if
32773         update_sp_offset is non-zero.
32774         (eliminate_regs_in_insn): Ditto.
32775         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
32776         lra_eliminate_regs_1 call.
32777         * lra-constraints.c (get_equiv_with_elimination): Ditto.
32778
32779 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
32780
32781         * hash-table.h: Remove version of hash_table that stored value_type *.
32782         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
32783         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
32784         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
32785         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
32786         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
32787         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
32788         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32789         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
32790         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
32791         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
32792         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
32793         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
32794         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
32795         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32796         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
32797         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
32798
32799 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32800             Jakub Jelinek  <jakub@redhat.com>
32801
32802         PR target/65787
32803         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
32804         subsequent SH_NONE operand does not overwrite an existing *special
32805         value.
32806         (adjust_extract): Handle case where a vec_extract operation is
32807         wrapped in a PARALLEL.
32808
32809 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32810
32811         PR target/65780
32812         * config/i386/i386.c (ix86_binds_local_p): Define only if
32813         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
32814
32815 2015-04-17  Jeff Law  <law@redhat.com>
32816
32817         PR tree-optimization/47679
32818         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
32819         * tree-ssa-scopedtables.c: New file.
32820         * tree-ssa-scopedtables.h: New file.
32821         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
32822         (const_and_copies): Change name/type.
32823         (record_const_or_copy): Move into tree-ssa-scopedtables.c
32824         (record_const_or_copy_1): Similarly.
32825         (restore_vars_to_original_value): Similarly.
32826         (pass_dominator::execute): Create and destroy const_and_copies table.
32827         (thread_across_edge): Update passing of const_and_copies.
32828         (record_temporary_equivalence): Use method calls rather than
32829         manipulating const_and_copies directly.
32830         (record_equality, cprop_into_successor_phis): Similarly.
32831         (dom_opt_dom_walker::before_dom_children): Similarly.
32832         (dom_opt_dom_walker::after_dom_children): Similarly.
32833         (eliminate_redundant_computations): Similarly.
32834         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
32835         (record_temporary_equivalence): Likewise.
32836         (invalidate_equivalences): Likewise.
32837         (record_temporary_equivalences_from_phis): Update due to type
32838         change of const_and_copies.  Use method calls rather than
32839         manipulating the stack directly.
32840         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
32841         (thread_through_normal_block, thread_across_edge): Likewise.
32842         (thread_across_edge): Likewise.
32843         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
32844         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
32845         of equiv_stack.
32846         (identify_jump_threads): Update due to type change of equiv_stack.
32847         (finalize_jump_threads): Delete the equiv_stack when complete.
32848
32849 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
32850
32851         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32852         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
32853         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
32854
32855 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
32856
32857         PR target/65535
32858         * config.gcc: Exit with a comment when we do not have a major version
32859         number for the FreeBSD target.
32860
32861 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32862
32863         PR target/65689
32864         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
32865         maybe_allows_mem bitfields.
32866         (maybe_allows_none_start, maybe_allows_none_end,
32867         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
32868         maybe_allows_mem_end): New variables.
32869         (compute_maybe_allows): New function.
32870         (add_constraint): Use it to initialize maybe_allows_reg and
32871         maybe_allows_mem fields.
32872         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
32873         is_address constraints such that those that allow neither mem nor
32874         reg come first, then those that only allow reg but not mem, then
32875         those that only allow mem but not reg, then the rest.
32876         (write_allows_reg_mem_function): New function.
32877         (write_tm_preds_h): Call it.
32878         * stmt.c (parse_output_constraint, parse_input_constraint): Use
32879         the generated insn_extra_constraint_allows_reg_mem function
32880         instead of always setting *allows_reg = true; *allows_mem = true;
32881         for unknown extra constraints.
32882
32883 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32884
32885         PR target/65780
32886         * output.h (default_binds_local_p_3): New.
32887         * varasm.c (default_binds_local_p_3): Make it public.  Take an
32888         argument to indicate if common symbol may be local.  If common
32889         symbol may be local, treat non-external variable as defined
32890         locally.
32891         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
32892         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
32893         * config/i386/i386.c (ix86_binds_local_p): New.
32894         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
32895         ix86_binds_local_p.
32896
32897 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32898
32899         PR debug/65771
32900         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
32901         trying mem_loc_descriptor on XEXP (rtl, 0).
32902
32903 2015-04-17  Martin Liska  <mliska@suse.cz>
32904
32905         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
32906         Release symbol_compare_collection.
32907         * ipa-reference.c: Add TODO that a vector should be released.
32908
32909 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
32910
32911         PR target/65296
32912         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
32913         to new AVR-LibC file layout (bug #44574).
32914         (*avrlibc_devicelib): Same.
32915         * config/avr/avr-mcus.def: Adjust comments.
32916         * config/avr/avr.opt (nodevicelib): Adjust help.
32917
32918 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
32919
32920         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
32921
32922 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
32923
32924         PR c++/64527
32925         * gimplify.c (gimplify_init_constructor): Always emit a
32926         side-effecting constructor.
32927
32928 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32929
32930         PR tree-optimization/64950
32931         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
32932         in cfun->curr_properties.
32933         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
32934         if we generate an IFN_VA_ARG.
32935         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
32936         function if PROP_gimple_lva is not set in src function.
32937
32938 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32939             Michael Matz  <matz@suse.de>
32940
32941         PR tree-optimization/64950
32942         * gimple-iterator.c (update_modified_stmts): Remove static.
32943         * gimple-iterator.h (update_modified_stmts): Declare.
32944         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
32945         (gimplify_va_arg_internal): New function.
32946         (gimplify_va_arg_expr): Use IFN_VA_ARG.
32947         * gimplify.h (gimplify_va_arg_internal): Declare.
32948         * internal-fn.c (expand_VA_ARG): New unreachable function.
32949         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
32950         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
32951         (expand_ifn_va_arg): New function.
32952         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
32953         (pass_stdarg::execute): Call expand_ifn_va_arg.
32954         (pass_data_lower_vaarg): New pass_data.
32955         (pass_lower_vaarg): New gimple_opt_pass.
32956         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
32957         (make_pass_lower_vaarg): New function.
32958         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
32959         properties_required field.
32960         * passes.def (all_passes): Add pass_lower_vaarg.
32961         * tree-pass.h (PROP_gimple_lva): Add define.
32962         (make_pass_lower_vaarg): Declare.
32963
32964 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32965
32966         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
32967         * calls.c (call_expr_flags): Same.
32968
32969 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32970
32971         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
32972         (pass_stdarg::execute): ... here.
32973
32974 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32975             Michael Matz  <matz@suse.de>
32976
32977         * tree-cfg.c (make_blocks_1): Factor out of ...
32978         (make_blocks): ... here.
32979         (make_edges_bb): Factor out of ...
32980         (make_edges): ... here.
32981         (gimple_find_sub_bbs): New function.
32982         * tree-cfg.h (gimple_find_sub_bbs): Declare.
32983
32984 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32985
32986         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
32987
32988 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
32989
32990         * asan.c (set_sanitized_sections): New function.
32991         (section_sanitized_p): Ditto.
32992         (asan_protect_global): Optionally sanitize user-defined
32993         sections.
32994         * asan.h (set_sanitized_sections): Declare new function.
32995         * common.opt (fsanitize-sections): New option.
32996         * doc/invoke.texi (-fsanitize-sections): Document new option.
32997         * opts-global.c (handle_common_deferred_options): Handle new
32998         option.
32999
33000 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
33001
33002         PR debug/65771
33003         * dwarf2out.c (loc_list_from_tree): Return NULL
33004         for DEBUG_EXPR_DECL.
33005
33006 2015-04-17  Christian Bruel  <christian.bruel@st.com>
33007
33008         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
33009         same attributes.
33010
33011 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
33012
33013         * ira-color.c (setup_left_conflict_sizes_p): Do not process
33014         node itself when computing left conflict subnode size.
33015
33016 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
33017
33018         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
33019         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
33020         *fop_<mode>_1_sse using enabled attribute.  Use
33021         register_mixssei387nonimm_operand operand 1 predicate. Change
33022         alternative 3 constraints from "x" to "v".
33023
33024 2015-04-16  Richard Biener  <rguenther@suse.de>
33025
33026         PR tree-optimization/65774
33027         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
33028         bit-value tracking on.
33029
33030 2015-04-16  Richard Biener  <rguenther@suse.de>
33031
33032         PR tree-optimization/64277
33033         * tree-vrp.c (check_array_ref): Fix anti-range handling,
33034         simplify upper bound handling.
33035         (search_for_addr_array): Simplify.
33036         (check_array_bounds): Handle ADDR_EXPRs here.
33037         (check_all_array_refs): Simplify.
33038
33039 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
33040
33041         * config/i386/i386.c (print_reg): Rewrite function.
33042
33043 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33044
33045         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
33046         Invert the condition.
33047
33048 2015-04-16  Renlin Li  <renlin.li@arm.com>
33049
33050         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
33051         simplifications for UNSIGNED_FLOAT.
33052
33053 2015-04-16  Nick Clifton  <nickc@redhat.com>
33054
33055         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
33056         MUL_UNINIT.
33057         (enum rl78_cpu_type): New.
33058         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
33059         (umulhi3_shift_virt): Remove m constraint from operand 1.
33060         (umulqihi3_virt): Likewise.
33061         * config/rl78/rl78.c (rl78_option_override): Add code to process
33062         -mcpu and -mmul options.
33063         (rl78_alloc_physical_registers): Add code to handle divhi and
33064         divsi valloc attributes.
33065         (set_origin): Likewise.
33066         * config/rl78/rl78.h (RL78_MUL_G14): Define.
33067         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
33068         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
33069         __RL78_Gxx__.
33070         (ASM_SPEC): Pass -mcpu on to assembler.
33071         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
33072         (mulqi3_rl78): Likewise.
33073         (mulhi3_g13): Likewise.
33074         (mulhi3): Generate the G13 or G14 versions of the insn directly.
33075         (mulsi3): Likewise.
33076         (mulhi3_g14): Add clobbers of AX and BC.
33077         (mulsi3_g14): Likewise.
33078         (mulsi3_g13): Likewise.
33079         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
33080         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
33081         * config/rl78/rl78.opt (mmul): Initialise value to
33082         RL78_MUL_UNINIT.
33083         (mcpu): New option.
33084         (m13, m14, mrl78): New option aliases.
33085         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
33086         (MULTILIB_DIRNAMES): Add g13 and g14.
33087         * doc/invoke.texi: Document -mcpu and -mmul options.
33088
33089 2015-04-16  Richard Biener  <rguenther@suse.de>
33090
33091         * tree-ssa-ccp.c (likely_value): See if we have operands that
33092         are marked as never simulate again and return CONSTANT in this
33093         case.
33094         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
33095         not have any operands that will be simulated again as
33096         not being simulated again.
33097
33098 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
33099
33100         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
33101         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
33102         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
33103         attribute.
33104         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
33105         enabled attribute.
33106         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
33107         *float<SWI48:mode><MODEF:mode>2_sse.
33108         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
33109         enabled attribute.
33110         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
33111         enabled attribute.
33112
33113 2015-04-15  Tom de Vries  <tom@codesourcery.com>
33114
33115         PR other/65487
33116         * function.c (push_dummy_function): New function.
33117         (init_dummy_function_start): Use push_dummy_function.
33118         (pop_dummy_function): New function.  Factored out of ...
33119         (expand_dummy_function_end): ... here.
33120         * function.h (push_dummy_function, pop_dummy_function): Declare.
33121         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
33122         pop_dummy_function.
33123         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
33124
33125 2015-04-15  Jeff Law  <law@redhat.com>
33126
33127         PR tree-optimization/47679
33128         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
33129         need for forward declaration in upcoming changes.
33130         (record_conditions, record_edge_info): Likewise.
33131
33132         PR rtl-optimization/42522
33133         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
33134         SIGN_EXTRACT as a whole object rather than simplifying
33135         its operand.
33136
33137 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
33138
33139         PR ipa/65765
33140         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
33141         and GIMPLE_PREDICT use break instead of return true. For
33142         GIMPLE_EH_DISPATCH, compare dispatch region.
33143
33144 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
33145
33146         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
33147         details about the implementation.  Make clear preference for
33148         __atomic builtins.  Reduce possibility of future change.
33149
33150 2015-04-15  Nick Clifton  <nickc@redhat.com>
33151
33152         * config/rx/rx.opt (mallow-string-insns): New option.
33153         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
33154         builtin if string instructions are denied.
33155         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
33156         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
33157         appropriate.
33158         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
33159         * config/rx/rx.md (movstr): Enable pattern only if string
33160         instructions are allowed.
33161         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
33162         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
33163         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
33164         (MULTILIB_DIRNAMES): Add no-strings.
33165         * doc/invoke.texi: Document -mno-allow-string-insns.
33166
33167 2015-04-15  Alan Modra  <amodra@gmail.com>
33168
33169         PR target/65408
33170         PR target/58744
33171         PR middle-end/36043
33172         * calls.c (load_register_parameters): Don't load past end of
33173         mem unless suitably aligned.
33174
33175 2015-04-15  Nick Clifton  <nickc@redhat.com>
33176
33177         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
33178         decrement instruction as being frame related.
33179         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
33180         based addresses.
33181         If zero extending a function address enclose the operation in
33182         %code(...).
33183         (rl78_preferred_reload_class): New function.
33184         (TARGET_PREFERRED_RELOAD_CLASS): Define.
33185         * config/rl78/rl78.md: Remove useless constraints in expanders.
33186         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
33187         (mulhi3_rl78): Likewise.
33188         (mulhi3_g13): Likewise.
33189         (mulsi3_rl78): Likewise.
33190         (es_addr): Move to before the multiply patterns.
33191
33192 2015-04-15  Alan Modra  <amodra@gmail.com>
33193
33194         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
33195         and sequence_stack.  Add seq.
33196         (seq_stack): Delete.
33197         * function.c (prepare_function_start): Don't access x_last_insn.
33198         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
33199         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
33200         * emit_rtl.c (start_sequence, push_topmost_sequence,
33201         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
33202         sequence accessors.
33203         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
33204         remove_insn): Likewise.  Simplify.
33205         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
33206         and pop_topmost_sequence.
33207         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
33208         debug insns.
33209         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
33210
33211 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
33212
33213         PR target/65729
33214         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
33215         the assertiion.
33216
33217 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33218
33219         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
33220         (LEGACY_INT_REGNO_P): Ditto.
33221         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
33222         (ANY_MASK_REG_P): Remove.
33223         (BND_REG_P): Rename from ANY_BND_REG_P.
33224         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
33225         legacy integer registers.  Do not handle MMX_REG_P in a special way.
33226         Merge 64byte and 32byte SSE handling.
33227
33228 2015-04-14  Nick Clifton  <nickc@redhat.com>
33229
33230         * expr.c (expand_assignment): Force an address offset computation
33231         into a register before changing its mode.
33232         (expand_expr_real_1): Likewise.
33233
33234 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
33235
33236         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
33237         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
33238         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
33239         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
33240         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
33241         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
33242         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
33243         and __aarch64_vget_lane_any.
33244
33245 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
33246
33247         PR rtl-optimization/65761
33248         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
33249         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
33250
33251 2015-04-14  Richard Biener  <rguenther@suse.de>
33252
33253         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
33254         (graphite_can_represent_scev): Use POINTER_TYPE_P.
33255
33256 2015-04-14  Richard Biener  <rguenther@suse.de>
33257
33258         PR tree-optimization/65758
33259         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
33260         against -1.
33261         (ccp_lattice_meet): Likewise.
33262         (bit_value_unop): Likewise.
33263         (bit_value_binop): Likewise.
33264         (bit_value_assume_aligned): Likewise.
33265
33266 2015-04-14  Christian Bruel  <christian.bruel@st.com>
33267
33268         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
33269         function.
33270
33271 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
33272
33273         PR tree-optimization/63387
33274         * match.pd ((x unord x) | (y unord y) -> (x unord y),
33275         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
33276
33277 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33278
33279         * config/i386/predicates.md (any_QIreg_operand): Rename from
33280         q_regs_operand.  Do not process subregs.
33281         (QIreg_operand): Use QI_REGNO_P predicate.
33282         (ext_QIreg_operand): Ditto.
33283         (ext_register_operand): Ditto.
33284         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
33285         (AND splitters): Ditto.
33286         (AND with -65536 splitter): Add SWI48 mode for operand 0.
33287         (AND with -256 splitter): Use any_QIreg_operand predicate and
33288         SWI248 mode for operand 0.
33289         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
33290         mode for operand 0.
33291         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
33292
33293 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
33294
33295         * doc/plugins.texi: Rewrite first introductory paragraph.
33296
33297 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33298
33299         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
33300         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
33301
33302 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33303
33304         * ipa-profie.c (ipa_profile): Check number of parameters
33305         and possible polymorphic call targets before
33306         devirtualizing.
33307
33308 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
33309
33310         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
33311         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
33312
33313 2015-04-13  Richard Biener  <rguenther@suse.de>
33314
33315         PR tree-optimization/65204
33316         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
33317         takens for bit-CCP.
33318
33319 2015-04-13  Richard Biener  <rguenther@suse.de>
33320
33321         PR target/65660
33322         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
33323         and cond_not_taken_branch_cost to 4 and 2.
33324         (bdver2_cost): Likewise.
33325         (bdver3_cost): Likewise.
33326         (bdver4_cost): Likewise.
33327
33328 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33329
33330         * hash-table.h (hash_table constructor): Add mem stats.
33331         (alloc_entries): Likewise.
33332
33333 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33334
33335         * ipa-cp.c (ipcp_driver): Relase prev_edge.
33336         * passes.c (execute_one_pass): Only add transform if pass has one.
33337
33338 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
33339
33340         * config/i386/i386.c (ix86_option_override_internal): Don't set
33341         -fprefetch-loop-arrays if optimizing for size.
33342
33343 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33344             Gerald Pfeifer  <gerald@pfeifer.com>
33345
33346         * doc/contrib.texi (Contributors): Add Martin Jambor and
33347         Michael Matz.
33348
33349 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
33350
33351         * BASE-VER: Set to 6.0.0.
33352
33353         PR tree-optimization/65747
33354         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
33355         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
33356
33357 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33358
33359         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
33360         sentence.  Improve grammar.
33361
33362 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33363
33364         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
33365
33366 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33367
33368         PR ipa/65743
33369         * ipa-inline-transform.c (speculation_removed): Remove static var.
33370         (check_speculations): New function.
33371         (clone_inlined_nodes): Do not check spculations.
33372         (inline_call): Call check_speculations.
33373         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
33374         consider non-invariants.
33375
33376 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33377             Martin Liska  <mliska@suse.cz>
33378
33379         PR ipa/65722
33380         * ipa-icf.c (sem_item::compare_cgraph_references): function and
33381         variable can not match.
33382         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
33383         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
33384
33385 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
33386
33387         PR tree-optimization/65735
33388         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
33389         Remove visited_phis argument, add visited_bbs, avoid recursing into the
33390         same bb rather than just into the same phi node.
33391         (thread_through_normal_block): Adjust caller.
33392
33393 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33394
33395         * doc/contrib.texi (Contributors): Add Ira Rosen.
33396
33397 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
33398
33399         * gcov.c (find_source): Fix miswording in error message.
33400         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
33401         (ix86_expand_sse_comi_round): Fix typo in error message.
33402
33403 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33404
33405         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
33406
33407 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
33408
33409         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
33410
33411 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33412
33413         PR target/65710
33414         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
33415         Print bad_spills_num and insn_pseudos_num.
33416
33417 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33418
33419         PR target/65694
33420         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
33421         when creating +1 values for SImode.
33422
33423 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33424
33425         PR target/65729
33426         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
33427         assert.
33428
33429 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
33430             Iain Sandoe  <iain@codesourcery.com>
33431
33432         PR target/65351
33433         * configure: Regenerate.
33434
33435 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33436
33437         PR target/65671
33438         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
33439
33440 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
33441
33442         * doc/contrib.texi (Contributors): Add John Marino.
33443
33444 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33445
33446         PR tree-optimization/65709
33447         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
33448         TREE_TYPE (TREE_TYPE (t)).
33449
33450 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
33451
33452         PR target/65710
33453         * lra-int.h (lra_bad_spill_regno_start): New.
33454         * lra.c (lra_bad_spill_regno_start): New.
33455         (lra): Set up lra_bad_spill_regno_start.  Set up
33456         lra_constraint_new_regno_start unconditionally.
33457         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
33458         spill preferences.
33459
33460 2015-04-09  Marek Polacek  <polacek@redhat.com>
33461             Jakub Jelinek  <jakub@redhat.com>
33462
33463         PR middle-end/65554
33464         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
33465         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
33466         of STRIP_NOPS.
33467
33468 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
33469
33470         PR rtl-optimization/65693
33471         * combine.c (is_parallel_of_n_reg_sets): Move outside of
33472         #ifndef HAVE_cc0.
33473
33474 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
33475
33476         PR target/65296
33477         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
33478         device specs file if "device-specs%s" didn't resolve to a path.
33479
33480 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33481
33482         PR target/65676
33483         * config/i386/i386.c (fixup_modeless_constant): New.
33484         (ix86_expand_args_builtin): Fixup modeless constant operand.
33485         (ix86_expand_round_builtin): Ditto.
33486         (ix86_expand_special_args_builtin): Ditto.
33487         (ix86_expand_builtin): Ditto.
33488
33489 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33490
33491         PR target/65693
33492         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
33493         any pow2 integer in between 2 and 0x80000000U inclusive.
33494
33495 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
33496
33497         PR rtl-optimization/65693
33498         * combine.c (is_parallel_of_n_reg_sets): Change first argument
33499         from an rtx_insn * to an rtx.
33500         (try_combine): Adjust both callers.  Use it once more.
33501
33502 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33503
33504         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
33505         (chkp_make_static_const_bounds): Search existing
33506         symbol by assembler name.  Use make_decl_one_only.
33507         (chkp_get_zero_bounds_var): Remove node search which
33508         is now performed in chkp_make_static_const_bounds.
33509         (chkp_get_none_bounds_var): Likewise.
33510
33511 2015-04-08  Michael Witten  <mfwitten@gmail.com>
33512
33513         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
33514         to an example.
33515
33516 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33517
33518         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
33519
33520 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33521
33522         * doc/extend.texi (__sync Builtins): Fix grammar.
33523
33524 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33525
33526         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
33527
33528 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33529
33530         * varasm.c (emit_local): Move definition of align.
33531
33532 2015-04-08  Julian Brown  <julian@codesourcery.com>
33533
33534         * config/nvptx/mkoffload.c (process): Support variable mapping.
33535
33536 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
33537
33538         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
33539         alpha_links **.
33540         (alpha_write_one_linkage): Correct typo.
33541
33542 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33543
33544         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
33545
33546 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33547
33548         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
33549
33550 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33551
33552         * tree-chkp.h (chkp_insert_retbnd_call): New.
33553         * tree-chkp.c (chkp_insert_retbnd_call): New.
33554         * ipa-split.c (insert_bndret_call_after): Remove.
33555         (split_function): Use chkp_insert_retbnd_call.
33556         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
33557         bounds for instrumented functions.
33558
33559 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
33560
33561         PR ipa/65540
33562         * calls.c (initialize_argument_information): When producing tail
33563         call also turn SSA_NAMES passed by references to original PARM_DECLs
33564
33565 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33566
33567         PR target/65648
33568         * lra-remat.c (do_remat): Process input and non-input insn
33569         registers separately.
33570
33571 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33572
33573         PR debug/65678
33574         * valtrack.c (debug_lowpart_subreg): New function.
33575         (dead_debug_insert_temp): Use it.
33576
33577         PR middle-end/65680
33578         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
33579         into signed HOST_WIDE_INT the same as negative bit_offset.
33580
33581 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
33582
33583         * ipa-comdats.c (ipa_comdats): Visit all thunks
33584         to set proper comdat group.
33585
33586 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33587
33588         PR target/65489
33589         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
33590         on constants for NEON VSTRUCT modes.
33591
33592 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33593             Iain Sandoe  <iain@codesourcery.com>
33594
33595         PR target/65351
33596         * configure: Regenerate.
33597
33598 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33599
33600         PR target/65614
33601         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
33602         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
33603         that LFD is used to load double constants instead of LFS.  Add
33604         defaults for all costs structures.  Add comments for missing
33605         initialization fields.
33606         (size32_cost): Likewise.
33607         (size64_cost): Likewise.
33608         (rs64a_cost): Likewise.
33609         (mpccore_cost): Likewise.
33610         (ppc403_cost): Likewise.
33611         (ppc405_cost): Likewise.
33612         (ppc440_cost): Likewise.
33613         (ppc476_cost): Likewise.
33614         (ppc601_cost): Likewise.
33615         (ppc603_cost): Likewise.
33616         (ppc604_cost): Likewise.
33617         (ppc604e_cost): Likewise.
33618         (ppc620_cost): Likewise.
33619         (ppc630_cost): Likewise.
33620         (ppccell_cost): Likewise.
33621         (ppc750_cost): Likewise.
33622         (ppc7450_cost): Likewise.
33623         (ppc8540_cost): Likewise.
33624         (ppce300c2c3_cost): Likewise.
33625         (ppce500mc_cost): Likewise.
33626         (ppce500mc64_cost): Likewise.
33627         (ppce5500_cost): Likewise.
33628         (ppce6500_cost): Likewise.
33629         (titan_cost): Likewise.
33630         (power4_cost): Likewise.
33631         (power6_cost): Likewise.
33632         (power7_cost): Likewise.
33633         (power8_cost): Likewise.
33634         (ppca2_cost): Likewise.
33635         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
33636
33637         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
33638         instead of XXLOR to copy SFmode to clear out dirty bits created
33639         when SFmode denormals are generated.
33640         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
33641         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
33642
33643 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33644
33645         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
33646         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
33647         * config/aarch64/aarch64-tune.md: Regenerate.
33648
33649 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33650
33651         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
33652         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
33653         * config/arm/arm-cores.def (exynos-m1): New core.
33654         * config/arm/arm-tune.md: Regenerate.
33655         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
33656         * config/arm/bpabi.h: Likewise.
33657
33658 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33659
33660         * ipa-cp (set_single_call_flag): Remove too
33661         restrictive assert.
33662
33663 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
33664
33665         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
33666         GOMP_offload_unregister from the destructor.
33667
33668 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33669
33670         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
33671         flags for instrumentation thunk.
33672         (chkp_produce_thunks): Likewise.
33673
33674 2015-04-05  Martin Liska  <mliska@suse.cz>
33675
33676         PR ipa/65665
33677         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
33678         has computed data structure.
33679         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33680
33681 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
33682
33683         * invoke.texi (inline-unit-growth): Increase growth to 20%
33684         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
33685
33686 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
33687
33688         PR target/65647
33689         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
33690         value checking.
33691         (lra_rematerialization_iter): New.
33692         * lra.c (lra): Initialize lra_rematerialization_iter.
33693         Stop updating lra_constraint_new_regno_start after switching of
33694         inheritance and rematerialization.
33695         * lra-remat.c (lra_rematerialization_iter): New.
33696         (lra_remat): Add printing pass iteration.  Do rematerialization
33697         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
33698
33699 2015-04-04  Richard Biener  <rguenther@suse.de>
33700
33701         PR tree-optimization/64909
33702         PR tree-optimization/65660
33703         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
33704         to take a cost vector for scalar iteration cost.
33705         (vect_get_single_scalar_iteration_cost): Likewise.
33706         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
33707         Compute the scalar iteration cost into a cost vector.
33708         (vect_get_known_peeling_cost): Use the scalar cost vector to
33709         account for the cost of the peeled iterations.
33710         (vect_estimate_min_profitable_iters): Likewise.
33711         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
33712         Likewise.
33713
33714 2015-04-04  Alan Modra  <amodra@gmail.com>
33715
33716         PR target/65576
33717         PR target/65240
33718         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
33719         0.0 constant unless TARGET_VSX.
33720         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
33721         alternative.
33722
33723 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33724
33725         PR ipa/65654
33726         * ipa-inline-transform.c (inline_call): Skip sanity check to work
33727         around the ICE
33728
33729 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33730
33731         PR ipa/65655
33732         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
33733         speculative indirect edges to avoid ordering issue.
33734
33735 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33736
33737         PR ipa/65076
33738         * ipa-inline.c (edge_badness): Add combined size to the denominator.
33739
33740 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
33741
33742         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
33743         TYPE_ARTIFICIAL on the .omp_data* types.
33744
33745 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33746
33747         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
33748         instrumentation thunks.
33749
33750 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33751
33752         * config/i386/i386.c (ix86_expand_call): Avoid nested
33753         PARALLEL in returned call value.
33754
33755 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33756
33757         * lto-cgraph.c (input_cgraph_1): Always link instrumented
33758         assembler name with original one.
33759
33760 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33761
33762         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
33763
33764 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33765
33766         Revert parts of r216820.
33767         * config/i386/i386.md (movqi_internal): Correct type calculation
33768         for alternatives 3 and 5.
33769
33770 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
33771
33772         PR preprocessor/61977
33773         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
33774         predefine __vector/__bool/__pixel macros nor context sensitive
33775         macros for CLK_ASM.
33776         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
33777
33778 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
33779
33780         * config/pa/pa.c (pa_output_move_double): Directly handle register
33781         indexed memory operand.  Simplify handling of scaled register indexed
33782         memory operands.
33783
33784 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33785
33786         PR driver/65444
33787         * config/i386/linux-common.h (MPX_SPEC): New.
33788         (CHKP_SPEC): Add MPX_SPEC.
33789         * doc/invoke.texi (-fcheck-pointer-boudns): Document
33790         possible issues with '-z bndplt' support in linker.
33791
33792 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33793
33794         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
33795         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
33796         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
33797         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
33798         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
33799
33800 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
33801
33802         * config/i386/sync.md (UNSPEC_MOVA): Remove.
33803         (atomic_load<mode>): Change operand 0 predicate to
33804         nonimmediate_operand and fix up the destination when needed.
33805         Use UNSPEC_LDA.
33806         (atomic_loaddi_fpu): Use UNSPEC_LDA.
33807         (atomic_store<mode>): Change operand 1 predicate to
33808         nonimmendate_operand and move the source to register when needed.
33809         Use UNSPEC_STA.
33810         (atomic_store<mode>_1): Use UNSPEC_STA.
33811         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
33812         Fix moves from memory operand.  Use UNSPEC_STA.
33813
33814 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33815
33816         * expmed.c (strict_volatile_bitfield_p): Check that the access will
33817         not cross a MODESIZE boundary.
33818         (store_bit_field, extract_bit_field): Added assertions in the
33819         strict volatile bitfields code path.
33820
33821 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33822
33823         PR target/65624
33824         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
33825         Increase args array size by one to avoid buffer overflow.
33826
33827 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33828
33829         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
33830         split_part.
33831         * ipa-inline.c (edge_badness): Add wrapper penalty.
33832         (sum_callers): Move up.
33833         (inline_small_functions): Set single_caller.
33834         * ipa-inline.h (inline_summary): Add single_caller.
33835         * ipa-split.c (split_function): Set split_part.
33836         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
33837         * cgraph.h (cgraph_node): Add split_part.
33838
33839 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
33840
33841         PR target/58945
33842         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
33843         Do not split operands 0 and operands 2 to halfmode.
33844         (atomic_compare_and_swap<mode>): Update for
33845         atomic_compare_and_swap<dwi>_doubleword changes.
33846
33847 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33848
33849         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
33850         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
33851         no caching is done.
33852
33853 2015-03-31  Martin Liska  <mliska@suse.cz>
33854
33855         PR ipa/65557
33856         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
33857         has already filled up function summary.
33858         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33859
33860 2015-03-31  Richard Biener  <rguenther@suse.de>
33861
33862         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
33863         of types.
33864
33865 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33866
33867         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
33868         nested functions.
33869         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
33870         (s390_asm_output_function_label): Adapt to new signature of
33871         s390_function_num_hotpatch_hw
33872         Optimise the code generating assembler output.
33873         Add comments to assembler file.
33874
33875 2015-03-31  Richard Biener  <rguenther@suse.de>
33876
33877         PR middle-end/65626
33878         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
33879         of the noreturn call so it is last and cleanup_control_flow_bb
33880         can do the CFG part.
33881
33882 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
33883
33884         PR target/65531
33885         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
33886         same_comdat_group for external symbols.
33887         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
33888         infinite same_comdat_group traversal loop.
33889
33890 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
33891
33892         PR plugins/61176
33893         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
33894         automatically to $headers.
33895
33896 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
33897
33898         PR ipa/65610
33899         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
33900         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
33901         function.
33902         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
33903         Use it.
33904         * ipa-prop.c (param_type_may_change_p): Likewise.
33905         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
33906         (remove_unused_scope_block_p): Add in_ctor_dtor_block
33907         argument.  Before inlining, preserve
33908         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
33909         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
33910         recursive calls.
33911         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
33912
33913 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33914
33915         PR ipa/65076
33916         * ipa-inline.c (edge_badness): Base denominator on callee's
33917         grwoth squared.
33918
33919 2015-03-27  Martin Jambor  <mjambor@suse.cz>
33920
33921         PR ipa/65478
33922         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
33923         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
33924         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
33925         node_calling_single_call.
33926         * ipa-cp.c (count_callers): New function.
33927         (set_single_call_flag): Likewise.
33928         (initialize_node_lattices): Count callers and set single_flag_call if
33929         necessary.
33930         (incorporate_penalties): New function.
33931         (good_cloning_opportunity_p): Use it, dump new flags.
33932         (propagate_constants_topo): Set node_within_scc flag if appropriate.
33933         * doc/invoke.texi (ipa-cp-recursion-penalty,
33934         ipa-cp-single-call-pentalty): Document.
33935
33936 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33937
33938         PR ipa/65588
33939         * symtab.c (symtab_node::get_partitioning_class): Register vars
33940         are duplicated.
33941         * varpool.c (symbol_table::output_variables) Do not assemble unefined
33942         decls for non-symbols.
33943
33944 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
33945
33946         PR target/65248
33947         * output.h (default_binds_local_p_2): New.
33948         * varasm.c (default_binds_local_p_2): Renamed to ...
33949         (default_binds_local_p_3): This.  Don't return true on protected
33950         data symbol if protected data may be external.
33951         (default_binds_local_p): Use default_binds_local_p_3.
33952         (default_binds_local_p_1): Likewise.
33953         (default_binds_local_p_2): New.
33954         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
33955         default_binds_local_p_2 if TARGET_MACHO is undefined.
33956
33957 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
33958
33959         PR target/65593
33960         * config/i386/i386.c (legitimize_pic_address): If base
33961         is SYMBOL_REF or LABEL_REF using %rip addressing, force
33962         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
33963
33964 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33965
33966         PR target/65531
33967         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
33968         comdat groups.
33969
33970 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33971
33972         PR ipa/65600
33973         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
33974         of optimized out indirect call.
33975         (redirect_to_unreachable): Always build symbol table node for
33976         BUILT_IN_UNREACHABLE
33977
33978 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
33979
33980         PR target/65407
33981         * ira-costs.c (record_reg_classes): Process all constraint string
33982         containing 0-9.
33983
33984 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
33985
33986         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
33987         memory_operand.
33988
33989         PR target/65052
33990         * config/c6x/constraints.md (S3): New constraint.
33991         * config/c6x/c6x.md (real_jump): Use it.
33992
33993 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33994
33995         PR middle-end/65595
33996         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
33997         do redirection if the call is not optimized out.
33998
33999 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
34000
34001         PR target/65495
34002         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
34003         (fchkp-check-incomplete-type): Add LTO.
34004         (fchkp-zero-input-bounds-for-main): Likewise.
34005         (fchkp-first-field-has-own-bounds): Likewise.
34006         (fchkp-narrow-bounds): Likewise.
34007         (fchkp-narrow-to-innermost-array): Likewise.
34008         (fchkp-use-static-bounds): Likewise.
34009         (fchkp-use-static-const-bounds): Likewise.
34010         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34011
34012 2015-03-27  Marek Polacek  <polacek@redhat.com>
34013
34014         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
34015
34016 2015-03-27  Marek Polacek  <polacek@redhat.com>
34017
34018         PR sanitizer/65583
34019         * ubsan.c (ubsan_create_edge): New function.
34020         (instrument_bool_enum_load): Call it.
34021         (instrument_nonnull_arg): Likewise.
34022         (instrument_nonnull_return): Likewise.
34023         (instrument_object_size): Likewise.
34024
34025 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34026
34027         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
34028         auto_vec.
34029
34030 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34031
34032         PR lto/65536
34033         * lto-streamer.h (class lto_location_cache): New.
34034         (struct data_in): Add location_cache.
34035         (lto_input_location): Update prototype.
34036         (stream_input_location_now): New.
34037         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
34038         pointer to location.
34039         (stream_input_location): Update.
34040         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
34041         (warn_odr): Apply location cache before warning.
34042         (lto_input_location): Update prototype.
34043         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
34044         Use stream_input_location_now.
34045         * lto-streamer-in.c (lto_location_cache::current_cache): New static
34046         variable.
34047         (lto_location_cache::cmp_loc): New function.
34048         (lto_location_cache::apply_location_cache): New function.
34049         (lto_location_cache::accept_location_cache): New function.
34050         (lto_location_cache::revert_location_cache): New function.
34051         (lto_location_cache::input_location): New function.
34052         (lto_input_location): Do location caching.
34053         (stream_input_location_now): New function.
34054         (input_eh_region, input_struct_function_base): Use
34055         stream_input_location_now.
34056         (lto_data_in_create): use new.
34057         (lto_data_in_delete): Use delete.
34058         * tree-streamer-in.c (unpack_ts_block_value_fields,
34059         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
34060         lto_input_ts_exp_tree_pointers): Update for cached location api.
34061
34062 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34063
34064         PR ipa/65076
34065         * passes.def: Add pass_nothrow.
34066         * ipa-pure-const.c: (pass_data_nothrow): New.
34067         (pass_nothrow): New.
34068         (pass_nothrow::execute): New.
34069         (make_pass_nothrow): New.
34070         * tree-pass.h (make_pass_nothrow): Declare.
34071
34072 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34073
34074         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
34075         edge to change by speculation resolution or redirection.
34076         (edge_set_predicate): Likewise.
34077         (inline_summary_t::duplicate): Likewise.
34078         (remap_edge_summaries): Likewise.
34079
34080 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34081
34082         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
34083         New macros.
34084         (can_inline_edge_p): Relax option matching for always inline functions.
34085
34086 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
34087
34088         PR target/65561
34089         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
34090         Check operand 4 and operand 0 for equality.
34091         (avx512f_vextract<shuffletype>32x4_1_maskm):
34092         Check operand 6 and operand 0 for equality.
34093         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
34094         for equality.
34095         (vec_extract_hi_<mode>_maskm): Ditto.
34096
34097 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34098
34099         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
34100         dead calls back to live.
34101         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
34102         cross check to ...
34103         (cgraph_node::verify_node): ... here; verify only callee edges,
34104         not caller.
34105         * cif-code.def (CILK_SPAWN): New code.
34106
34107 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
34108
34109         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
34110         (edge_set_predicate): Use it to mark unreachable edges.
34111         (inline_summary_t::duplicate): Remove unnecesary code.
34112         (remap_edge_summaries): Likewise.
34113         (dump_inline_summary): Report contains_cilk_spawn.
34114         (compute_inline_parameters): Compute contains_cilk_spawn.
34115         (inline_read_section, inline_write_summary): Stream
34116         contains_cilk_spawn.
34117         * ipa-inline.c (can_inline_edge_p): Do not touch
34118         DECL_STRUCT_FUNCTION that may not be available;
34119         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
34120         remove check for callee_fun->can_throw_non_call_exceptions and
34121         replace it by optimization attribute check; check for flag_exceptions.
34122         * ipa-inline-transform.c (inline_call): Maintain
34123         DECL_FUNCTION_PERSONALITY
34124         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
34125
34126 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34127
34128         PR tree-optimization/65551
34129         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
34130         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
34131
34132 2015-03-26  Richard Biener  <rguenther@suse.de>
34133
34134         PR middle-end/65555
34135         * tree-cfg.c (verify_gimple_call): Do not require a call to
34136         have no LHS if it wasn't recognized as control altering yet.
34137
34138 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34139
34140         PR tree-optimization/64715
34141         * passes.def: Add another instance of pass_object_sizes before ccp1.
34142         * tree-object-size.c (pass_object_sizes::execute): In
34143         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
34144         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
34145         __bos result and the computed constant.  Remove redundant
34146         checks, obsoleted by gimple_call_builtin_p test.
34147
34148         * var-tracking.c (variable_tracking_main_1): Don't track
34149         variables for targetm.no_register_allocation targets.
34150
34151 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
34152
34153         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
34154         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
34155
34156 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34157
34158         PR target/65569
34159         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
34160         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
34161         0.0 is correctly setup.
34162         (extenddftf2_internal): Likewise.
34163
34164 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
34165
34166         PR tree-optimization/65177
34167         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
34168         (bb_in_bbs): New.
34169         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
34170         edges not adjacent on the path to the original code.
34171
34172 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
34173
34174         PR bootstrap/65537
34175         * doc/install.texi (Building a native compiler): Document new
34176         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
34177         configuration assumes that the host supports the linker plugin.
34178
34179 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
34180
34181         PR target/65508
34182         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
34183         chain for generated call.
34184
34185 2015-03-25  Richard Biener  <rguenther@suse.de>
34186
34187         * passes.c (pass_manager::execute_early_local_passes): Guard
34188         execution of pass_chkp_instrumentation_passes with
34189         flag_check_pointer_bounds.
34190         (pass_chkp_instrumentation_passes::gate): Likewise.
34191
34192 2015-03-25  Martin Liska  <mliska@suse.cz>
34193
34194         PR tree-optimization/65538
34195         * symbol-summary.h (function_summary::~function_summary):
34196         Relese memory for allocated summaries.
34197         (function_summary::release): New function.
34198
34199 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
34200
34201         PR lto/65515
34202         * lto-streamer-out.c (DFS::worklist): New struct.
34203         (DFS::worklist_vec): New data member.
34204         (DFS::next_dfs_num): Remove.
34205         (DFS::DFS): Rewritten using worklist instead of recursion,
34206         using most of code from DFS::DFS_write_tree.
34207         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
34208         pass it to DFS_write_tree calls.
34209         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
34210         quick initial checks push it into worklist_vec and return.
34211
34212 2015-03-25  Richard Biener  <rguenther@suse.de>
34213
34214         PR middle-end/65519
34215         * genmatch.c (expr::gen_transform): Re-write to avoid
34216         using gimple_build.
34217
34218 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34219
34220         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
34221
34222 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34223
34224         * config/arm/arm.opt (print_tune_info): New option.
34225         * config/arm/arm.c (arm_print_tune_info): New function.
34226         (arm_file_start): Call arm_print_tune_info.
34227         * config/arm/arm-protos.h (struct tune_params): Add comment.
34228         * doc/invoke.texi (@item -mprint-tune-info): New item.
34229         (-mtune): mention it in ARM Option Summary.
34230
34231 2015-03-25  DJ Delorie  <dj@redhat.com>
34232
34233         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
34234         correct clause.
34235
34236 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
34237             Martin Liska  <mliska@suse.cz>
34238
34239         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
34240         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
34241         (sem_item::add_type): New function.
34242         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
34243         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
34244         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
34245         (sem_function::equals_wpa): Fix typo.
34246         * ipa-icf.h (sem_item::add_type): New function.
34247         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
34248         order.
34249
34250 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
34251
34252         PR tree-optimization/65533
34253         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
34254         with swapped operands, call vect_free_slp_tree on
34255         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
34256         vector.
34257
34258 2015-03-24  Richard Biener  <rguenther@suse.de>
34259
34260         PR middle-end/65517
34261         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
34262         for fixup if necessary.
34263
34264 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
34265
34266         * doc/extend.texi (Function Attributes): Add @cindex entries
34267         for all attributes and regularize their format.  Delete text
34268         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
34269         information about "eightbit_data", "tiny_data", and "model"
34270         variable attributes to the Variable Attributes section.  Fix
34271         some obvious typos and copy-editing issues.
34272         (Variable Attributes, Type Attributes): Likewise add/fix
34273         @cindex entries for all attributes.
34274
34275 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34276
34277         PR target/65523
34278         * tree-chkp.c (chkp_build_returned_bound): Ignore
34279         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
34280
34281 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
34282
34283         PR target/65505
34284         * config/sh/predicates.md (simple_mem_operand,
34285         displacement_mem_operand): Add test for reg.
34286         (short_displacement_mem_operand): Test for displacement_mem_operand
34287         before invoking sh_disp_addr_displacement.
34288         * config/sh/constraints.md (Sdd, Sra): Simplify.
34289         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
34290         Remove redundant displacement_mem_operand tests.
34291
34292 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
34293
34294         PR target/65296
34295         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
34296         the same -mmcu=MCU more than once.
34297
34298 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34299
34300         PR bootstrap/65522
34301         * ipa-devirt.c: Remove duplicate demangle.h include.
34302
34303         PR target/65504
34304         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
34305         on the pseudo.
34306         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
34307         REG_POINTER on *destptr after adjusting it for prologue size.
34308
34309         PR ipa/65521
34310         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
34311         ultimate_alias_target ()->order ints instead of
34312         ultimate_alias_target () pointers.
34313
34314 2015-03-23  Richard Biener  <rguenther@suse.de>
34315
34316         PR tree-optimization/65518
34317         * tree-vect-stmts.c (vectorizable_load): Reject single-element
34318         interleaving cases we generate absymal code for.
34319
34320 2015-03-23  Richard Biener  <rguenther@suse.de>
34321
34322         PR tree-optimization/65494
34323         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
34324         matches here.
34325         (vect_analyze_slp_instance): But do that here, always and once.
34326
34327 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34328
34329         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
34330         adding T or multiplying by T+1 and subracting T.
34331
34332 2015-03-22  Jeff Law  <law@redhat.com>
34333
34334         PR rtl-optimization/64317
34335         * Makefile.in (OBJS): Add gcse-common.c
34336         * gcse.c: Include gcse-common.h
34337         (struct modify_pair_s): Move structure definition to gcse-common.h
34338         (compute_transp): Move function to gcse-common.c.
34339         (canon_list_insert): Similarly.
34340         (record_last_mem_set_info): Break out some code and put it into
34341         gcse-common.c.  Call into the new common code.
34342         (compute_local_properties): Pass additional arguments to compute_transp.
34343         * postreload-gcse.c: Include gcse-common.h and df.h
34344         (modify_mem_list_set, blocks_with_calls): New variables.
34345         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
34346         (get_bb_avail_insn): Pass in the expression index too.
34347         (alloc_mem): Allocate memory for the new bitmaps and lists.
34348         (free_mem): Free memory for the new bitmaps and lists.
34349         (insert_expr_in_table): Record a bitmap index for each entry we
34350         add to the table.
34351         (record_last_mem_set_info): Call into common code in gcse-common.c.
34352         (get_bb_avail_insn): If no available insn was found in the requested
34353         BB.  If BB has a single predecessor, see if the expression is
34354         transparent in BB and available in that single predecessor.
34355         (compute_expr_transp): New wrapper for compute_transp.
34356         (eliminate_partially_redundant_load): Pass expression's bitmap_index
34357         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
34358         (gcse_after_reload_main): If there are elements in the hash table,
34359         then compute transparency for all the elements in the hash table.
34360         * gcse-common.h: New file.
34361         * gcse-common.c: New file.
34362
34363 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
34364
34365         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
34366         as an adjective.
34367         (System Headers): Likewise.
34368         (Ifdef): Likewise.
34369         (Traditional macros): Likewise.
34370         (Invocation): Likewise.
34371         (Option Index): Likewise.
34372         * doc/cppopts.texi (-M): Likewise.
34373         (-finput-charset): Likewise.
34374         (--help): Likewise.
34375         * doc.invoke.texi (AVR Options): Likewise.
34376         (V850 Options): Likewise.
34377
34378 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
34379
34380         PR ipa/65475
34381         * ipa-devirt.c: Include demangle.h
34382         (odr_type_d): Add field rtti_broken.
34383         (odr_subtypes_equivalent_p): Do not require name to match.
34384         (compare_virtual_tables): Fix typo; if type already has ODR violation,
34385         bypass the tests; be ready for function referneces in vtables that are
34386         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
34387         (warn_odr): Give up for nameless types.
34388         (warn_types_mismatch): Report mismatch in mangled names;
34389         report mismatch in anonymous namespaces; look into component types to
34390         give useful error; report when mismatch is dragged in from other ODR
34391         type.
34392         (odr_types_equivalent_p): Match types for being polymorphic; avoid
34393         duplicated diagnostics.
34394         (add_type_duplicate): Reorder checks so more informative ones come
34395         first; fix typo; do not output "the extra base is defined here" when
34396         we did not warn.
34397         (BINFO_N_BASE_BINFOS): Relax sanity check.
34398
34399 2015-03-22  Martin Liska  <mliska@suse.cz>
34400             Jakub Jelinek  <jakub@redhat.com>
34401
34402         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
34403         masks that can potentially include a builtin.
34404         (ix86_add_new_builtins): Introduce fast filter for isa values
34405         that cannot trigger builtin inclusion.
34406
34407 2015-03-22  Martin Liska  <mliska@suse.cz>
34408
34409         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
34410         (sem_item::update_hash_by_local_refs): Likewise.
34411         (sem_variable::get_hash): Empty line is fixed.
34412         (sem_item_optimizer::execute): Include adding of hash references.
34413         (sem_item_optimizer::update_hash_by_addr_refs): New function.
34414         (sem_item_optimizer::build_hash_based_classes): Use local hash.
34415         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
34416         (sem_item::update_hash_by_local_refs): Likewise.
34417
34418 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34419
34420         PR ipa/65502
34421         * ipa-comdats.c (enqueue_references): Walk through thunks.
34422         (ipa_comdats): Likewise.
34423         (set_comdat_group_1): New function.
34424
34425 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34426
34427         PR ipa/65475
34428         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
34429         non-polymorphic
34430
34431 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
34432             Gerald Pfeifer  <gerald@pfeifer.com>
34433
34434         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
34435
34436 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
34437             Sandra Loosemore  <sandra@codesourcery.com>
34438
34439         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
34440         function parameter declaration.
34441         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
34442         Update arguments to nios2_adjust_call_address().
34443         (sibcall_internal): Rename from *sibcall.
34444         (sibcall_value_internal): Rename from *sibcall_value.
34445         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
34446         (nios2_large_got_address): Add target temp reg parameter.
34447         (nios2_got_address): Adjust call to nios2_large_got_address, add
34448         force_reg around it.
34449         (nios2_load_pic_address): Add target temp reg parameter, replace call
34450         to nios2_got_address with corresponding code.
34451         (nios2_legitimize_constant_address): Update call to
34452         nios2_load_pic_address.
34453         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
34454         to use temp reg for PIC loading purposes.
34455         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
34456         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34457         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
34458
34459 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34460
34461         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
34462         usage of "the @option{...}".
34463         (-Wopenmp-simd): Likewise.
34464         (-fsanitize-recover): Likewise.
34465         (-fsanitize-undefined-trap-on-error): Likewise.
34466         (-flto): Likewise.
34467         (tracer-dynamic-coverage-feedback): Likewise.
34468         (reorder-block-duplicate-feedback): Likewise.
34469         (loop-unroll-jam-size): Likewise.
34470         (-B): Likewise.
34471         (-I-): Likewise.
34472         (-mabs=legacy): Likewise.
34473         (-mupper-regs-df): Likewise.
34474         (-mupper-regs-sf): Likewise.
34475         (-mpointers-to-nested-functions): Likewise.
34476
34477 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34478
34479         * doc/extend.texi (Cilk Plus Builtins): Add markup.
34480
34481 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34482
34483         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
34484         additional index entries and cross-references.
34485         (-fchkp-check-incomplete-type): Likewise.
34486         (-fchkp-first-field-has-own-bounds): Likewise.
34487         (-fchkp-narrow-to-innermost-array): Likewise.
34488         (-fchkp-use-fast-string-functions): Likewise.
34489         (-fchkp-use-nochk-string-functions): Likewise.
34490         (-fchkp-use-static-const-bounds): Likewise.
34491         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34492         (-fchkp-instrument-marked-only): Likewise.
34493         (-fchkp-use-wrappers): Likewise.
34494         (-static-libmpx): Likewise.
34495         (-static-libmpxwrappers): Likewise.
34496         * doc/extend.texi (bnd_legacy): Likewise.
34497         (bnd_instrument): Likewise.
34498         (bnd_variable_size): Likewise.
34499         (Pointer Bounds Checker builtins): Likewise.
34500
34501 2015-03-21  Tom de Vries  <tom@codesourcery.com>
34502
34503         PR tree-optimization/65458
34504         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
34505         * cgraph.h (cgraph_node): Add parallelized_function field.
34506         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
34507         (input_overwrite_node): Read parallelized_function field.
34508         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
34509         parallelized_function on cgraph_node for child_fn.
34510         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
34511         Remove include of gt-tree-parloops.h.
34512         (parallelized_functions): Remove static variable.
34513         (parallelized_function_p): Rewrite using parallelized_function field of
34514         cgraph_node.
34515         (create_loop_fn): Remove adding to parallelized_functions.
34516         * Makefile.in (GTFILES): Remove tree-parloops.c
34517
34518 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
34519
34520         PR rtl-optimization/64366
34521         * lra.c (lra_update_insn_regno_info): Consider regs in
34522         CALL_INSN_FUNCTION_USAGE memory.
34523
34524 2015-03-20  Richard Biener  <rguenther@suse.de>
34525
34526         PR middle-end/64715
34527         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
34528         for type comparison and gcc_checking_assert.
34529         (chrec_fold_plus_poly_poly): Likewise.
34530         (chrec_fold_multiply_poly_poly): Likewise.
34531         (chrec_convert_1): Likewise.
34532         * gimplify.c (gimplify_expr): Remove premature folding of
34533         &X + CST to &MEM[&X, CST].
34534
34535 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34536
34537         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
34538         already is final.
34539         (ipa_inline): Recompute inline_failed codes.
34540         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34541         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
34542         CIF_FINAL_ERROR.
34543
34544 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
34545
34546         PR rtl-optimization/60851
34547         * recog.c (constrain_operands): Accept a pseudo register before reload
34548         for LRA enabled targets.
34549
34550 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
34551
34552         PR target/65240
34553         * config/rs6000/predicates.md (easy_fp_constant): Remove special
34554         -ffast-math handling that kept non-0 constants live in the RTL
34555         until reload.  Remove logic testing the number of instructions it
34556         took to create a constant in a GPR that was never used, due to a
34557         test for soft-float earlier.
34558         (memory_fp_constant): Delete, no longer used.
34559
34560         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
34561         alternatives for loading non-0 constants into GPRs for hard
34562         floating point that is no longer needed due to changes in
34563         easy_fp_constant.  Add support for loading 0.0 into GPRs.
34564         (mov<mode>_hardfloat32): Likewise.
34565         (mov<mode>_hardfloat64): Likewise.
34566         (mov<mode>_64bit_dm): Likewise.
34567         (movtd_64bit_nodm): Likewise.
34568         (pre-reload move FP constant define_split): Delete define_split,
34569         since it is no longer used.
34570         (extenddftf2_internal): Remove GHF constraints that are not valid
34571         for extenddftf2.
34572
34573 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
34574
34575         PR rtl-optimization/63491
34576         * lra-constraints.c (check_and_process_move): Use src instead of
34577         sreg.  Remove some dead code.
34578
34579 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
34580
34581         PR ipa/65380
34582         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
34583         (sem_variable::merge): Likewise.
34584
34585 2015-03-19  Martin Liska  <mliska@suse.cz>
34586
34587         PR ipa/65465
34588         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
34589         all fields of cgraph_thunk_info.
34590
34591 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
34592
34593         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
34594         clone instrumented thunks.
34595
34596 2015-03-19  Richard Biener  <rguenther@suse.de>
34597
34598         Revert
34599         2015-03-10  Richard Biener  <rguenther@suse.de>
34600
34601         PR middle-end/63155
34602         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34603         * tree-ssa-coalesce.c: Include timevar.h.
34604         (attempt_coalesce): Handle graph being NULL.
34605         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34606         Split out abnormal coalescing to ...
34607         (perform_abnormal_coalescing): ... this function.
34608         (coalesce_ssa_name): Perform abnormal coalescing without computing
34609         live/conflict.
34610         (verify_ssa_coalescing_worker): New function.
34611         (verify_ssa_coalescing): Likewise.
34612
34613 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34614             Jakub Jelinek  <jakub@redhat.com>
34615
34616         PR sanitizer/65400
34617         * tsan.c (instrument_gimple): Clear tail call flag on
34618         calls.
34619
34620 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
34621
34622         PR sanitizer/65400
34623         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
34624         call in the return bb.
34625         (find_split_points): Add RETURN_BB argument, don't call
34626         find_return_bb.
34627         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
34628         if true append TSAN_FUNC_EXIT internal call after the call to
34629         the split off function.
34630         (execute_split_functions): Call find_return_bb here.
34631         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
34632         Adjust find_split_points and split_function calls.
34633
34634 2015-03-18  DJ Delorie  <dj@redhat.com>
34635
34636         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
34637         (iorqi3_virt): Likewise.
34638
34639 2015-03-18  Tom de Vries  <tom@codesourcery.com>
34640
34641         * tree-parloops.c (parallelize_loops): Make static.
34642         * tree-parloops.h (parallelize_loops): Remove extern declaration.
34643
34644 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
34645
34646         PR middle-end/64491
34647         Revert:
34648         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
34649
34650         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
34651         condition would be removed due to undefined behaviour.
34652
34653 2015-03-18  Martin Liska  <mliska@suse.cz>
34654
34655         PR ipa/65432
34656         * cgraph.c (cgraph_node::get_create): Remove unnecessary
34657         xstrdup_for_dump wrapper.
34658         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
34659         sem_item::name.
34660         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
34661         with xstrdup_for_dump.
34662         (sem_variable::equals): Likewise.
34663         (sem_item_optimizer::read_section): Use symtab_node::name instead of
34664         sem_item::name.
34665         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
34666         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
34667         symtab_node::asm_name with xstrdup_for_dump.
34668         (congruence_class::dump): Use symtab_node::name instead of
34669         sem_item::name.
34670         * ipa-icf.h (symtab_node::name): Remove.
34671         (symtab_node::asm_name): Likewise.
34672
34673 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34674
34675         PR tree-optimization/65450
34676         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
34677         function.
34678         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
34679         it instead of duplicate_ssa_name_ptr_info.
34680
34681         PR target/65222
34682         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
34683
34684 2015-03-18  Richard Biener  <rguenther@suse.de>
34685
34686         * tree-data-ref.h (struct access_matrix): Remove.
34687         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
34688         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
34689         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
34690         (am_vector_index_for_loop): Likewise.
34691         (struct data_reference): Remove access_matrix member.
34692         (DR_ACCESS_MATRIX): Remove.
34693         (lambda_vector_new): Add comment.
34694         (lambda_matrix_new): Use XOBNEWVEC.
34695
34696 2015-03-18  Richard Biener  <rguenther@suse.de>
34697
34698         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
34699         (pass_ch::execute): Cleanup the CFG only if we did sth.
34700         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
34701
34702 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34703
34704         * expmed.c (synth_mult): Use std::swap instead of manually
34705         swapping algorithms.
34706
34707 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34708
34709         PR target/65078
34710         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
34711
34712 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
34713
34714         PR target/65296
34715         * config/avr/avr.opt (-nodevicelib): New option.
34716         * doc/invoke.texi (AVR Options): Document it.
34717         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
34718         libgcc.a, libc.a, libm.a.
34719         * config/avr/specs.h: Same.
34720         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
34721         which don't (directly) depend on the device.  Print more help.
34722         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
34723         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
34724         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
34725         case of an error.
34726         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
34727         for specs file name.
34728         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
34729         * config/avr/avr-mcus.def: Adjust initializers and comments.
34730
34731 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
34732
34733         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
34734         DECL_ONE_ONLY to check if decl is one only.
34735         * ipa-split.c (consider_split): Limit splitt of one only functions.
34736
34737 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34738
34739         PR tree-optimization/65427
34740         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
34741         functions.
34742         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
34743
34744 2015-03-16  Marek Polacek  <polacek@redhat.com>
34745
34746         * cgraph.h (add_new_static_var): Remove declaration.
34747         * varpool.c (add_new_static_var): Remove function.
34748
34749 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34750
34751         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
34752         instead of vec<tree> * with vec_alloc and release for args.
34753         Adjust all users.
34754
34755         PR middle-end/65431
34756         * omp-low.c (delete_omp_context): Only splay_tree_delete
34757         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
34758         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
34759
34760 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
34761
34762         PR sanitizer/64820
34763         * cfgexpand.c (align_base): New function.
34764         (alloc_stack_frame_space): Call it.
34765         (expand_stack_vars): Align prev_frame to be sure
34766         data->asan_vec elements aligned properly.
34767
34768 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
34769
34770         PR middle-end/65409
34771         * expr.c (store_field): Do not do a direct block copy if the source is
34772         a PARALLEL with BLKmode.
34773
34774 2015-03-16  Tom de Vries  <tom@codesourcery.com>
34775
34776         PR middle-end/65414
34777         Revert:
34778         2015-03-12  Tom de Vries  <tom@codesourcery.com>
34779
34780         PR rtl-optimization/64895
34781         * lra-lives.c (check_pseudos_live_through_calls): Use
34782         actual_call_used_reg_set instead of call_used_reg_set, if available.
34783
34784 2015-03-16  Alan Modra  <amodra@gmail.com>
34785
34786         PR target/63150
34787         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
34788         Modify Z->r bswapdi splitter to use dest in place of scratch.
34789         In r->Z and Z->r bswapdi splitter rename word_high, word_low
34790         to word1, word2 and rearrange logic to suit.
34791         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
34792         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
34793         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
34794         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
34795         early clobber.
34796
34797 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
34798
34799         PR tree-optimization/65369
34800         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
34801         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
34802         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
34803
34804         PR tree-optimization/65418
34805         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
34806         are casts in the first PLUS_EXPR operand, ensure tbias and
34807         *totallowp are in the inner type.
34808
34809         PR rtl-optimization/65401
34810         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
34811         argument.  If true, adjust_address_nv of x with big-endian
34812         correction for the mode widening to GET_MODE (y).
34813         (make_field_assignment): Don't do MEM mode widening here.
34814         Use MEM_P instead of GET_CODE == MEM.
34815
34816 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
34817
34818         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
34819         the external decls.
34820
34821 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34822
34823         PR target/64600
34824         * config/arm/arm.c (arm_gen_constant, AND case): Use
34825         ARM_SIGN_EXTEND when constructing AND mask.
34826
34827 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34828
34829         * graph.c (print_graph_cfg): Make function names visible and append
34830         parenthesis to it.  Also make groups of basic blocks belonging to the
34831         same function visible.
34832
34833 2015-03-12  Richard Biener  <rguenther@suse.de>
34834
34835         PR middle-end/44563
34836         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
34837         to avoid quadratic behavior with inline expansion splitting blocks.
34838         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
34839         with the successor if the predecessor will be merged with it.
34840         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
34841         entry block with its successor.
34842
34843 2015-03-13  Richard Biener  <rguenther@suse.de>
34844
34845         PR middle-end/44563
34846         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
34847         (cleanup_tree_cfg_1): Do not call it.
34848         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
34849         (fixup_noreturn_call): Mark the stmt as control altering.
34850         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
34851         here.
34852         (pass_data_fixup_cfg): Produce a dump file.
34853         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
34854         (need_noreturn_fixup): New global.
34855         (pass_dominator::execute): Fixup queued noreturn calls.
34856         (optimize_stmt): Queue calls that became noreturn for fixup.
34857         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
34858         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
34859         (el_to_fixup): New global.
34860         (eliminate_dom_walker::before_dom_childre): Queue calls that
34861         became noreturn for fixup.
34862         (eliminate): Fixup queued noreturn calls.
34863         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
34864         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
34865         (substitute_and_fold_dom_walker::before_dom_children): Queue
34866         alls that became noreturn for fixup.
34867         (substitute_and_fold): Fixup queued noreturn calls.
34868
34869 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
34870
34871         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
34872         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
34873         are building; for methods check ODR type of class they belong to if
34874         they may lead to a polymorphic call.
34875         (sem_function::compare_polymorphic_p): Be bit smarter about testing
34876         when function may lead to a polymorphic call.
34877         (sem_function::compare_type_list): Remove.
34878         (sem_variable::equals): Update use of compatible_types_p.
34879         (sem_variable::parse_tree_refs): Remove.
34880         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
34881         cdtor.
34882         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
34883         matching here.
34884         (func_checker::compatible_polymorphic_types_p): Break out from ...
34885         (unc_checker::compatible_types_p): ... here.
34886         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
34887         Declare.
34888         (unc_checker::compatible_types_p): Update.
34889         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
34890         Remove.
34891
34892 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34893
34894         PR rtl-optimization/65235
34895         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
34896         When first element of vec_concat is const_int, calculate its size
34897         using second element.
34898
34899 2015-03-12  Richard Biener  <rguenther@suse.de>
34900
34901         PR middle-end/65270
34902         * fold-const.c (operand_equal_p): Fix ordering of resetting
34903         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
34904
34905 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34906
34907         * config/s390/s390.c (s390_reorg): Move code to output nops after label
34908         to s390_reorg ().
34909         (s390_asm_output_function_label): Likewise.
34910         * config/s390/s390.c (s390_asm_output_function_label):
34911         Fix function label alignment with -mhtopatch.
34912         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
34913         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
34914         ("nop_2_byte"): New define_insn.
34915         ("nop_4_byte"): Likewise.
34916         ("nop_6_byte"): Likewise.
34917         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
34918         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
34919
34920 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34921
34922         PR target/65103
34923         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
34924         register.
34925
34926 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34927
34928         PR target/65044
34929         * toplev.c (process_options): Restrict Pointer Bounds Checker
34930         usage with Address Sanitizer.
34931
34932 2015-03-12  Richard Biener  <rguenther@suse.de>
34933
34934         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
34935         to split on.
34936         * omp-low.c (expand_omp_taskreg): Split block before removing
34937         the stmt.
34938         (expand_omp_target): Likewise.
34939         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
34940         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
34941         stmt to split_block.
34942
34943 2015-03-12  Tom de Vries  <tom@codesourcery.com>
34944
34945         PR rtl-optimization/64895
34946         * lra-lives.c (check_pseudos_live_through_calls): Use
34947         actual_call_used_reg_set instead of call_used_reg_set, if available.
34948
34949 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34950
34951         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
34952         (cgraph_node::remove): Likewise.
34953         (cgraph_node::get_untransformed_body): Likewise.
34954         * varpool.c (varpool_node::remove): Likewise.
34955         (varpool_node::get_constructor): Add sanity check.
34956
34957 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
34958
34959         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
34960         old GCC versions.
34961         (-fabi-compat-version): Likewise.
34962         (-ffriend-injection): Likewise.
34963         (-Wdeclaration-after-statement): Likewise.
34964         (-fomit-frame-pointer): Likewise.
34965         (-ftree-coalesce-inlined-vars): Likewise.
34966         (-fvisibility=): Likewise.
34967         * doc/extend.texi (Typeof): Likewise.
34968         (Zero Length): Likewise.
34969         (Escaped Newlines): Likewise.
34970         (Compound Literals): Likewise.
34971         (Function Attributes): Likewise.
34972         (Label Attributes): Likewise.
34973         (Type Attributes): Likewise.
34974         (Function Names): Likewise.
34975         (Other Builtins): Likewise.
34976         (Function Specific Option Pragmas): Likewise.
34977         (C++ Interface): Likewise.
34978
34979 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
34980
34981         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
34982
34983 2015-03-11  Marek Polacek  <polacek@redhat.com>
34984
34985         PR tree-optimization/65388
34986         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
34987
34988 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34989
34990         PR target/65296
34991         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
34992         * configure: Regenerate.
34993         * config.in: Regenerate.
34994         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
34995         [-mn-flash]: Document it.
34996         [__AVR_ARCH__]: Document avrtiny.
34997
34998         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
34999         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
35000         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
35001
35002 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35003
35004         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
35005
35006 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
35007
35008         PR target/65242
35009         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
35010         allow reloads of PLUS in floating point/VSX registers.
35011
35012 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
35013
35014         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
35015         crypto_sha256_fast.
35016         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
35017
35018 2015-03-11  Richard Biener  <rguenther@suse.de>
35019
35020         PR tree-optimization/65310
35021         * tree-sra.c (build_ref_for_offset): Also preserve larger
35022         alignment.
35023
35024 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
35025
35026         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
35027
35028 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35029
35030         PR target/65368
35031         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
35032         new define_expand.
35033         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
35034
35035 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35036
35037         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
35038         (sem_function::equals_wpa): ... here.
35039
35040 2015-03-10  Marek Polacek  <polacek@redhat.com>
35041             Jakub Jelinek  <jakub@redhat.com>
35042
35043         PR sanitizer/65367
35044         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
35045         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
35046         separately.
35047
35048 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35049
35050         PR target/65286
35051         * config/rs6000/t-linux: For powerpc64* target set
35052         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
35053
35054 2015-03-10  Richard Biener  <rguenther@suse.de>
35055
35056         PR middle-end/44563
35057         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
35058         for redirect_all_calls.
35059
35060 2015-03-10  Marek Polacek  <polacek@redhat.com>
35061
35062         * gdbinit.in (pcfun): Define and document.
35063
35064 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
35065
35066         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
35067         of libgomp-plugin.h.
35068         (find_target_compiler): Support a case when the path to gcc is
35069         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
35070         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
35071         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
35072         libgomp-plugin.h.
35073         (main): Use GCC_INSTALL_NAME as target_driver_name.
35074         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
35075         define.
35076         (mkoffload.o): Remove obsolete include path and defines.
35077         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
35078
35079 2015-03-10  Richard Biener  <rguenther@suse.de>
35080
35081         PR middle-end/63155
35082         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
35083         * tree-ssa-coalesce.c: Include timevar.h.
35084         (attempt_coalesce): Handle graph being NULL.
35085         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
35086         Split out abnormal coalescing to ...
35087         (perform_abnormal_coalescing): ... this function.
35088         (coalesce_ssa_name): Perform abnormal coalescing without computing
35089         live/conflict.
35090         (verify_ssa_coalescing_worker): New function.
35091         (verify_ssa_coalescing): Likewise.
35092
35093 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
35094
35095         PR target/65296
35096         * config.gcc (extra_options) [avr]: Remove.
35097         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
35098         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
35099         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
35100
35101         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
35102         (-mmcu=): Add Var and MissingArgError properties.
35103         (-march=): Remove.
35104         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
35105         * config/avr/t-multilib: Regenerate.
35106         * config/avr/specs.h: New file.
35107         * config/avr/driver-avr.c: New file.
35108         * config/avr/genopt.sh: Remove file.
35109         * config/avr/avr-tables.opt: Remove file.
35110         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
35111         * config/avr/avr-c.c: Same.
35112         * avr-arch.h: Same.
35113         (avr_current_device): Remove proto.
35114         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
35115         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
35116         (EXTRA_SPEC_FUNCTIONS): Define.
35117         (avr_devicespecs_file): New specs function proto.
35118         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
35119         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
35120         (avr_current_device): Remove definition and usage.
35121         (avr_set_core_architecture): New static function.
35122         (avr_option_override): Use it.
35123         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
35124         (mcu_name): New static array.
35125         (comparator, avr_archs_str, avr_mcus_str): New static functions.
35126         (avr_inform_devices, avr_inform_core_architectures): New functions.
35127         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
35128         (avrlibc.h) [WITH_AVRLIBC]: Include.
35129         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
35130         (print_mcu): Rewrite from scratch.
35131         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
35132         Forward to avr-specific specs defined in device-specs file.
35133         * config/avr/t-avr (driver-avr.o): New rule.
35134         (avr-devices.o): Depend on avr-arch.h.
35135         (avr-mcus): No more depend on avr-tables.opt.
35136         (avr-tables.opt): Remove rule.
35137         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
35138
35139 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35140
35141         * c-family/c.opt (fchkp-use-wrappers): New.
35142         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
35143         (chkp_wrap_function): New.
35144         (chkp_build_instrumented_fndecl): Support wrapped
35145         functions.
35146         * doc/invoke.texi (-fcheck-pointer-bounds): New.
35147         (-fchkp-check-incomplete-type): New.
35148         (-fchkp-first-field-has-own-bounds): New.
35149         (-fchkp-narrow-bounds): New.
35150         (-fchkp-narrow-to-innermost-array): New.
35151         (-fchkp-optimize): New.
35152         (-fchkp-use-fast-string-functions): New.
35153         (-fchkp-use-nochk-string-functions): New.
35154         (-fchkp-use-static-bounds): New.
35155         (-fchkp-use-static-const-bounds): New.
35156         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
35157         (-fchkp-check-read): New.
35158         (-fchkp-check-write): New.
35159         (-fchkp-store-bounds): New.
35160         (-fchkp-instrument-calls): New.
35161         (-fchkp-instrument-marked-only): New.
35162         (-fchkp-use-wrappers): New.
35163         (-static-libmpx): New.
35164         (-static-libmpxwrappers): New.
35165
35166 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35167
35168         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
35169         (CHKP_SPEC): Add wrappers library.
35170         * c-family/c.opt (static-libmpxwrappers): New.
35171
35172 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35173
35174         * config/i386/linux-common.h (LIBMPX_LIBS): New.
35175         (LIBMPX_SPEC): New.
35176         (CHKP_SPEC): New.
35177         * gcc.c (CHKP_SPEC): New.
35178         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
35179         * c-family/c.opt (static-libmpx): New.
35180
35181 2015-03-10  Richard Biener  <rguenther@suse.de>
35182
35183         PR middle-end/44563
35184         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
35185         for compare_type.
35186         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
35187         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
35188         (cgraph_add_edge_to_call_site_hash): Likewise.
35189         (cgraph_node::get_edge): Likewise.
35190         (cgraph_edge::set_call_stmt): Likewise.
35191         (cgraph_edge::remove_caller): Likewise.
35192
35193 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
35194
35195         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
35196         (callee_saved_gpr_regs_size): ... this.
35197         (callee_saved_regs_first_regno): Rename to ...
35198         (callee_saved_first_gpr_regno): ... this.
35199         (callee_saved_regs_last_regno) Rename to ...
35200         (callee_saved_last_gpr_regno): ... this.
35201         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
35202         variables.
35203         (nds32_initial_elimination_offset): Likewise.
35204         (nds32_expand_prologue): Likewise.
35205         (nds32_expand_epilogue): Likewise.
35206         (nds32_expand_prologue_v3push): Likewise.
35207         (nds32_expand_epilogue_v3pop): Likewise.
35208         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
35209         Adjust renamed variables.
35210         (nds32_output_stack_pop): Likewise.
35211
35212 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35213
35214         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
35215         code in comment.
35216
35217 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35218
35219         PR rtl-optimization/65321
35220         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
35221         than shift mode.
35222         * var-tracking.c (use_narrower_mode): Likewise.
35223
35224 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35225
35226         PR tree-optimization/65355
35227         * varasm.c (notice_global_symbol): Do not produce RTL.
35228         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
35229         anchor.
35230         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
35231         check for section anchors.
35232
35233 2015-03-10  Alan Modra  <amodra@gmail.com>
35234
35235         PR target/65286
35236         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
35237         to be single-arch by default.  Set cpu_is_64bit for powerpc64
35238         given --with-cpu=native.
35239         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
35240         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
35241         and powerpc64le.
35242         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
35243         rs6000_isa_flags rather than TARGET_64BIT.
35244
35245 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
35246             Kaz Kojima  <kkojima@gcc.gnu.org>
35247
35248         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
35249
35250 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
35251
35252         PR lto/65361
35253         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
35254         on a TREE_BINFO, instead use BINFO_TYPE.
35255
35256 2015-03-09  Richard Biener  <rguenther@suse.de>
35257
35258         PR middle-end/65270
35259         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
35260         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
35261         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
35262         of that.  When comparing dereferences compare alignment.
35263         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
35264
35265 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35266
35267         * ipa-inline-analysis.c (check_callers): Check
35268         node->can_remove_if_no_direct_calls_and_refs_p.
35269         (growth_likely_positive): Reorganize to call
35270         can_remove_if_no_direct_calls_p later.
35271         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
35272         will_be_removed_from_program_if_no_direct_calls_p): Add
35273         will_inline parameter.
35274         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
35275         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35276         Handle inliner case correctly.
35277
35278 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35279
35280         PR tree-optimization/63743
35281         * cfgexpand.c (reorder_operands): Also reorder if only second operand
35282         had its definition forwarded by TER.
35283
35284 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35285
35286         PR lto/65316
35287         * ipa-utils.h (types_odr_comparable): Add strict argument.
35288         * ipa-devirt.c: Fix whitespace;
35289         (odr_hasher): Remove.
35290         (odr_name_hasher, odr_vtable_hasher): New hashers.
35291         (can_be_name_hashed_p): New predicate.
35292         (hash_type_name): remove.
35293         (hash_odr_name): New.
35294         (odr_name_hasher::hash): new.
35295         (can_be_vtable_hashed_p): New.
35296         (hash_odr_vtable): New.
35297         (odr_vtable_hasher::hash): New.
35298         (types_same_for_odr): Add strict parameter.
35299         (types_odr_comparable): Likewise.
35300         (odr_name_hasher::equal): New.
35301         (odr_vtable_hasher::equal): New.
35302         (odr_name_hasher::remove): New.
35303         (odr_hash_type): Change to hash_table<odr_name_hasher>.
35304         (odr_vtable_hash_type): New.
35305         (odr_vtable_hash): New.
35306         (odr_subtypes_equivalent_p): Do strict comparsion.
35307         (add_type_duplicate): Merge type names; cleanup; avoid type
35308         duplicates.
35309         (register_odr_type): Initialize vtable hash.
35310         (build_type_inheritance_graph): Likewise
35311         (get_odr_type): Reorg to use two hashes.
35312         (dump_possible_polymorphic_call_targets): Move sanity check after debug
35313         output.
35314         (ipa_devirt): Dump type_inheritance_graph.
35315         (types_same_for_odr): Add strict mode.
35316
35317 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35318
35319         PR ipa/65334
35320         * cgraph.h (symtab_node): Add definition_alignment,
35321         can_increase_alignment_p and increase_alignment.
35322         * symtab.c (symtab_node::can_increase_alignment_p,
35323         increase_alignment_1, symtab_node::increase_alignment,
35324         symtab_node::definition_alignment): New.
35325         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
35326         can_increase_alignment_p.
35327         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
35328         * tree-vect-stmts.c (ensure_base_align): Likewise.
35329         * varasm.c (function_section_1): Use definition_alignment.
35330         (assemble_start_function): Likewise.
35331         (emit_local): likewise.
35332         (build_constant_desc): Likewsie.
35333         (output_constant_def_contents): Likewise.
35334         (place_block_symbol): Likewise.
35335         (output_object_block): Likewise.
35336
35337 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35338
35339         PR ipa/65316
35340         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
35341         when outputting debug.
35342
35343 2015-03-07  Marek Polacek  <polacek@redhat.com>
35344             Martin Uecker  <uecker@eecs.berkeley.edu>
35345
35346         PR sanitizer/65280
35347         * doc/invoke.texi: Update description of -fsanitize=bounds.
35348
35349 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
35350
35351         * tree-ssa-phiopt.c (neg_replacement): Remove.
35352         (tree_ssa_phiopt_worker): Remove negate optimization.
35353
35354 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35355
35356         PR ipa/65302
35357         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
35358
35359 2015-03-06  Richard Biener  <rguenther@suse.de>
35360
35361         PR middle-end/64928
35362         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
35363         and liveout_obstack members.
35364         (calculate_live_on_exit): Remove.
35365         (calculate_live_ranges): Change declaration.
35366         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
35367         (new_tree_live_info): Adjust.
35368         (calculate_live_ranges): Delete livein when not wanted.
35369         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
35370         Deal with partly deleted live info.
35371         (loe_visit_block): Remove temporary bitmap by using
35372         bitmap_ior_and_compl_into.
35373         (live_worklist): Adjust accordingly.
35374         (calculate_live_on_exit): Make static.
35375         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
35376         we do not need livein.
35377
35378 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
35379
35380         * real.c (real_from_string): Fix typo in assertion.
35381
35382 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
35383
35384         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
35385         the patch.
35386
35387 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35388
35389         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
35390
35391 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
35392
35393         PR target/64342
35394         * lra-assigns.c (find_hard_regno_for): Rename to
35395         find_hard_regno_for_1.  Add a new parameter.
35396         (find_hard_regno_for): New function using find_hard_regno_for_1.
35397
35398 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35399
35400         PR rtl-optimization/65067
35401         * expmed.c (store_bit_field, extract_bit_field): Reworked the
35402         strict volatile bitfield handling.
35403
35404 2015-03-05  Martin Liska  <mliska@suse.cz>
35405
35406         PR ipa/65318
35407         * ipa-icf.c (sem_variable::equals): Compare variables types.
35408
35409 2015-03-05  Richard Henderson  <rth@redhat.com>
35410
35411         PR target/65121
35412         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
35413         correctly check weak symbol binding.
35414
35415 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
35416
35417         PR middle-end/65315
35418         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
35419         needed alignment.
35420
35421 2015-03-05  Martin Liska  <mliska@suse.cz>
35422
35423         * ipa-inline.c (inline_small_functions): Set default value to
35424         prevent warning during bootstrap.
35425         * tree.h: Add pragma guard that ignores false positives during
35426         bootstrap.
35427
35428 2015-03-05  Richard Biener  <rguenther@suse.de>
35429
35430         PR tree-optimization/65310
35431         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
35432         Properly preserve alignment of the base of the access.
35433
35434 2015-03-05  Richard Biener  <rguenther@suse.de>
35435
35436         PR ipa/65270
35437         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
35438         Compare dependence info.
35439
35440 2015-03-05  Richard Biener  <rguenther@suse.de>
35441
35442         PR middle-end/65233
35443         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
35444         tree-into-ssa.h.
35445         (walk_ssa_copies): Revert last chage.  Instead do not walk
35446         SSA names registered for SSA update.
35447
35448 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35449
35450         PR ipa/65270
35451         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
35452         vtable references for their containing type.
35453         (sem_function::equals_wpa): Compare TYPE_RESTRICT
35454         and type attributes.
35455
35456 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
35457
35458         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
35459         before negating it.
35460         * stor-layout.c (finalize_record_size): Revert latest change.
35461
35462 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
35463
35464         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
35465
35466 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35467
35468         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
35469         for correct comdat handling.
35470         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35471         Likewise.
35472         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
35473         (used_from_object_file_p_worker): Remove.
35474         (cgraph_node::only_called_directly_or_alised): Add
35475         used_from_object_file_p.
35476         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
35477         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
35478         can_remove_if_no_direct_calls_and_refs_p.
35479
35480 2015-03-04  Nick Clifton  <nickc@redhat.com>
35481
35482         * config/rl78/rl78.h (enum reg_class): Remove real registers from
35483         General register class.
35484         * config/rl78/rl78-real.md: Replace general register constraints
35485         with real+virtual register constraints.
35486
35487 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35488
35489         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
35490         from checking for -mhtm option.
35491
35492 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35493
35494         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
35495         (struct ipa_sra_check_caller_data): Add has_thunk field.
35496         (ipa_sra_check_caller): Check for thunk.
35497         (ipa_sra_preliminary_function_checks): Give up on function with
35498         thunks.
35499         (ipa_early_sra): Use call_for_symbol_and_aliases.
35500
35501 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
35502
35503         PR target/65249
35504         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
35505         called for __stack_chk_guard symbol.
35506
35507 2015-03-03  DJ Delorie  <dj@redhat.com>
35508
35509         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
35510         inc/dec.
35511         (*addhi3_real): Likewise.
35512         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
35513         pattern to match incrementing memory.
35514         * config/rl78/predicates.md (rl78_1_2_operand): New.
35515         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
35516         it's the same and only mem.
35517         (rl78_alloc_physical_registers_op2): If there's effectively only
35518         one MEM, transcode it into HL.
35519         (rl78_far_p): Reject addresses that aren't legitimate.
35520
35521 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35522
35523         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
35524         negating it.
35525
35526         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
35527
35528 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35529
35530         Implement call0 ABI for xtensa
35531         * config/xtensa/constraints.md ("a" constraint): Include stack
35532         pointer in case of call0 ABI.
35533         ("q" constraint): Make empty in case of call0 ABI.
35534         ("D" constraint): Include stack pointer in case of call0 ABI.
35535         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
35536         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
35537         prototypes.
35538         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
35539         variable.
35540         (xtensa_regno_to_class): Make it a local variable in the
35541         function xtensa_regno_to_class.
35542         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
35543         macro, function prototype and implementation.
35544         (reg_nonleaf_alloc_order): Make it a local variable in the
35545         function order_regs_for_local_alloc.
35546         (xtensa_conditional_register_usage): New function.
35547         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
35548         (xtensa_valid_move): Allow direct moves to stack pointer
35549         register in call0 ABI.
35550         (xtensa_setup_frame_addresses): Only spill register windows in
35551         windowed ABI.
35552         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
35553         call0 ABI respectively.
35554         (xtensa_function_arg_1): Only mark a7 register for copying in
35555         windowed ABI.
35556         (xtensa_call_save_reg): New function.
35557         (compute_frame_size): Add space for callee saved register
35558         storage to the frame size in call0 ABI.
35559         (xtensa_expand_prologue): Generate code to set up stack frame
35560         and save callee-saved registers in call0 ABI.
35561         (xtensa_expand_epilogue): New function.
35562         (xtensa_set_return_address): New function.
35563         (xtensa_return_addr): Calculate return address in call0 ABI.
35564         (xtensa_builtin_saveregs): Only mark a7 register for copying and
35565         emit copying code in windowed ABI.
35566         (order_regs_for_local_alloc): Add preferred register allocation
35567         order for non-leaf function in call0 ABI.
35568         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
35569         (xtensa_asm_trampoline_template): Add trampoline generation for
35570         call0 ABI.
35571         (xtensa_trampoline_init): Add trampoline initialization for
35572         call0 ABI.
35573         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
35574         functions.
35575         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
35576         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
35577         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
35578         ABI call-used registers.
35579         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
35580         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
35581         call0 ABI.
35582         (REG_CLASS_CONTENTS): Include all registers into the preferred
35583         reload registers set, adjust the set in the
35584         xtensa_conditional_register_usage.
35585         (xtensa_regno_to_class): Drop variable declaration.
35586         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
35587         function.
35588         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
35589         respectively.
35590         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
35591         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
35592         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
35593         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
35594         location in call0 ABI.
35595         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
35596         stack adjustment size when handling exception.
35597         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
35598         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
35599         definitions.
35600         ("return" pattern): Generate ret.n/ret in call0 ABI.
35601         ("epilogue" pattern): Expand epilogue.
35602         ("nonlocal_goto" pattern): Use default in call0 ABI.
35603         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
35604         emit eh_set_a0_* depending on ABI.
35605         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
35606         ("eh_set_a0_call0", "blockage"): New patterns.
35607
35608 2015-03-03  Martin Liska  <mliska@suse.cz>
35609
35610         PR ipa/65287
35611         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
35612
35613 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
35614
35615         PR 65138/target
35616         * config/rs6000/rs6000-tables.opt: Regenerate table.
35617
35618 2015-03-03  Renlin Li  <renlin.li@arm.com>
35619
35620         * doc/md.texi (@item ^): Change ? into ^.
35621
35622 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
35623
35624         * doc/tm.texi: Regenerated.
35625
35626 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35627
35628         * builtins.c (expand_builtin_return_addr): Add
35629         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
35630         surrounding #ifdef.
35631         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
35632         definition to 1.
35633         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
35634         Likewise.
35635         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
35636         undefined.
35637         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
35638         paragraph.
35639
35640 2015-03-03  Martin Jambor  <mjambor@suse.cz>
35641             Eric Botcazou  <ebotcazou@adacore.com>
35642
35643         * tree-sra.c (ipa_sra_check_caller_data): New type.
35644         (has_caller_p): Removed.
35645         (ipa_sra_check_caller): New function.
35646         (ipa_sra_preliminary_function_checks): Use it.
35647
35648 2015-03-03  Martin Liska  <mliska@suse.cz>
35649
35650         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
35651         instead of if branch.
35652
35653 2015-03-03  Martin Liska  <mliska@suse.cz>
35654
35655         PR ipa/65282
35656         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
35657
35658 2015-03-23  Jeff Law  <law@redhat.com>
35659
35660         PR tree-optimization/65241
35661         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
35662         hash table if INSERT is true.
35663
35664 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35665
35666         PR target/65296
35667         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
35668
35669 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35670
35671         PR target/64331
35672         * config/avr/avr.c (context.h, tree-pass.h): Include them.
35673         (avr_pass_data_recompute_notes): New static variable.
35674         (avr_pass_recompute_notes): New class.
35675         (avr_register_passes): New static function.
35676         (avr_option_override): Call it.
35677
35678 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35679
35680         Fix various problems with specs file generation.
35681
35682         PR target/65296
35683         * config.gcc (extra_gcc_objs) [avr]: Remove.
35684         * config/avr/driver-avr.c: Remove file.
35685         * config/avr/t-avr (driver-avr.o): Remove rule.
35686         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
35687         INCLUDES to build.  Depend on TM_H.
35688         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
35689         build warnings.  Fix non-matching types and non-existing %-codes.
35690         (tm.h): Include.
35691         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
35692         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
35693         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
35694         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
35695         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
35696         (LIBGCC_SPEC): Remove definitions.
35697
35698 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35699
35700         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
35701         to create a register in testing mode.
35702
35703 2015-03-03  Martin Liska  <mliska@suse.cz>
35704             Jan Hubicka  <hubicka@ucw.cz>
35705
35706         PR ipa/65263
35707         * cgraph.c (cgraph_node::has_thunk_p): New function.
35708         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
35709         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
35710         (sem_function::merge): Assert is changed.
35711
35712 2015-03-03  Martin Liska  <mliska@suse.cz>
35713             Martin Jambor  <mjambor@suse.cz>
35714
35715         PR ipa/65087
35716         * ipa-icf.c (sem_item_optimizer::execute): Change function
35717         return value to boolean.
35718         (sem_item_optimizer::merge_classes): Likewise.
35719         (ipa_icf_driver): Return TODO_remove_functions in case there's
35720         a merge operation processed.
35721         * ipa-icf.h: Change function return value to boolean.
35722
35723 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
35724
35725         PR 65138/target
35726         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
35727         processor type for 64-bit little endian PowerPC.
35728
35729         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
35730         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
35731         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
35732         printing built-in mask so it does not pass NULL pointers.
35733
35734         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
35735         -mcpu=powerpc64le.
35736
35737 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
35738
35739         PR target/58158
35740         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
35741         !ISA_HAS_FP_CONDMOVE.
35742
35743 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
35744
35745         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
35746         reload_completed.
35747
35748 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
35749
35750         * doc/invoke.texi (Options for Code Generation Conventions):
35751         Fix URL of DSO paper.
35752
35753 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35754
35755         PR ipa/65130
35756         * ipa-inline.c (check_callers): Looks for recursion.
35757         (inline_to_all_callers): Give up on uninlinable or recursive edges.
35758         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
35759         summary of inline clones.
35760         (do_estimate_growth_1): Fix recursion check.
35761
35762 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35763
35764         PR ipa/64988
35765         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
35766         comdat groups.
35767
35768 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35769             Aldy Hernandez  <aldyh@redhat.com>
35770
35771         PR lto/65276
35772         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
35773         when checking TYPE_BINFO.
35774
35775 2015-03-02  Richard Biener  <rguenther@suse.de>
35776
35777         PR ipa/65270
35778         * ipa-icf-gimple.c: Include builtins.h.
35779         (func_checker::compare_memory_operand): Compare base alignment.
35780
35781 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35782
35783         PR target/65184
35784         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
35785         passed by reference.
35786
35787 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35788
35789         PR target/65183
35790         * tree-chkp.c (chkp_check_lower): Don't check against
35791         zero bounds for already instrumented functions.
35792         (chkp_check_upper): Likewise.
35793         (chkp_fini): Clean pass local data to avoid wrong reusage.
35794
35795 2015-02-28  Martin Liska  <mliska@suse.cz>
35796             Jan Hubicka  <hubicka@ucw.cz>
35797
35798         * ipa-icf.c (sem_variable::equals): Improve debug output;
35799         get variable constructor.
35800         (sem_variable::parse): Do not filter out too early; give up on
35801         volatile and register vars.
35802         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
35803         variables.
35804         * ipa-icf.h (sem_variable::init): Do not set ctor.
35805         (sem_variable::ctor): Remove.
35806
35807 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
35808
35809         PR middle-end/65233
35810         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
35811
35812 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35813
35814         * ipa-icf.c: Include stor-layout.h
35815         (sem_function::compare_cgraph_references): Rename to ...
35816         (sem_item::compare_cgraph_references): ... this one.
35817         (sem_variable::equals_wpa): New function
35818         (sem_variable::equals): Do not check stuff already verified by
35819         equals_wpa.
35820         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
35821         * ipa-icf.h (sem_item): Add compare_cgraph_references.
35822         (sem_function): Remove compare_cgraph_references.
35823         (sem_variable): Turns equals_wpa into non-inline.
35824
35825 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35826
35827         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
35828         (sem_item::add_expr): New function.
35829         (sem_function::hash_stmt): Handle operands of most statements.
35830         (sem_variable::get_hash): Hash the actual constructor.
35831         * ipa-icf.h (sem_item): Add add_expr.
35832         (sem_function): Update prototype of hash_stmt
35833
35834 2015-02-28  Martin Liska  <mliska@suse.cz>
35835             Jan Hubicka  <hubicka@ucw.cz>
35836
35837         PR ipa/65245
35838         * ipa-icf-gimple.c (func_checker::compare_function_decl):
35839         Remove.
35840         (func_checker::compare_variable_decl): Skip symtab vars.
35841         (func_checker::compare_cst_or_decl): Update.
35842         * ipa-icf.c (sem_function::parse): Do not consider aliases.
35843         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
35844         use correct symtab predicates.
35845         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
35846         (sem_variable::parse):  Update comment.
35847         (sem_item_optimizer::build_graph): Consider ultimate aliases
35848         for references.
35849
35850 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35851
35852         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
35853         of OBJ_TYPE_REF.
35854
35855 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35856
35857         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
35858         (sem_variable::merge) Likewise.
35859
35860 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35861
35862         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
35863         target; also match flag_ipa_devirt.
35864
35865 2015-03-01  Martin Liska  <mliska@suse.cz>
35866             Jan Hubicka  <hubicka@ucw.cz>
35867
35868         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
35869         Validate variable alignment.
35870         * ipa-icf.c (sem_function::equals_private): Be more precise
35871         about non-common function attributes.
35872         (sem_variable::equals): Likewise.
35873
35874 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35875
35876         PR ipa/65237
35877         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
35878         across COMDAT group boundary.
35879
35880 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35881
35882         PR ipa/65232
35883         * ipa-icf.c (clear_decl_rtl): New function.
35884         (sem_function::merge): Clear RTL before forming alias.
35885         (sem_variable::merge): Clear RTL before forming alias.
35886
35887 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35888
35889         PR ipa/65236
35890         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
35891
35892 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
35893
35894         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
35895         to neon_to_gp<q>.
35896
35897 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35898
35899         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
35900         a typo in the description.
35901
35902 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35903
35904         PR target/64317
35905         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35906         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35907         * lra-constraints.c: Include "params.h".
35908         (EBB_PROBABILITY_CUTOFF): Use
35909         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
35910         (lra_inheritance): Use '<' instead of '<=' for
35911         EBB_PROBABILITY_CUTOFF.
35912         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
35913         Document change.
35914
35915 2015-02-27  Martin Liska  <mliska@suse.cz>
35916
35917         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
35918         vector length condition.
35919
35920 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
35921
35922         * doc/extend.texi (x86 transactional memory intrinsics):
35923         Reorganize discussion of _xbegin.  Clarify that the return
35924         value is a bit mask.  Expand example and move to end of section.
35925
35926 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35927             Aldy Hernandez  <aldyh@redhat.com>
35928
35929         PR rtl-optimization/65220
35930         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
35931
35932 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35933
35934         PR target/65032
35935         * lra-remat.c (update_scratch_ops): New.
35936         (do_remat): Call it.
35937         * lra.c (lra_register_new_scratch_op): New. Take code from ...
35938         (remove_scratches): ... here.
35939         * lra-int.h (lra_register_new_scratch_op): New prototype.
35940
35941 2015-02-27  Marek Polacek  <polacek@redhat.com>
35942
35943         PR c/65040
35944         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
35945         -Wformat-signedness anymore.
35946
35947 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35948
35949         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
35950         function.
35951         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
35952
35953 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35954
35955         * config/s390/s390.c (enum s390_builtin):
35956         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
35957         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
35958         (s390_init_builtins): Generate new builtin functions.
35959         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
35960         (s390_sfpc, s390_efpc): New pattern definitions.
35961
35962 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35963
35964         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
35965         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
35966         (s390_builtin_decls): New array.
35967         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
35968         (s390_builtin_decl): New function.
35969         (TARGET_BUILTIN_DECL): Define macro.
35970
35971 2015-02-27  Richard Biener  <rguenther@suse.de>
35972
35973         PR middle-end/63175
35974         * builtins.c (get_object_alignment_2): Make sure to re-apply
35975         the ANDed mask after recursing to its operand gets us a new
35976         misalignment bit position.
35977
35978 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
35979             Martin Liska  <mliska@suse.cz>
35980
35981         PR bootstrap/65150
35982         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
35983         Use address_matters_p.
35984         (redirect_all_callers, set_addressable): New functions.
35985         (sem_function::merge): Reorganize and fix merging issues.
35986         (sem_variable::merge): Likewise.
35987         (sem_variable::compare_sections): Remove.
35988         * common.opt (fmerge-all-constants, fmerge-constants): Remove
35989         Optimization flag.
35990         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
35991         redirect them.
35992         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
35993         decl is used.
35994         (address_matters_1): New function.
35995         (symtab_node::address_matters_p): New function.
35996         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
35997         check for merged flag.
35998         * cgraph.h (address_matters_p): Declare.
35999         (symtab_node::address_taken_from_non_vtable_p): Remove.
36000         (symtab_node::address_can_be_compared_p): New method.
36001         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
36002         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
36003         Remove.
36004         (comdat_can_be_unshared_p_1) Use address_matters_p.
36005         (update_vtable_references): Fix formating.
36006         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
36007         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
36008         * cgraphclones.c: Preserve merged and icf_merged flags.
36009
36010 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
36011
36012         * doc/extend.texi (Function Attributes): Fix spelling and typos.
36013         (Label Attributes): Likewise.
36014         (Cilk Plus Builtins): Likewise.
36015         (ARC SIMD Built-in Functions): Likewise.
36016         (ARM C Language Extensions (ACLE)): Likewise.
36017         (PowerPC Built-in Functions): Likewise.
36018         (PowerPC Hardware Transactional Memory Built-in Functions):
36019         Likewise.
36020
36021 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
36022
36023         PR tree-optimization/65216
36024         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
36025         new stmt and new SSA_NAME for lhs whenever the arguments have
36026         changed and weren't just swapped.  Fix comment typo.
36027
36028         PR tree-optimization/65215
36029         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
36030         for PDP endian targets.
36031         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
36032         Fix up formatting issues.
36033         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
36034         size is smaller than the original, adjust MEM_REF offset by the
36035         difference of sizes.  Use is_gimple_mem_ref_addr instead of
36036         is_gimple_min_invariant test to avoid adding address temporaries.
36037
36038 2015-02-26  Martin Liska  <mliska@suse.cz>
36039             Jan Hubicka  <hubicka@ucw.cz>
36040
36041         PR ipa/64693
36042         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
36043         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
36044         (sem_item_optimizer::process_cong_reduction): Include division by
36045         sensitive references.
36046         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
36047         * ipa-ref.c (ipa_ref::address_matters_p): New function.
36048         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
36049
36050 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
36051
36052         PR target/65192
36053         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
36054         Remove.
36055         * config/avr/avr.c: Same.
36056         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
36057         Refuse any constant address not in 0..0xbf.
36058         * config/avr/avr.md (*mov<mode>, *movsf): Remove
36059         tiny_valid_direct_memory_access_range from insn conditions.
36060         (mov<mode>): Don't special-case expansion of avrtiny addresses.
36061
36062 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
36063
36064         PR target/61142
36065         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
36066         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
36067         * config/sh/predicates.md (const_logical_operand): New predicate.
36068         * config/sh/sh.md: Add new peephole2 patterns.
36069
36070 2015-02-26  Marek Polacek  <polacek@redhat.com>
36071
36072         PR ipa/65008
36073         * ipa-inline.c (early_inliner): Recompute inline parameters.
36074
36075 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36076
36077         PR target/65171
36078         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
36079         instructions with TImode operands are included in the analysis.
36080
36081 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
36082
36083         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
36084         of an EDGE_FSM_THREAD.
36085
36086 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
36087
36088         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
36089
36090 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
36091
36092         PR debug/46102
36093         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
36094
36095 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
36096
36097         PR tree-optimization/65048
36098         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
36099         (thread_through_all_blocks): Call valid_jump_thread_path.
36100         Remove invalid FSM jump-thread paths.
36101
36102 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
36103
36104         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
36105         (ipa_write_optimization_summaries): Likewise.
36106         * tree-streamer.h: Include data-streamer.h.
36107         (streamer_mode_table): Declare extern variable.
36108         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
36109         * lto-streamer-out.c (lto_output_init_mode_table,
36110         lto_write_mode_table): New functions.
36111         (produce_asm_for_decls): Call lto_write_mode_table when streaming
36112         offloading LTO.
36113         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
36114         (lto_create_simple_input_block): Add mode_table argument to the
36115         lto_input_block constructors.
36116         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
36117         Likewise.
36118         * data-streamer-in.c (string_for_index): Likewise.
36119         * ipa-inline-analysis.c (inline_read_section): Likewise.
36120         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
36121         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
36122         * lto-streamer-in.c (lto_read_body_or_constructor,
36123         lto_input_toplevel_asms): Likewise.
36124         (lto_input_mode_table): New function.
36125         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
36126         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
36127         Use bp_pack_machine_mode.
36128         * real.h (struct real_format): Add name field.
36129         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
36130         (class lto_input_block): Add mode_table member.
36131         (lto_input_block::lto_input_block): Add mode_table_ argument,
36132         initialize mode_table.
36133         (struct lto_file_decl_data): Add mode_table field.
36134         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
36135         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
36136         unpack_ts_decl_common_value_fields,
36137         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
36138         * tree-streamer.c (streamer_mode_table): New variable.
36139         * real.c (ieee_single_format, mips_single_format,
36140         motorola_single_format, spu_single_format, ieee_double_format,
36141         mips_double_format, motorola_double_format,
36142         ieee_extended_motorola_format, ieee_extended_intel_96_format,
36143         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
36144         ibm_extended_format, mips_extended_format, ieee_quad_format,
36145         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
36146         decimal_single_format, decimal_double_format, decimal_quad_format,
36147         ieee_half_format, arm_half_format, real_internal_format): Add name
36148         field.
36149         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
36150
36151 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
36152
36153         PR target/65161
36154         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
36155         reordering for selective scheduling.
36156
36157 2015-02-26  Terry Guo  <terry.guo@arm.com>
36158
36159         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
36160         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
36161         (arm_arch_no_volatile_ce): Declare new global variable.
36162         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
36163         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
36164         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
36165         (TARGET_NO_VOLATILE_CE): New macro.
36166         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
36167         volatile memory access in IT block
36168
36169 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36170
36171         PR tree-optimization/61917
36172         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
36173         that reduc_def_stmt is null.
36174
36175 2015-02-25  Martin Liska  <mliska@suse.cz>
36176
36177         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
36178         hard register variables.
36179
36180 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36181
36182         PR target/64212
36183         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
36184         (symtab::noninterposable_alias): Likewise.
36185
36186 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
36187
36188         PR target/65167
36189         * config/i386/i386.c (ix86_function_arg_regno_p): Support
36190         bounds registers.
36191         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
36192
36193 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
36194
36195         PR target/64997
36196         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
36197         as split condition; force split via '#' in output pattern.
36198
36199 2015-02-25  Richard Biener  <rguenther@suse.de>
36200             Kai Tietz  <ktietz@redhat.com>
36201
36202         PR tree-optimization/61917
36203         * tree-vect-loop.c (vectorizable_reduction): Allow
36204         vect_internal_def without reduction to exit graceful.
36205
36206 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36207
36208         PR target/65196
36209         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
36210         only with NONDEBUG_INSN_P.
36211
36212 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36213
36214         Use variadic macros with avr-log.c.
36215
36216         * config/avr/avr-protos.h (avr_vdump): New prototype.
36217         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
36218         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
36219         * config/avr/avr-log.c: Adjust comments.
36220         (avr_vdump): New function.
36221         (avr_vadump): Pass caller as 2nd argument instead of format string.
36222         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
36223         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
36224
36225 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
36226
36227         PR lto/64374
36228         * target.def (target_option_stream_in): New target hook.
36229         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
36230         targetm.target_option.post_stream_in if non-NULL.
36231         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
36232         * doc/tm.texi: Updated.
36233         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
36234         function.
36235         (TARGET_OPTION_POST_STREAM_IN): Redefine.
36236
36237 2015-02-24  Jeff Law  <law@redhat.com>
36238
36239         PR target/65117
36240         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
36241         of operand 0 and operand 2.
36242         (zero_cost_loop_end, loop_end): Similarly.
36243
36244 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
36245
36246         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
36247         CXX_MEM_STAT_INFO.
36248
36249 2015-02-24  DJ Delorie  <dj@redhat.com>
36250
36251         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
36252         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
36253         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
36254         instead of hardcoding SImode.
36255
36256 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
36257
36258         * omp-low.c (create_omp_child_function): Tag entrypoint
36259         functions with a special attribute.
36260
36261 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
36262
36263         PR target/65058
36264         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
36265
36266 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
36267
36268         PR rtl-optimization/65123
36269         * lra-remat.c (operand_to_remat): Check hard regs in insn
36270         definition too.
36271
36272 2015-02-24  Nick Clifton  <nickc@redhat.com>
36273
36274         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
36275         to the assembler.
36276
36277 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
36278
36279         PR libgomp/64625
36280         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
36281         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
36282         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
36283         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
36284         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
36285         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
36286         (BUILT_IN_GOACC_PARALLEL): Specify as
36287         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
36288         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
36289         * builtin-types.def
36290         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36291         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36292         Remove function types.
36293         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
36294         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36295         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36296         New function types.
36297
36298 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
36299
36300         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
36301
36302 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
36303
36304         PR tree-optimization/65170
36305         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
36306         if val[1] < 0, clear also val[2] and return 3.
36307
36308 2015-02-24  Alan Modra  <amodra@gmail.com>
36309
36310         PR target/65172
36311         * config/rs6000/rs6000.c (get_memref_parts): Only return true
36312         when *base is a reg.  Handle nested plus addresses.  Simplify
36313         pre_modify test.
36314
36315 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
36316
36317         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
36318         use natural alignment when optimizing for size.
36319
36320 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
36321
36322         PR target/65153
36323         * config/sh/sh.md (movsicc_true+3): Remove peephole.
36324         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
36325         * config/sh/sh.c (replace_n_hard_rtx): Remove.
36326
36327 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
36328
36329         PR fortran/63427
36330         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
36331         too big for a wide_int.  Implement missing wrapping operation.
36332
36333 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
36334
36335         PR target/65163
36336         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
36337         instead of const_int 4294901760.
36338
36339 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
36340
36341         * config/avr/t-avr: Fix typo in comment.
36342
36343 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
36344
36345         * doc/rtl.texi (fma): Clarify documentation.
36346
36347 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
36348
36349         PR debug/58123
36350         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
36351         over input_location.
36352
36353 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36354
36355         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
36356         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
36357         restrict alignments to absolute_biggest_alignment.
36358         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
36359         Define.
36360         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
36361         * doc/tm.texi: Regenerate.
36362         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
36363
36364 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
36365
36366         PR target/64172
36367         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
36368
36369 2015-02-20  Richard Biener  <rguenther@suse.de>
36370
36371         PR tree-optimization/65136
36372         * tree-ssa-propagate.c: Include cfgloop.h.
36373         (replace_phi_args_in): Avoid replacing loop latch edge PHI
36374         arguments with constants.
36375
36376 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
36377             Martin Liska  <mliska@suse.cz>
36378
36379         PR target/63892
36380         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
36381         don't try to create_thunk if stdarg_p.  If
36382         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
36383         redirect_callers if possible.
36384         (sem_item_optimizer::execute): Call unregister_hooks here...
36385         (ipa_icf_driver): ... instead of here.
36386
36387 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36388
36389         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
36390         Mark operand 0 as earlyclobber in 2nd alternative.
36391         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
36392         Write negated shift amount into QI lowpart operand 0 and use it
36393         in the shift step.
36394         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
36395
36396 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36397
36398         * cgraph.h (clone_function_name_1): Declare.
36399         * cgraphclones.c (clone_function_name_1): New function.
36400         (clone_function_name): Use it.
36401         * lto-partition.c: Include "stringpool.h".
36402         (must_not_rename, maybe_rewrite_identifier)
36403         (validize_symbol_for_target): New static functions.
36404         (privatize_symbol_name): Use must_not_rename.
36405         (promote_symbol): Call validize_symbol_for_target.
36406         (lto_promote_cross_file_statics): Likewise.
36407         (lto_promote_statics_nonwpa): Likewise.
36408
36409 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
36410
36411         PR target/64452
36412         * config/avr/avr.md (pushhi_insn): New insn.
36413         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
36414
36415 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36416             Jakub Jelinek  <jakub@redhat.com>
36417
36418         * tree-streamer.c (preload_common_nodes): Don't preload
36419         TI_VA_LIST* for offloading.
36420         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
36421         in_lto_p.
36422
36423 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
36424
36425         * config/pa/pa.c (pa_emit_move_sequence): Always force
36426         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
36427         note on insn.
36428
36429         * config/pa/pa.c (pa_reloc_rw_mask): New function.
36430         (TARGET_ASM_RELOC_RW_MASK): Define.
36431         (pa_cannot_force_const_mem): Revert previous change.
36432
36433 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
36434             Jan Hubicka  <hubicka@ucw.cz>
36435
36436         PR ipa/65028
36437         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
36438         across jump functions.
36439
36440 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
36441
36442         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
36443
36444 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
36445
36446         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
36447
36448 2015-02-19  Richard Henderson  <rth@redhat.com>
36449
36450         PR middle-end/65074
36451         * varasm.c (default_binds_local_p_2): Don't test node->definition;
36452         test DECL_EXTERNAL independent of symtab_node.
36453
36454 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
36455
36456         PR lto/65012
36457         * varpool.c (varpool_node::get_constructor): Return early
36458         if this->lto_file_data is NULL.
36459
36460 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36461
36462         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
36463         (rank_for_schedule_debug): Update.
36464         (ready_sort): Make static.  Move sorting logic to ...
36465         (ready_sort_debug, ready_sort_real): New static functions.
36466         (schedule_block): Sort both debug insns and real insns in preparation
36467         for ready list trimming.  Improve debug output.
36468         * sched-int.h (ready_sort): Remove global declaration.
36469
36470 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
36471
36472         * ipa-icf.c (sem_function::equals_private): Adjust.
36473         (sem_function::bb_dict_test): Take a vec<int> * instead of
36474         auto_vec<int>.
36475         * ipa-icf.h (bb_dict_test): Likewise.
36476
36477 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36478
36479         PR gcov-profile/64634
36480         * tree-eh.c (frob_into_branch_around): Fix up typos
36481         in function comment.
36482         (lower_catch): Put eh_seq resulting from EH lowering of
36483         the cleanup sequence after the cleanup rather than before it.
36484
36485 2015-02-18  Tom de Vries  <tom@codesourcery.com>
36486
36487         * common.opt (fstdarg-opt): New option.
36488         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
36489         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
36490         (@item -fstdarg-opt): New item.
36491
36492 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
36493
36494         PR target/65064
36495         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
36496         for common symbols.
36497
36498 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36499
36500         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
36501         insn-modes.h.
36502         (ALL_HOST_OBJS): Add mkoffload.o.
36503         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
36504
36505 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
36506
36507         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
36508         (compare_virtual_tables): Be smarter about skipping typeinfos;
36509         do sane output on virtual table table mismatch.
36510         (warn_odr): Be ready for forward declarations of enums;
36511         output sane info on base mismatch and virtual table mismatch.
36512         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
36513         when only one type is polymorphic.
36514         (get_odr_type): Fix hashtable corruption.
36515         (dump_odr_type): Dump mangled names.
36516
36517 2015-02-18  Richard Biener  <rguenther@suse.de>
36518
36519         PR tree-optimization/65063
36520         * tree-predcom.c (determine_unroll_factor): Return 1 if we
36521         have replaced looparound PHIs.
36522
36523 2015-02-18  Martin Liska  <mliska@suse.cz>
36524
36525         * lto-streamer.c (lto_streamer_init): Encapsulate
36526         streamer_check_handled_ts_structures with checking macro.
36527
36528 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36529
36530         PR ipa/65087
36531         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
36532         section if !implicit_section.
36533         (cgraph_node::create_version_clone_with_body): Likewise.
36534         * trans-mem.c (ipa_tm_create_version): Likewise.
36535
36536 2015-02-18  Richard Biener  <rguenther@suse.de>
36537
36538         PR tree-optimization/62217
36539         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
36540         into BIVs.
36541
36542 2015-02-18  Marek Polacek  <polacek@redhat.com>
36543
36544         PR sanitizer/65081
36545         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
36546         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
36547         is in range [-16K, -1].  Don't issue run-time error if
36548         (ptr > ptr + offset).
36549
36550 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
36551
36552         * doc/install.texi (nvptx-*-none): New section.
36553         * doc/invoke.texi (Nvidia PTX Options): Likewise.
36554         * config/nvptx/nvptx.opt: Update.
36555
36556         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
36557         (access_check): New functions, copied from
36558         config/i386/intelmic-mkoffload.c.
36559         (main): For non-installed testing, look in all COMPILER_PATHs for
36560         GCC_INSTALL_NAME.
36561
36562         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
36563
36564 2015-02-18  Andrew Pinski  <apinski@cavium.com>
36565             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
36566
36567         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
36568         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
36569
36570 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36571
36572         * ipa-visibility.c (function_and_variable_visibility): Only
36573         check locality if node is not already local.
36574         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36575         call_for_symbol_and_aliases instead of
36576         call_for_symbol_thunks_and_aliases.
36577         (ipa_inline): Likewise.
36578         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36579         first walk aliases.
36580         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36581         call_for_symbol_and_aliases.
36582         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36583         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36584         (ipa_propagate_frequency): Update.
36585         (ipa_profile): Add opt_for_fn gueards.
36586
36587 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36588
36589         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
36590         * doc/invoke.texi (SH options): Document it.
36591         * config/sh/sh.c (sh_insn_length_adjustment): Check
36592         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
36593
36594 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
36595
36596         * common.opt (fipa-cp-alignment): New.
36597         * ipa-cp.c (ipcp_store_alignment_results): Check
36598         flag_ipa_cp_alignment.
36599         * opts.c (default_options_table): Enable -fipa-cp-alignment for
36600         -O2.
36601         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
36602         * doc/invoke.texi: Document -fipa-cp-alignment.
36603
36604 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36605
36606         PR target/64793
36607         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
36608         to nil.  Adjust comments.
36609
36610 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36611
36612         * ipa-visibility.c (function_and_variable_visibility): Only
36613         check locality if node is not already local.
36614         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36615         call_for_symbol_and_aliases instead of
36616         call_for_symbol_thunks_and_aliases.
36617         (ipa_inline): Likewise.
36618         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36619         first walk aliases.
36620         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36621         call_for_symbol_and_aliases.
36622         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36623         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36624         (ipa_propagate_frequency): Update.
36625         (ipa_profile): Add opt_for_fn guards.
36626
36627 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
36628
36629         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
36630         skipping of "strange" tokens.
36631
36632 2015-02-17  Jeff Law  <law@redhat.com>
36633
36634         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
36635         obsolete comment.
36636
36637 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
36638
36639         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
36640         as forcing a HARD_DEP between instructions, thereby
36641         disallowing rewriting to break dependencies.
36642
36643 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36644
36645         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
36646         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
36647         variables in boundary that have no inlitalizer encoded and are
36648         not aliases.
36649         * varasm.c (default_binds_local_p_2): External definitions do not
36650         count as definitions here.
36651
36652 2015-02-16  Jeff Law  <law@redhat.com>
36653
36654         PR tree-optimization/64823
36655         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
36656         statements.
36657         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36658         threading through blocks with PHIs, but no statements.
36659         (thread_through_normal_block): Distinguish between blocks where
36660         we did not process all the statements and blocks with no statements.
36661
36662 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
36663             James Greenhalgh  <james.greenhalgh@arm.com>
36664
36665         PR ipa/64963
36666         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
36667         section if not linkonce.  Fix up formatting.
36668         (cgraph_node::create_version_clone_with_body): Copy section.
36669         * trans-mem.c (ipa_tm_create_version): Likewise.
36670
36671 2015-02-16  Richard Biener  <rguenther@suse.de>
36672
36673         PR tree-optimization/65077
36674         * tree-ssa-structalias.c (get_constraint_for_1): Handle
36675         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
36676         (find_func_aliases): Allow float values to carry pointers again.
36677
36678 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
36679
36680         * doc/install.texi (Specific): Reorder targets list to put
36681         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
36682         from the top menu.
36683
36684 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
36685             David Edelsohn  <dje.gcc@gmail.com>
36686
36687         PR target/65058
36688         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
36689         mapping class to external variable or function reference.
36690         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
36691         mapping class.
36692
36693 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
36694
36695         PR target/53348
36696         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
36697         ASM_WEAKEN_DECL if defined.
36698
36699 2015-02-16  Richard Biener  <rguenther@suse.de>
36700
36701         PR lto/65015
36702         * varasm.c (default_file_start): For LTO produced units
36703         emit <artificial> as file directive.
36704
36705 2015-02-16  Richard Biener  <rguenther@suse.de>
36706
36707         PR tree-optimization/63593
36708         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
36709         stmts and releasing SSA names until...
36710         (execute_pred_commoning): ... after processing all chains.
36711
36712 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36713
36714         PR ipa/65059
36715         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
36716         external functions.
36717
36718 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
36719
36720         * doc/bugreport.texi: Adjust section titles throughout the file
36721         to use "Title Case".
36722         * doc/extend.texi: Likewise.
36723         * doc/gcov.texi: Likewise.
36724         * doc/implement-c.texi: Likewise.
36725         * doc/implement-cxx.texi: Likewise.
36726         * doc/invoke.texi: Likewise.
36727         * doc/objc.texi: Likewise.
36728         * doc/standards.texi: Likewise.
36729         * doc/trouble.texi: Likewise.
36730
36731 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
36732
36733         * cgraph.h (symtab_node::has_aliases_p): Simplify.
36734         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
36735         * tree.c (lookup_binfo_at_offset): Make static.
36736         (get_binfo_at_offset): Do not shadow offset; add explanatory
36737         comment.
36738
36739 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
36740
36741         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
36742         for all floading point loads and stores except those using a register
36743         index address.
36744         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
36745         to a register.
36746
36747 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36748
36749         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
36750         (do_estimate_growth_1): Record if any uninlinable edge was seen.
36751         (estimate_growth): Handle uninlinable edges correctly.
36752         (check_callers): New.
36753         (growth_likely_positive): Handle aliases correctly.
36754
36755 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36756
36757         * ipa-chkp.c: Use iterate_direct_aliases.
36758         * symtab.c (resolution_used_from_other_file_p): Move inline.
36759         (symtab_node::create_reference): Fix formating.
36760         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36761         (symtab_node::iterate_reference): Move inline.
36762         (symtab_node::iterate_referring): Move inline.
36763         (symtab_node::iterate_direct_aliases): Move inline.
36764         (symtab_node::used_from_object_file_p_worker): Inline into ...
36765         (symtab_node::used_from_object_file_p): ... this one; move inline.
36766         (symtab_node::call_for_symbol_and_aliases): Move inline;
36767         use iterate_direct_aliases.
36768         (symtab_node::call_for_symbol_and_aliases_1): New method.
36769         (cgraph_node::call_for_symbol_and_aliases): Move inline;
36770         use iterate_direct_aliases.
36771         (cgraph_node::call_for_symbol_and_aliases_1): New method.
36772         (varpool_node::call_for_node_and_aliases): Rename to ...
36773         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
36774         use iterate_direct_aliases.
36775         (varpool_node::call_for_symbol_and_aliases_1): New method.
36776         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
36777         (ipa_discover_readonly_nonaddressable_var): Update.
36778         * ipa-devirt.c: Fix formating.
36779         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
36780         Move inline.
36781         (cgraph_node::call_for_symbol_and_aliases): Move inline.
36782         (cgraph_node::call_for_symbol_and_aliases_1): New function..
36783         * cgraph.h (used_from_object_file_p_worker): Remove.
36784         (resolution_used_from_other_file_p): Move inline.
36785         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36786         (symtab_node::iterate_reference): Move inline.
36787         (symtab_node::iterate_referring): Move inline.
36788         (symtab_node::iterate_direct_aliases): Move inline.
36789         (symtab_node::used_from_object_file_p_worker): Inline into ...
36790         (symtab_node::used_from_object_file_p): Move inline.
36791         * tree-emutls.c (ipa_lower_emutls): Update.
36792         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
36793         (varpool_node::call_for_node_and_aliases): Remove.
36794
36795 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
36796
36797         PR tree-optimization/62209
36798         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
36799         op == range->exp, insert seq and gimplified code after labels
36800         instead of after the phi.
36801
36802 2015-02-13  Jeff Law  <law@redhat.com>
36803
36804         PR bootstrap/65060
36805         Revert my change for tree-optimization/64823.
36806
36807 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36808
36809         PR tree-optimization/65053
36810         * tree-ssa-phiopt.c (value_replacement): When moving assign before
36811         cond, either reset VR on lhs or set it to phi result VR.
36812
36813 2015-02-13  Jeff Law  <law@redhat.com>
36814
36815         PR tree-optimization/64823
36816         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
36817         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36818         threading through blocks with PHIs, but no statements.
36819         (thread_through_normal_block): Distinguish between blocks where
36820         we did not process all the statements and blocks with no statements.
36821
36822         PR rtl-optimization/47477
36823         * match.pd (convert (plus/minus (convert @0) (convert @1): New
36824         simplifier to narrow arithmetic.
36825
36826 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
36827
36828         PR ipa/65028
36829         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
36830         polymorphic call info when type is not known to be preserved.
36831
36832 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
36833
36834         PR ipa/65028
36835         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
36836         (inline_call): Use it.
36837
36838 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
36839
36840         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
36841         GOMP_DEVICE_NVIDIA_PTX.
36842
36843 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36844
36845         PR ipa/65034
36846         * stmt.c (emit_case_nodes): Use void_type_node instead of
36847         NULL_TREE as LABEL_DECL type.
36848
36849 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
36850
36851         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
36852         constraints.
36853         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
36854         symbolic references to data to be forced to constant memory on the
36855         SOM target.
36856
36857 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
36858
36859         PR tree-optimization/65002
36860         * tree-cfg.c (pass_data_fixup_cfg): Don't update
36861         SSA on start.
36862         * tree-sra.c (some_callers_have_no_vuse_p): New.
36863         (ipa_early_sra): Reject functions whose callers
36864         assume function is read only.
36865
36866 2015-02-13  Richard Biener  <rguenther@suse.de>
36867
36868         PR lto/65015
36869         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
36870         for LTO produced CUs.
36871
36872 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
36873
36874         PR tree-optimization/64705
36875         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
36876         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
36877         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
36878         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
36879         expand_simple_operations.
36880
36881 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
36882             Richard Henderson  <rth@redhat.com>
36883
36884         PR rtl/32219
36885         * cgraphunit.c (cgraph_node::finalize_function): Set definition
36886         before notice_global_symbol.
36887         (varpool_node::finalize_decl): Likewise.
36888         * varasm.c (default_binds_local_p_2): Rename from
36889         default_binds_local_p_1, add weak_dominate argument.  Use direct
36890         returns instead of assigning to local variable.  Unify varpool and
36891         cgraph paths via symtab_node.  Reject undef weak variables before
36892         testing visibility.  Reorder tests for simplicity.
36893         (default_binds_local_p): Use default_binds_local_p_2.
36894         (default_binds_local_p_1): Likewise.
36895         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
36896         via symtab_node.
36897         (default_elf_asm_output_external): Emit visibility when specified.
36898
36899 2015-02-13  Alan Modra  <amodra@gmail.com>
36900
36901         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
36902         code setting up r11 for out-of-line fp restore.
36903
36904 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
36905
36906         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
36907         (muser-mode): Likewise.
36908
36909 2015-02-13  Alan Modra  <amodra@gmail.com>
36910
36911         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
36912         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
36913
36914 2015-02-12  David Howells  <dhowells@redhat.com>
36915
36916         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
36917         warning.
36918         * tree-ssa-uninit.c (dump_predicates): Likewise.
36919         * opts.c (print_filtered_help): Likewise.
36920
36921 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36922
36923         * dwarf2out.c (output_die): Use "%s", name instead of name to
36924         avoid -Wformat-security warning.
36925
36926         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
36927         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36928         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
36929         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36930
36931 2015-02-12  Jason Merrill  <jason@redhat.com>
36932
36933         * common.opt (-flifetime-dse): New.
36934
36935 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36936
36937         PR sanitizer/65019
36938         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
36939
36940         PR tree-optimization/65014
36941         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
36942         use original second operand of arg0 or arg1 instead of
36943         that adjusted by STRIP_NOPS.
36944
36945 2015-02-11  Jeff Law  <law@redhat.com>
36946
36947         PR target/63347
36948         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
36949         that needs to be queued, just queue it for a single cycle.
36950
36951 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
36952
36953         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
36954         bodies of thunks; comment on why.
36955         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
36956         symbols are extern.
36957
36958 2015-02-11  Richard Henderson  <rth@redhat.com>
36959
36960         PR sanitize/65000
36961         * tree-eh.c (mark_reachable_handlers): Mark source and destination
36962         regions of __builtin_eh_copy_values.
36963
36964 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36965
36966         PR middle-end/65003
36967         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
36968         ultimate alias is MEM with SYMBOL_REF satisfying
36969         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
36970         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
36971
36972 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
36973
36974         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
36975         "diagnostic-core.h".
36976         (main): Initialize progname, and call diagnostic_initialize.
36977
36978         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
36979         instead of __OPENMP_TARGET__.
36980
36981         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
36982         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
36983         hard-coding PTX_ID.
36984
36985 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
36986
36987         * doc/sourcebuild.texi (pie_enabled): Document.
36988
36989 2015-02-11  Martin Liska  <mliska@suse.cz>
36990
36991         PR ipa/64813
36992         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
36993         a return value for call to a function that is noreturn.
36994
36995 2015-02-11  Richard Biener  <rguenther@suse.de>
36996
36997         PR lto/65015
36998         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
36999         and -fresolution.
37000
37001 2015-02-11  Andrew Pinski  <apinski@cavium.com>
37002
37003         PR target/64893
37004         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
37005         Change the first argument type to size_type_node and add another
37006         size_type_node.
37007         (aarch64_simd_expand_builtin): Handle the new argument to
37008         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
37009         print an out when the first two arguments are not
37010         nonzero integer constants.
37011         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
37012         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
37013
37014 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
37015
37016         PR target/61925
37017         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
37018         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
37019         (ix86_set_current_function): Rewritten.
37020         (ix86_add_new_builtins): Temporarily clear current_target_pragma
37021         when creating builtin fndecls.
37022
37023 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37024
37025         PR ipa/65005
37026         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
37027         function.
37028         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
37029         have no comdat group.
37030         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
37031         (lto_output_varpool_node): Always output alias info.
37032         (output_refs): Output refs of boundary aliases, too.
37033         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
37034         (output_symtab): Output call eges in thunks in boundary.
37035         (get_alias_symbol): Remove.
37036         (input_node, input_varpool_node): Do not special case weakrefs.
37037         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
37038         alias and thunks targets in the boundary; do not take removed symbols
37039         from their comdat groups.
37040         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
37041         (cgraph_node::global_info): Remove.
37042         (cgraph_node::rtl_info): Look through aliases and thunks.
37043         * cgrpah.h (global_info): Remove.
37044         (non_local_p): Remove.
37045
37046 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37047             Sandra Loosemore  <sandra@codesourcery.com>
37048
37049         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
37050         to inline asm.  List dialects in proper order.
37051
37052 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37053             Sandra Loosemore  <sandra@codesourcery.com>
37054
37055         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
37056
37057 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
37058
37059         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
37060         modified) reference to Solaris.
37061
37062 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
37063
37064         * doc/extend.texi (Extended Asm): Fix typos.
37065
37066 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
37067
37068         PR sanitizer/65004
37069         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
37070
37071 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
37072
37073         PR target/64661
37074         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
37075         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
37076         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
37077         * config/sh/constraints.md (Ara, Add): New constraints.
37078         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
37079         predicates.
37080         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
37081         atomic_mem_operand_0.  Don't use force_reg on the memory address.
37082         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
37083         Sra constraint.  Convert to insn_and_split.  Add workaround for
37084         PR 64974.
37085         (atomic_compare_and_swap<mode>_hard): Copy to
37086         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
37087         Use atomic_mem_operand_0 predicate.
37088         (atomic_compare_and_swap<mode>_soft_gusa,
37089         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
37090         AraAdd constraints.
37091         (atomic_compare_and_swap<mode>_soft_tcb,
37092         atomic_compare_and_swap<mode>_soft_imask,
37093         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
37094         atomic_mem_operand_0 predicate and SraSdd constraints.
37095         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
37096         constraint.
37097         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
37098         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
37099         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
37100         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
37101         force_reg on the memory address.
37102         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
37103         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
37104         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
37105         atomic_mem_operand_1 predicate and Sra constraint.
37106         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
37107         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
37108         Use atomic_mem_operand_1 predicate.
37109         (atomic_<fetchop_name><mode>_hard): Copy to
37110         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
37111         Use atomic_mem_operand_1 predicate.
37112         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
37113         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37114         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
37115         insn_and_split.  Use atomic_mem_operand_1 predicate.
37116         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
37117         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
37118         Use atomic_mem_operand_1 predicate.
37119         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
37120         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37121         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
37122         in generated insn with original mem operand before emitting the insn.
37123         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
37124         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
37125         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
37126         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
37127         Use atomic_mem_operand_1 predicate and AraAdd constraints.
37128         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
37129         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
37130         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
37131         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
37132         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
37133         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
37134         atomic_not_fetch<mode>_soft_tcb,
37135         atomic_<fetchop_name>_fetch<mode>_soft_imask,
37136         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
37137         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
37138         Use atomic_mem_operand_1 predicate and SraSdd constraints.
37139
37140 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
37141
37142         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
37143         and 3 earlyclobber operands.
37144
37145 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37146
37147         * common.opt (fstack-reuse): Mark as optimization.
37148
37149 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37150
37151         PR ipa/64982
37152         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
37153
37154 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
37155
37156         PR tree-optimization/64326
37157         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
37158
37159 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
37160
37161         PR gcov-profile/61889
37162         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
37163
37164 2015-02-10  Richard Biener  <rguenther@suse.de>
37165
37166         PR tree-optimization/64995
37167         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
37168         value we use is final.
37169         (visit_reference_op_store): Always valueize op.
37170         (visit_use): Properly valueize vuses.
37171
37172 2015-02-10  Richard Biener  <rguenther@suse.de>
37173
37174         PR tree-optimization/64909
37175         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
37176         pass a scalar-stmt count estimate to the cost model.
37177         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
37178
37179 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
37180
37181         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
37182         enabled by default together with var-tracking.
37183
37184 2015-02-10  Nick Clifton  <nickc@redhat.com>
37185
37186         * config/rl78/rl78.c: Remove DIV attribute code accidentally
37187         included in previous rl78 commit.
37188
37189 2015-02-10  Richard Biener  <rguenther@suse.de>
37190
37191         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
37192         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
37193         return the bitpack.
37194
37195 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37196
37197         PR gcov-profile/61889
37198         * config.in: regenerate.
37199         * configure.in: Likewise.
37200         * configure.ac: Check for ftw.h.
37201         * gcov-tool.c: Check for ftw.h before using nftw.
37202
37203 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37204
37205         PR lto/64076
37206         * ipa-visibility.c (update_visibility_by_resolution_info): Only
37207         assert when not in lto mode.
37208
37209 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
37210
37211         * ira-color.c (setup_left_conflict_sizes_p): Simplify
37212         initialization/assignment of conflict_size.
37213
37214 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
37215
37216         PR ipa/64978
37217         * ipa-cp.c (gather_caller_stats): Skip thunks.
37218         (propagate_constants_topo): Skip aliases.
37219
37220 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
37221
37222         PR target/64761
37223         * config/sh/sh.c (sh_option_override): Don't change
37224         -freorder-blocks-and-partition to -freorder-blocks even when
37225         unwinding is enabled.
37226         (sh_can_follow_jump): Return false if the followee jump is
37227         a crossing jump when -freorder-blocks-and-partition is specified.
37228         * config/sh/sh.md (*jump_compact_crossing): New insn.
37229
37230 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
37231             Kaz Kojima  <kkojima@gcc.gnu.org>
37232
37233         PR target/64761
37234         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
37235         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
37236         (sh_can_redirect_branch): Rename to ...
37237         (sh_can_follow_jump): ... this.  Constify argument types.
37238         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
37239         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
37240         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
37241         * doc/tm.texi: Regenerate.
37242
37243 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37244
37245         PR sanitizer/64981
37246         * builtins.c (expand_builtin): Call targetm.expand_builtin
37247         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
37248
37249 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37250
37251         PR ipa/61548
37252         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
37253
37254 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37255
37256         PR ipa/63566
37257         * ipa-icf.c (set_local): New function.
37258         (sem_function::merge): Use it.
37259
37260 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37261
37262         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
37263         (add_type_duplicate): Fix comparison of BINFOs.
37264
37265 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37266
37267         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
37268         on getting VOID pointer.
37269
37270 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37271
37272         PR target/64979
37273         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
37274         va_list escapes.
37275
37276 2015-02-09  Richard Biener  <rguenther@suse.de>
37277
37278         * genmatch.c (replace_id): Copy expr_type.
37279
37280 2015-02-09  Richard Biener  <rguenther@suse.de>
37281
37282         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
37283         (streamer_write_tree_bitfields): Declare.
37284         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
37285         properly unpack padding.
37286         (unpack_value_fields): Inline ...
37287         (streamer_read_tree_bitfields): ... here.
37288         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
37289         and properly add padding bits.
37290         (streamer_pack_tree_bitfields): Fold into ...
37291         (streamer_write_tree_bitfields): ... this new function,
37292         exposing the bitpack object.
37293         * lto-streamer-out.c (lto_write_tree_1): Call
37294         streamer_write_tree_bitfields.
37295
37296 2015-02-09  Richard Biener  <rguenther@suse.de>
37297
37298         PR tree-optimization/54000
37299         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
37300         (struct ivopts_data): Add loop_loc member.
37301         (tree_ssa_iv_optimize_loop): Dump loop location.
37302         (create_new_ivs): Likewise, also dump number of IVs generated.
37303
37304 2015-02-09  Martin Liska  <mliska@suse.cz>
37305
37306         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
37307         just if not yet registered.
37308         (ipa_icf_generate_summary): Register callgraph hooks.
37309
37310 2015-02-08  Andrew Pinski  <apinski@cavium.com>
37311
37312         * config/aarch64/aarch64.c (gty_dummy): Delete.
37313
37314 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37315
37316         PR ipa/63566
37317         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
37318         (cgraph_node::local_p): Remove thunk related FIXME.
37319
37320 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37321
37322         PR ipa/63566
37323         * i386.c (ix86_function_regparm): Look through aliases to see if callee
37324         is local and optimized.
37325         (ix86_function_sseregparm): Likewise; also use target's SSE math
37326         settings; error out instead of silently generating wrong code
37327         on mismatches.
37328         (init_cumulative_args): Look through aliases.
37329
37330 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37331
37332         PR ipa/63566
37333         * ipa-split.c (execute_split_functions): Split if function has aliases.
37334
37335 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37336
37337         PR ipa/63566
37338         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
37339         aliases before trying to expand it.
37340         (cgraph_node::expand_thunk): Fix formating.
37341
37342 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
37343
37344         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
37345         (Using Assembly Language with C): Expand introduction.
37346         (Basic Asm): Copy-edit.  Add more information about uses of
37347         basic asm.
37348         (Extended Asm): Copy-edit.  Document new escape syntax and
37349         %l[label] syntax.
37350         (Global Reg Vars): Copy-edit.
37351         (Local Reg Vars): Likewise.
37352
37353 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
37354
37355         PR debug/2714
37356         PR bootstrap/64256
37357         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
37358         (DBX_CONTIN_CHAR): Define.
37359
37360 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
37361             Brian Rzycki  <b.rzycki@samsung.com>
37362
37363         PR tree-optimization/64878
37364         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
37365         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
37366         Stop recursion at loop phi nodes after having visited a loop phi node.
37367
37368 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37369
37370         * toplev.c (process_options): Change flag_ipa_ra before creating
37371         optimization_{default,current}_node.
37372
37373         PR ipa/64896
37374         * cgraphunit.c (cgraph_node::expand_thunk): If
37375         restype is not is_gimple_reg_type nor the thunk_fndecl
37376         returns aggregate_value_p, set restmp to a temporary variable
37377         instead of resdecl.
37378
37379 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
37380
37381         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
37382
37383 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37384
37385         PR target/64205
37386         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
37387         add a general secondary reload handler for SDmode, unless we have
37388         both read/write support for SDmode.
37389
37390 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37391
37392         PR middle-end/64937
37393         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
37394         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
37395         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
37396         1 before, push it to abstract_vec.
37397         (dwarf2out_abstract_function): Adjust caller.  Don't call
37398         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
37399         DECL_ABSTRACT_P flags for all abstract_vec elts.
37400
37401 2015-02-06  Renlin Li  <renlin.li@arm.com>
37402
37403         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
37404         complex gimple.
37405         * tree-ssa.c (execute_update_addresses_taken): Likewise.
37406
37407 2015-02-06  Jeff Law  <law@redhat.com>
37408
37409         PR target/64889
37410         * config/h8300/h8300.c (push): New argument "in_prologue".
37411         Pass "in_prologue" along to "F".
37412         (h8300_push_pop): Corresponding changes.
37413         (h8300_expand_prologue): Likewise.
37414         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
37415
37416 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37417
37418         PR rtl-optimization/64957
37419         PR debug/64817
37420         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
37421         IOR rather than for AND.
37422
37423 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
37424
37425         PR target/62631
37426         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
37427         of shift-add and (add + shift) operations.  Rename local variable.
37428
37429 2015-02-05  Jeff Law  <law@redhat.com>
37430
37431         PR target/17306
37432         * config/h8300/constraints.md (U): Correctly dectect
37433         "eightbit_data" memory addresses.
37434         * config/h8300/h8300.c (eightbit_constant_address_p): Also
37435         handle (const (plus (symbol_ref (x)))) where x is declared
37436         as an 8-bit data memory address.
37437         * config/h8300/h8300.md (call, call_value): Correctly detect
37438         "funcvec" functions.
37439
37440         PR target/43264
37441         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
37442         24 to 28 bits for the H8/300.
37443
37444 2015-02-06  Alan Modra  <amodra@gmail.com>
37445
37446         PR target/64876
37447         * config/rs6000/rs6000.c (chain_already_loaded): New function.
37448         (rs6000_call_aix): Use it.
37449
37450 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
37451
37452         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
37453         check.
37454
37455 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
37456
37457         * config/h8300/constraints.md ("U" constraint): Use strict
37458         variant of REG_OK_FOR_BASE_P after reload has started.
37459
37460 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
37461
37462         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
37463         define to zero if !TARGET_NEON.
37464         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
37465
37466 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37467             Trevor Saunders  <tsaunders@mozilla.com>
37468
37469         PR ipa/61548
37470         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
37471
37472 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37473
37474         PR ipa/61548
37475         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
37476         when removing varpool nodes.
37477
37478 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37479
37480         PR ipa/61548
37481         * varpool.c (varpool_node::remove): Fix order of variables.
37482
37483 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37484
37485         PR ipa/64686
37486         * ipa-inline.c (inline_small_functions): Fix ordering issue between
37487         speculation resolution and key updates.
37488
37489 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37490
37491         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
37492         about not letting any speculative edges unupdated.
37493
37494 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37495
37496         PR gcov/64123
37497         * gcov-io.c (gcov_var): Export.
37498
37499 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37500
37501         PR middle-end/64922
37502         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
37503         edges that become speculative.
37504
37505 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37506
37507         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
37508         or DW_LANG_Fortran08.
37509         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
37510         DW_LANG_Fortran08.
37511         (gen_compile_unit_die): Handle "GNU Fortran2003" and
37512         "GNU Fortran2008" language strings.
37513         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
37514         * langhooks.h (lang_GNU_Fortran): New prototype.
37515         * langhooks.c (lang_GNU_Fortran): New function.
37516         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
37517         lang_GNU_Fortran.
37518
37519 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37520
37521         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
37522         (RTX_OK_FOR_OLO10_P): Likewise.
37523
37524 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37525
37526         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
37527
37528 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37529
37530         PR middle-end/64922
37531         * gimple.c: Include gimple-ssa.h.
37532         (maybe_remove_unused_call_args): New function.
37533         * gimple.h (maybe_remove_unused_call_args): Declare.
37534         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
37535         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
37536         * gimple-fold.c (gimple_fold_call): Likewise.
37537
37538 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
37539
37540         PR rtl-optimization/64905
37541         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
37542         pointer alignment if it isn't needed.
37543
37544 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37545
37546         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
37547         cortex-a72.cortex-a53.
37548         * config/aarch64/aarch64-tune.md: Regenerate.
37549         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
37550
37551 2015-02-04  Nick Clifton  <nickc@redhat.com>
37552
37553         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
37554         inside a MEM.
37555
37556 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37557
37558         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
37559         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
37560         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
37561         of DEF_BUILTIN.
37562         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
37563         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
37564         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
37565         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
37566         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
37567         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
37568         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
37569         * tree-core.h (enum built_in_function): In between
37570         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
37571         for builtins that use DEF_BUILTIN_CHKP macro.
37572
37573 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
37574
37575         PR debug/64817
37576         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
37577         operands for tcc_comparison exprs.  Fix typos.
37578
37579         PR debug/64817
37580         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
37581         of two XORs that have an intervening AND or IOR.
37582
37583         PR debug/64817
37584         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
37585         simplification of XOR of AND to not allocate new rtx before
37586         committing to a simplification.
37587
37588 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37589
37590         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
37591         manual swaps in all peepholes.
37592
37593 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37594
37595         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
37596         of manual swapping implementation.
37597         (aarch64_expand_vec_perm_const_1): Likewise.
37598
37599 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
37600
37601         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
37602         (generic_addrcost_table): Remove NAMED_PARAM.
37603         (cortexa57_addrcost_table): Likewise.
37604         (xgene1_addrcost_table): Likewise.
37605         (generic_regmove_table): Likewise.
37606         (cortexa53_regmove_table): Likewise.
37607         (xgene1_regmove_table): Likewise.
37608         (generic_vector_table): Likewise.
37609         (cortexa57_vector_table): Likewise.
37610         (xgene1_vector_table): Likewise.
37611         (generic_tunings): Likewise.
37612         (cortexa53_tunings): Likewise.
37613         (cortexa57_tunings): Likewise.
37614         (xgene1_tunings): Likewise.
37615
37616 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37617
37618         * config/arm/arm-cores.def: Add cortex-a72 and
37619         cortex-a72.cortex-a53.
37620         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
37621         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
37622         * config/arm/arm-tune.md: Regenerate.
37623         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
37624         "cortex-a72.cortex-a53".
37625         * doc/invoke.texi (ARM Options/-mtune): Likewise.
37626
37627 2015-02-04  Nick Clifton  <nickc@redhat.com>
37628
37629         PR target/64408
37630         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
37631         of accepted codes.
37632         (nonimmediate_di_operand): Likewise.
37633
37634         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
37635         prefixes of known F5 using MSP430 MCUs.
37636
37637 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37638
37639         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
37640         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
37641         instead of __builtin_sqrt.
37642
37643 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
37644
37645         * varasm.c (do_assemble_alias): Follow transparent alias
37646         chain for target.
37647         (default_assemble_visibility): Follow transparent alias
37648         chain for decl name.
37649
37650 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37651
37652         PR middle-end/62103
37653         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
37654         to compute size of referenced value in the constant case.
37655
37656 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37657
37658         PR rtl-optimization/64756
37659         * cse.c (invalidate_dest): New function.
37660         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
37661         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
37662         invalidate and do not record it.
37663
37664 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
37665
37666         PR target/64660
37667         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
37668         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
37669         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
37670         atomic_nand<mode>_soft_tcb): New insns.
37671         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
37672         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
37673         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
37674         Split into atomic_not_fetchsi_hard if operands[0] is unused.
37675         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
37676         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37677         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
37678         atomic_not<mode>_hard if operands[0] is unused.
37679         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
37680         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
37681         if operands[0] is unused.
37682         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
37683         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
37684         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
37685         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37686         unused.
37687         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
37688         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37689         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
37690         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
37691         if operands[0] is unused.
37692         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
37693         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
37694         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
37695         atomic_nand_fetchsi_hard if operands[0] is unused.
37696         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
37697         atomic_nand<mode>_hard if operands[0] is unused.
37698         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
37699         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
37700         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
37701         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37702         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
37703         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
37704         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
37705         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37706         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
37707         atomic_not<mode>_hard if operands[0] is unused.
37708         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
37709         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37710         unused.
37711         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37712         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37713         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
37714         atomic_nand<mode>_hard if operands[0] is unused.
37715         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37716         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37717
37718 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
37719
37720         PR jit/64810
37721         * Makefile.in (GCC_OBJS): Add gcc-main.o.
37722         * gcc-main.c: New file, containing "main" taken from gcc.c.
37723         * gcc.c (do_self_spec): Free decoded_options.
37724         (class driver): Move declaration to gcc.h.
37725         (main): Move declaration and implementation to new file
37726         gcc-main.c.
37727         (driver_get_configure_time_options): New function.
37728         * gcc.h (class driver): Move this declaration here, from
37729         gcc.c.
37730         (driver_get_configure_time_options): New declaration.
37731
37732 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
37733
37734         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
37735         cross-module inlining.
37736         * cgraph.h (cgraph_node): Add flag merged.
37737         * ipa-icf.c (sem_function::merge): Maintain it.
37738
37739 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
37740
37741         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
37742         instead of OBJECT_P.
37743
37744 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
37745
37746         PR target/62631
37747         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
37748         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
37749         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
37750         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
37751
37752 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37753
37754         PR other/63504
37755         * combine.c (reg_n_sets_max): New variable.
37756         (can_change_dest_mode, reg_nonzero_bits_for_combine,
37757         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
37758         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
37759         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
37760         (rest_of_handle_combine): Initialize reg_n_sets_max.
37761
37762 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
37763
37764         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
37765         if some always_inline was inlined, apply changes before inlining
37766         heuristically.
37767
37768 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
37769
37770         PR jit/64810
37771         * config/arm/arm.c (arm_option_override): Set
37772         arm_selected_arch/cpu/tune to NULL on entry.
37773
37774 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
37775             Andrew Pinski  <pinskia@gcc.gnu.org>
37776             Jakub Jelinek  <jakub@gcc.gnu.org>
37777
37778         PR target/64231
37779         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
37780         integer typing for small model. Use IN_RANGE.
37781
37782 2015-02-02  Richard Biener  <rguenther@suse.de>
37783
37784         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
37785         * tree-vrp.c (vrp_valueize_1): Likewise.
37786
37787 2015-02-02  Alan Modra  <amodra@gmail.com>
37788
37789         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
37790         than mem for toc_restore.
37791         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
37792         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
37793         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
37794
37795 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
37796
37797         PR target/64047
37798         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
37799         explicit default options.
37800
37801 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
37802
37803         PR ipa/64872
37804         * ipa-utils.c (ipa_merge_profiles): Add release argument.
37805         * ipa-icf.c (sem_function::merge): Do not release body when merging.
37806         * ipa-utils.h (ipa_merge_profiles): Update prototype.
37807
37808 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
37809
37810         PR debug/64817
37811         * cfgexpand.c (deep_ter_debug_map): New variable.
37812         (avoid_deep_ter_for_debug): New function.
37813         (expand_debug_expr): If TERed SSA_NAME is in
37814         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
37815         instead of trying to expand SSA_NAME's def stmt.
37816         (expand_debug_locations): When expanding debug bind
37817         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
37818         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
37819         value.
37820         (pass_expand::execute): Call avoid_deep_ter_for_debug on
37821         all debug bind stmts.  Delete deep_ter_debug_map after
37822         expand_debug_location if non-NULL and clear it.
37823
37824 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
37825
37826         PR target/64851
37827         * config/sh/sync.md (atomic_fetch_notsi_hard,
37828         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
37829         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
37830         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
37831         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
37832         atomic_not_fetch<mode>_soft_imask): New insns.
37833
37834 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37835
37836         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
37837         (rank_for_schedule_debug): Split from ...
37838         (rank_for_schedule): ... this.
37839         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
37840         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
37841
37842 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37843
37844         * doc/md.texi (Machine Constraints): Alphabetize table by target.
37845         * doc/extend.texi (x86 Variable Attributes): Move section to
37846         correct alphabetization after renaming.
37847         (x86 Type Attributes): Likewise.
37848         (Target Builtins): Re-alphabetize menu.
37849         (x86 Built-in Functions): Move section to correct alphabetization
37850         after renaming.
37851         (x86 transactional memory intrinsics): Likewise.
37852         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
37853         and x86 Windows Options in table and menu.
37854         (x86 Options): Move section to correct alphabetization after
37855         renaming.
37856         (x86 Windows Options): Likewise.
37857
37858 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37859
37860         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
37861         preferred names of the architecture and its 32- and 64-bit
37862         variants.
37863         * doc/invoke.texi: Likewise.
37864         * doc/md.texi: Likewise.
37865
37866 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37867
37868         PR target/64882
37869         * config/i386/predicates.md (address_no_seg_operand): Reject
37870         non-CONST_INT_P operands in invalid mode.
37871
37872 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37873
37874         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
37875         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
37876         * config/i386/predicates.md (address_no_seg_operand): Call
37877         address_operand with VOIDmode.
37878         (vsib_address_operand): Ditto.
37879         (address_mpx_no_base_operand): Ditto.
37880         (address_mpx_no_index_operand): Ditto.
37881
37882 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37883
37884         PR target/64688
37885         * lra-constraints.c (original_subreg_reg_mode): New.
37886         (simplify_operand_subreg): Try to simplify subreg of const.  Use
37887         original_subreg_reg_mode for it.
37888         (swap_operands): Update original_subreg_reg_mode.
37889         (curr_insn_transform): Set up original_subreg_reg_mode.
37890
37891 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37892
37893         PR target/64617
37894         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
37895         function.
37896         (process_alt_operands): Use it.
37897         (curr_insn_transform): Check the optional reload pseudo class is
37898         ok for the mode.
37899
37900 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
37901
37902         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
37903         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
37904         prototype.
37905         * toplev.h (init_asm_output): Update comment on use of
37906         UNKNOWN_LOCATION with fatal_error.
37907         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
37908         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
37909         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
37910         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
37911         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
37912         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
37913         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
37914         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
37915         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
37916         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
37917         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
37918         fatal_error changed to pass input_location as first argument.
37919
37920 2015-01-30  Martin Liska  <mliska@suse.cz>
37921
37922         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
37923         in #pragma GCC diagnostic guards.
37924
37925 2015-01-30  Richard Biener  <rguenther@suse.de>
37926
37927         PR tree-optimization/64829
37928         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
37929         not add a widening conversion pattern but hand off extra
37930         widenings to callers.
37931         (vect_recog_widen_mult_pattern): Handle extra widening produced
37932         by vect_handle_widen_op_by_const.
37933         (vect_recog_widen_shift_pattern): Likewise.
37934         (vect_pattern_recog_1): Remove excess vertical space in dumping.
37935         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
37936         (vect_init_vector_1): Likewise.
37937         (vect_get_vec_def_for_operand): Likewise.
37938         (vect_finish_stmt_generation): Likewise.
37939         (vectorizable_load): Likewise.
37940         (vect_analyze_stmt): Likewise.
37941         (vect_is_simple_use): Likewise.
37942
37943 2015-01-29  Jeff Law  <law@redhat.com>
37944
37945         * combine.c (try_combine): Fix typo in comment.
37946
37947 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
37948
37949         PR target/64580
37950         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
37951         (rs6000_stack_info): Add assert.
37952         (rs6000_output_savres_externs): New function, split off from...
37953         (rs6000_output_function_prologue): ... here.  Do not call it for
37954         thunks.
37955
37956 2015-01-29  Jeff Law  <law@redhat.com>
37957
37958         PR target/15184
37959         * combine.c (try_combine): If I0 is a memory load and I3 a store
37960         to a related address, increase the "goodness" of doing a 4-insn
37961         combination with I0-I3.
37962         (make_field_assignment): Handle SUBREGs in the ior+and case.
37963
37964 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
37965
37966         PR tree-optimization/64746
37967         * tree-if-conv.c (mask_exists): New function.
37968         (predicate_mem_writes): Save created mask with given size for further
37969         use.
37970         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
37971         (ifcvt_repair_bool_pattern): Collect all statements that are root
37972         of bool pattern and use iterative algorithm to remove multiple uses
37973         of predicates, display number of required iterations.
37974
37975 2015-01-29  Richard Biener  <rguenther@suse.de>
37976
37977         PR tree-optimization/64853
37978         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
37979         stmt will get simulated again.
37980         * tree-ssa-ccp.c (valueize_op_1): Likewise.
37981
37982 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37983
37984         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
37985         return_in_pc.  Remove redundant assignments.
37986         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
37987         (arm_expand_epilogue): Don't compare boolean with true in if condition.
37988
37989 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
37990
37991         * config/i386/i386.c (ix86_mode_after): Make static.
37992
37993 2015-01-29  Richard Biener  <rguenther@suse.de>
37994
37995         PR tree-optimization/64844
37996         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
37997         dump cost model analysis.
37998         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
37999         Do not register adjusted load/store costs here.
38000
38001 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
38002             Uros Bizjak  <ubizjak@gmail.com>
38003
38004         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
38005         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
38006         using x86_use_pseudo_pic_reg.
38007         * config/i386/i386.c (ix86_conditional_register_usage): Remove
38008         support for fixed PIC register.
38009         (ix86_use_pseudo_pic_reg): Not static any more.
38010
38011 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
38012
38013         PR middle-end/64805
38014         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
38015         to avoid error in cgraph node verification.
38016
38017 2015-01-29  Marek Polacek  <polacek@redhat.com>
38018
38019         * doc/standards.texi: Reflect that the default for C is gnu11.
38020
38021 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
38022
38023         PR target/64761
38024         * reorg.c (switch_text_sections_between_p): New function.
38025         (relax_delay_slots): Call it when testing if the jump insn
38026         is removable.  Use targetm.can_follow_jump when testing if
38027         the conditional branch can follow an unconditional jump.
38028
38029 2015-01-27  Caroline Tice  <cmtice@google.com>
38030
38031         Committing VTV Cywin/Ming patch for Patrick Wollgast
38032         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
38033         if -fvtable-verify=preinit/std is used.
38034         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
38035         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
38036         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
38037         if -fvtable-verify=preinit/std is used.
38038         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
38039         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
38040         if -fvtable-verify=preinit/std is used.
38041         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
38042         * config/i386/mingw32.h (LIB_SPEC): Likewise.
38043         * varasm.c (assemble_variable): Add code to properly set the comdat
38044         section and name for the .vtable_map_vars section in case the
38045         target is PE or COFF.
38046
38047 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
38048
38049         PR ipa/64801
38050         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
38051         make sane BB profile.
38052         (cgraph_node::expand_thunk): Make sane BB profile.
38053         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
38054         * cgraph.h (init_lowered_empty_function): Update prototype.
38055         * config/i386/i386.c (make_resolver_func): Update call.
38056         * predict.c (gate): Disable branch prediction pass if
38057         profile is already there.
38058
38059 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
38060
38061         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
38062         * opth-gen.awk: Likewise.
38063         * common.opt: Mark flag_fp_contract_mode as Optimization.
38064
38065 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38066
38067         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
38068         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
38069
38070 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
38071
38072         PR target/64659
38073         * config/sh/predicates.md (atomic_arith_operand,
38074         atomic_logical_operand): Remove.
38075         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
38076         (atomic_arith_operand_0): New predicate.
38077         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
38078         Use atomic_arith_operand_0 for input values.
38079         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
38080         atomic_compare_and_swap<mode>_soft_gusa,
38081         atomic_compare_and_swap<mode>_soft_tcb,
38082         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
38083         arith_reg_operand instead of register_operand.
38084         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
38085         atomic_arith_operand_0 for newval input.
38086         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
38087         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
38088         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
38089         arith_reg_operand instead of register_operand.
38090         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
38091         fetchop_predicate_1, fetchop_constraint_1_llcs,
38092         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
38093         fetchop_constraint_1_imask): New code iterator attributes.
38094         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
38095         register_operand.  Use fetchop_predicate_1.
38096         (atomic_fetch_<fetchop_name>si_hard,
38097         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
38098         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
38099         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
38100         and arith_reg_operand instead of register_operand.  Use
38101         fetchop_predicate_1, fetchop_constraint_1_gusa.
38102         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
38103         and arith_reg_operand instead of register_operand.  Use
38104         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
38105         to allow R0 usage.
38106         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
38107         and arith_reg_operand instead of register_operand.  Use
38108         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
38109         to allow R0 usage.
38110         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
38111         register_operand.  Use atomic_logical_operand_1.
38112         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
38113         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
38114         arith_reg_operand instead of register_operand.
38115         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
38116         Use arith_reg_dest and arith_reg_operand instead of register_operand.
38117         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
38118         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
38119         register_operand.  Use fetchop_predicate_1.
38120         (atomic_<fetchop_name>_fetchsi_hard,
38121         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
38122         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38123         fetchop_constraint_1_llcs.
38124         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
38125         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38126         fetchop_constraint_1_gusa.
38127         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
38128         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38129         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
38130         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
38131         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38132         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
38133         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
38134         register_operand.  Use atomic_logical_operand_1.
38135         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
38136         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
38137         arith_reg_operand instead of register_operand.
38138         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
38139         arith_reg_operand instead of register_operand.  Use logical_operand
38140         and K08.  Adjust asm sequence to allow R0 usage.
38141         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
38142         arith_reg_operand instead of register_operand.  Use logical_operand
38143         and K08.
38144
38145 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38146
38147         PR other/63504
38148         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
38149         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
38150         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
38151         only get_full_len HOST_WIDE_INTs from get_val () array rather than
38152         all bits in *val_wide.
38153
38154 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
38155
38156         * varpool.c (tls_model_names): Fix names.
38157         (varpool_node::dump): Dump tls- prefix for tls models.
38158
38159 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
38160             Bernd Schmidt  <bernds@codesourcery.com>
38161             Nathan Sidwell  <nathan@codesourcery.com>
38162
38163         * config/nvptx/mkoffload.c: New file.
38164         * config/nvptx/t-nvptx: Add build rules for it.
38165         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
38166         (extra_programs): Add mkoffload.
38167         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
38168         function.
38169         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
38170
38171 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
38172
38173         PR middle-end/64809
38174         * cfgexpand.c (reorder_operands): Skip debug gimples.
38175
38176 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
38177
38178         PR tree-optimization/64277
38179         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
38180         range info when possible to refine estimation.
38181
38182 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38183
38184         PR tree-optimization/64718
38185         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
38186         be a 16bit unsigned integer when n->range is 16.
38187         (bswap_replace): Convert src to that type if necessary for all bswap
38188         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
38189         set in pass_optimize_bswap::execute ().
38190
38191 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
38192
38193         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
38194         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
38195         integer and floating point variants.
38196         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
38197
38198 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
38199
38200         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
38201         for all vector modes.
38202
38203 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38204
38205         PR bootstrap/64612
38206         * doc/sourcebuild.texi (comdat_group): Document.
38207
38208 2015-01-28  Terry Guo  <terry.guo@arm.com>
38209
38210         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
38211
38212 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
38213
38214         * toplev.c (print_version): Add param "show_global_state", and
38215         only print GGC and plugin information if it is true.
38216         (init_asm_output): Pass in "true" for the new param when calling
38217         print_version.
38218         (process_options): Likewise.
38219         (toplev::main): Likewise.
38220         * toplev.h (print_version): Add new param to decl.
38221
38222 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38223
38224         PR ipa/60871
38225         PR ipa/64139
38226         * tree.c (lookup_binfo_at_offset): New function.
38227         (get_binfo_at_offset): Use it.
38228
38229 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38230
38231         PR ipa/64282
38232         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
38233         on vtable being vtable.
38234
38235 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38236
38237         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
38238         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
38239         -mhotpatch= option.
38240         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
38241         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
38242         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
38243         Renamed.
38244         (s390_hotpatch_trampoline_halfwords_max): Renamed.
38245         (s390_hotpatch_hw_max): New name.
38246         (s390_hotpatch_trampoline_halfwords): Renamed.
38247         (s390_hotpatch_hw_before_label): New name.
38248         (get_hotpatch_attribute): Removed.
38249         (s390_hotpatch_hw_after_label): New name.
38250         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
38251         attribute.
38252         (s390_attribute_table): Ditto.
38253         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
38254         (s390_function_num_hotpatch_hw): New name.
38255         Remove special handling of inline functions and hotpatching.
38256         Return number of nops before and after the function label.
38257         (s390_can_inline_p): Removed.
38258         (s390_asm_output_function_label): Emit a configurable number of nops
38259         after the function label.
38260         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
38261         (TARGET_CAN_INLINE_P) Removed.
38262         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
38263
38264 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38265             Jiong Wang  <jiong.wang@arm.com>
38266
38267         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
38268         of scratch reg.
38269         (cb<optab><mode>1): Likewise.
38270         * config/aarch64/iterators.md (bcond): New define_code_attr.
38271
38272 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38273
38274         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
38275         memory accesses.
38276
38277 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38278
38279         * config/s390/s390.c (s390_register_move_cost): Increase costs for
38280         FPR->GPR moves.
38281
38282 2015-01-27  Richard Biener  <rguenther@suse.de>
38283
38284         * tree-vrp.c (update_value_range): Intersect the range with
38285         old recorded SSA name range information.
38286
38287 2015-01-27  Nick Clifton  <nickc@redhat.com>
38288
38289         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
38290         BC, DE and HL registers directly, not via AX.
38291         When decrementing the stack pointer by a large amount, transfer SP
38292         into AX and perform the subtraction there.
38293         (rl78_expand_epilogue): Perform the inverse of the above
38294         enhancements.
38295
38296 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38297
38298         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
38299
38300 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38301             Yury Gribov  <y.gribov@samsung.com>
38302
38303         PR ubsan/64741
38304         * ubsan.c (ubsan_source_location): Refactor code.
38305         (ubsan_type_descriptor): Update type size. Refactor code.
38306
38307 2015-01-27  Richard Biener  <rguenther@suse.de>
38308
38309         PR tree-optimization/56273
38310         PR tree-optimization/59124
38311         PR tree-optimization/64277
38312         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
38313         from the first VRP pass.
38314
38315 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38316
38317         PR ipa/64776
38318         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
38319         handle the first argument in the same loop as all the other arguments.
38320
38321         PR rtl-optimization/61058
38322         * jump.c (cleanup_barriers): Update basic block boundaries
38323         if BLOCK_FOR_INSN is non-NULL on PREV.
38324
38325 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
38326
38327         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
38328         bounds narrowing, already instrumented calls and calls to
38329         not instrumentable functions.
38330
38331 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38332
38333         PR tree-optimization/64807
38334         * wide-int.cc (wi::divmod_internal): Clear
38335         b_dividend[dividend_blocks_needed].
38336
38337 2015-01-26  DJ Delorie  <dj@redhat.com>
38338
38339         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
38340         volatile memory references.
38341
38342 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
38343
38344         PR target/49263
38345         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
38346         remove_insn.
38347         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
38348         shifts if it already fits into K08.
38349
38350 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38351
38352         PR ipa/64730
38353         * ipa-inline.c (inline_small_functions): Print "unknown" even
38354         if edge->call_stmt is non-NULL, but has builtins or unknown
38355         location.
38356
38357         PR middle-end/64421
38358         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
38359         with asterisk, skip the first character.
38360
38361 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38362
38363         PR target/64806
38364         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
38365         order change.
38366
38367 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
38368
38369         PR target/64795
38370         * config/i386/i386.md (*movdi_internal): Also check operand 0
38371         to determine TYPE_LEA operand.
38372         (*movsi_internal): Ditto.
38373
38374 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38375
38376         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
38377         OPTION_MASK_QUAD_MEMORY_ATOMIC.
38378
38379 2015-01-26  Renlin Li  <renlin.li@arm.com>
38380
38381         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
38382         the comment.
38383         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
38384         for higher part.
38385
38386 2015-01-26  Richard Biener  <rguenther@suse.de>
38387
38388         PR middle-end/64764
38389         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
38390         combining two BIT_AND_EXPR predicates.
38391
38392 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38393
38394         PR bootstrap/64754
38395         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
38396
38397 2015-01-26  Terry Guo  <terry.guo@arm.com>
38398
38399         * config/arm/arm.c (arm_file_start): Update the assignment of
38400         Tag_ABI_HardFP_use.
38401
38402 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
38403
38404         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
38405         pipeline model.
38406         config/arm/arm.md: Include the new Cortex-A57 model.
38407         (generic_sched): Don't use generic_sched when tuning for
38408         Cortex-A57.
38409
38410 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
38411             Uros Bizjak  <ubizjak@gmail.com>
38412
38413         * config/i386/i386.c (get_builtin_code_for_version): Add
38414         support for BMI and BMI2 multiversion functions.
38415
38416 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38417
38418         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
38419         (extract_bit_field): Likewise.
38420         (extract_low_bits): Likewise.
38421         (expand_mult): Likewise.
38422         (expand_mult_highpart_adjust): Likewise.
38423
38424 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
38425
38426         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
38427         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
38428         * config/i386/i386.c (processor_model): Add
38429         M_INTEL_COREI7_BROADWELL.
38430         (arch_names_table): Add "broadwell".
38431
38432 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
38433
38434         PR target/49263
38435         PR target/53987
38436         PR target/64345
38437         PR target/59533
38438         PR target/52933
38439         PR target/54236
38440         PR target/51244
38441         * config/sh/sh-protos.h
38442         (sh_extending_set_of_reg::can_use_as_unextended_reg,
38443         sh_extending_set_of_reg::use_as_unextended_reg,
38444         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
38445         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
38446         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
38447         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
38448         (sh_treg_insns): New class.
38449         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
38450         (scope_counter): New class.
38451         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
38452         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
38453         sh_extending_set_of_reg::can_use_as_unextended_reg,
38454         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
38455         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
38456         sh_split_treg_set_expr): New functions.
38457         (addsubcosts): Handle treg_set_expr.
38458         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
38459         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
38460         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
38461         (sh_insn_operands_modified_between_p): Make non-static.
38462         * config/sh/predicates.md (zero_extend_movu_operand): Allow
38463         simple_mem_operand in addition to displacement_mem_operand.
38464         (zero_extend_operand): Don't allow zero_extend_movu_operand.
38465         (treg_set_expr, treg_set_expr_not_const01,
38466         arith_reg_or_treg_set_expr): New predicates.
38467         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
38468         arith_or_int_operand instead of logical_operand.  Convert to
38469         insn_and_split.  Try to optimize constant operand in splitter.
38470         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
38471         (*tstqi_t_zero): Delete.
38472         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
38473         (tstsi_t_and_not): Delete.
38474         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
38475         Convert to insn_and_split.
38476         (unnamed split, tstsi_t_zero_extract_xor,
38477         tstsi_t_zero_extract_subreg_xor_little,
38478         tstsi_t_zero_extract_subreg_xor_big): Delete.
38479         (*tstsi_t_shift_mask): New insn_and_split.
38480         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
38481         to recombine with surrounding insns when splitting.
38482         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
38483         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
38484         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
38485         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
38486         (*cbranch_div0s: Delete.
38487         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38488         Try to recombine with surrounding insns when splitting.  Add operand
38489         order variants.
38490         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
38491         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
38492         *addc_r_r_msb, *addc_2r_msb): Delete.
38493         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
38494         order variant.
38495         (*addc_negreg_t): New insn_and_split.
38496         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38497         Try to recombine with surrounding insns when splitting.
38498         Add operand order variants.
38499         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
38500         insn_and_split patterns.
38501         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
38502         surrounding insns when splitting.
38503         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
38504         (*rotcl): Likewise.  Add zero_extract variant.
38505         (*ashrsi2_31): New insn_and_split.
38506         (*negc): Convert to insn_and_split.  Use treg_set_expr.
38507         (*zero_extend<mode>si2_disp_mem): Update comment.
38508         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
38509         condition.
38510         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
38511         with surrounding insns when splitting.
38512         (any_treg_expr_to_reg): New insn_and_split.
38513         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
38514         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
38515         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
38516         *zero_extract_2): New single bit zero extract patterns.
38517         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
38518         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
38519         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
38520         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
38521         set destination.
38522         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
38523         register_operand for set source.
38524
38525 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
38526
38527         * i386.opt (prefetch_sse): New targetsave.
38528         * i386.c (ix86_function_specific_save): Save prefetch_sse.
38529         (ix86_function_specific_restore): Restore prefetch_sse and initialize
38530         ix86_cost/ix86_tune_cost.
38531
38532 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38533
38534         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
38535         Support the JIT by using 0 as the language type.
38536
38537 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
38538
38539         PR target/64317
38540         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
38541         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
38542         (mark_regno_live, process_bb_lives): Pass new parameter value to
38543         make_hard_regno_born.
38544
38545 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38546
38547         PR rtl-optimization/63637
38548         PR rtl-optimization/60663
38549         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
38550         if elt->cost is MAX_COST for ASM_OPERANDS.
38551         (find_sets_in_insn): Fix up comment typo.
38552         (cse_insn): Don't set src_volatile for all non-volatile
38553         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
38554         or with "memory" clobber.  Set elt->cost to MAX_COST
38555         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
38556         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
38557
38558 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38559
38560         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
38561         alternative 1.
38562
38563 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38564
38565         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
38566         libgcc/config/i386/elf-lib.h.
38567
38568 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38569
38570         PR driver/64737
38571         * gcc.c (print_configuration): Don't print a blank line at the end
38572         here...
38573         (run_attempt): ... but here unstead.
38574
38575         PR middle-end/64734
38576         * omp-low.c (scan_sharing_clauses): Don't ignore
38577         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
38578         on target data/update constructs.
38579
38580 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38581
38582         PR target/50928
38583         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
38584         (DEBUG_RELOAD): Removed define.
38585         (m32c_limit_reload_class): Enable traces with if DEBUG0.
38586         (m32c_function_arg): Added a type cast.
38587         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
38588         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
38589         * config/m32c/bitops.md (andqi3_16): Likewise.
38590         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
38591         (push_a01_l): Likewise.
38592
38593 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38594
38595         PR jit/64721
38596         * main.c (main): Construct toplev instances with init_signals=true.
38597         * toplev.c (general_init): Add param "init_signals", and use it to
38598         conditionalize the calls to signal and host_hooks.extra_signals.
38599         (toplev::toplev): Add param "init_signals".
38600         (toplev::main): When invoking general_init, pass m_init_signals
38601         to control whether signal-handlers are installed.
38602         * toplev.h (toplev::toplev): Add param "init_signals".
38603         (toplev::m_init_signals): New field.
38604
38605 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38606
38607         PR jit/64722
38608         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
38609         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
38610         latter may be affected by the former (e.g. on i686).
38611
38612 2015-01-23  Martin Liska  <mliska@suse.cz>
38613
38614         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
38615         false positive during profiledbootstrap.
38616
38617 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38618
38619         PR libgomp/64672
38620         * lto-opts.c (lto_write_options): Output non-explicit conservative
38621         -fno-openacc.
38622         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
38623         (append_compiler_options): Pass -fopenacc through.
38624
38625 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38626
38627         PR libgomp/64707
38628         * lto-opts.c (lto_write_options): Output non-explicit conservative
38629         -fno-openmp.
38630         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
38631         (append_compiler_options): Pass -fopenmp through.
38632
38633 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38634
38635         PR debug/64511
38636         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
38637         GTY markup.
38638
38639         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
38640         * diagnostic.def (DK_ICE_NOBT): New kind.
38641         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
38642         like DK_ICE, but never print backtrace.
38643         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
38644         (internal_error_no_backtrace): New function.
38645         * gcc.c (execute): Use internal_error_no_backtrace instead of
38646         internal_error.
38647
38648 2015-01-22  Jeff Law  <law@redhat.com>
38649
38650         PR target/52076
38651         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
38652         improve code density for small immediate to memory case.
38653         (insv): Better handle bitfield assignments when the field is
38654         being set to all ones.
38655         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
38656         operand predicate.
38657
38658 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38659             Jakub Jelinek  <jakub@redhat.com>
38660
38661         PR middle-end/64729
38662         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
38663         for !TARGET_LIBC_PROVIDES_SSP version and
38664         -fstack-protector-{all,strong,explicit} otherwise.
38665         * config/freebsd.h (LINK_SSP_SPEC): Handle
38666         -fstack-protector-{strong,explicit}.
38667
38668 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
38669             H.J. Lu  <hongjiu.lu@intel.com>
38670
38671         PR ipa/64694
38672         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
38673         heap.
38674
38675 2015-01-22  Wei Mi  <wmi@google.com>
38676
38677         PR rtl-optimization/64557
38678         * dse.c (record_store): Call get_addr for mem_addr.
38679         (check_mem_read_rtx): Likewise.
38680
38681 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
38682
38683         * fold-const.c (const_binop): Add early return for non-tcc_binary.
38684
38685 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
38686
38687         * toplev.c (init_local_tick): Process the failure when read
38688         fails for random_seed.
38689
38690         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
38691         'pretty_name' to avoid memory overflow.
38692
38693 2015-01-22  Richard Biener  <rguenther@suse.de>
38694
38695         PR middle-end/64728
38696         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
38697         abnormal coalescing on undefined SSA names.
38698
38699 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
38700
38701         PR target/64688
38702         PR target/64477
38703         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
38704         for alternative 3.
38705         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
38706
38707 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
38708
38709         PR middle-end/63325
38710         * fold-const.c (fold_checksum_tree): Don't include value of
38711         expr->decl_with_vis.symtab_node in the checksum.
38712
38713 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38714
38715         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
38716
38717 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
38718
38719         PR driver/64690
38720         * gcc.c (insert_comments): New function.
38721         (try_generate_repro): Call it.
38722         (append_text): Removed.
38723
38724 2015-01-22  Richard Biener  <rguenther@suse.de>
38725
38726         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
38727         with IL incompatible options.  Properly honor user optimize
38728         attributes.
38729
38730 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
38731
38732         PR rtl-optimization/64682
38733         * combine.c (distribute_notes): When moving a death note for
38734         a register that is set in the new I2, make sure to put it
38735         before that new I2.
38736
38737 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
38738
38739         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
38740         not TARGET_DEFAULT.
38741
38742 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
38743
38744         PR debug/64511
38745         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
38746         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
38747         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
38748
38749         PR sanitizer/64706
38750         * doc/invoke.texi (-fsanitize=vptr): Document.
38751
38752         PR rtl-optimization/62078
38753         * dse.c: Include cfgcleanup.h.
38754         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
38755         anything call purge_all_dead_edges and cleanup_cfg at the end
38756         of the pass.
38757
38758 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
38759
38760         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
38761         edges.
38762
38763 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38764
38765         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
38766         decl attribute.
38767
38768 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38769             Tejas Belagod <Tejas.Belagod@arm.com>
38770
38771         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
38772         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
38773         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
38774         Removed.
38775
38776 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38777             Tejas Belagod <Tejas.Belagod@arm.com>
38778
38779         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
38780         (aarch64_reverse_mask): New decls.
38781         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
38782         (insn_count): New mode_attr.
38783         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
38784         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
38785         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
38786         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
38787         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
38788         (aarch64_simd_st4): New patterns.
38789         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
38790         (aarch64_reverse_mask): New functions.
38791
38792 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38793
38794         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
38795         Declare.
38796         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
38797         addressing modes for BE.
38798         (aarch64_print_operand): Add 'R' specifier.
38799         (aarch64_simd_disambiguate_copy): Delete.
38800         (aarch64_simd_emit_reg_reg_move): New function.
38801         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
38802         in define_splits for structural moves.
38803         (mov<mode>): Use less restrictive predicates.
38804         (*aarch64_mov<mode>): Simplify and only allow for LE.
38805         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
38806
38807 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38808
38809         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
38810
38811 2015-01-21  Richard Henderson  <rth@redhat.com>
38812
38813         PR target/64669
38814         * ccmp.c (used_in_cond_stmt_p): Remove.
38815         (expand_ccmp_expr): Don't use it.
38816
38817 2015-01-21  Nick Clifton  <nickc@redhat.com>
38818
38819         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
38820         PARALLELs.
38821
38822 2015-01-21  Richard Biener  <rguenther@suse.de>
38823
38824         PR middle-end/64313
38825         * tree-core.h (builtin_info, builtin_info_type): Turn from
38826         an object with two arrays into an array of an object with
38827         decl and two flags, implicit_p and declared_p.
38828         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
38829         set_builtin_decl, set_builtin_decl_implicit_p,
38830         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
38831         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
38832         * builtins.c (builtin_info): Adjust.
38833         * gimplify.c (gimplify_addr_expr): References to builtins
38834         that have been declared by the user makes them eligible for
38835         use by the compiler.  Call set_builtin_decl_implicit_p on them.
38836
38837 2015-01-20  Jeff Law  <law@redhat.com>
38838
38839         PR target/59946
38840         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
38841         allow pc-relative addresses in operand predicates or constraints.
38842
38843 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
38844
38845         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
38846         neon on aarch32 processors for stringops.
38847
38848 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38849
38850         PR ipa/63576
38851         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
38852
38853 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38854
38855         PR lto/45375
38856         * ipa-inline.c: Include lto-streamer.h
38857         (report_inline_failed_reason): Output source file differences and
38858         flags on optimization/target node mismatch.
38859         (can_inline_edge_p): Consider caller to be the outer inline function;
38860         be less restrictive about matching opimize and optimize_size attributes.
38861         (inline_account_function_p): Break out from ...
38862         (inline_small_functions): ... here.
38863         * ipa-inline-transform.c (clone_inlined_nodes): Use
38864         inline_account_function_p.
38865         (inline_call): Use optimize attribution; use inline_account_function_p.
38866         (inline_transform): Use opt_for_fn.
38867         * ipa-inline.h (inline_account_function_p): Declare.
38868
38869 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
38870
38871         PR debug/64663
38872         * dwarf2out.c (decl_piece_node): Don't put bitsize into
38873         mode if bitsize <= 0.
38874         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
38875         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
38876         sizes and positions.
38877
38878 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
38879
38880         * config/nios2/nios2.c (nios2_asm_file_end): Implement
38881         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
38882         needed.
38883         (TARGET_ASM_FILE_END): Define.
38884
38885 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38886
38887         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
38888         (struct tune_params): Use the enum.
38889         * arm.c (arm_*_tune): Update.
38890         (arm_option_override): Update.
38891
38892 2015-01-20  Richard Biener  <rguenther@suse.de>
38893
38894         PR ipa/64684
38895         * ipa-reference.c (add_static_var): Inline ...
38896         (analyze_function): ... here after splitting out from ...
38897         (is_proper_for_analysis): ... this.
38898
38899 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
38900
38901         PR target/64149
38902         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
38903         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
38904         replace the conditional with it's true branch.
38905         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
38906         (arm_lra_p): Remove.
38907
38908 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
38909
38910         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
38911
38912 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38913
38914         * config/tilegx/mul-tables.c: Move symtab.h include after
38915         coretypes.h include.
38916         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
38917         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
38918         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
38919         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
38920         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38921
38922 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
38923
38924         PR bootstrap/64676
38925         Revert:
38926         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38927
38928         PR rtl-optimization/64081
38929         * loop-iv.c (def_pred_latch_p): New function.
38930         (latch_dominating_def): Allow specific cases with non-single
38931         definitions.
38932         (iv_get_reaching_def): Likewise.
38933         (check_complex_exit_p): New function.
38934         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38935         with exits not executing on any iteration.
38936
38937 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38938
38939         PR lto/45375
38940         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
38941         to set branch cost.
38942
38943 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38944
38945         PR lto/45375
38946         * i386.c (gate): Check flag_expensive_optimizations and
38947         optimize_size.
38948         (ix86_option_override_internal): Drop optimize_size condition
38949         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
38950         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
38951         MASK_PREFER_AVX128.
38952         (ix86_avx256_split_vector_move_misalign,
38953         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
38954         * sse.md (all uses of TARGET_PREFER_AVX128): Add
38955         optimize_insn_for_speed_p check.
38956
38957 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38958
38959         * config/mips/mips.h (FP_ASM_SPEC): New define.
38960         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
38961         instead.
38962
38963 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
38964
38965         PR target/53988
38966         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
38967         nullptr for insn when reaching the first insn.
38968         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
38969         (sh_insn_operands_modified_between_p): Add nullptr check.
38970         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
38971         sign extending mem load if the insn contains any UNSPEC or
38972         UNSPEC_VOLATILE.
38973
38974 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38975
38976         * params.def (inline-unit-growth): Drop to 15%.
38977         * invoke.texi (inline-unit-growth): Document change.
38978
38979 2015-01-19  Martin Liska  <mliska@suse.cz>
38980
38981         PR ipa/64668
38982         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
38983         function for second argument of OBJ_TYPE_REF.
38984
38985 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38986
38987         PR ipa/64218
38988         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
38989         whether function is an alias.
38990
38991 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38992
38993         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
38994         cases.
38995
38996 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
38997
38998         PR rtl-optimization/64671
38999         * lra-remat.c (operand_to_remat): Don't consider jump and call
39000         insns.
39001
39002 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
39003
39004         PR target/59828
39005         * config/rs6000/default64.h: Include rs6000-cpus.def.
39006         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
39007         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
39008         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
39009         and POWER8.
39010         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
39011         POWER8.
39012         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
39013         pseudo-op to specify assembler dialect.
39014
39015 2015-01-19  Martin Liska  <mliska@suse.cz>
39016
39017         PR ipa/64664
39018         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
39019         Handle safe potentially removed nodes during filtering.
39020
39021 2015-01-19  Martin Liska  <mliska@suse.cz>
39022
39023         * doc/extend.texi (no_icf): Add new attribute description.
39024         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
39025         where the pass attempts to merge a function with no_icf attribute.
39026
39027 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39028
39029         PR target/64532
39030         * doc/md.texi (ARM Options): Document register constraints.
39031
39032 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
39033             Andrew Pinski  <apinski@cavium.com>
39034
39035         PR target/64304
39036         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
39037         (ashl<mode>3): Don't expand if operands[2] is not constant.
39038
39039 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39040
39041         PR target/64448
39042         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
39043         Match xor-and-xor RTL pattern.
39044
39045 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
39046
39047         PR rtl-optimization/64081
39048         * loop-iv.c (def_pred_latch_p): New function.
39049         (latch_dominating_def): Allow specific cases with non-single
39050         definitions.
39051         (iv_get_reaching_def): Likewise.
39052         (check_complex_exit_p): New function.
39053         (check_simple_exit): Use check_complex_exit_p to allow certain cases
39054         with exits not executing on any iteration.
39055
39056 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
39057
39058         * common.opt (fgraphite): Fix a typo.
39059
39060 2015-01-19  Felix Yang  <felix.yang@huawei.com>
39061
39062         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
39063         pattern.
39064         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
39065         uminp, smax_nanp, smin_nanp): New builtins.
39066         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
39067         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
39068         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
39069         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
39070         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
39071         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
39072         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
39073         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
39074         vpminnms_f32): Rewrite using builtin functions.
39075
39076 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
39077
39078         PR libgomp/64625
39079         * omp-low.c (offload_symbol_decl): Remove variable.
39080         (get_offload_symbol_decl): Remove function.
39081         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
39082         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
39083         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
39084         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
39085         BUILT_IN_GOACC_UPDATE don't pass it at all.
39086
39087 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
39088
39089         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
39090         callers.
39091
39092 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
39093
39094         * ipa-chkp.c (chkp_produce_thunks): Add early param
39095         to split thunks production into two passes.  Keep
39096         'always_inline' function bodies after the first pass.
39097         (pass_data_ipa_chkp_early_produce_thunks): New.
39098         (pass_ipa_chkp_early_produce_thunks): New.
39099         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
39100         chkp_produce_thunks signature.
39101         (make_pass_ipa_chkp_early_produce_thunks): New.
39102         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
39103         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
39104         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
39105
39106 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39107
39108         * cgraph.c (cgraph_node::dump): Dump profile flags.
39109
39110 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
39111
39112         PR target/64652
39113         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
39114         reg appear first in the parallel.
39115
39116 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39117
39118         * ipa-reference.c (set_reference_optimization_summary,
39119         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
39120         disabled.
39121         (ignore_module_statics): New static var.
39122         (propagate_bits): If ipa-reference is disabled, do not look into local
39123         properties.
39124         (analyze_function): Disable analysis when ipa_reference is disabled.
39125         (generate_summary): Do not dump when reference is disabled;
39126         collect vars accessed from functions with ipa-reference disabled.
39127         (get_read_write_all_from_node): When ipa-reference is disabled, use the
39128         node flags.
39129         (gate): Enable for LTO.
39130         (ignore_edge_p): New function.
39131         (propagate): Skip functions w/o ipa-reference analysis.
39132         * optc-save-gen.awk: Handle optimize_debug correctly.
39133         * opth-gen.awk: Likewise.
39134         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
39135         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
39136         fira-share-save-slots, fira-share-spill-slots,
39137         fmodulo-sched-allow-regmoves, fpartial-inlining,
39138         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
39139         ftracer, ftree-parallelize-loops, fassociative-math,
39140         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
39141         Optimization
39142         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
39143         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
39144         Optimization.
39145         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
39146         Fix for IPA.
39147
39148 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39149
39150         PR ipa/64378
39151         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
39152         flag correctly.
39153         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
39154
39155 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
39156
39157         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
39158         Remove duplicate option listings.
39159
39160 2015-01-18  Felix Yang  <felix.yang@huawei.com>
39161
39162         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
39163         (autofdo_source_profile::get_callsite_total_count,
39164         function_instance::get_function_instance_by_decl,
39165         string_table::get_index, string_table::get_index_by_decl,
39166         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
39167         Fix comment typos. Reformatting and minor code rearrangement.
39168
39169 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39170
39171         * config/rs6000/rs6000.md (probe_stack): Delete.
39172         (probe_stack_address): New.
39173
39174 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39175
39176         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
39177         to test for 32-bit ABIs, not !TARGET_POWERPC64.
39178
39179 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39180
39181         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
39182         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
39183         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
39184         snafu.
39185         (rs6000_libcall_value): Use the new function.
39186
39187 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
39188
39189         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
39190
39191 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39192
39193         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
39194         implement a more precise life analysis for it during backward scan.
39195
39196 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
39197
39198         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
39199
39200 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
39201
39202         PR rtl-optimization/52773
39203         * calls.c (emit_library_call_value): When pushing arguments use
39204         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
39205         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
39206         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
39207
39208 2015-01-17  Jeff Law  <law@redhat.com>
39209
39210         PR rtl-optimization/32790
39211         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
39212         not ZERO_EXTEND in SET_DESTs.
39213
39214 2015-01-17  Alan Modra  <amodra@gmail.com>
39215
39216         * cprop.c (do_local_cprop): Revert last change.
39217
39218 2015-01-16  DJ Delorie  <dj@redhat.com>
39219             Nick Clifton  <nickc@redhat.com>
39220
39221         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
39222         (addhi3_real): Likewise.  Fix [HL+0] syntax.
39223         (subqi3_real): Likewise.
39224         (subhi3_real): Likewise.
39225         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
39226         (cbranchhi4_real): Likewise.
39227         (cbranchhi4_real_inverted): Likewise.
39228         (cbranchsi4_real_lt): Likewise.
39229         (cbranchsi4_real_ge): Likewise.
39230         (cbranchsi4_real_ge): Likewise.
39231         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
39232         (sub<mode>3_virt): Likewise.
39233         (cbranchqi4_virt): Likewise.
39234         (cbranchhi4_virt): Likewise.
39235         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
39236         always use '[reg+imm]' even when imm is zero.
39237         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
39238         (rl78_general_operand): New.
39239         (rl78_nonimmediate_operand): New.
39240         (rl78_nonfar_operand): Use them.
39241         (rl78_nonfar_nonimm_operand): Likewise.
39242         (rl78_stack_based_mem): Fix.
39243         * config/rl78/constraints.md (Ibqi): New.
39244         (IBqi): New.
39245         (Wsa): New.
39246         (Wsf): New.
39247         (Cs1): Fix.
39248         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
39249         (iorqi3): Likewise.
39250         (xorqi3): Likewise.
39251         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
39252
39253         * config/rl78/constrains (Qs8): New constraint.
39254         * config/rl78/rl78.c (rl78_flags_already_set): New function.
39255         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
39256         * config/rl78/rl78-real.md (update_Z): New attribute.
39257         Update patterns to set it.
39258         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
39259         shorter compare and branch sequence can be used.
39260         (cbranchhi4_real): Likewise.
39261         (cbranchhi4_real_inverted): Likewise.
39262
39263         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
39264         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
39265         address space.
39266         * config/rl78/rl78.c (rl78_get_name_encoding): New.
39267         (rl78_option_override): Allow -mes0 only if C.
39268         (characterize_address): Support subregs of symbol_refs.
39269         (rl78_addr_space_address_mode): Move.  Add __near.
39270         (rl78_far_p): Likewise.
39271         (rl78_addr_space_pointer_mode): Likewise.
39272         (rl78_as_legitimate_address): Likewise.
39273         (rl78_addr_space_subset_p): Likewise.
39274         (rl78_addr_space_convert): Likewise.
39275         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
39276         symbols with -mes0.
39277         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
39278         addressing.
39279         (rl78_alloc_physical_registers_op1): Change logic to prefer
39280         symbol[BC] addressing.
39281         (frodata_section): New.
39282         (rl78_asm_init_sections): Initialize it.
39283         (rl78_select_section): Put __far readonly symbols in .frodata.
39284         (rl78_make_type_far): New.
39285         (rl78_insert_attributes): Force all readonly symbols to be
39286         __far when -mes0.
39287         (rl78_asm_out_integer): New.
39288         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
39289         * config/rl78/rl78.opt (-mes0): New.
39290
39291         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
39292         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
39293         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
39294         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
39295         (rl78_saddr_p): New.
39296         (rl78_output_aligned_common): New.
39297         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
39298         (rl78_handle_saddr_attribute): New.
39299         (rl78_handle_naked_attribute): New.
39300         (rl78_attribute_table): Add saddr.
39301         (rl78_print_operand_1): Don't print '!' on saddr operands.
39302         (rl78_print_operand_1): Strip encodings.
39303         (rl78_sfr_p): New.
39304         (rl78_strip_name_encoding): New.
39305         (rl78_attrlist_to_encoding): New.
39306         (rl78_encode_section_info): New.
39307         (rl78_asm_init_sections): New.
39308         (rl78_select_section): New.
39309         (rl78_output_labelref): New.
39310         (rl78_output_aligned_common): New.
39311         (rl78_asm_out_integer): New.
39312         (rl78_asm_ctor_dtor): New.
39313         (rl78_asm_constructor): New.
39314         (rl78_asm_destructor): New.
39315
39316         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
39317         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
39318         (transcode_memory_rtx): Update.
39319         (rl78_expand_epilogue): Use A_REG instead of 0.
39320
39321 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39322
39323         * config/arm/arm-protos.h (struct tune_params): New field
39324         sched_autopref_queue_depth.
39325         * config/arm/arm.c (sched-int.h): Include header.
39326         (arm_first_cycle_multipass_dfa_lookahead_guard,)
39327         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
39328         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
39329         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
39330         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
39331         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
39332         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
39333         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
39334         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
39335         * config/arm/t-arm (arm.o): Update.
39336         * haifa-sched.c (update_insn_after_change): Update.
39337         (rank_for_schedule): Use auto-prefetcher model, if requested.
39338         (autopref_multipass_init): New static function.
39339         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
39340         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
39341         variable for debug dumps.
39342         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
39343         (autopref_multipass_dfa_lookahead_guard): New global function that
39344         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
39345         (init_h_i_d): Update.
39346         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
39347         * sched-int.h (enum autopref_multipass_data_status): New const enum.
39348         (autopref_multipass_data_): Structure for auto-prefetcher data.
39349         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
39350         (struct _haifa_insn_data:autopref_multipass_data): New field.
39351         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
39352         (autopref_multipass_dfa_lookahead_guard): Declare.
39353
39354 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39355
39356         * rtlanal.c (get_base_term): Handle SCRATCH.
39357
39358 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39359
39360         * config/aarch64/aarch64.c
39361         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
39362         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39363         * config/arm/arm.c
39364         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
39365         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39366
39367 2015-01-17  Alan Modra  <amodra@gmail.com>
39368
39369         * cprop.c (do_local_cprop): Disallow replacement of fixed
39370         hard registers.
39371
39372 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39373
39374         PR target/62066
39375         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
39376         early return 0.
39377
39378 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39379
39380         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
39381         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
39382
39383 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39384
39385         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
39386         * config/arm/thumb1.md: ... Here.
39387
39388 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39389
39390         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
39391         TImode for TARGET_32BIT.
39392
39393 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39394
39395         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
39396         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
39397         as ...
39398         (rs6000_abi_word_mode): New function.
39399
39400 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39401
39402         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
39403         instead of UNITS_PER_WORD to describe the size of stack slots.
39404
39405 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39406
39407         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
39408         as rs6000_promote_function_mode.  Move comment to there.
39409         (rs6000_promote_function_mode): New function.
39410
39411 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39412
39413         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
39414         -mpowerpc64 is active.
39415
39416 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39417
39418         PR middle-end/64353
39419         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
39420         virtuals on start.
39421
39422 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39423
39424         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
39425         introduced in revision 219724.
39426
39427 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39428             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39429
39430         PR target/64263
39431         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
39432         destination is not a GP reg.
39433         (*movdi_aarch64): Likewise.
39434
39435 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
39436
39437         PR target/64623
39438         * config/rs6000/default64.h: Revert ISA change.
39439
39440 2015-01-16  Richard Biener  <rguenther@suse.de>
39441
39442         PR middle-end/64614
39443         * tree-ssa-uninit.c: Include tree-cfg.h.
39444         (MAX_SWITCH_CASES): New define.
39445         (convert_control_dep_chain_into_preds): Handle switch statements.
39446         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
39447         (normalize_one_pred_1): Do not split bit-manipulations.
39448         Record (x & CST).
39449
39450 2015-01-16  Richard Biener  <rguenther@suse.de>
39451
39452         PR tree-optimization/64568
39453         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
39454         complex load rewriting for TARGET_MEM_REFs.
39455
39456 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
39457
39458         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
39459
39460 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
39461
39462         PR target/64149
39463         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
39464         variable.
39465         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
39466         (aarch64_lra_p): Remove.
39467
39468 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39469
39470         PR target/64363
39471         * ipa-chkp.h (chkp_instrumentable_p): New.
39472         * ipa-chkp.c: Include tree-inline.h.
39473         (chkp_instrumentable_p): New.
39474         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
39475         Fix processing of not instrumentable functions.
39476         (chkp_versioning): Use chkp_instrumentable_p. Warn about
39477         not instrumentable functions.
39478         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
39479         chkp_instrumentable_p.
39480         * tree-inline.h (copy_forbidden): New.
39481         * tree-inline.c (copy_forbidden): Not static anymore.
39482
39483 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39484
39485         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
39486         ptr1, ptr2 unused.
39487
39488 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39489
39490         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
39491         type OP_OUT to OP_INOUT.
39492
39493 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39494
39495         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
39496         (high x) y) to y if x and y have the same base.
39497
39498 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39499
39500         * config/arm/cortex-a57.md: New.
39501         * config/aarch64/aarch64.md: Include it.
39502         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
39503         * config/aarch64/aarch64-tune.md: Regenerate.
39504
39505 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
39506
39507         PR target/64015
39508         * ccmp.c (expand_ccmp_next): New function.
39509         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
39510         and compare insn sequence.
39511         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
39512         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
39513         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
39514         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
39515         (*ccmp_ior): Changed to ccmp_ior<mode>.
39516         (cmp<mode>): New pattern.
39517         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
39518         parameters.
39519         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
39520
39521 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
39522
39523         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
39524         _mm256_bsrli_epi128): New.
39525         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
39526
39527 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39528
39529         * expmed.c (store_bit_field_using_insv): Improve warning message.
39530         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
39531
39532 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39533
39534         PR rtl-optimization/64011
39535         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
39536         there is partial overflow.
39537
39538 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39539
39540         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
39541         prototype.
39542         (nds32_expand_epilogue_v3pop): Likewise.
39543         * config/nds32/nds32.md (sibcall): Define this for sibling call
39544         optimization.
39545         (sibcall_register): Likewise.
39546         (sibcall_immediate): Likewise.
39547         (sibcall_value): Likewise.
39548         (sibcall_value_register): Likewise.
39549         (sibcall_value_immediate): Likewise.
39550         (sibcall_epilogue): Likewise.
39551         (epilogue): Pass false to indicate this is not a sibcall epilogue.
39552         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
39553         (nds32_expand_epilogue_v3pop): Likewise.
39554
39555 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39556
39557         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
39558         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
39559         (return_internal): New.
39560         (return): Define this named pattern.
39561         (simple_return): Define this named pattern.
39562         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
39563         pattern instead of unspec_volatile_func_return.
39564         (nds32_expand_epilogue_v3pop): Likewise.
39565         (nds32_can_use_return_insn): New function.
39566
39567 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39568
39569         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
39570         * config/nds32/nds32.md (pop25return): New.
39571         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
39572         pop25return pattern.
39573
39574 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39575
39576         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
39577         -mforbid-fp-as-gp, and -mex9 options.
39578
39579 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39580
39581         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
39582         remove -mgp-direct option.
39583
39584 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39585
39586         * doc/invoke.texi (--param early-inlining-insns): Update default value.
39587         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
39588
39589 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39590
39591         * ipa-inline.c (inline_small_functions): Work around hints
39592         cache issue.
39593
39594 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
39595
39596         PR target/59710
39597         * doc/invoke.texi (Option Summary): Document new Nios II
39598         -mgpopt= syntax.
39599         (Nios II Options): Likewise.
39600         * config/nios2/nios2.opt: Add -mgpopt= option support.
39601         Modify existing -mgpopt and -mno-gpopt options to be aliases.
39602         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
39603         * config/nios2/nios2.c (nios2_option_override): Adjust
39604         -mgpopt defaulting.
39605         (nios2_in_small_data_p): Return true for explicit small data
39606         sections even with -G0.
39607         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
39608         option choices.
39609
39610 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39611
39612         PR ipa/64612
39613         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
39614         of comdat locals.
39615         (inline_call): Fix removal of aliases.
39616
39617 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39618
39619         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
39620         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
39621         * opts.c (common_handle_option): Add -fsanitize=vptr.
39622         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
39623         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
39624         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
39625         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
39626         (ubsan_expand_vptr_ifn): New prototype.
39627         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
39628         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
39629         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
39630         expand_LOOP_VECTORIZED): Make argument nameless, remove
39631         ATTRIBUTE_UNUSED.
39632         (expand_UBSAN_VPTR): New function.
39633         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
39634         in fn spec.
39635         (UBSAN_VPTR): New internal function.
39636         * sanopt.c (tree_map_traits): Renamed to ...
39637         (sanopt_tree_map_traits): ... this.
39638         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
39639         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
39640         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
39641         (maybe_optimize_ubsan_vptr_ifn): New function.
39642         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
39643         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
39644         -fsanitize=vptr.
39645         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
39646         internal calls like pure functions for aliasing, even when they
39647         have other side-effects that prevent making them ECF_PURE.
39648         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
39649         (ubsan_expand_vptr_ifn): New function.
39650
39651 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
39652
39653         PR rtl-optimization/64110
39654         * stmt.c (parse_output_constraint): Process '^' and '$'.
39655         (parse_input_constraint): Ditto.
39656         * lra-constraints.c (process_alt_operands): Process the new
39657         constraints.
39658         * ira-costs.c (record_reg_classes): Process the new constraint
39659         '^'.
39660         * genoutput.c (indep_constraints): Add '^' and '$'.
39661         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
39662         * doc/md.texi: Add description of the new constraints.
39663
39664 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
39665             Bernd Schmidt  <bernds@codesourcery.com>
39666             Cesar Philippidis  <cesar@codesourcery.com>
39667             James Norris  <jnorris@codesourcery.com>
39668             Tom de Vries  <tom@codesourcery.com>
39669             Ilmir Usmanov  <i.usmanov@samsung.com>
39670             Dmitry Bocharnikov  <dmitry.b@samsung.com>
39671             Evgeny Gavrin  <e.gavrin@samsung.com>
39672             Jakub Jelinek  <jakub@redhat.com>
39673
39674         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
39675         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39676         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39677         New function types.
39678         * builtins.c: Include "gomp-constants.h".
39679         (expand_builtin_acc_on_device): New function.
39680         (expand_builtin, is_inexpensive_builtin): Handle
39681         BUILT_IN_ACC_ON_DEVICE.
39682         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
39683         New macros.
39684         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
39685         flag_openmp.
39686         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
39687         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
39688         i386/intelmic-offload.h.
39689         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
39690         to libgomp and its dependencies.
39691         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
39692         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
39693         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
39694         * config/ia64/hpux.h (LIB_SPEC): Likewise.
39695         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
39696         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
39697         * doc/generic.texi: Update for OpenACC changes.
39698         * doc/gimple.texi: Likewise.
39699         * doc/invoke.texi: Likewise.
39700         * doc/sourcebuild.texi: Likewise.
39701         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
39702         GF_OMP_FOR_KIND_OACC_LOOP.
39703         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
39704         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
39705         GF_OMP_TARGET_KIND_OACC_UPDATE,
39706         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39707         Dump more data.
39708         * gimple.c: Update comments for OpenACC changes.
39709         * gimple.def: Likewise.
39710         * gimple.h: Likewise.
39711         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
39712         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39713         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
39714         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39715         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
39716         appropriate place.
39717         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
39718         * gimplify.c: Include "gomp-constants.h".
39719         Update comments for OpenACC changes.
39720         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
39721         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
39722         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39723         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
39724         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39725         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39726         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
39727         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39728         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
39729         OMP_CLAUSE_SEQ.
39730         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
39731         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39732         OMP_CLAUSE_SET_MAP_KIND.
39733         (gimplify_oacc_cache): New function.
39734         (gimplify_omp_for): Handle OACC_LOOP.
39735         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
39736         OACC_DATA.
39737         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
39738         OACC_EXIT_DATA, OACC_UPDATE.
39739         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
39740         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
39741         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
39742         (gimplify_body): Consider flag_openacc next to flag_openmp.
39743         * lto-streamer-out.c: Include "gomp-constants.h".
39744         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
39745         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
39746         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
39747         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
39748         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
39749         (BUILT_IN_ACC_ON_DEVICE): New builtins.
39750         * omp-low.c: Include "gomp-constants.h".
39751         Update comments for OpenACC changes.
39752         (struct omp_context): Add reduction_map, gwv_below, gwv_this
39753         members.
39754         (extract_omp_for_data, use_pointer_for_field, install_var_field)
39755         (new_omp_context, delete_omp_context, scan_sharing_clauses)
39756         (create_omp_child_function, scan_omp_for, scan_omp_target)
39757         (check_omp_nesting_restrictions, lower_reduction_clauses)
39758         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
39759         Update for OpenACC changes.
39760         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
39761         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
39762         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
39763         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39764         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
39765         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
39766         OMP_CLAUSE_MAP_*.
39767         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
39768         Handle GF_OMP_FOR_KIND_OACC_LOOP.
39769         (expand_omp_target, lower_omp_target): Handle
39770         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39771         GF_OMP_TARGET_KIND_OACC_UPDATE,
39772         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
39773         GF_OMP_TARGET_KIND_OACC_DATA.
39774         (pass_expand_omp::execute, execute_lower_omp)
39775         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
39776         flag_openmp.
39777         (offload_symbol_decl): New variable.
39778         (oacc_get_reduction_array_id, oacc_max_threads)
39779         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
39780         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
39781         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
39782         (oacc_gimple_assign, oacc_initialize_reduction_data)
39783         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
39784         functions.
39785         (is_targetreg_ctx): Remove function.
39786         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
39787         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
39788         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39789         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
39790         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
39791         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
39792         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
39793         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
39794         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
39795         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
39796         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
39797         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
39798         * tree-core.h: Update comments for OpenACC changes.
39799         (enum omp_clause_map_kind): Remove.
39800         (struct tree_omp_clause): Change type of map_kind member from enum
39801         omp_clause_map_kind to unsigned char.
39802         * tree-inline.c: Update comments for OpenACC changes.
39803         * tree-nested.c: Likewise.  Include "gomp-constants.h".
39804         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
39805         (convert_tramp_reference_stmt, convert_gimple_call): Update for
39806         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39807         OMP_CLAUSE_SET_MAP_KIND.
39808         * tree-pretty-print.c: Include "gomp-constants.h".
39809         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
39810         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
39811         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
39812         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
39813         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39814         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
39815         instead of OMP_CLAUSE_MAP_*.
39816         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
39817         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
39818         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39819         * tree-streamer-in.c: Include "gomp-constants.h".
39820         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
39821         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
39822         * tree-streamer-out.c: Include "gomp-constants.h".
39823         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
39824         OMP_CLAUSE_MAP_*.
39825         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
39826         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
39827         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
39828         * tree.c (omp_clause_num_ops): Update accordingly.
39829         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
39830         Likewise.
39831         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
39832         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
39833         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
39834         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
39835         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
39836         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
39837         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
39838         (OMP_CLAUSE_SET_MAP_KIND): New macro.
39839         * varpool.c (varpool_node::get_create): Consider flag_openacc next
39840         to flag_openmp.
39841         * config/i386/intelmic-offload.h: New file.
39842         * config/nvptx/offload.h: Likewise.
39843
39844 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39845
39846         * explow.h: Remove duplicate contents.
39847         * dojump.h: Likewise.
39848
39849 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
39850
39851         * arm.c (arm_xgene_tune): Add default initializer for instruction
39852         fusion.
39853
39854 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39855
39856         PR ipa/64068
39857         PR ipa/64559
39858         * ipa.c (symbol_table::remove_unreachable_nodes):
39859         Do not put abstract origins into boundary.
39860
39861 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
39862
39863         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
39864         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
39865
39866 2015-01-15  Steve Ellcey  <sellcey@mips.com>
39867
39868         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
39869         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
39870         builtins.def, and chkp-builtins.def.
39871
39872 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
39873
39874         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
39875         ISA 2.7 (POWER8).
39876
39877 2015-01-15  Richard Biener  <rguenther@suse.de>
39878
39879         PR tree-optimization/61743
39880         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
39881         information on PHIs for some simple cases.
39882
39883 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39884
39885         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
39886         Include xgene1.md.
39887         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
39888         * config/arm/arm-cores.def (xgene1): New entry.
39889         * config/arm/arm-tables.opt: Regenerate.
39890         * config/arm/arm-tune.md: Regenerate.
39891         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
39892
39893 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39894
39895         * tree-if-conv.c: Include hash-map.h.
39896         (aggressive_if_conv): New variable.
39897         (fold_build_cond_expr): Add simplification of non-zero condition.
39898         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
39899         destination block is not always executed.
39900         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
39901         than two predecessors if AGGRESSIVE_IF_CONV is true.
39902         (if_convertible_stmt_p): Fix commentary.
39903         (all_preds_critical_p): New function.
39904         (has_pred_critical_p): New function.
39905         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
39906         BB can have more than two predecessors and all incoming edges can be
39907         critical.
39908         (predicate_bbs): Skip predication for loop exit block, use build2_loc
39909         to compute predicate for true edge.
39910         (find_phi_replacement_condition): Delete this function.
39911         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
39912         Allow interchange PHI arguments if EXTENDED is false.
39913         Change check that block containing reduction statement candidate
39914         is predecessor of phi-block since phi may have more than two arguments.
39915         (phi_args_hash_traits): New helper structure.
39916         (struct phi_args_hash_traits): New type.
39917         (phi_args_hash_traits::hash): New function.
39918         (phi_args_hash_traits::equal_keys): New function.
39919         (gen_phi_arg_condition): New function.
39920         (predicate_scalar_phi): Add handling of phi nodes with more than two
39921         arguments, delete COND and TRUE_BB arguments, insert body of
39922         find_phi_replacement_condition to predicate ordinary phi nodes.
39923         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
39924         delete call of find_phi_replacement_condition and invoke
39925         predicate_scalar_phi with two arguments.
39926         (insert_gimplified_predicates): Add assert that non-predicated block
39927         don't have statements to insert.
39928         (ifcvt_split_critical_edges): New function.
39929         (ifcvt_split_def_stmt): Likewise.
39930         (ifcvt_walk_pattern_tree): Likewise.
39931         (stmt_is_root_of_bool_pattern): Likewise.
39932         (ifcvt_repair_bool_pattern): Likewise.
39933         (ifcvt_local_dce): Likewise.
39934         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
39935         is copy of inner or outer loop force_vectorize field, invoke
39936         ifcvt_split_critical_edges, ifcvt_local_dce and
39937         ifcvt_repair_bool_pattern for aggressive if-conversion.
39938
39939 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
39940
39941         * config/aarch64/aarch64.md: Include xgene1.md.
39942         * config/aarch64/xgene1.md: New file.
39943
39944 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39945
39946         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
39947         xgene1 (APM XGene-1) core definition.
39948         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
39949         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
39950         * doc/invoke.texi: Document -mcpu=xgene1.
39951
39952 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39953
39954         * dojump.h: New header file.
39955         * explow.h: Likewise.
39956         * expr.h: Remove includes.
39957         Move expmed.c prototypes to expmed.h.
39958         Move dojump.c prototypes to dojump.h.
39959         Move alias.c prototypes to alias.h.
39960         Move explow.c prototypes to explow.h.
39961         Move calls.c prototypes to calls.h.
39962         Move emit-rtl.c prototypes to emit-rtl.h.
39963         Move varasm.c prototypes to varasm.h.
39964         Move stmt.c prototypes to stmt.h.
39965         (saved_pending_stack_adjust): Move to dojump.h.
39966         (adjust_address): Move to explow.h.
39967         (adjust_address_nv): Move to emit-rtl.h.
39968         (adjust_bitfield_address): Likewise.
39969         (adjust_bitfield_address_size): Likewise.
39970         (adjust_bitfield_address_nv): Likewise.
39971         (adjust_automodify_address_nv): Likewise.
39972         * explow.c (expr_size): Move to expr.c.
39973         (int_expr_size): Likewise.
39974         (tree_expr_size): Likewise.
39975         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39976         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39977         * genemit.c (main): Generate includes statistics.h, real.h,
39978         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
39979         stmt.h.
39980         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
39981         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
39982         explow.h, emit-rtl.h, stmt.h.
39983         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
39984         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
39985         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
39986         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
39987         emit-rtl.h, varasm.h, stmt.h.
39988         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
39989         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
39990         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
39991         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
39992         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
39993         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
39994         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
39995         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
39996         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
39997         tm.h tree.h varasm.h vec.h wide-int.h.
39998         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39999         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
40000         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
40001         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
40002         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
40003         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
40004         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
40005         * loop-iv.c: Likewise.
40006         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
40007         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
40008         statistics.h stmt.h tree.h varasm.h wide-int.h.
40009         * lra-constraints.c: Likewise.
40010         * lra-eliminations.c: Likewise.
40011         * lra-lives.c: Likewise.
40012         * lra-remat.c: Likewise.
40013         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40014         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
40015         statistics.h stmt.h tree.h varasm.h wide-int.h.
40016         * hw-doloop.c: Likewise.
40017         * ira-color.c: Likewise.
40018         * ira-emit.c: Likewise.
40019         * loop-doloop.c: Likewise.
40020         * loop-invariant.c: Likewise.
40021         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40022         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
40023         statistics.h stmt.h tree.h varasm.h wide-int.h.
40024         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
40025         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
40026         statistics.h stmt.h tree.h varasm.h wide-int.h.
40027         * combine-stack-adj.c: Likewise.
40028         * cse.c: Likewise.
40029         * ddg.c: Likewise.
40030         * ifcvt.c: Likewise.
40031         * ira-costs.c: Likewise.
40032         * jump.c: Likewise.
40033         * lra-coalesce.c: Likewise.
40034         * lra-spills.c: Likewise.
40035         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40036         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
40037         stmt.h varasm.h wide-int.h.
40038         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
40039         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
40040         varasm.h.
40041         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
40042         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
40043         statistics.h stmt.h varasm.h wide-int.h.
40044         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
40045         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
40046         varasm.h wide-int.h.
40047         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
40048         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40049         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
40050         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
40051         statistics.h stmt.h.
40052         * config/tilepro/tilepro.c: Likewise.
40053         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
40054         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
40055         * config/pdp11/pdp11.c: Likewise.
40056         * config/xtensa/xtensa.c: Likewise.
40057         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
40058         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
40059         varasm.h.
40060         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40061         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
40062         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
40063         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40064         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
40065         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
40066         * rtl-chkp.c: Likewise.
40067         * tree-chkp-opt.c: Likewise.
40068         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
40069         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
40070         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
40071         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40072         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40073         statistics.h stmt.h.
40074         * tree-vect-data-refs.c: Likewise.
40075         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
40076         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40077         rtl.h statistics.h stmt.h varasm.h.
40078         * internal-fn.c: Likewise.
40079         * ipa-icf-gimple.c: Likewise.
40080         * lto-section-out.c: Likewise.
40081         * tree-data-ref.c: Likewise.
40082         * tree-nested.c: Likewise.
40083         * tree-outof-ssa.c: Likewise.
40084         * tree-predcom.c: Likewise.
40085         * tree-pretty-print.c: Likewise.
40086         * tree-scalar-evolution.c: Likewise.
40087         * tree-ssa-strlen.c: Likewise.
40088         * tree-vect-loop.c: Likewise.
40089         * tree-vect-patterns.c: Likewise.
40090         * tree-vect-slp.c: Likewise.
40091         * tree-vect-stmts.c: Likewise.
40092         * tsan.c: Likewise.
40093         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40094         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
40095         stmt.h.
40096         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
40097         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40098         statistics.h stmt.h varasm.h.
40099         * loop-unroll.c: Likewise.
40100         * ubsan.c: Likewise.
40101         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
40102         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
40103         stmt.h varasm.h.
40104         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40105         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
40106         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
40107         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
40108         statistics.h stmt.h.
40109         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
40110         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
40111         statistics.h stmt.h varasm.h.
40112         * gimple-match-head.c: Likewise.
40113         * lto-cgraph.c: Likewise.
40114         * lto-section-in.c: Likewise.
40115         * lto-streamer-in.c: Likewise.
40116         * lto-streamer-out.c: Likewise.
40117         * tree-affine.c: Likewise.
40118         * tree-cfg.c: Likewise.
40119         * tree-cfgcleanup.c: Likewise.
40120         * tree-if-conv.c: Likewise.
40121         * tree-into-ssa.c: Likewise.
40122         * tree-ssa-alias.c: Likewise.
40123         * tree-ssa-copyrename.c: Likewise.
40124         * tree-ssa-dse.c: Likewise.
40125         * tree-ssa-forwprop.c: Likewise.
40126         * tree-ssa-live.c: Likewise.
40127         * tree-ssa-math-opts.c: Likewise.
40128         * tree-ssa-pre.c: Likewise.
40129         * tree-ssa-sccvn.c: Likewise.
40130         * tree-tailcall.c: Likewise.
40131         * tree-vect-generic.c: Likewise.
40132         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40133         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
40134         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40135         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
40136         * varasm.c: Likewise.
40137         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40138         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
40139         varasm.h.
40140         * init-regs.c: Likewise.
40141         * ira.c: Likewise.
40142         * omp-low.c: Likewise.
40143         * stack-ptr-mod.c: Likewise.
40144         * tree-ssa-reassoc.c: Likewise.
40145         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40146         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
40147         varasm.h.
40148         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40149         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
40150         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40151         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
40152         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40153         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
40154         * tree-ssa-phiopt.c: Likewise.
40155         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40156         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40157         * config/fr30/fr30.c: Likewise.
40158         * config/frv/frv.c: Likewise.
40159         * expr.c: Likewise.
40160         * final.c: Likewise.
40161         * optabs.c: Likewise.
40162         * passes.c: Likewise.
40163         * simplify-rtx.c: Likewise.
40164         * stmt.c: Likewise.
40165         * toplev.c: Likewise.
40166         * var-tracking.c: Likewise.
40167         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40168         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40169         * lower-subreg.c: Likewise.
40170         * postreload-gcse.c: Likewise.
40171         * ree.c: Likewise.
40172         * reginfo.c: Likewise.
40173         * store-motion.c: Likewise.
40174         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40175         fixed-value.h hashtab.h real.h stmt.h varasm.h.
40176         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40177         fixed-value.h hashtab.h statistics.h stmt.h.
40178         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40179         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
40180         * except.c: Likewise.
40181         * explow.c: Likewise.
40182         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40183         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
40184         varasm.h.
40185         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40186         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
40187         * tree-ssa-structalias.c: Likewise.
40188         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40189         fixed-value.h insn-config.h real.h statistics.h.
40190         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40191         fixed-value.h insn-config.h real.h statistics.h stmt.h.
40192         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40193         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40194         * cfgbuild.c: Likewise.
40195         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40196         fixed-value.h real.h rtl.h statistics.h stmt.h.
40197         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40198         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40199         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40200         fixed-value.h real.h statistics.h stmt.h.
40201         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40202         fixed-value.h real.h statistics.h stmt.h varasm.h.
40203         * cprop.c: Likewise.
40204         * modulo-sched.c: Likewise.
40205         * postreload.c: Likewise.
40206         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40207         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
40208         statistics.h stmt.h varasm.h.
40209         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
40210         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40211         rtl.h statistics.h stmt.h varasm.h.
40212         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
40213         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
40214         varasm.h.
40215         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40216         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
40217         varasm.h.
40218         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
40219         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
40220         varasm.h.
40221         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
40222         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40223         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40224         function.h real.h statistics.h stmt.h varasm.h.
40225         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40226         insn-config.h real.h statistics.h stmt.h.
40227         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40228         statistics.h stmt.h.
40229         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
40230         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
40231         statistics.h stmt.h varasm.h.
40232         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
40233         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
40234         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40235         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
40236         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
40237         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40238         statistics.h stmt.h varasm.h.
40239         * ipa-polymorphic-call.c: Likewise.
40240         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
40241         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40242         statistics.h stmt.h.
40243         * config/c6x/c6x.c: Likewise.
40244         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
40245         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40246         statistics.h stmt.h varasm.h.
40247         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
40248         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
40249         stmt.h varasm.h.
40250         * ipa-split.c: Likewise.
40251         * tree-eh.c: Likewise.
40252         * tree-ssa-dce.c: Likewise.
40253         * tree-ssa-loop-niter.c: Likewise.
40254         * tree-vrp.c: Likewise.
40255         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
40256         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
40257         stmt.h.
40258         * config/nds32/nds32-fp-as-gp.c: Likewise.
40259         * config/nds32/nds32-intrinsic.c: Likewise.
40260         * config/nds32/nds32-isr.c: Likewise.
40261         * config/nds32/nds32-md-auxiliary.c: Likewise.
40262         * config/nds32/nds32-memory-manipulation.c: Likewise.
40263         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
40264         * config/nds32/nds32-predicates.c: Likewise.
40265         * config/nds32/nds32.c: Likewise.
40266         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
40267         fixed-value.h hashtab.h real.h statistics.h.
40268         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
40269         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40270         * config/arm/arm.c: Likewise.
40271         * config/avr/avr.c: Likewise.
40272         * config/bfin/bfin.c: Likewise.
40273         * config/h8300/h8300.c: Likewise.
40274         * config/i386/i386.c: Likewise.
40275         * config/ia64/ia64.c: Likewise.
40276         * config/iq2000/iq2000.c: Likewise.
40277         * config/m32c/m32c.c: Likewise.
40278         * config/m32r/m32r.c: Likewise.
40279         * config/m68k/m68k.c: Likewise.
40280         * config/mcore/mcore.c: Likewise.
40281         * config/mep/mep.c: Likewise.
40282         * config/mips/mips.c: Likewise.
40283         * config/mn10300/mn10300.c: Likewise.
40284         * config/moxie/moxie.c: Likewise.
40285         * config/pa/pa.c: Likewise.
40286         * config/rl78/rl78.c: Likewise.
40287         * config/rx/rx.c: Likewise.
40288         * config/s390/s390.c: Likewise.
40289         * config/sh/sh.c: Likewise.
40290         * config/sparc/sparc.c: Likewise.
40291         * config/spu/spu.c: Likewise.
40292         * config/stormy16/stormy16.c: Likewise.
40293         * config/v850/v850.c: Likewise.
40294         * config/vax/vax.c: Likewise.
40295         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
40296         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40297         * config/msp430/msp430.c: Likewise.
40298         * predict.c: Likewise.
40299         * value-prof.c: Likewise.
40300         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
40301         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
40302         * config/microblaze/microblaze.c: Likewise.
40303         * config/nios2/nios2.c: Likewise.
40304         * config/rs6000/rs6000.c: Likewise.
40305         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40306         insn-config.h real.h rtl.h statistics.h stmt.h.
40307         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40308         insn-config.h real.h statistics.h stmt.h.
40309         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
40310         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40311         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
40312         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40313         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
40314         fixed-value.h real.h statistics.h stmt.h.
40315         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
40316         fixed-value.h statistics.h stmt.h.
40317         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
40318         stmt.h.
40319
40320 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
40321
40322         * gengtype.c (create_user_defined_type): Workaround
40323         -Wmaybe-uninitialized false positives.
40324         * cse.c (fold_rtx): Likewise.
40325         * loop-invariant.c (gain_for_invariant): Likewise.
40326
40327 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
40328
40329         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
40330         set the memory attributes in all cases but clear MEM_EXPR if need be.
40331
40332 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
40333
40334         PR tree-optimization/64434
40335         * cfgexpand.c (reorder_operands): New function.
40336         (expand_gimple_basic_block): Insert call of reorder_operands if
40337         optimized is true.
40338
40339 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
40340
40341         * config/mips/micromips.md (*swp): Remove explicit parallel.
40342         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
40343         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
40344         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
40345         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
40346         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
40347         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
40348         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
40349         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
40350         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
40351         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
40352         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
40353         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
40354         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
40355         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
40356         (mips_wrdsp): Likewise.
40357         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
40358         parallel.
40359         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
40360         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
40361         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
40362         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
40363         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
40364         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
40365         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
40366         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
40367         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
40368
40369 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40370
40371         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
40372         (mips_print_operand): Support 'y' to print exact log2 in decimal
40373         of a const_int.
40374         * config/mips/mips.h (ISA_HAS_LSA): New define.
40375         (ISA_HAS_DLSA): Likewise.
40376         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
40377         * config/mips/predicates.md (const_immlsa_operand): New predicate.
40378
40379 2015-01-15  Martin Liska  <mliska@suse.cz>
40380
40381         PR target/64377
40382         * optc-save-gen.awk: Add support for array types.
40383
40384 2015-01-15  Richard Biener  <rguenther@suse.de>
40385
40386         PR middle-end/64365
40387         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
40388         for MEM_REF access functions with the same base can never partially
40389         overlap.
40390
40391 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
40392
40393         * common.opt: New option -fstack-protector-explicit.
40394         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
40395         (stack_protect_decl_phase): Handle stack_protect attribute for
40396         explicit stack protection requests.
40397         (expand_used_vars): Similarly.
40398         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
40399         * doc/extend.texi: Add documentation for "stack_protect" attribute.
40400         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
40401
40402 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
40403
40404         PR target/53988
40405         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
40406         reg-reg copies.
40407         (sh_extending_set_of_reg): New struct.
40408         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
40409         sh_remove_reg_dead_or_unused_notes): New Declarations.
40410         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
40411         sh_find_extending_set_of_reg, sh_split_tst_subregs,
40412         sh_extending_set_of_reg::use_as_extended_reg): New functions.
40413         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
40414         convert to insn_and_split and use new function sh_split_tst_subregs.
40415
40416 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
40417
40418         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
40419         option.
40420         (Optimization Options): Move -fuse-ld documentation to...
40421         (Link Options): ...here.
40422
40423 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40424
40425         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
40426         offsets.
40427         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
40428         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
40429         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
40430         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
40431         instead of ZR for the memory operand of LL/SC.
40432         (compare_and_swap_12, sync_add<mode>): Likewise.
40433         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
40434         (sync_new_<optab>_12, sync_nand_12): Likewise.
40435         (sync_old_nand_12, sync_new_nand_12): Likewise.
40436         (sync_sub<mode>, sync_old_add<mode>): Likewise.
40437         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
40438         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
40439         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
40440         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
40441         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
40442         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
40443         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
40444         * doc/md.texi (ZC): Update description.
40445
40446 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40447
40448         * builtins.c (expand_builtin_atomic_exchange): Remove error when
40449         memory model is CONSUME.
40450         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
40451         expand_builtin_atomic_store): Change invalid memory model errors to
40452         warnings.
40453         (expand_builtin_atomic_clear): Change invalid model errors to warnings
40454         and issue warning for CONSUME.
40455
40456 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
40457
40458         * lto-cgraph: Update function comments for
40459         lto_symtab_encoder_encode_*.
40460
40461 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40462
40463         * Makefile.in (site.exp): Do not set ENABLE_LTO.
40464
40465 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40466
40467         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
40468         * lto-cgraph.c (select_what_to_stream): Remove argument, use
40469         lto_stream_offload_p instead.
40470         * lto-streamer.h (select_what_to_stream): Remove argument.
40471         * passes.c (ipa_write_summaries): Likewise.
40472         * tree-pass.h (ipa_write_summaries): Likewise.
40473
40474 2015-01-14  Richard Biener  <rguenther@suse.de>
40475
40476         PR tree-optimization/59354
40477         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
40478         groups larger than the slp group size as having gaps.
40479
40480 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40481
40482         PR middle-end/59448
40483         * builtins.c (get_memmodel): Promote consume to acquire always.
40484
40485 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40486
40487         PR target/64386
40488         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
40489         V32HImode.
40490
40491 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40492
40493         PR target/64393
40494         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
40495         Enable AVX512BW.
40496         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
40497         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
40498         AVX512VBMI, as it implies AVX512BW.
40499
40500 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40501
40502         PR target/64387
40503         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
40504         (vec_unpacks_hi_v16sf): Ditto.
40505
40506 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40507
40508         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
40509         is not available.
40510
40511 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40512
40513         * doc/invoke.texi (mapcs): Mention deprecation.
40514         (mapcs-frame): Likewise.
40515
40516 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40517
40518         PR target/64453
40519         * config/arm/arm.c (callee_saved_reg_p): Define.
40520         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
40521         register is callee saved instead of !call_used_regs[reg].
40522         (thumb1_compute_save_reg_mask): Likewise.
40523
40524 2015-01-14  Hale Wang  <hale.wang@arm.com>
40525
40526         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
40527         Cortex-M7.
40528
40529 2015-01-14  Richard Biener  <rguenther@suse.de>
40530
40531         PR lto/64415
40532         * tree-inline.c (insert_debug_decl_map): Check destination
40533         function MAY_HAVE_DEBUG_STMTS.
40534         (insert_init_debug_bind): Likewise.
40535         (insert_init_stmt): Remove redundant check.
40536         (remap_gimple_stmt): Drop debug stmts if the destination
40537         function has var-tracking assignments disabled.
40538
40539 2015-01-14  Martin Liska  <mliska@suse.cz>
40540
40541         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
40542         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
40543
40544 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40545
40546         PR target/64460
40547         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
40548         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
40549
40550 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40551
40552         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
40553         level from an ARCH; do not inject the default.
40554         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
40555         MIPS_ISA_LEVEL_SPEC.
40556         (MIPS_ISA_NAN2008_SPEC): Update comment.
40557         (BASE_DRIVER_SELF_SPECS): Likewise.
40558         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
40559         MIPS_DEFAULT_ISA_LEVEL_SPEC.
40560         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
40561         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
40562         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
40563
40564 2015-01-14  Richard Biener  <rguenther@suse.de>
40565
40566         PR tree-optimization/64493
40567         PR tree-optimization/64495
40568         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
40569         assign the proper vectorized PHI to the inner loop exit PHIs.
40570
40571 2015-01-14  Joey Ye  <joey.ye@arm.com>
40572
40573         * config/arm/arm.c (arm_compute_save_reg_mask):
40574         Do not save lr in case of tail call.
40575         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
40576
40577 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
40578
40579         * tree-vrp.c (check_array_ref): Emit more warnings
40580         for warn_array_bounds >= 2.
40581         * common.opt: New option -Warray-bounds=.
40582         * doc/invoke.texi: Document -Warray-bounds=.
40583
40584 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
40585
40586         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
40587         (mforbid-fp-as-gp): Remove.
40588         (mex9): Remove.
40589         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
40590         (nds32_symbol_load_store_p): Remove.
40591         (nds32_fp_as_gp_check_available): Clean up implementation.
40592         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
40593         cases.
40594         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
40595         fp-as-gp and ex9 cases.
40596
40597 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40598
40599         * tree-profile.c (init_ic_make_global_vars): Drop workaround
40600         for bintuils bug 14342.
40601         (init_ic_make_global_vars): Likewise.
40602         (gimple_init_edge_profiler): Likewise.
40603         (gimple_gen_ic_func_profiler): Likewise.
40604
40605 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
40606
40607         * ipa-inline.c (inline_small_functions): Swap the operands in
40608         enum.
40609
40610 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40611
40612         PR ipa/64481
40613         * ipa-inline-analysis.c (node_growth_cache): Remove.
40614         (initialize_growth_caches): Do not initialize it.
40615         (free_growth_caches): Do not free it.
40616         (do_estimate_growth): Rename to ...
40617         (estimate_growth): ... this one; drop growth cache code.
40618         (growth_likely_positive): Always go the heuristics way.
40619         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
40620         (reset_edge_caches): Do not reset node growth.
40621         (heap_edge_removal_hook): Do not maintain cache.
40622         (inline_small_functions): Likewise; strenghten sanity check.
40623         (ipa_inline): Do not maintain caches.
40624         * ipa-inline.h (node_growth_cache): Remove.
40625         (do_estimate_growth): Remove to ...
40626         (estimate_growth): this one; remove inline version.
40627         (reset_node_growth_cache): Remove.
40628
40629 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40630
40631         PR ipa/64565
40632         * ipa-inline.c (inline_small_functions): Update callee keys after
40633         resolving speculation
40634         (inline_small_functions): Always check monotonicity of the queue.
40635
40636 2015-01-13  Marek Polacek  <polacek@redhat.com>
40637
40638         PR middle-end/64391
40639         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
40640
40641 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40642
40643         PR rtl-optimization/64286
40644         * ree.c (combine_reaching_defs): Move part of comment earlier,
40645         remove !SCALAR_INT_MODE_P check.
40646         (add_removable_extension): Don't add vector mode
40647         extensions if all uses of the source register aren't the same
40648         vector extensions.
40649
40650 2015-01-13  Renlin Li  <renlin.li@arm.com>
40651
40652         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
40653         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
40654
40655 2015-01-13  Martin Liska  <mliska@suse.cz>
40656
40657         * ipa-icf.c (sem_function::equals_private): Call new functions
40658         cl_target_option_print_diff and cl_optimization_print_diff.
40659         * optc-save-gen.awk (cl_target_option_print_diff): New function.
40660         (cl_optimization_print_diff): Likewise.
40661         * opth-gen.awk: Likewise.
40662
40663 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40664
40665         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
40666         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
40667         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
40668         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
40669         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
40670         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
40671
40672 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40673
40674         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
40675         instead of src mode.
40676
40677 2015-01-13  Richard Biener  <rguenther@suse.de>
40678
40679         PR lto/64373
40680         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
40681         DECL_CONTEXT.
40682
40683 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40684
40685         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
40686         volatile mems.
40687         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
40688
40689 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40690
40691         PR middle-end/63974
40692         * cfgexpand.c (expand_computed_goto): Don't call
40693         convert_memory_address here.
40694
40695 2015-01-13  Richard Biener  <rguenther@suse.de>
40696
40697         PR tree-optimization/64406
40698         * tree-loop-distibution.c (pass_loop_distribution::execute):
40699         Reset the SCEV hashtable if we distributed anything.
40700
40701 2015-01-13  Richard Biener  <rguenther@suse.de>
40702
40703         PR tree-optimization/64404
40704         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
40705         SLP types for CSEd loads.
40706
40707 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40708
40709         PR tree-optimization/64436
40710         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
40711         merge of two symbolic numbers for a bitwise OR to ...
40712         (perform_symbolic_merge): This. Also fix computation of the range and
40713         end of the symbolic number corresponding to the result of a bitwise OR.
40714
40715 2015-01-13  Richard Biener  <rguenther@suse.de>
40716
40717         PR tree-optimization/64568
40718         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
40719         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
40720
40721 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40722
40723         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
40724         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
40725
40726 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40727
40728         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
40729         target-specific symbol_ref flag.
40730         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
40731         resides in rodata section.
40732         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
40733         (nds32_encode_section_info): New function.
40734
40735 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40736
40737         * config/nds32/nds32.md (call): Use pseudo instruction bal which
40738         clobbers TA_REGNUM if large code model is specified.
40739         (call_register): Likewise.
40740         (call_immediate): Likewise.
40741         (call_value): Likewise.
40742         (call_value_register): Likewise.
40743         (call_value_immediate): Likewise.
40744
40745 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40746
40747         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
40748         (TARGET_CMODEL_MEDIUM): New macro.
40749         (TARGET_CMODEL_LARGE): New macro.
40750         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
40751         code model setting in assembly code.
40752
40753 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40754
40755         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
40756         Remove MASK_GP_DIRECT flag.
40757         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
40758         one of the multilib default options.
40759         * config/nds32/nds32.opt (mgp-direct): Remove.
40760         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
40761         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
40762
40763 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40764
40765         * config/nds32/nds32.opt (mcmodel): Add new option.
40766         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
40767         to describe code model.
40768
40769 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
40770
40771         PR target/64479
40772         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
40773
40774 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
40775
40776         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
40777         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
40778         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
40779         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
40780         __builtin_sh_set_fpscr.
40781
40782 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40783
40784         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
40785         after a funtion name just to indicate it is a function.
40786         ([-fsanitize-undefined-trap-on-error]): Likewise.
40787         ([-fdbg-cnt=]): Likewise.
40788         ([-mmemcpy]): Likewise.
40789         ([-mflush-func]): Likewise.
40790         ([-msynci]): Likewise.
40791
40792 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40793
40794         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
40795         example.
40796
40797 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
40798
40799         PR tree-optimization/64563
40800         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
40801         instead of != VR_VARYING.
40802
40803         PR target/64513
40804         * config/i386/i386.c (ix86_expand_prologue): Add
40805         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
40806
40807         PR tree-optimization/64454
40808         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
40809         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
40810         for signed or [0, op1 - 1] for unsigned modulo.
40811         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
40812         even if op1 does not satisfy integer_pow2p.
40813
40814         PR other/64370
40815         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
40816
40817 2015-01-12  Jeff Law  <law@redhat.com>
40818
40819         PR target/64461
40820         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
40821         (trunchiqi2, truncsihi2): Similarly.
40822
40823         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
40824         rather than calling F.
40825
40826 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40827
40828         * tsan.c (instrument_expr): Use force_gimple_operand.
40829         Use may_be_nonaddressable_p instead of is_gimple_addressable.
40830
40831 2015-01-12  Richard Biener  <rguenther@suse.de>
40832
40833         PR tree-optimization/64530
40834         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
40835         back dr1.
40836
40837 2015-01-12  Richard Biener  <rguenther@suse.de>
40838
40839         PR middle-end/64357
40840         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
40841         latches properly.
40842
40843 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40844
40845         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
40846         Cortex-A17 tuning parameters.
40847         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
40848
40849 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40850
40851         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
40852         * config/arm/arm.c (arm_macro_fusion_p): New function.
40853         (arm_macro_fusion_pair_p): Likewise.
40854         (TARGET_SCHED_MACRO_FUSION_P): Define.
40855         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
40856         (ARM_FUSE_NOTHING): Likewise.
40857         (ARM_FUSE_MOVW_MOVT): Likewise.
40858         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
40859         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
40860         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
40861         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
40862         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
40863         arm_cortex_a5_tune): Specify fuseable_ops value.
40864
40865 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
40866
40867         PR bootstrap/64561
40868         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
40869         test for PIE with copy reloc.
40870         * configure: Regenerated.
40871
40872 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40873
40874         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
40875         in gen_rtx_REG.
40876         (arm_tls_descseq_addr): Likewise.
40877         (arm_gen_movmemqi): Likewise.
40878         (arm_expand_epilogue_apcs_frame): Likewise.
40879         (arm_expand_epilogue): Likewise.
40880         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
40881         in gen_rtx_REG.
40882
40883 2015-01-12  Martin Liska  <mliska@suse.cz>
40884
40885         PR ipa/64550
40886         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
40887         volatility for correct operands.
40888
40889 2015-01-12  Martin Liska  <mliska@suse.cz>
40890
40891         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
40892         indication that a function is not leaf.
40893         (sem_function::compare_polymorphic_p): Likewise.
40894
40895 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40896
40897         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
40898         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
40899         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
40900         fold-const.h, tree-check.h.
40901
40902 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40903
40904         PR ipa/63967
40905         PR ipa/64425
40906         * ipa-inline.c (compute_uninlined_call_time,
40907         compute_inlined_call_time): Use counts for extra precision when
40908         needed possible.
40909         (big_speedup_p): Fix formating.
40910         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
40911         (relative_time_benefit): Remove.
40912         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
40913         merge guessed and read profile paths.
40914         (inline_small_functions): Count only !optimize_size functions into
40915         initial size; be more lax about sanity check when profile is used;
40916         be sure to update inlined function profile when profile is read.
40917
40918 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40919
40920         PR ipa/63470
40921         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
40922         cost when edge becomes direct.
40923         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
40924         is resolved or when introducing new speculation.
40925
40926 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
40927
40928         PR ipa/64551
40929         PR ipa/64552
40930         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
40931         '||' to fix typo issue.
40932
40933         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
40934         accept and return NULL.
40935
40936 2015-01-12  Martin Liska  <mliska@suse.cz>
40937
40938         * cgraph.c (cgraph_edge::remove_callee): Move function to header
40939         file for being inlined.
40940         (cgraph_set_edge_callee): Delete.
40941         (cgraph_edge::redirect_callee): Move function to header file
40942         for being inlined.
40943         (cgraph_edge::make_direct): Use new function.
40944         (cgraph_edge::dump_edge_flags): New function created from
40945         static dump_edge_flags function.
40946         (cgraph_node::dump): Use new function.
40947         (cgraph_edge::verify_count_and_frequency): New function created
40948         from verify_edge_count_and_frequency.
40949         (cgraph_edge::verify_corresponds_to_fndecl): New function created
40950         from verify_edge_corresponds_to_fndecl.
40951         (verify_edge_corresponds_to_fndecl): Delete.
40952         (cgraph_node::verify_node): Use new function.
40953         * cgraph.h (cgraph_edge::set_callee): New function.
40954         (cgraph_edge::dump_edge_flags): Likewise.
40955         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
40956
40957 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
40958
40959         * ipa-utils.c (estimate_function_body_sizes): Do not
40960         free node params when called late with early=true.
40961
40962 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
40963
40964         * doc/md.texi (Instruction Patterns): Rewrite text for
40965         clarity.
40966         (Example): Likewise.
40967
40968 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40969
40970         * doc/invoke.texi (Option Summary): Break long lines.
40971         [(-fdiagnostics-color)]: Put long literal in @smallexample
40972         instead of inline.
40973         [(-fsanitize-recover)]: Likewise.
40974         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
40975         [(-ffast-math)]: Likewise.
40976         [(--param max-inline-insns-recursive)]: Likewise.
40977         [(--param max-inline-recursive-depth)]: Likewise.
40978         [(-mno-text-section-literals)]: Likewise.
40979
40980 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
40981
40982         * doc/install.texi: Update for libgomp being renamed from "GNU
40983         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
40984         Runtime Library".
40985         * doc/sourcebuild.texi: Likewise.
40986
40987 2015-01-10  Anthony Green  <green@moxielogic.com>
40988
40989         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
40990         mul.x availability for moxiebox configuration.
40991
40992 2015-01-09  Anthony Green  <green@moxielogic.com>
40993
40994         * config/moxie/moxie.md: Tabify assembly output.
40995
40996 2015-01-09  Anthony Green  <green@moxielogic.com>
40997
40998         * config/moxie/moxie.md (CC_REG): Correct register definition.
40999
41000 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
41001
41002         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
41003         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
41004         of log files.
41005
41006 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41007
41008         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
41009
41010 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
41011             Jakub Jelinek  <jakub@redhat.com>
41012
41013         PR middle-end/64412
41014         * lto-streamer.h (lto_stream_offload_p): New declaration.
41015         * lto-streamer.c (lto_stream_offload_p): New variable.
41016         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
41017         at the same time as section_name_prefix.
41018         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
41019         if lto_stream_offload_p.
41020         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
41021         stream TREE_TARGET_OPTION if lto_stream_offload_p.
41022         (write_ts_function_decl_tree_pointers): Don't
41023         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
41024         * tree-streamer-in.c (unpack_value_fields): Don't stream
41025         TREE_TARGET_OPTION in if ACCEL_COMPILER.
41026         (lto_input_ts_function_decl_tree_pointers): Don't stream
41027         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
41028         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
41029         instead of section_name_prefix string comparisons.
41030
41031 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
41032
41033         PR rtl-optimization/64536
41034         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
41035         tablejumps.
41036
41037 2015-01-09  Michael Collison  <michael.collison@linaro.org>
41038
41039         PR tree-optimization/64322
41040         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
41041         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
41042
41043 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41044
41045         PR rtl-optimization/64539
41046         * regcprop.c (kill_clobbered_values): Factor out of ...
41047         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
41048         instead of note_stores with kill_clobbered_value.
41049
41050 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41051
41052          * ginclude/unwind-arm-common.h: Revert previous commit.
41053
41054 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
41055
41056         * config.gcc (arm*-*-freebsd*): New configuration.
41057         * config/arm/freebsd.h: New file.
41058         * config.host: Add extra components for arm*-*-freebsd*.
41059         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
41060         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
41061
41062 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41063
41064         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
41065         for -mcpu=e6500.
41066         * config/rs6000/t-rtems: Add e6500 multilibs.
41067
41068 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41069
41070         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
41071         MPC8540.
41072
41073 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41074
41075         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
41076         MULTILIB_EXCEPTIONS.
41077
41078 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41079
41080         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
41081         MULTILIB_EXCEPTIONS.
41082
41083 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
41084
41085         * config/arm/t-rtems-eabi: Rename to...
41086         * config/arm/t-rtems: ...this.
41087         * config/arm/rtems-eabi.h: Rename to...
41088         * config/arm/rtems.h: ...this.
41089         * config.gcc (arm*-*-rtems*): Reflect changes above.
41090
41091 2015-01-09  Richard Biener  <rguenther@suse.de>
41092
41093         PR tree-optimization/64410
41094         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
41095         on the LHS.
41096         (execute_update_addresses_taken): Deal with that.
41097         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
41098         loads/stores for complex variables.
41099
41100 2015-01-09  Martin Liska  <mliska@suse.cz>
41101
41102         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
41103         name comparison.
41104         (func_checker::compare_memory_operand): New function.
41105         (func_checker::compare_operand): Split case to newly
41106         added functions.
41107         (func_checker::compare_cst_or_decl): New function.
41108         (func_checker::compare_gimple_call): Identify
41109         memory operands.
41110         (func_checker::compare_gimple_assign): Likewise.
41111         * ipa-icf-gimple.h: New function.
41112
41113 2015-01-09  Martin Liska  <mliska@suse.cz>
41114
41115         PR ipa/64503
41116         * sreal.c (sreal::dump): Change unsigned format to signed for
41117         m_exp value.
41118         (sreal::to_double): Replace exp2 with scalbln.
41119
41120 2015-01-09  Martin Liska  <mliska@suse.cz>
41121
41122         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
41123         * ipa-icf.c (sem_function::equals_private): Add support for target and
41124         (sem_item_optimizer::merge_classes): Remove redundant function
41125         optimization flags comparison.
41126         * tree.h (target_opts_for_fn): New function.
41127
41128 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41129
41130         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
41131
41132 2015-01-09  Kito Cheng  <kito@0xlab.org>
41133
41134         PR rtl-optimization/64348
41135         * lra-constraints.c (split_reg): Fix caller-save store/restore
41136         instruction generation.
41137
41138 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
41139
41140         PR gcov-profile/61790
41141         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
41142         long long.  Fallback to int64_t if host doesn't have long long and
41143         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
41144
41145 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41146
41147         PR tree-optimization/63989
41148         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
41149         from 1000 to 10000.
41150         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
41151         (get_stridx): If we don't have a record for certain SSA_NAME,
41152         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
41153         constant offset, call get_stridx_plus_constant.
41154         (get_stridx_plus_constant): New function.
41155         (zero_length_string): Don't use get_stridx here.
41156
41157         PR target/55023
41158         PR middle-end/64388
41159         * dse.c (struct insn_info): Mention frame_read set also
41160         before reload for tail calls on some targets.
41161         (scan_insn): Revert 2014-12-22 change.  Set frame_read
41162         also before reload for tail calls if
41163         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
41164         instead of add_non_frame_wild_read for non-const/memset
41165         tail calls after reload.
41166
41167 2015-01-08  Jason Merrill  <jason@redhat.com>
41168
41169         * ubsan.c (do_ubsan_in_current_function): New.
41170         (pass_ubsan::gate): Use it.
41171         * ubsan.h: Declare it.
41172         * convert.c (convert_to_integer): Use it.
41173
41174 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41175
41176         PR target/64338
41177         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
41178         compare_code when it is unconditionally overwritten afterwards.
41179         Use ix86_reverse_condition instead of reverse_condition.  Don't
41180         change code if *reverse_condition* returned UNKNOWN and don't
41181         swap ct/cf and negate diff in that case.
41182
41183 2015-01-08  Mike Stump  <mikestump@comcast.net>
41184
41185         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
41186         (pass_tsan_O0::gate): Likewise.
41187         * extend.texi (Function Attributes): Add no_sanitize_thread
41188         documentation.
41189
41190 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
41191
41192         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
41193         for registering builtins.
41194         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
41195         add -fopenmp to the argv_obstack used when invoking
41196         compile_for_target.
41197
41198         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
41199         add "-m32" or "-m64" to argv_obstack.
41200         (generate_host_descr_file): Likewise, when invoking host_compiler.
41201         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
41202         ld.
41203
41204 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41205
41206         * config/sh/sh-mem.cc: Use constant as second operand when emitting
41207         tstsi_t insns.
41208
41209 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41210
41211         PR target/55212
41212         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
41213         constant load if constant operand fits into I08.
41214
41215 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41216
41217         PR sanitizer/64336
41218         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
41219         and TREE_THIS_VOLATILE for MEM_REFs.
41220         (build5_stat): Fix up initialization of TREE_READONLY and
41221         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
41222
41223 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
41224
41225         PR target/64533
41226         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
41227         of r for the second alternative of the destination operand.
41228
41229 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
41230
41231         PR target/36557
41232         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
41233
41234 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41235
41236         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
41237         keywords.
41238         ([-fivar-visibility], [-fvisibility]): Likewise.
41239
41240 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41241
41242         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
41243         the file where @code, @command, etc is more appropriate.
41244
41245 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
41246
41247         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
41248         of -mrecip= documentation.
41249
41250 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
41251
41252         PR target/64505
41253         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
41254         correct reload handler if -m32 -mpowerpc64 is used.
41255
41256 2015-01-06  Tom de Vries  <tom@codesourcery.com>
41257
41258         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
41259
41260 2015-01-08  Christian Bruel  <christian.bruel@st.com>
41261
41262         PR target/64507
41263         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
41264
41265 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41266
41267         PR tree-optimization/63259
41268         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
41269         if optab exists for 16bit byteswap.
41270
41271 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
41272
41273         * opts.c (common_handle_option): Add support for
41274         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
41275         * doc/invoke.texi: Document -fno-sanitize=all,
41276         -f{,no-}sanitize-recover=all.  Document that
41277         -fsanitize=float-cast-overflow is not enabled
41278         by -fsanitize=undefined.  Fix up documentation
41279         of -f{,no-}sanitize-recover.
41280
41281 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
41282
41283         * config.gcc: Add Visium support.
41284         * configure.ac: Likewise.
41285         * configure: Regenerate.
41286         * doc/extend.texi (interrupt attribute): Add Visium.
41287         * doc/invoke.texi: Document Visium options.
41288         * doc/install.texi: Document Visium target.
41289         * doc/md.texi: Document Visium constraints.
41290         * common/config/visium: New directory.
41291         * config/visium: Likewise.
41292
41293 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41294
41295         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
41296         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
41297
41298 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41299
41300         * combine.c (combine_validate_cost): Do not count the cost of a
41301         split I2 twice.  Do not display it twice in the dump, either.
41302
41303 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41304
41305         Revert parts of r219199.
41306         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
41307         <inttypes.h>.
41308         ([-Wtraditional]): Restore markup on <limits.h>.
41309
41310 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
41311
41312         PR c++/31397
41313         * doc/invoke.texi: Document -Wsuggest-override.
41314
41315 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
41316
41317         PR rtl-optimization/64287
41318         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
41319         (process_options): Disable flag_ipa_ra if profiling.
41320
41321 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41322
41323         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
41324
41325 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
41326
41327         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
41328         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
41329         put under #if TARGET_LOOPS guard.
41330
41331 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
41332
41333         * config/i386/i386.c (output_387_binary_op): Use std::swap.
41334
41335 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
41336
41337         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
41338         * rtl.h (refers_to_regno_p): Add overload.
41339         * cse.c: Use it.
41340         * bt-load.c: Likewise.
41341         * combine.c: Likewise.
41342         * df-scan.c: Likewise.
41343         * sched-deps.c: Likewise.
41344         * config/s390/s390.c: Likewise.
41345         * config/m32r/m32r.c: Likewise.
41346         * config/rs6000/spe.md: Likewise.
41347         * config/rs6000/rs6000.c: Likewise.
41348         * config/pa/pa.c: Likewise.
41349         * config/stormy16/stormy16.c: Likewise.
41350         * config/cris/cris.c: Likewise.
41351         * config/arc/arc.md: Likewise.
41352         * config/arc/arc.c: Likewise.
41353         * config/sh/sh.md: Likewise.
41354         * config/sh/sh.c: Likewise.
41355         * config/frv/frv.c: Likewise.
41356
41357 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41358
41359         PR sanitizer/64265
41360         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
41361         call as cleanup of the whole body.
41362         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
41363         * tsan.c (replace_func_exit): New function.
41364         (instrument_func_exit): Moved earlier.
41365         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
41366         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
41367         been found.
41368         (tsan_pass): Don't call instrument_func_exit.
41369         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
41370         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
41371         inlining.
41372
41373         PR sanitizer/64344
41374         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
41375         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
41376         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
41377         if the result is integer_zerop, return NULL_TREE.
41378         * convert.c (convert_to_integer): Pass expr as ARG.
41379
41380         PR tree-optimization/64465
41381         * tree-inline.c (redirect_all_calls): During inlining
41382         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
41383         changed the stmt to a non-throwing call.
41384
41385 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41386
41387         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
41388         etc markup throughout the file.
41389
41390 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41391
41392         Enable experimental TSAN support for Ada.
41393         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
41394
41395 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41396
41397         PR tree-optimization/64494
41398         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
41399         clear SSA_NAME_ANTI_RANGE_P flag.
41400
41401 2015-01-05  Marek Polacek  <polacek@redhat.com>
41402
41403         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
41404
41405 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41406
41407         Update copyright years.
41408
41409         * gcc.c (process_command): Update copyright notice dates.
41410         * gcov-dump.c: Ditto.
41411         * gcov.c: Ditto.
41412         * doc/cpp.texi: Bump @copying's copyright year.
41413         * doc/cppinternals.texi: Ditto.
41414         * doc/gcc.texi: Ditto.
41415         * doc/gccint.texi: Ditto.
41416         * doc/gcov.texi: Ditto.
41417         * doc/install.texi: Ditto.
41418         * doc/invoke.texi: Ditto.
41419
41420         * auto-profile.c, auto-profile.h: Fix up Copyright line.
41421
41422 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
41423
41424         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
41425         verb tense, etc.
41426         ([-fvtable-verify], [-fvtv-debug]): Likewise.
41427         ([-Wabi]): Likewise.
41428         ([-fmessage-length]): Likewise.
41429         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
41430         ([-Wno-discarded-qualifiers]): Likewise.
41431         ([-Wnodiscarded-array-qualifiers]): Likewise.
41432         ([-Wno-virtual-move-assign]): Likewise.
41433         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
41434         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
41435         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
41436         ([-fsanitize-undefined-trap-on-error]): Likewise.
41437         ([-floop-interchange]): Likewise.
41438         ([-ftree-coalesce-inlined-vars]): Likewise.
41439         ([-fvect-cost-model]): Likewise.
41440         ([-flto]): Likewise.
41441         ([--param]): Likewise.
41442         (Spec Files): Likewise.
41443         ([-mstrict-align]): Likewise.
41444         ([-mfix-cortex-a53-835769]): Likewise.
41445         ([-march], [-mtune]): Likewise.
41446         ([-mpic-register]): Likewise.
41447         ([-munaligned-access]): Likewise.
41448         ([-msp8]): Likewise.
41449         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
41450         (AVR Built-in Macros): Likewise.
41451         ([-mpreferred-stack-boundary]): Likewise.
41452         ([-mtune-crtl]): Likewise.
41453         ([-mashf]): Likewise.
41454         ([-mmcu=]): Likewise.
41455         ([-minrt]): Likewise.
41456         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
41457         ([-mupper-regs]): Likewise.
41458         ([-matomic-model]): Likewise.
41459         ([-mdiv]): Likewise.
41460         ([-mzdcbranch]): Likewise.
41461         ([-mdisable-callt]): Likewise.
41462         ([-msoft-float]): Likewise.
41463         ([-m8byte-align]): Likewise.
41464         ([-fstack-reuse]): Likewise.
41465
41466 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41467
41468         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
41469         Fix markup, light copy-editing.
41470         ([-fauto-profile]): Rewrite to fix formatting and content
41471         problems.
41472
41473 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41474
41475         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
41476         Copy-edit description.
41477         ([-fisolate-erroneous-paths-attribute]): Likewise.
41478         * common.opt (fisolate-erroneous-paths-dereference):
41479         Copy-edit description.
41480         (fisolate-erroneous-paths-attribute): Likewise.
41481
41482 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41483
41484         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
41485         tidy grammar.
41486
41487 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41488
41489         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
41490         ([-fvtv-debug]): Likewise.
41491         ([-Wc++-compat]): Likewise.
41492         ([-Wc++11-compat]): Likewise.
41493         ([-Wc++14-compat]): Likewise.
41494         ([-Wno-sized-deallocation]): Likewise.
41495         ([-femit-class-debug-always]): Likewise.
41496         ([-femit-struct-debug-detailed]): Likewise.
41497         ([-fno-keep-inline-dllexport]): Likewise.
41498         ([-fira-algorithm]): Likewise.
41499         ([-fira-region]): Likewise.
41500         ([-flra-remat]): Likewise.
41501         ([-fipa-ra]): Likewise.
41502         ([-fhoist-adjacent-loads]): Likewise.
41503         ([-fisolate-erroneous-paths-dereference]): Likewise.
41504         ([-fisolate-erroneous-paths-attribute]): Likewise.
41505         ([-ftree-switch-conversion]): Likewise.
41506         ([-ftree-tail-merge]): Likewise.
41507         ([-ftree-loop-if-convert]): Likewise.
41508         ([-ftree-loop-if-convert-stores]): Likewise.
41509         ([-ftree-loop-distribution]): Likewise.
41510         ([-ftree-loop-distribute-patterns]): Likewise.
41511         ([-flto-compression-level]): Likewise.
41512         ([-flto-report]): Likewise.
41513         ([-flto-report-wpa]): Likewise.
41514         ([-fuse-linker-plugin]): Likewise.
41515         ([-mfix-cortex-a53-835769]): Likewise.
41516         ([-mno-fix-cortex-a53-835769]): Likewise.
41517         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
41518         explicit listing; add a note to the discussion indicating they
41519         exist.  Reorder table to group similar options.  Add missing
41520         @opindex entries.  Add @need commands throughout the table to
41521         allow it to be split across multiple pages.
41522         ([-m8bit-idiv]): Fix @opindex.
41523         ([-mavx256-split-unaligned-load]): Likewise.
41524         ([-mavx256-split-unaligned-store]): Likewise.
41525         ([-mstack-protector-guard]): Likewise.
41526         ([-mcpu=]): Likewise.
41527         ([-mcpu]): Likewise.
41528         ([-mpointer-size=]): Likewise.
41529
41530 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
41531
41532         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
41533         instead of `m' constraint.  Likewise for unnamed movb comparison
41534         patterns using reg_before_reload_operand predicate.
41535         * config/pa/predicates.md (reg_before_reload_operand): Tighten
41536         predicate to reject register index and LO_SUM DLT memory forms
41537         after reload.
41538
41539 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41540
41541         * doc/invoke.texi (Option Summary): Fix spelling of
41542         -fdevirtualize-at-ltrans.
41543         ([-fdevirtualize]): Fix markup.
41544         ([-fdevirtualize-speculatively]): Fix typo.
41545         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
41546         implementor-speaky.
41547         * common.opt (fdevirtualize-at-ltrans): Likewise.
41548         * ipa-devirt.c: Fix typos in comments throughout the file.
41549         (ipa_devirt): Fix typos in format strings for dump output.
41550
41551 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41552
41553         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
41554         discussion of defaults, light copy-editing.
41555
41556 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41557
41558         * tsan.c (instrument_expr): corrected previous checkin.
41559
41560 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41561
41562         Instrument bit field and unaligned accesses for TSAN.
41563         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
41564         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
41565         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
41566         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
41567         unaligned memory regions.
41568
41569 2015-01-01  Anthony Green  <green@moxielogic.com>
41570
41571         * config/moxie/predicates.md (moxie_general_movsrc_operand):
41572         Restrict move source register offsets to 16 bits.
41573 \f
41574 Copyright (C) 2015 Free Software Foundation, Inc.
41575
41576 Copying and distribution of this file, with or without modification,
41577 are permitted in any medium without royalty provided the copyright
41578 notice and this notice are preserved.