[PATCH] Fix PR68029
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-11-27  Jiri Engelthaler  <engycz@gmail.com>
2
3         PR driver/68029
4         * opts-common.c (prune_options): Don't ignore -fdiagnostics-color 
5         if it is the first parameter.
6
7 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
8
9         PR tree-optimization/68577
10         * tree-vect-stmts.c (simple_integer_narrowing): New function.
11         (vectorizable_call): Restrict internal function handling
12         to NONE and NARROW cases, using simple_integer_narrowing
13         to test for the latter.  Add cost of narrowing operation
14         and insert it where necessary.
15
16 2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
17
18         * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
19         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
20         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
21
22 2015-12-01  Nathan Sidwell  <nathan@acm.org>
23
24         * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
25         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
26         ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
27         * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
28         (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
29         (init_output_initializer): Call write_var_marker.
30         (nvptx_output_aligned_decl): New.
31         (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
32
33 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
34
35         * c-common.c (parse_optimize_options): Do not silently ignore
36         -fstrict-aliasing changes.
37
38 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
39
40         * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
41         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
42         stream TYPE_ALIAS_SET.
43         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
44         stream TYPE_ALIAS_SET.
45
46 2015-12-01  Nathan Sidwell  <nathan@acm.org>
47
48         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
49         consider mode.
50
51 2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
52
53         * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
54         indirection for large and small code models.
55         (adjust_vperm): Likewise.
56
57 2015-12-01  Julian Brown  <julian@codesourcery.com>
58             Cesar Philippidis  <cesar@codesourcery.com>
59             James Norris  <James_Norris@mentor.com>
60
61         * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
62         support.
63         * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
64         (is_gimple_omp_oacc): Add support for above.
65         * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
66         (omp_notice_variable): Diagnose undefined implicit uses of
67         use_device variables in offloaded regions.
68         (gimplify_scan_omp_clauses): Add host_data, use_device
69         support. Diagnose undefined mapping of use_device variables in
70         OpenACC clauses.
71         (gimplify_omp_workshare): Add host_data support.
72         (gimplify_expr): Likewise.
73         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
74         * omp-low.c (lookup_decl_in_outer_ctx)
75         (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
76         host_data regions.
77         (scan_sharing_clauses): Support use_device.
78         (check_omp_nesting_restrictions): Support host_data.
79         (expand_omp_target): Support host_data.
80         (lower_omp_target): Skip over outer host_data regions when looking
81         up decls. Support use_device.
82         (make_gimple_omp_edges): Support host_data.
83         * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
84         clause.
85
86 2015-12-01  Marek Polacek  <polacek@redhat.com>
87
88         PR middle-end/68582
89         * cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
90         for VAR_DECLs.
91
92 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
93
94         PR tree-optimization/68474
95         * tree-call-cdce.c (use_internal_fn): Protect call to
96         gen_shrink_wrap_conditions.
97
98 2015-12-01  Christian Bruel  <christian.bruel@st.com>
99
100         PR target/68617
101         * config/arm/arm.opt (unaligned_access): Save.
102         * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
103         * config/arm/arm.c (arm_option_override): Move unaligned_access setting
104         (arm_option_override_internal): ... here.
105         * config/arm/arm.h (TARGET_32BIT_P): New macro.
106
107 2015-12-01  Richard Biener  <rguenther@suse.de>
108
109         PR tree-optimization/68379
110         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
111         always base loads on the first used DR of a group.
112         * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
113         Compute alignment of the first scalar element unconditionally.
114
115 2015-12-01  Richard Biener  <rguenther@suse.de>
116
117         PR middle-end/68590
118         * genmatch.c (struct capture_info): Add match_use_count.
119         (capture_info::walk_match): Increment match_use_count.
120         (dt_simplify::gen_1): For GENERIC, only wrap multi-use
121         replacements in a save_expr if they occur more often than
122         in the original expression.
123
124 2015-12-01  Richard Biener  <rguenther@suse.de>
125
126         PR ipa/68470
127         * ipa-split.c (split_function): Handle main part not returning.
128
129 2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
130
131         PR middle-end/68595
132         * tree-vect-stmts.c (vect_init_vector): Cast boolean
133         scalars to a proper value before building a vector.
134
135 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
136
137         * genattrtab.c (check_attr_test): Take an attr_desc instead of
138         an is_const flag.  Put the file_location argument first.
139         Update recursive calls.  Improve error messages.
140         (check_attr_value): Take a file location and use it instead
141         of attr->loc.  Improve error messages.  Update calls to
142         check_attr_test.
143         (check_defs): Update call to check_attr_value.
144         (make_canonical): Likewise.
145         (gen_attr): Likewise.
146         (main): Likewise.
147         (gen_insn_reserv): Update call to check_attr_test.
148
149 2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
150
151         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
152
153 2015-12-01  Richard Biener  <rguenther@suse.de>
154
155         PR middle-end/68590
156         * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
157
158 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
159
160         * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
161         odr_type_p): Move to ...
162         * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
163         odr_type_p): here; miscro-optimize.
164
165 2015-12-01  Bin Cheng  <bin.cheng@arm.com>
166
167         PR tree-optimization/68529
168         * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
169         Compute no-overflow information for control iv.
170         (number_of_iterations_lt, number_of_iterations_le): Add new param.
171         (number_of_iterations_cond): Pass new argument to above functions.
172
173 2015-11-30  Jan Hubicka  <hubicka@ucw.cz>
174
175         * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
176         inlining -fno-strict-aliasing into -fstrict-aliasing body.
177
178 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
179             Sebastian Pop  <s.pop@samsung.com>
180
181         PR tree-optimization/68565
182         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
183         codegen_error.  Fail when rhs of division operations is integer_zerop.
184         (ternary_op_to_tree): Early return on codegen_error.
185         (unary_op_to_tree): Same.
186         (nary_op_to_tree): Same.
187         (gcc_expression_from_isl_expr_op): Same.
188         (gcc_expression_from_isl_expression): Same.
189         (graphite_create_new_loop): On codegen_error continue generating
190         wrong code.
191         (graphite_create_new_loop_guard): Same.
192         (build_iv_mapping): Same.
193         (graphite_create_new_guard): Same.
194
195 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
196             Sebastian Pop  <s.pop@samsung.com>
197
198         * graphite-isl-ast-to-gimple.c: Fix dump messages.
199         * graphite-scop-detection.c: Same.
200         * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
201
202 2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
203
204         * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
205         OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
206         (convert_local_omp_clauses): Likewise.
207
208 2015-11-30  Tom de Vries  <tom@codesourcery.com>
209
210         PR tree-optimization/46032
211         * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
212         factored out of ...
213         (find_func_aliases_for_call): ... here.
214         (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
215         BUILT_IN_GOMP_PARALLEL.
216         (ipa_pta_execute): Same.  Handle node->parallelized_function as a local
217         function.
218
219 2015-11-30  Jakub Jelinek  <jakub@redhat.com>
220
221         PR tree-optimization/68501
222         * target.def (builtin_reciprocal): Replace the 3 arguments with
223         a gcall * one, adjust description.
224         * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
225         with a gcall * one.
226         * targhooks.c (default_builtin_reciprocal): Likewise.
227         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
228         targetm.builtin_reciprocal even on internal functions, adjust
229         the arguments and allow replacing an internal function with normal
230         built-in.
231         * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
232         with a gcall * one.  Handle internal fns too.
233         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
234         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
235         * doc/tm.texi (builtin_reciprocal): Document.
236
237 2015-11-30  Richard Biener  <rguenther@suse.de>
238
239         PR tree-optimization/68592
240         * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
241         on the pattern def sequence.
242
243 2015-11-30  Nathan Sidwell  <nathan@acm.org>
244
245         * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
246         (write_one_arg): Reorder parms, add 'sep' param.
247         (nvptx_write_function_decl): Rename to ...
248         (write_fn_proto): ... here.  Do name replacement. Emit linaer
249         comment marker. Deal with both decls and defns. Simplify argument
250         formatting.
251         (write_function_decl_and_comment): Delete.
252         (write_func_decl_from_insn): Rename to ...
253         (write_fn_proto_from_insn): ... here.  Don't do name replacement.
254         (nvptx_record_fndecl): Call write_fn_proto.
255         (nvptx_record_libfunc): Call write_fn_proto_from_insn.
256         (nvptx_declare_function_name): Adjust for write_fn_proto changes.
257         (nvotx_output_call_insn): Call write_fn_prot_from_insn.
258
259 2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>
260
261         * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
262         (define_insn "*k<logic><mode>"): Use new iterator.
263
264 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
265
266         PR target/28115
267         * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
268         (sparc_adjust_cost): Add missing space.
269
270 2015-11-30  Richard Biener  <rguenther@suse.de>
271
272         PR c/68162
273         * dwarf2out.c (gen_type_die_with_usage): Keep variant types
274         of arrays.
275
276 2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
277
278         * tree-if-conv.c (struct ifc_dr): Add new tree
279         base_predicate field.
280         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
281         base ref, DR pairs and store base_predicate for write type DRs.
282         (ifcvt_memrefs_wont_trap): Guard checks with
283         -ftree-loop-if-convert-stores flag.
284
285 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
286
287         * cgraph.c (cgraph_node::make_local): No name is unique during
288         incremental linking.
289         * cgraph.h (can_be_discarded_p): Update comment; also common and
290         WEAK in named sections can be discarded; when doing incremental
291         link do not rely on resolution being the final one.
292         * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
293         When symbol can be discarded, do not rely on resolution info.
294         * symtab.c (symtab_node::nonzero_address): Take into account that
295         symbol can be discarded.
296         * ipa-visibility.c (update_visibility_by_resolution_info): Handle
297         definition correctly.
298         (function_and_variable_visibility): Do not set unique_name when
299         incrementally linking.
300
301 2015-11-29  Nathan Sidwell  <nathan@acm.org>
302
303         * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
304         const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
305         (ctrap<mode>): Use const0_operand.
306
307 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
308
309         * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
310         dump
311
312 2015-11-29  David Edelsohn  <dje.gcc@gmail.com>
313
314         PR target/28115
315         * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
316         recog_memoized test for insn and check recog_memoized for dep_insn.
317
318 2015-11-28  Nathan Sidwell  <nathan@acm.org>
319
320         * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
321         (FRAME_POINTER_CFA_OFFSET): Define.
322         (struct nvptx_args): Use 'tree' type.
323         (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
324
325 2015-11-28  Tom de Vries  <tom@codesourcery.com>
326
327         * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
328
329 2015-11-27  Jonathan Wakely  <jwakely@redhat.com>
330
331         * doc/invoke.texi (Option Summary): Use negative form of
332         -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
333         sort alphabetically and re-justify.
334
335 2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>
336
337         PR rtl-optimization/68536
338         * lra.c (lra_emit_add): Add code for null base.
339         * lra-constraints.c (curr_insn_transform): Skip operators for
340         subreg reloads.
341
342 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
343
344         Revert
345         2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
346
347         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
348         multiple_sets.
349         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
350         are not modified by the final modified insns in the basic blocks.
351
352 2015-11-27  Nathan Sidwell  <nathan@acm.org>
353
354         * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
355         Don't declare.
356         * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
357         (nvptx_maybe_convert_symbolic_operand): Simplify.
358         (nvptx_addr_space_from_address): Delete.
359         (nvptx_print_operand): Adjust 'A' case.
360
361 2015-11-27  Richard Biener  <rguenther@suse.de>
362
363         PR tree-optimization/68559
364         * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
365         peeling for gap checks ...
366         * tree-vect-stmts.c (vectorizable_load): ... here and relax
367         for SLP.
368         * tree-vect-loop.c (vect_analyze_loop_2): Re-set
369         LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
370
371 2015-11-27  Nathan Sidwell  <nathan@acm.org>
372
373         * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
374         declare.
375         * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
376         (nvptx_record_fndecl): Don't return value, remove force
377         argument. Require fndecl.
378         (nvptx_record_libfunc): New.
379         (nvptx_record_needed_decl): Deteermine how to record decl here.
380         (nvptx_maybe_record_fnsym): New.
381         (nvptx_expand_call): Don't record libfuncs here,
382         (nvptx_maybe_convert_symbolic_operand): Use
383         nvptx_maye_record_fnsym.
384         (nvptx_assemble_integer): Reimplement with single switch.
385         (nvptx_output_call_insn): Register libfuncs here.
386         (nvptx_file_end): Adjust  nvptx_record_fndecl call.
387         * config/nvptx/nvptx.md (expand_movdi): Don't call
388         nvptx_record_needed_decl.
389
390 2015-11-27  Richard Biener  <rguenther@suse.de>
391
392         PR tree-optimization/68553
393         * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
394         generation for 1:1 permutations.
395         (vect_transform_slp_perm_load): Detect 1:1 permutations.
396
397 2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>
398
399         * gimple.h (nonbarrier_call_p): Declare.
400         * gimple.c (nonbarrier_call_p): New function.
401         * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
402         Also increment call phase for ASMs with vdef and potential barrier
403         calls.
404
405 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
406
407         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
408         multiple_sets.
409         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
410         are not modified by the final modified insns in the basic blocks.
411
412 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
413
414         PR rtl-optimization/68506
415         * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
416         first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
417         blocks.
418
419 2015-11-27  Martin Liska  <mliska@suse.cz>
420
421         PR c++/68312
422         * vec.h (release_vec_vec): New function.
423
424 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
425
426         PR tree-optimization/68552
427         * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
428         (expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
429         or whether v0 == v1.
430
431 2015-11-27  Martin Liska  <mliska@suse.cz>
432
433         * tree-ssa-uninit.c: Fix whitespaces in the source file.
434         The change is just automatical.
435
436 2015-11-27  Martin Liska  <mliska@suse.cz>
437
438         * tree-chkp.c (chkp_make_static_bounds): Release buffer
439         used for string.
440
441 2015-11-27  Martin Liska  <mliska@suse.cz>
442
443         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
444         Do not release memory for comp_alias_ddrs.
445         * tree-vect-loop.c (destroy_loop_vec_info): Release
446         the memory for all loop_vec_info.
447
448 2015-11-27  Martin Liska  <mliska@suse.cz>
449
450         * ipa-devirt.c (ipa_devirt): Use auto_vec instead
451         of a local-scope vec.
452         (struct final_warning_record): Use auto_vec instead
453         of vec.
454
455 2015-11-27  Richard Biener  <rguenther@suse.de>
456
457         PR tree-optimization/68553
458         * tree-vect-slp.c (vect_get_mask_element): Remove.
459         (vect_transform_slp_perm_load): Implement in a simpler way.
460
461 2015-11-26  Alexandre Oliva <aoliva@redhat.com>
462
463         PR rtl-optimization/67753
464         PR rtl-optimization/64164
465         * function.c (assign_parm_setup_block): Right-shift
466         upward-padded big-endian args when bypassing the stack slot.
467
468 2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
469
470         * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
471         `-mcompact-branches='.
472         (MIPS Options): Likewise.
473
474 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
475
476         * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
477
478 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
479
480         * doc/install.texi (Prerequisites): Increase ISL requirement to
481         0.14 or 0.15.
482
483 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
484
485         * config/aarch64/arm_neon.h
486         (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
487         (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
488         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
489         (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
490         (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
491         (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
492         (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
493         (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
494         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
495         (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
496         (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
497         (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
498
499 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
500
501         * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
502         (vqrdmlahq_s16, vqrdmlahq_s32): New.
503         (vqrdmlsh_s16, vqrdmlsh_s32): New.
504         (vqrdmlshq_s16, vqrdmlshq_s32): New.
505
506 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
507
508         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
509         ARM_FEATURE_QRDMX.
510
511 2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
512
513         PR debug/53927
514         * tree-nested.c (finalize_nesting_tree_1): Append a field to
515         hold the frame base address.
516         * dwarf2out.c (gen_subprogram_die): Generate for
517         DW_AT_static_link a location description that computes the value
518         of this field.
519
520 2015-11-26  Tom de Vries  <tom@codesourcery.com>
521
522         revert:
523         2015-11-25  Tom de Vries  <tom@codesourcery.com>
524
525         * cfgloop.c (find_single_latch): New function, factored out of ...
526         (flow_loops_find): ... here.
527         (verify_loop_structure): Improve verification of loop->latch.
528         * cfgloop.h (find_single_latch): Declare.
529         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
530
531 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
532
533         * config/aarch64/aarch64-simd-builtins.def:
534         Add missing changes from r230962.
535
536 2015-11-26  Nathan Sidwell  <nathan@acm.org>
537
538         * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
539         arg with name.  Don't deal with split regs.  Tweak formatting.
540         (nvptx_expand_call): Adjust write_func_decl_from_insn call.
541         (nvptx_output_call_insn): Don't deal with split regs here.
542
543 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
544
545         * config/aarch64/aarch64-simd-builtins.def
546         (sqrdmlah, sqrdmlsh): New.
547         (sqrdmlah_lane, sqrdmlsh_lane): New.
548         (sqrdmlah_laneq, sqrdmlsh_laneq): New.
549
550 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
551
552         * config/aarch64/aarch64-simd.md
553         (aarch64_sqmovun<mode>): Fix some white-space.
554         (aarch64_<sur>qmovun<mode>): Likewise.
555         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
556         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
557         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
558         * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
559         (UNSPEC_SQRDMLSH): New.
560         (SQRDMLH_AS): New.
561         (rdma_as): New.
562
563 2015-11-26  Richard Biener  <rguenther@suse.de>
564
565         PR tree-optimization/66721
566         * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
567         iteration cost earlier.  Re-do analysis without SLP when
568         vectorization using SLP fails and without has a chance to succeed.
569
570 2015-11-26  Richard Biener  <rguenther@suse.de>
571
572         * genmatch.c (dt_simplify::gen_1): For generic wrap all
573         multi-result-use captures in a SAVE_EXPR.
574
575 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
576
577         * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
578         (TARGET_SIMD_RDMA): New.
579
580 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
581
582         * combine.c (subst): Do not return clobber of zero in widening mult
583         case.  Just return x unchanged if it is a no-op substitution.
584
585 2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
586
587         PR target/68416
588         * config/i386/i386.h (enum reg_class): Add
589         bounds registers to ALL_REGS.
590
591 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
592
593         PR tree-optimization/68128
594         * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
595         * gimplify.c: Include gimple-walk.h.
596         (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
597         (omp_notice_variable): Set flags to n->value if n already
598         exists in target region, but we need to jump to do_outer.
599         (omp_shared_to_firstprivate_optimizable_decl_p,
600         omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
601         functions.
602         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
603         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
604         not modified in the body.  Call omp_mark_stores for outer
605         contexts on OMP_CLAUSE_SHARED clauses if they could be written
606         in the body or on OMP_CLAUSE_LASTPRIVATE.
607         (gimplify_adjust_omp_clauses): Add body argument, call
608         omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
609         Set OMP_CLAUSE_SHARED_READONLY
610         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
611         not modified in the body.  Call omp_mark_stores for outer
612         contexts on OMP_CLAUSE_SHARED clauses if they could be written
613         in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
614         without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
615         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
616         gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
617         gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
618         * tree-nested.c (convert_nonlocal_omp_clauses,
619         convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
620         non-local vars or local vars referenced from nested routines.
621         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
622         attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
623         TREE_READONLY, don't call use_pointer_for_field with non-NULL
624         second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
625
626 2015-11-26  Paolo Bonzini <bonzini@gnu.org>
627
628         * doc/implement-c.texi (Integers Implementation): Make GCC's promises
629         about signed left shift stronger and clarify the cases when they're
630         broken.
631
632 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
633             Bernd Schmidt  <bschmidt@redhat.com>
634
635         PR rtl-optimization/67226
636         * calls.c (store_one_arg): Take into account
637         crtl->args.pretend_args_size when checking for overlap between
638         arg->value and argblock + arg->locate.offset during sibcall
639         optimization.
640
641 2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>
642
643         * config/aarch64/aarch64.md (cbranch<mode>4): Use
644         aarch64_fp_compare_operand.
645         (store_pairsf): Use aarch64_reg_or_fp_zero.
646         (store_pairdf): Likewise.
647         (cstore<mode>4): Use aarch64_fp_compare_operand.
648         (cmov<mode>6): Likewise.
649         * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
650
651 2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
652             Sebastian Pop  <s.pop@samsung.com>
653
654         PR tree-optimization/68453
655         * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
656         not redirect edges already pointing to their destination.
657         (translate_isl_ast_node_for): Split edges after loops to create
658         basic blocks for close phi nodes.  Save merge points at the end of
659         a loop guard.
660         (translate_isl_ast_node_if): Save merge points at the end of the
661         if region.
662         (add_close_phis_to_outer_loops): New.
663         (add_close_phis_to_merge_points): New.
664         (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
665         (copy_bb_and_scalar_dependences): Do not split basic blocks on
666         loop close phi locations.
667
668 2015-11-25  Jan Hubicka  <jh@suse.cz>
669
670         * ipa-visibility.c (cgraph_externally_visible_p,
671         varpool_node::externally_visible_p): When doing incremental linking,
672         hidden symbols may be still used later.
673         (update_visibility_by_resolution_info): Do not drop weak during
674         incremental link.
675         (function_and_variable_visibility): Fix formating.
676         * flag-types.h (lto_linker_output): Declare.
677         * common.opt 9flag_incremental_link): New flag.
678
679 2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
680
681         * config/rs6000/constraints.md (wb constraint): New constraint for
682         ISA 3.0 d-form scalar addressing.
683
684         * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
685         for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
686         Altivec registers.  Add wb constraint for Altivec registers with
687         D-form addressing.  If we have ISA 3.0 d-form support, undo
688         secondary reload support for using FPR registers if we want to do
689         D-form addressing.
690         (rs6000_debug_reg_global): Likewise.
691         (rs6000_setup_reg_addr_masks): Likewise.
692         (rs6000_init_hard_regno_mode_ok): Likewise.
693         (rs6000_secondary_reload): Likewise.
694         (rs6000_preferred_reload_class): Likewise.
695         (rs6000_secondary_reload_class): Likewise.
696
697         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
698         constraint.
699
700         * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
701         for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
702         (f32_lm2): Likewise.
703         (f32_li2): Likewise.
704         (f32_sr2): Likewise.
705         (f32_sm2): Likewise.
706         (f32_si2): Likewise.
707         (f64_p9): Likewise.
708         (extendsfdf2_fpr): Likewise.
709         (mov<mode>_hardfloat): Likewise.
710         (mov<mode>_hardfloat32): Likewise.
711         (mov<mode>_hardfloat64): Likewise.
712
713         * doc/md.texi (RS/6000 constraints): Document wb constraint.
714         Fixup we constraint documentation.
715
716 2015-11-25  Tom de Vries  <tom@codesourcery.com>
717
718         * omp-low.c (pass_expand_omp_ssa::clone): New function.
719         * passes.def: Add pass_oacc_kernels pass group.
720         * tree-ssa-loop-ch.c (pass_ch::clone): New function.
721
722 2015-11-25  Tom de Vries  <tom@codesourcery.com>
723
724         * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
725         Declare.
726         * tree-ssa-loop.c (gate_oacc_kernels): New static function.
727         (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
728         (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
729         (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
730
731 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
732
733         * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
734         TV_IPA_LTO_OUTPUT): New.
735         * lto-compress.c: Include timevar.h
736         (lto_end_compression, lto_end_uncompression): Add timers.
737         * langhooks.c: Include timevar.h
738         (lhd_append_data): Add timer.
739
740 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
741
742         * varasm.c (default_elf_asm_output_limited_string,
743         default_elf_asm_output_ascii): Replace fprintf by putc.
744
745 2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
746
747         PR rtl-optimization/67954
748         * lra-constraints.c (curr_insn_transform): Add check on scratch
749         pseudo when change class to NO_REGS.  Add an assert.
750
751 2015-11-25  Nathan Sidwell  <nathan@acm.org>
752
753         * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
754         constraint is 'n'.
755         * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
756         number.
757         (nvptx_write_function_decl): Number args from 0.
758         (nvptx_declare_function_name): Likewise.
759         (nvptx_function_incoming_arg): Likewise.
760         (nvptx_output_call_insn): Correct formatting.
761
762 2015-11-25  David Sherwood  <david.sherwood@arm.com>
763
764         * optabs.def: Add new optabs fmax_optab/fmin_optab.
765         * internal-fn.def: Add new fmax/fmin internal functions.
766         * doc/md.texi: Add fmin and fmax patterns.
767
768 2015-11-25  Jason Merrill  <jason@redhat.com>
769
770         PR c++/68385
771         * tree.c (integer_zerop, integer_onep, integer_each_onep)
772         (integer_all_onesp, integer_minus_onep, integer_pow2p)
773         (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
774         (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
775
776 2015-11-25  Richard Biener  <rguenther@suse.de>
777
778         PR middle-end/68528
779         * fold-const.c (fold_binary_loc): Do not call negate_expr_p
780         on stripped operands.
781
782 2015-11-25  Nathan Sidwell  <nathan@acm.org>
783
784         * config/nvptx/nvptx.c (walk_args_for_params): Delete.
785         (nvptx_declare_function_name): Move assignments next to register
786         declarations, and process params here.
787
788 2015-11-25  David Edelsohn  <dje.gcc@gmail.com>
789
790         * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
791         both the symbol and the "dot" symbol for function descriptors. Fix
792         inversion for rename of symbols with dollar sign.
793
794 2015-11-25  Tom de Vries  <tom@codesourcery.com>
795
796         * cfgloop.c (find_single_latch): New function, factored out of ...
797         (flow_loops_find): ... here.
798         (verify_loop_structure): Improve verification of loop->latch.
799         * cfgloop.h (find_single_latch): Declare.
800         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
801
802 2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
803
804         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
805         (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
806         (STARTFILE_SPEC): Use %(startfile_vtv).
807         (ENDFILE_SPEC): Use %(endfile_vtv).
808         (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
809         ENDFILE_VTV_SPEC.
810
811         * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
812
813 2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>
814
815         * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
816         noce_can_store_speculate): Delete.
817         (noce_process_if_block): Don't try to handle single MEM stores.
818         * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
819         * alias.c (memory_must_be_modified_in_insn_p): Delete.
820
821 2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
822
823         PR rtl-optimization/68435
824         * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
825         for conflicts between a, b and the set destinations.
826
827 2015-11-25  Richard Biener  <rguenther@suse.de>
828
829         PR tree-optimization/68517
830         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
831         Properly handle zero-sized types.
832
833 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
834
835         * ipa-inline-analysis.c: Include gimplify.h
836         (set_cond_stmt_execution_predicate,
837         set_switch_stmt_execution_predicate): Be sure to not leak locations
838         to function body.
839
840 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
841
842         PR target/67089
843         * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
844         match_uaddsub_overflow): New functions.
845         (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
846
847 2015-11-25  Richard Biener  <rguenther@suse.de>
848
849         PR tree-optimization/68492
850         * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
851         op from scalars after operand swapping.
852
853 2015-11-25  Richard Biener  <rguenther@suse.de>
854
855         PR tree-optimization/68502
856         * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
857         check that the step is a multiple of the type size.
858
859 2015-11-24  Michael Collison  <michael.collison@linaro.org>
860
861         * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
862         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
863         * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
864
865 2015-11-24  Steve Ellcey  <sellcey@imgtec.com>
866
867         * frame-header-opt.c (gate): Check for optimize > 0.
868         (has_inlined_assembly): New function.
869         (needs_frame_header_p): Remove is_leaf_function check,
870         add argument type check.
871         (callees_functions_use_frame_header): Add is_leaf_function
872         and has_inlined_assembly calls..
873         (set_callers_may_not_allocate_frame): New function.
874         (frame_header_opt): Add is_leaf_function call, add
875         set_callers_may_not_allocate_frame call.
876         * config/mips/mips.c (mips_compute_frame_info): Add check
877         to see if callee saved regs can be put in frame header.
878         (mips_expand_prologue): Add check to see if step1 is zero,
879         fix cfa restores when using frame header to store regs.
880         (mips_can_use_return_insn): Check to see if registers are
881         stored in frame header.
882         * config/mips/mips.h (machine_function): Add
883         callers_may_not_allocate_frame and
884         use_frame_header_for_callee_saved_regs fields.
885
886 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
887
888         PR rtl-optimization/68520
889         * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
890         its bit was already set in BB_WITH.
891
892 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
893
894         * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
895         double check that type is main variant.
896         * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
897         variant.
898         (verify_type_variant): Verify that variants have no
899         TYPE_ALIAS_SET_KNOWN_P set
900         * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
901         streaming so constant fields come first; stream TYPE_ALIAS_SET==0
902         only for main variants; stream TYPE_ALIAS_SET as a bit.
903         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
904         accordingly.
905
906 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
907
908         * tree.c (make_vector_type): Properly compute canonical type of the
909         main variant.
910         (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
911         a main variant.
912
913 2015-11-24  Nathan Sidwell  <nathan@acm.org>
914
915         * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
916         VOIDmode, don't alter incoming mode.
917         (nvptx_split_reg_p): Delete.
918         (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
919         write_func_decl_from_insn, nvptx_output_call_insn): Adjust
920         maybe_split_mode calls.
921         (nvptx_print_operand): Use maybe_split_mode.
922
923 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
924
925         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
926         only for types where LTO sets them.
927         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
928         (make_vector_type): Likewise.
929         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
930         * tree.h (canonical_type_used_p): New inline.
931         * alias.c (get_alias_set): Handle structural equality for all
932         types that pass canonical_type_used_p.
933         (record_component_aliases): Look through all types with
934         record_component_aliases for possible pointers; sanity check that
935         the alias sets match.
936
937 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
938
939         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
940
941 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
942
943         * tree.c (free_node): New function.
944         (type_hash_canon): Use it.
945         * tree.h (free_node): Declare.
946
947 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
948             Michael Meissner  <meissner@linux.vnet.ibm.com>
949
950         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
951         (Fv2): New mode attribute to be used when ISA 2.07 instructions
952         are used on SF values, and ISA 2.06 instructions on DF values.
953         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
954         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
955         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
956         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
957         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
958         (fre<Fs>): Use <Fv2> instead of <Fv>.
959         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
960         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
961         (xsrdpi<mode>): Add support for the lround function.
962         (lround<mode>di2): Likewise.
963         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
964         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
965         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
966         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
967
968 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
969             Sebastian Pop  <s.pop@samsung.com>
970
971         PR tree-optimization/67984
972         * graphite-isl-ast-to-gimple.c (is_constant): New.
973         (get_rename): Call is_constant.
974         (get_new_name): Same.
975
976 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
977             Sebastian Pop  <s.pop@samsung.com>
978
979         * graphite-dependences.c: Only include graphite.h.
980         * graphite-isl-ast-to-gimple.c: Same.
981         * graphite-optimize-isl.c: Same.
982         * graphite-poly.c: Same.
983         * graphite-scop-detection.c: Same.
984         * graphite-sese-to-poly.c: Same.
985         * graphite.c: Same.
986         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
987         * graphite-poly.h: Same.
988         * graphite-scop-detection.h: Same.
989         * graphite.h: New.
990
991 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
992
993         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
994         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
995         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
996         function already takes care of checking what it can emit.
997
998 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
999
1000         * doc/invoke.texi (-fpic): Add the AArch64 limit.
1001         (-fPIC): Add AArch64.
1002
1003 2015-11-24  Tom de Vries  <tom@codesourcery.com>
1004
1005         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
1006         (pass_lim::execute): Allow to run outside pass_tree_loop.
1007
1008 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
1009
1010         * config/aarch64/aarch64.md (add<mode>3):
1011         Block early expansion into 2 add instructions.
1012         (add<mode>3_pluslong): New pattern to combine complex
1013         immediates into 2 additions.
1014
1015 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1016
1017         PR target/66217
1018         PR target/67677
1019         PR target/68332
1020         * config/rs6000/predicates.md (and_operand): Check that the operand
1021         is a const_int before calling rs6000_is_valid_and_mask.
1022
1023 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1024
1025         * config/aarch64/aarch64.md (*condjump): Rename to...
1026         (condjump): ... This.
1027         (*compare_condjump<mode>): New define_insn_and_split.
1028         (*compare_cstore<mode>_insn): Likewise.
1029         (*cstore<mode>_insn): Rename to...
1030         (cstore<mode>_insn): ... This.
1031         * config/aarch64/iterators.md (CMP): Handle ne code.
1032         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
1033
1034 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
1035
1036         PR target/68497
1037         * config/i386/i386.c (output_387_binary_op): Fix assertion for
1038         -fno-checking case.
1039
1040 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1041
1042         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
1043         (val_ssa_equiv_hash_traits::remove): Likewise.
1044         (pass_uncprop::execute): Adjust.
1045
1046 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1047
1048         * hash-map-traits.h (simple_hashmap_traits ::remove): call
1049         destructors on values that are being removed.
1050         * mem-stats.h (hash_map): Pass type of values to
1051         simple_hashmap_traits.
1052         * tree-sra.c (sra_deinitialize): Remove work around for hash
1053         maps not destructing values.
1054         * genmatch.c (sinfo_hashmap_traits): Adjust.
1055         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
1056
1057 2015-11-24  Richard Biener  <rguenther@suse.de>
1058             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1059
1060         PR middle-end/68375
1061         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
1062         bogus assertion.
1063
1064 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
1065
1066         PR target/68483
1067         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
1068         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
1069         returns false.
1070         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
1071         whenever first is nelt or above.  Don't mask expected with
1072         2 * nelt - 1.
1073
1074 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
1075
1076         PR c/68337
1077         * gimple-fold.c: Include ipa-chkp.h.
1078         (gimple_fold_builtin_memory_op): Don't fold call if we
1079         are going to instrument it and it may copy pointers.
1080
1081 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
1082             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1083
1084         PR rtl-optimization/68194
1085         PR rtl-optimization/68328
1086         PR rtl-optimization/68185
1087         * ree.c (combine_reaching_defs): Reject copy_needed case if
1088         copies_list is not empty.
1089
1090 2015-11-24  Richard Biener  <rguenther@suse.de>
1091
1092         PR middle-end/68221
1093         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1094         use mem_ref_offset.
1095
1096 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1097
1098         PR rtl-optimization/68381
1099         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
1100         is poisoned.
1101
1102 2015-11-23  Nick Clifton  <nickc@redhat.com>
1103             Jeff Law  <law@redhat.com>
1104
1105         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
1106         the source/dest of the target extension require a different number of
1107         hard registers.
1108         (combine_set_extension): Remove #if 0 code.
1109
1110 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1111             Sebastian Pop  <s.pop@samsung.com>
1112
1113         PR tree-optimization/68314
1114         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
1115         * graphite-poly.c (new_scop): Remove original_schedule.
1116         (free_scop): Same.
1117         * graphite-poly.h (struct scop): Same.
1118         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
1119         (build_pbb_scattering_polyhedrons): Add back.
1120         (build_scop_minimal_scattering): Remove.
1121         (build_scop_scattering): Add back.
1122         (build_scop_original_schedule): Remove.
1123         (build_poly_scop): Revert to only call build_scop_scattering.
1124
1125 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1126             Sebastian Pop  <s.pop@samsung.com>
1127
1128         PR tree-optimization/68493
1129         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
1130         missing early return when codegen_error is set.
1131
1132 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1133             Sebastian Pop  <s.pop@samsung.com>
1134
1135         PR tree-optimization/68279
1136         * graphite-poly.c (new_scop): Remove poly_scop_p.
1137         * graphite-poly.h (struct scop): Same.
1138         (build_poly_scop): Declare.
1139         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
1140         (cleanup_loop_iter_dom): New.
1141         (build_loop_iteration_domains): Early return when scev analysis fails.
1142         (create_pw_aff_from_tree): Same.
1143         (add_condition_to_pbb): Same.
1144         (add_conditions_to_domain): Same.
1145         (add_conditions_to_constraints): Same.
1146         (build_scop_iteration_domain): Same.
1147         (build_poly_scop): Same.  Do not initialize poly_scop_p.
1148         * graphite-sese-to-poly.h: Remove.
1149         * graphite.c: Do not include graphite-sese-to-poly.h.
1150         (graphite_transform_loops): Stop before code generation when
1151         build_poly_scop fails.
1152         * sese.c (scalar_evolution_in_region): Add fixme note about scev
1153         analysis.
1154
1155 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1156             Sebastian Pop  <s.pop@samsung.com>
1157
1158         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
1159         Remove call to update_ssa.
1160         * sese.c (sese_insert_phis_for_liveouts): Same.
1161
1162 2015-11-23  Marek Polacek  <polacek@redhat.com>
1163
1164         PR tree-optimization/68455
1165         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
1166         extract_range_from_multiplicative_op_1 on symbolic ranges.
1167
1168 2015-11-23  Richard Henderson  <rth@redhat.com>
1169
1170         * optabs.def (uaddv4_optab, usubv4_optab): New.
1171         * internal-fn.c (expand_addsub_overflow): Use them.
1172         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
1173
1174         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
1175         to reversed operands.
1176         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
1177         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
1178         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
1179         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
1180         (*add<SWI>3_cconly_overflow_2): New.
1181         (*add<SWI>3_cc_overflow_2): New.
1182         (*addsi3_zext_cc_overflow_2): New.
1183
1184 2015-11-23  Richard Biener  <rguenther@suse.de>
1185
1186         PR tree-optimization/68465
1187         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
1188         Also record equalities from multiple predecessor blocks if
1189         only one non-backedge exists.
1190
1191 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1192
1193         PR target/68363
1194         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
1195         that are not INSN_P.
1196
1197 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
1198
1199         * config/aarch64/aarch64-builtins.c
1200         (aarch64_gimple_fold_builtin): Fold FMULX.
1201
1202 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
1203
1204         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
1205         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
1206         after GCC header files and before graphite header files.
1207         * graphite-dependences.c: Same.
1208         * graphite-isl-ast-to-gimple.c: Same.
1209         * graphite-optimize-isl.c: Same.
1210         * graphite-poly.c: Same.
1211         * graphite-scop-detection.c: Same.
1212         * graphite-sese-to-poly.c: Same.
1213         * graphite.c: Same.
1214
1215 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
1216             Jiong Wang  <jiong.wang@arm.com>
1217
1218         PR tree-optimization/68317
1219         PR tree-optimization/68326
1220         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
1221         final min and max are not infinity.
1222
1223 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
1224             Richard Biener  <rguenther@suse.de>
1225
1226         PR tree-optimization/68327
1227         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1228         compute vectype for non-relevant mask producers.
1229         * tree-vect-stmts.c (vectorizable_comparison): Check stmt
1230         relevance earlier.
1231
1232 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1233
1234         PR tree-optimization/68460
1235         * tree-parloops.c (gather_scalar_reductions): Also call
1236         free_stmt_vec_info_vec if simple_loop_info == NULL.
1237
1238 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
1239
1240         * opts.c (finish_options): Allow -fsanitize-recover=address for
1241         userspace sanitization.
1242         * asan.c (asan_expand_check_ifn): Redefine recover_p.
1243         * doc/invoke.texi (fsanitize-recover): Update documentation.
1244
1245 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1246
1247         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
1248
1249 2015-11-23  Richard Biener  <rguenther@suse.de>
1250
1251         PR tree-optimization/68445
1252         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
1253         two different strides.
1254
1255 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1256
1257         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
1258         * config/s390/s390.c (s390_check_symref_alignment): Use new
1259         symref flags, early abort on wrong alignment
1260         (s390_secondary_reload): Use new symref flags.
1261         (s390_encode_section_info): Likewise.
1262         * config/s390/predicates.md: Likewise.
1263
1264 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1265
1266         PR target/68390
1267         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
1268         for indirect function call.
1269
1270 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
1271
1272         * config/aarch64/aarch64-simd.md
1273         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
1274         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
1275         (*aarch64_mulx_elt_to_64v2df): Likewise.
1276         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
1277         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
1278         (vmulx_lane_f64): Likewise.
1279         (vmulxq_lane_f32): Refactored & moved.
1280         (vmulxq_lane_f64): Likewise.
1281         (vmulx_laneq_f32): New.
1282         (vmulx_laneq_f64): Likewise.
1283         (vmulxq_laneq_f32): Likewise.
1284         (vmulxq_laneq_f64): Likewise.
1285         (vmulxs_lane_f32): Likewise.
1286         (vmulxs_laneq_f32): Likewise.
1287         (vmulxd_lane_f64): Likewise.
1288         (vmulxd_laneq_f64): Likewise.
1289
1290 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
1291
1292         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
1293         In LTO we do not compute TYPE_CANONICAL of pointers.
1294         (gimple_canonical_types_compatible_p): Improve coments; sanity check
1295         that pointers do not have canonical type that would make us believe
1296         they are different.
1297         * alias.c (get_alias_set): Do structural type equality on pointers;
1298         enable pointer path for LTO; also glob pointer to vector with pointer
1299         to vector element; glob pointers and references for LTO; do more strict
1300         sanity checking about build_pointer_type returning the canonical type
1301         which is also the main variant.
1302         (record_component_aliases): When component type is pointer and we
1303         do LTO; record void_type_node alias set.
1304
1305 2015-11-21  Nathan Sidwell  <nathan@acm.org>
1306
1307         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
1308
1309         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
1310         leading blank line.
1311         (write_func_decl_from_insn): Likewise.
1312         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
1313         (nvptx_file_end): Likewise.
1314         (nvptx_function_end): Undent output.
1315         (nvptx_expand_call): Fix formatting.
1316         (nvptx_output_call_insn): Indent output.
1317         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
1318         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
1319
1320 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
1321
1322         PR debug/66432
1323         * tree-inline.c (copy_debug_stmt): If
1324         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
1325         in decl_debug_args, don't call remap_gimple_op_r on it.
1326
1327 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
1328
1329         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
1330         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
1331         Check that all record types are complete.
1332         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
1333         compare alias sets for types w/o alias sets.
1334
1335 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1336
1337         * config/sparc/sparc.md (umulxhi_vis): Move around.
1338         (*umulxhi_sp64): Likewise.
1339         (umulxhi_v8plus): Likewise.
1340         (xmulx_vis): Likewise.
1341         (*xmulx_sp64): Likewise.
1342         (xmulx_v8plus): Likewise.
1343         (xmulxhi_vis): Likewise.
1344         (*xmulxhi_sp64): Likewise.
1345         (xmulxhi_v8plus): Likewise.
1346
1347 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1348
1349         PR 62314
1350         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
1351         (class layout): Update comment
1352         (layout::print_any_fixits): New method.
1353         (layout::move_to_column): New method.
1354         (diagnostic_show_locus): Add call to layout.print_any_fixits.
1355
1356 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
1357
1358         PR middle-end/68221
1359         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
1360         has non-zero bias, subtract it in integer type instead of
1361         pointer plus of negated bias.
1362
1363         PR middle-end/68339
1364         * omp-low.c (expand_simd_clones): Call node->get_body () before
1365         allocating stuff in GC.
1366
1367 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
1368
1369         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
1370
1371 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
1372
1373         * config/aarch64/aarch64.md (predicated): Copy attribute from
1374         "arm.md".
1375         * config/arm/arm.md (predicated): Added description.
1376
1377 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1378
1379         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
1380         for unaligned_access.
1381         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
1382         from matching condition.
1383         (unaligned_loadhis): Likewise.
1384         (unaligned_loadhiu): Likewise.
1385         (unaligned_storesi): Likewise.
1386         (unaligned_storehi): Likewise.
1387
1388 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1389
1390         PR target/68149
1391         * config/arm/arm.md (unaligned_loaddi): Delete.
1392         (unaligned_storedi): Likewise.
1393         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
1394         unaligned DImode memory ops.  Instead perform two back-to-back
1395         unaligned SImode ops.
1396
1397 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
1398             James Norris  <jnorris@codesourcery.com>
1399
1400         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
1401         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
1402
1403 2015-11-20  Alan Hayward <alan.hayward@arm.com>
1404
1405         PR tree-optimization/68413
1406         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
1407         evolution base
1408         (vectorizable_reduction): Use cached base
1409
1410 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1411
1412         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
1413         dump-file string.
1414         (try_create_reduction_list): Same.  Fix typo in dump-file string.
1415
1416 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1417
1418         * doc/md.texi (Standard Names): Move entry for addptr3 around,
1419         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
1420         glitch in entries for cbranch4 and jump.
1421
1422 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1423
1424         PR tree-optimization/68373
1425         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
1426         of ...
1427         (scev_const_prop): ... here.
1428         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
1429         * tree-parloops.c (try_create_reduction_list): Call
1430         final_value_replacement_loop.
1431
1432 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
1433
1434         PR tree-optimization/52272
1435         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
1436         (struct iv_common_cand_hasher): New struct.
1437         (iv_common_cand_hasher::hash): New function.
1438         (iv_common_cand_hasher::equal): New function.
1439         (struct ivopts_data): New fields, iv_common_cand_tab and
1440         iv_common_cands.
1441         (tree_ssa_iv_optimize_init): Initialize above fields.
1442         (record_common_cand, common_cand_cmp): New functions.
1443         (add_iv_candidate_derived_from_uses): New function.
1444         (add_iv_candidate_for_use): Record iv_common_cands derived from
1445         iv use in hash table, instead of adding candidates directly.
1446         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
1447         (record_important_candidates): Add important candidates to iv uses'
1448         related_cands.  Always keep related_cands for future use.
1449         (try_add_cand_for): Use iv uses' related_cands.
1450         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
1451         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
1452
1453 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1454
1455         * config/s390/s390.md ("bswaphi2"): New pattern.
1456
1457 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1458
1459         * config/s390/s390.md (GPR1_REGNUM): New constant.
1460         ("*trunc<BFP:mode><DFP_ALL:mode>2")
1461         ("*trunc<DFP_ALL:mode><BFP:mode>2")
1462         ("trunc<BFP:mode><DFP_ALL:mode>2")
1463         ("trunc<DFP_ALL:mode><BFP:mode>2")
1464         ("*extend<BFP:mode><DFP_ALL:mode>2")
1465         ("*extend<DFP_ALL:mode><BFP:mode>2")
1466         ("extend<BFP:mode><DFP_ALL:mode>2")
1467         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
1468
1469 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1470             Sebastian Pop  <s.pop@samsung.com>
1471
1472         PR tree-optimization/68428
1473         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
1474         over basic blocks outside the scop.
1475
1476 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1477             Sebastian Pop  <s.pop@samsung.com>
1478
1479         PR tree-optimization/68341
1480         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
1481         gcc_unreachable and safely fail codegen.
1482         (copy_loop_close_phi_args): Do not insert merge phis in a basic
1483         block with loop phi nodes.
1484         (edge_for_new_close_phis): New.
1485         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
1486
1487 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1488
1489         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
1490         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
1491         (nvptx_declare_objec_name): Likewise.
1492
1493 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1494
1495         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
1496         (get_false_edge_from_guard_bb): Move...
1497         * sese.c (get_false_edge_from_guard_bb)
1498         (get_true_edge_from_guard_bb): ... here.
1499
1500 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
1501
1502         Revert
1503         2015-11-18  Alan Modra  <amodra@gmail.com>
1504
1505         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1506         type-limits warning.
1507
1508
1509 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1510
1511         * tree.h (desired_pro_or_demotion_p): New function.
1512         * tree-vrp.c (simplify_cond_using_ranges): Call it.
1513
1514 2015-11-19  Michael Matz  <matz@suse.de>
1515
1516         * fwprop.c (update_uses): Use flag_checking instead of
1517         gcc_checking_assert.
1518
1519 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1520
1521         * doc/gty.texi (Support for inheritance): Fix missing
1522         parentheses in example.
1523
1524 2015-11-19  Marek Polacek  <polacek@redhat.com>
1525
1526         PR tree-optimization/68431
1527         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
1528
1529 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1530
1531         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
1532         atomic_exchange<mode>): Input values can be immediates.
1533
1534 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1535
1536         PR lto/61313
1537         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
1538         by the user.
1539         * configure: Regenerate.
1540
1541 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1542
1543         PR target/68408
1544         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
1545         (DTORS_SECTION_ASM_OP): Likewise.
1546
1547 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1548
1549         PR rtl-optimization/68376
1550         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
1551         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
1552
1553 2015-11-19  Richard Biener  <rguenther@suse.de>
1554
1555         PR middle-end/68117
1556         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
1557         redirect_edge_var_map_destroy.
1558
1559 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1560
1561         PR target/67770
1562         * config/i386/i386.md (simple_return): Disable if
1563         ix86_static_chain_on_stack is true.
1564
1565 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
1566
1567         PR bootstrap/68393
1568         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
1569         destinations.
1570
1571 2015-11-18  Jeff Law  <law@redhat.com>
1572
1573         PR tree-optimization/68198
1574         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
1575         between threading a multi-way branch and a thread path that contains
1576         a multi-way branch.  Disallow the case where a path contains a
1577         multi-way branch and does not thread a multi-way branch.
1578         (thread_through_all_blocks): Update comment.
1579
1580 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
1581
1582         PR c/65083
1583         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
1584         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
1585         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
1586         functions before defining as macros.
1587
1588 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1589
1590         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
1591         (nvptx_record_offload_symbol): Remove code compensating for lack
1592         of default dimension handling.
1593         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
1594
1595 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1596
1597         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
1598         type to bool for early exit.
1599         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
1600         in case of error.
1601         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
1602         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
1603         predecessor dominates the other.
1604         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
1605         element is not found it returns -1.
1606         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
1607         out early when codegen fails.
1608         (graphite_regenerate_ast_isl): Remove codegen region when pending
1609         phis could not be generated.
1610
1611 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1612
1613         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
1614         semicolon.
1615         (class translate_isl_ast_to_gimple): Indentation.
1616         (translate_pending_phi_nodes): Comment.
1617         (add_parameters_to_ivs_params): Moved from sese.c inside class
1618         translate_isl_ast_to_gimple.
1619         (get_max_schedule_dimensions): Same.
1620         (generate_isl_context): Same.
1621         (extend_schedule): Same.
1622         (generate_isl_schedule): Same.
1623         (set_options): Same.
1624         (scop_to_isl_ast): Same.
1625         (is_valid_rename): Same.
1626         (get_rename): Same.
1627         (get_rename_from_scev): Same.
1628         (get_def_bb_for_const): Same.
1629         (get_new_name): Same.
1630         (collect_all_ssa_names): Same.
1631         (copy_loop_phi_args): Same.
1632         (copy_loop_phi_nodes): Same.
1633         (copy_loop_close_phi_args): Same.
1634         (copy_loop_close_phi_nodes): Same.
1635         (copy_cond_phi_args): Same.
1636         (copy_cond_phi_nodes): Same.
1637         (graphite_copy_stmts_from_block): Same.
1638         (copy_bb_and_scalar_dependences): Same.
1639         (add_phi_arg_for_new_expr): Same.
1640         (rename_uses): Same.
1641         (set_rename): Same.
1642         (set_rename_for_each_def): Same.
1643         (gsi_insert_earliest): Same.
1644         (rename_all_uses): Same.
1645         (codegen_error_p): Same.
1646         (print_isl_ast_node): Same.
1647         (translate_isl_ast_for_loop): Call function codegen_error_p.
1648         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
1649         (translate_isl_ast_node_user): Make nb_loops const and release
1650         iv_map before exit.
1651         (get_true_edge_from_guard_bb): Move all free-functions early.
1652         (get_false_edge_from_guard_bb): Same.
1653         (bb_contains_loop_close_phi_nodes): Same.
1654         (bb_contains_loop_phi_nodes): Same.
1655         (is_loop_closed_ssa_use):  Same.
1656         (number_of_phi_nodes): Same.
1657         (phi_uses_name): Same.
1658         (later_of_the_two): Same.
1659         (substitute_ssa_name):
1660         (get_edges): Same.
1661         (get_loc): Same.
1662         (get_loop_init_value): Same.
1663         (find_init_value): Same.
1664         (find_init_value_close_phi): Same.
1665         (ast_build_before_for): Same.
1666         (graphite_regenerate_ast_isl): Formatting changes.
1667         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
1668         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
1669         (set_rename): Same.
1670         (gsi_insert_earliest): Same.
1671         (collect_all_ssa_names): Same.
1672         (rename_all_uses): Same.
1673         (rename_uses): Same.
1674         (get_def_bb_for_const): Same.
1675         (copy_loop_phi_nodes): Same.
1676         (copy_loop_close_phi_args): Same.
1677         (copy_loop_close_phi_nodes): Same.
1678         (copy_cond_phi_args): Same.
1679         (copy_cond_phi_nodes): Same.
1680         (set_rename_for_each_def): Same.
1681         (graphite_copy_stmts_from_block): Same.
1682         (copy_bb_and_scalar_dependences): Same.
1683         (if_region_set_false_region): Same.
1684         (scev_analyzable_p): Same.
1685         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
1686
1687 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
1688
1689         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
1690         commit from r125920 for FreeBSD.
1691
1692 2015-11-18  Jason Merrill  <jason@redhat.com>
1693
1694         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
1695         to be vecs of vecs.
1696         (add_finalizer): Split out from ggc_internal_alloc.
1697         (ggc_handle_finalizers): Run finalizers for the current depth.
1698         (init_ggc, ggc_pch_read): Reserve space for finalizers.
1699
1700 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
1701
1702         PR target/68410
1703         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
1704         from || expression.
1705
1706 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1707
1708         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
1709         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
1710         and atmega328pb.
1711         * doc/avr-mmcu.texi: Regenerate.
1712
1713 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1714
1715         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
1716         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
1717         (struct bb_sese): New struct.
1718         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
1719         (BB_GET_SESE, BB_SET_SESE): Define.
1720         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
1721         (nvptx_find_sese): New.
1722         (nvptx_neuter_pars): Find SESE regions when optimizing.
1723
1724 2015-11-18  Alan Modra  <amodra@gmail.com>
1725
1726         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1727         type-limits warning.
1728
1729 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
1730
1731         PR bootstrap/68406
1732         * hash-set.h (hash_set::traverse): Expand Key typedef.
1733
1734 2015-11-18  Martin Liska  <mliska@suse.cz>
1735
1736         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
1737         options struct.
1738
1739 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1740
1741         * config/nvptx/nvptx.c (global_lock_var): New.
1742         (nvptx_global_lock_addr): New.
1743         (nvptx_lockless_update): Recomment and adjust for clarity.
1744         (nvptx_lockfull_update): New.
1745         (nvptx_reduction_update): New.
1746         (nvptx_goacc_reduction_fini): Call it.
1747
1748 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
1749
1750         * regrename.h (struct du_head): Add target_data_1 and target_data_2
1751         fields.
1752         * regrename.c (create_new_chain): Clear entire struct after allocating.
1753
1754         * config/i386/i386.opt (mmitigate-rop): New option.
1755         * doc/invoke.texi (mmitigate-rop): Document.
1756         * config/i386/i386.c: Include "regrename.h".
1757         (ix86_rop_should_change_byte_p, reg_encoded_number,
1758         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
1759         static functions.
1760         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
1761         * config/i386/i386.md (attr "modrm_class"): New.
1762         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
1763         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
1764         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
1765
1766 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1767
1768         PR target/68405
1769         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
1770
1771 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
1772
1773         PR tree-optimization/68157
1774         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
1775         pow_stmt or mul_stmt from stmt's uid.
1776         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
1777
1778 2015-11-18  Martin Liska  <mliska@suse.cz>
1779
1780         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
1781
1782 2015-11-18  Martin Liska  <mliska@suse.cz>
1783
1784         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1785         Fix GNU coding style.
1786         (find_def_preds): Use auto_vec.
1787         (destroy_predicate_vecs): Change signature of the function.
1788         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
1789         new signature.
1790         (simplify_preds_4): Use destroy_predicate_vecs instread of
1791         just releasing preds vector.
1792         (normalize_preds): Likewise.
1793         (is_use_properly_guarded): Use new signature of
1794         destroy_predicate_vecs.
1795         (find_uninit_use): Likewise.
1796
1797 2015-11-18  Richard Biener  <rguenther@suse.de>
1798
1799         PR tree-optimization/67790
1800         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
1801         IL rewrite for MINUS_EXPR reductions, rename back to ...
1802         (vect_is_simple_reduction): ... this, removing the wrapper.
1803         (vect_force_simple_reduction): Adjust.
1804         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
1805         reductions and make use if reduc_index in all places.  For
1806         the final reduction of MINUS_EXPR use PLUS_EXPR.
1807
1808 2015-11-18  Alan Modra  <amodra@gmail.com>
1809
1810         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
1811         to ld.
1812         * configure: Regenerate.
1813
1814 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1815
1816         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
1817
1818 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1819
1820         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
1821         uses of ssa_name with constant.
1822
1823 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1824
1825         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
1826         something changed.
1827
1828 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1829
1830         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
1831         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
1832         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
1833
1834 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
1835
1836         * regrename.c (regrename_find_superclass): New function, code moved
1837         from ...
1838         (rename_chains): ... here.  Call it.
1839         * regrename.h (regrename_find_superclass): Declare.
1840
1841         * regrename.c (record_out_operands): Terminate earlyclobbered
1842         operands here.
1843
1844         PR target/66785
1845         * regrename.c (record_operand_use): Keep track of failed operands
1846         and stop appending if we see any.
1847         * regrename.h (struct operand_rr_info): Add a failed field and shrink
1848         n_chains to short.
1849
1850 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1851
1852         PR 48568
1853         * doc/extend.texi (Common Function Attributes) [visibility]:
1854         Add cross-references to matching variable and type attributes.
1855         (Common Variable Attributes) [visibility]: Add missing entry.
1856
1857 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1858
1859         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
1860         entries that map directly to optabs.
1861
1862 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1863
1864         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
1865         entries that map directly to optabs.
1866
1867 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1868
1869         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
1870         * internal-fn.c (direct_internal_fn_array): Update accordingly.
1871         * tree-vectorizer.h (vectorizable_function): Delete.
1872         * tree-vect-stmts.c: Include internal-fn.h.
1873         (vectorizable_internal_function): New function.
1874         (vectorizable_function): Inline into...
1875         (vectorizable_call): ...here.  Explicitly reject calls that read
1876         from or write to memory.  Try using an internal function before
1877         falling back on the old vectorizable_function behavior.
1878
1879 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1880
1881         * target.def (builtin_vectorized_function): Take a combined_fn (in
1882         the form of an unsigned int) rather than a function decl.
1883         (builtin_md_vectorized_function): New.
1884         * targhooks.h (default_builtin_vectorized_function): Replace the
1885         fndecl argument with an unsigned int.
1886         (default_builtin_md_vectorized_function): Declare.
1887         * targhooks.c (default_builtin_vectorized_function): Replace the
1888         fndecl argument with an unsigned int.
1889         (default_builtin_md_vectorized_function): New function.
1890         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
1891         New hook.
1892         * doc/tm.texi: Regenerate.
1893         * tree-vect-stmts.c (vectorizable_function): Update call to
1894         builtin_vectorized_function, also passing internal functions.
1895         Call builtin_md_vectorized_function for target-specific builtins.
1896         * config/aarch64/aarch64-protos.h
1897         (aarch64_builtin_vectorized_function): Replace fndecl argument
1898         with an unsigned int.
1899         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
1900         (aarch64_builtin_vectorized_function): Update after above changes.
1901         Use CASE_CFN_*.
1902         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
1903         fndecl argument with an unsigned int.
1904         * config/arm/arm-builtins.c: Include case-cfn-macros.h
1905         (arm_builtin_vectorized_function): Update after above changes.
1906         Use CASE_CFN_*.
1907         * config/i386/i386.c: Include case-cfn-macros.h
1908         (ix86_veclib_handler): Take a combined_fn rather than a
1909         built_in_function.
1910         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
1911         mathfn_built_in rather than calling builtin_decl_implicit directly.
1912         (ix86_builtin_vectorized_function) Update after above changes.
1913         Use CASE_CFN_*.
1914         * config/rs6000/rs6000.c: Include case-cfn-macros.h
1915         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
1916         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
1917         than calling builtin_decl_implicit directly.
1918         (rs6000_builtin_vectorized_function): Update after above changes.
1919         Use CASE_CFN_*.  Move BUILT_IN_MD to...
1920         (rs6000_builtin_md_vectorized_function): ...this new function.
1921         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
1922
1923 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1924
1925         * tree-vect-patterns.c: Include internal-fn.h.
1926         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
1927
1928 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1929
1930         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
1931         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
1932
1933 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1934
1935         * builtins.c (expand_errno_check, expand_builtin_mathfn)
1936         (expand_builtin_mathfn_2): Delete.
1937         (expand_builtin): Remove handling of functions with
1938         internal function equivalents.
1939         * internal-fn.def (SET_EDOM): New internal function.
1940         * internal-fn.h (set_edom_supported_p): Declare.
1941         * internal-fn.c (expand_SET_EDOM): New function.
1942         (set_edom_supported_p): Likewise.
1943         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
1944         Rewrite comment at head of file.
1945         (is_call_dce_candidate): Rename to...
1946         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
1947         or gimple_call_builtin_p here.
1948         (edom_only_function): New function.
1949         (shrink_wrap_one_built_in_call_with_conds): New function, split out
1950         from...
1951         (shrink_wrap_one_built_in_call): ...here.
1952         (can_use_internal_fn, use_internal_fn): New functions.
1953         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
1954         for calls that have an lhs.
1955         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
1956         (pass_call_cdce::execute): Skip blocks that are optimized for size.
1957         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
1958         calls with an lhs.
1959         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
1960         at -O and above.
1961
1962 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1963
1964         * builtins.h (called_as_built_in): Declare.
1965         * builtins.c (called_as_built_in): Make external.
1966         * internal-fn.h (expand_internal_call): Define a variant that
1967         specifies the internal function explicitly.
1968         * internal-fn.c (expand_load_lanes_optab_fn)
1969         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
1970         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
1971         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
1972         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
1973         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
1974         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
1975         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
1976         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
1977         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
1978         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
1979         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
1980         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
1981         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
1982         argument.
1983         (internal_fn_expanders): Update prototype.
1984         (expand_internal_call): Define a variant that specifies the
1985         internal function explicitly. Use it to implement the previous
1986         interface.
1987         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
1988         functions as calls to internal functions.
1989
1990 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1991
1992         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
1993         (generated_files): Likewise.
1994         (s-cfn-operators, cfn-operators.pd): New rules.
1995         (s-match): Depend on cfn-operators.pd.
1996         * gencfn-macros.c: Expand comment to describe -o behavior.
1997         (print_define_operator_list): New function.
1998         (main): Accept -o.  Call print_define_operator_list.
1999         * genmatch.c (main): Add the current directory to the include path.
2000         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
2001         instead.
2002
2003 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2004
2005         * doc/match-and-simplify.texi: Document the "null" identifier.
2006         * genmatch.c (id_base::NULL_ID): New kind.
2007         (null_id): New variable.
2008         (get_operator): Add a parameter that says whether null identifiers
2009         are allowed.
2010         (contains_id): New function.
2011         (lower_for): Skip substitutions that would have a null_id in
2012         either the match or the result.
2013         (parser::parse_for): Allow the null identifier to be used.
2014         (parser::parse_operator_list): Likewise.
2015         (main): Initialize null_id.
2016
2017 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2018
2019         * match.pd: Use HYPOT and COS rather than hypot and cos.
2020         Use CASE_CFN_* macros.  Guard log/exp folds with
2021         SCALAR_FLOAT_TYPE_P.
2022         * genmatch.c (internal_fn): New enum.
2023         (fn_id::fn): Change to an unsigned int.
2024         (fn_id::fn_id): Accept internal_fn too.
2025         (add_builtin): Rename to...
2026         (add_function): ...this and turn into a template.
2027         (get_operator): Only try one variation if the original name fails.
2028         Only add _EXPR if the original name was all lower case.
2029         Try converting internal and built-in function names to their
2030         CFN equivalents.
2031         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
2032         (dt_simplify::gen_1): Likewise.
2033         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
2034         and get_call_combined_fn for generic.
2035         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
2036         (decision_tree::gen): Likewise.
2037         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
2038         Use add_function rather than add_builtin.  Register internal
2039         functions too.
2040         * generic-match-head.c: Include case-cfn-macros.h.
2041         * gimple-fold.c (replace_stmt_with_simplification): Use
2042         gimple_call_combined_fn to test whether we can keep an
2043         existing call.
2044         * gimple-match.h (code_helper): Replace built_in_function
2045         with combined_fn.
2046         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
2047         and case-fn-macros.h.
2048         (gimple_resimplify1): Use fold_const_call.
2049         (gimple_resimplify2, gimple_resimplify3): Likewise.
2050         (build_call_internal, build_call): New functions.
2051         (maybe_push_res_to_seq): Use them.
2052         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
2053         rather than a built-in function.
2054         * tree.h (build_call_expr_internal_loc): Declare.
2055         (maybe_build_call_expr_loc): Likewise.
2056         * tree.c (build_call_expr_internal_loc_array): New function.
2057         (maybe_build_call_expr_loc): Likewise.
2058
2059 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2060
2061         * builtins.h (mathfn_built_in): Add a variant that takes
2062         a combined_fn.
2063         * builtins.c: Include case-cfn-macros.h.
2064         (CASE_MATHFN): Use CASE_CFN_*.
2065         (CASE_MATHFN_REENT): Use CFN_ codes.
2066         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
2067         argument with a combined_fn.
2068         (mathfn_built_in): Add a variant that takes a combined_fn.
2069         (expand_builtin_int_roundingfn_2): Update callers accordingly.
2070         (fold_builtin_sincos, fold_builtin_classify): Likewise.
2071
2072 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2073
2074         * tree-vect-patterns.c: Include case-cfn-macros.h.
2075         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
2076
2077 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2078
2079         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
2080         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
2081         (pass_cse_sincos::execute): Likewise.
2082
2083 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2084
2085         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
2086         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
2087         (decrement_power, acceptable_pow_call): Likewise.
2088         (attempt_builtin_copysign): Likewise.
2089
2090 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2091
2092         * tree-vrp.c: Include case-cfn-macros.h.
2093         (extract_range_basic): Switch on combined_fn rather than handling
2094         built-in functions and internal functions separately.
2095
2096 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2097
2098         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
2099         than a built_in_function.
2100         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2101         a function decl.
2102         (integer_valued_real_call_p): Likewise.
2103         * fold-const.c: Include case-cfn-macros.h
2104         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
2105         (negate_expr_p): Update accordingly.
2106         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2107         a function decl.
2108         (integer_valued_real_call_p): Likewise.
2109         (tree_invalid_nonnegative_warnv_p): Update accordingly.
2110         (integer_valued_real_p): Likewise.
2111         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
2112         to tree_call_nonnegative_warnv_p.
2113         (gimple_call_integer_valued_real_p): Likewise
2114         integer_valued_real_call_p.
2115         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
2116         (backprop::process_builtin_call_use): Extend to combined_fn.
2117         (strip_sign_op_1): Likewise.
2118         (backprop::process_use): Don't check for built-in calls here.
2119         (backprop::execute): Likewise.
2120         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
2121
2122 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2123
2124         * fold-const-call.h (fold_const_call): Replace built_in_function
2125         arguments with combined_fn arguments.
2126         * fold-const-call.c: Include case-cfn-macros.h.
2127         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
2128         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
2129         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
2130         built_in_function arguments with combined_fn arguments.
2131         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
2132         (fold_builtin_3): Update calls to fold_const_call.
2133
2134 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2135
2136         * Makefile.in (HASH_TABLE_H): Add GGC_H.
2137         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
2138         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
2139         (build/gencfn-macros$(build_exeext): New rules.
2140         (genprogerr): Add cfn-macros.
2141         * hash-set.h (hash_set): Use the traits value_type as the key.
2142         * gencfn-macros.c: New file.
2143
2144 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2145
2146         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
2147         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
2148         * builtins.c (associated_internal_fn): Handle them.
2149
2150 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2151
2152         * builtins.h (associated_internal_fn): Declare.
2153         (replacement_internal_fn): Likewise.
2154         * builtins.c: Include internal-fn.h
2155         (associated_internal_fn, replacement_internal_fn): New functions.
2156         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
2157         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
2158         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
2159         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
2160         (LDEXP): New functions.
2161         * internal-fn.c: Include recog.h.
2162         (unary_direct, binary_direct): New macros.
2163         (expand_direct_optab_fn): New function.
2164         (expand_unary_optab_fn): New macro.
2165         (expand_binary_optab_fn): Likewise.
2166         (direct_unary_optab_supported_p): Likewise.
2167         (direct_binary_optab_supported_p): Likewise.
2168
2169 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2170
2171         * coretypes.h (tree_pair): New type.
2172         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
2173         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
2174         * internal-fn.h (direct_internal_fn_info): New structure.
2175         (direct_internal_fn_array): Declare.
2176         (direct_internal_fn_p, direct_internal_fn): New functions.
2177         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
2178         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
2179         (mask_store_direct, store_lanes_direct): New macros.
2180         (direct_internal_fn_array) New array.
2181         (get_multi_vector_move): Return the optab handler without asserting
2182         that it is available.
2183         (expand_LOAD_LANES): Rename to...
2184         (expand_load_lanes_optab_fn): ...this and add an optab argument.
2185         (expand_STORE_LANES): Rename to...
2186         (expand_store_lanes_optab_fn): ...this and add an optab argument.
2187         (expand_MASK_LOAD): Rename to...
2188         (expand_mask_load_optab_fn): ...this and add an optab argument.
2189         (expand_MASK_STORE): Rename to...
2190         (expand_mask_store_optab_fn): ...this and add an optab argument.
2191         (direct_internal_fn_types, direct_optab_supported_p)
2192         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
2193         (direct_internal_fn_supported_p): New functions.
2194         (direct_mask_load_optab_supported_p): New macro.
2195         (direct_load_lanes_optab_supported_p): Likewise.
2196         (direct_mask_store_optab_supported_p): Likewise.
2197         (direct_store_lanes_optab_supported_p): Likewise.
2198
2199 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2200
2201         * tree-core.h (internal_fn): Move immediately after the definition
2202         of built_in_function.
2203         (combined_fn): New enum.
2204         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
2205         (internal_fn_p, as_internal_fn): New functions.
2206         (get_call_combined_fn, combined_fn_name): Declare.
2207         * tree.c (get_call_combined_fn): New function.
2208         (combined_fn_name): Likewise.
2209         * gimple.h (gimple_call_combined_fn): Declare.
2210         * gimple.c (gimple_call_combined_fn): New function.
2211
2212 2015-11-17  Martin Sebor  <msebor@redhat.com>
2213
2214         PR c++/68308
2215         * cp/init.c (build_new_1): Check for expression constness
2216         the right way.
2217
2218 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
2219
2220         PR target/53587
2221         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
2222         option list.
2223         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
2224         discussion of the Microsoft structure layout details here from
2225         its former home in extend.texi.
2226         * doc/extend.texi (x86 Variable Attributes): Replace detailed
2227         discussion with pointer to its new location.  Add cross-reference
2228         to corresponding type attributes.
2229         (x86 Type Attributes): Add cross-references to command-line options
2230         and variable attributes.
2231
2232 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
2233
2234         PR middle-end/68134
2235         * targhooks.c (default_get_mask_mode): Filter out
2236         scalar modes returned by mode_for_vector.
2237
2238 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2239
2240         PR target/68143
2241         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
2242         offset from dstbase and use it appropriately in
2243         adjust_automodify_address.
2244         (arm_block_set_aligned_vect): Likewise.
2245
2246 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2247
2248         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
2249         (MULTILIB_DIRNAMES): Adjust accordingly.
2250
2251 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
2252
2253         * config/aarch64/aarch64-cores.def (cortex-a35): New.
2254         * config/aarch64/aarch64.c (cortexa35_tunings): New.
2255         * config/aarch64/aarch64-tune.md: Regenerate.
2256         * doc/invoke.texi (-mcpu): Add Cortex-A35
2257
2258 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
2259
2260         PR target/68263
2261         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
2262         to 32 for IAMCU.
2263         * config/i386/sse.md (*mov<mode>_internal): Always enable
2264         AVX and SSE unaligned moves for IAMCU.
2265
2266 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
2267
2268         * tree-if-conv.c: Include varasm.h
2269         (ref_DR_map): Define.
2270         (baseref_DR_map): Like wise
2271         (struct ifc_dr): Add new tree predicate field.
2272         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
2273         (memrefs_read_or_written_unconditionally): Remove.
2274         (write_memrefs_written_at_least_once): Remove.
2275         (ifcvt_memrefs_wont_trap): Use hash maps to query
2276         unconditional read/written information.
2277         (if_convertible_loop_p_1):  Initialize hash maps and predicates
2278         before hashing data references and delete hashmaps at the end.
2279
2280 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
2281
2282         PR 56036
2283         * doc/invoke.texi (Optimize Options): Move @end table to the right
2284         place.
2285
2286 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
2287
2288         PR 65129
2289         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
2290         return value.
2291
2292 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2293
2294         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
2295         128-bit types, just types that fit in a single vector.
2296         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
2297
2298 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
2299
2300         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
2301         in the user documentation.
2302         (define_peephole2, define_split): Similarly.
2303
2304 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
2305
2306         * lto-streamer-out.c (write_global_references): Adjust integer type.
2307         (lto_output_decl_state_refs): Likewise.
2308
2309 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2310
2311         * config/arm/arm-cores.def (cortex-a35): New.
2312         * config/arm/arm.c (arm_cortex_a35_tune): New.
2313         * config/arm/arm-tables.opt: Regenerate.
2314         * config/arm/arm-tune.md: Regenerate.
2315         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
2316         * config/arm/t-aprofile: Likewise.
2317         * doc/invoke.texi (-mcpu): Likewise.
2318
2319 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
2320
2321         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
2322         and qdf24xx and xgene1 to match -march=armv8-a.
2323
2324 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
2325
2326         PR rtl-optimization/68330
2327         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
2328         of LSHIFTRT by a non-zero constant integer.
2329
2330 2015-11-16  Richard Biener  <rguenther@suse.de>
2331
2332         PR tree-optimization/68306
2333         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
2334         bogus copying from verify_data_ref_alignment and use continue
2335         instead of return.
2336
2337 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
2338             Kaz Kojima  <kkojima@gcc.gnu.org>
2339
2340         PR target/68277
2341         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
2342         operands[2].
2343         (*addsi3): Add another insn_and_split variant for reload.
2344
2345 2015-11-16  Richard Biener  <rguenther@suse.de>
2346
2347         PR middle-end/68117
2348         * cfgexpand.c (pass_expand::execute): Destroy the edge
2349         redirection var map before setting RTL CFG hooks.
2350
2351 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
2352
2353         * config/i386/sse.md (reduc_splus_v8df): Rename to...
2354         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
2355
2356         (reduc_splus_v4df): Rename to...
2357         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
2358
2359         (reduc_splus_v2df): Rename to...
2360         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
2361
2362         (reduc_splus_v16sf): Rename to...
2363         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
2364
2365         (reduc_splus_v8sf): Rename to...
2366         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
2367
2368         (reduc_splus_v4sf): Rename to...
2369         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
2370
2371         (reduc_<code>_<mode>, all 3 variants): Rename each to...
2372         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
2373
2374         (reduc_umin_v8hf): Rename to...
2375         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
2376
2377 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2378
2379         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
2380         without additional conditions.
2381         * doc/extend.texi (@item simd): New.
2382
2383 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2384
2385         * passes.c (first_pass_instance): Remove variable.
2386         (execute_todo): Remove setting of first_pass_instance.
2387         * tree-pass.h (first_pass_instance): Remove declaration.
2388
2389 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2390
2391         * passes.def: Add arg to pass_ccp pass instantiation.
2392         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
2393         instead of first_pass_instance.
2394         (do_ssa_ccp): Add and handle param nonzero_p.
2395         (pass_ccp::pass_ccp): Initialize nonzero_p.
2396         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
2397         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
2398         (pass_ccp::nonzero_p): New private member.
2399
2400 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2401
2402         * passes.def: Add arg to pass_object_sizes pass instantiation.
2403         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
2404         insert_min_max_p.
2405         (pass_object_sizes::set_pass_param): New member function.  Set
2406         insert_min_max_p.
2407         (pass_object_sizes::insert_min_max_p): New private member.
2408         (pass_object_sizes::execute): Use insert_min_max_p instead of
2409         first_pass_instance.
2410
2411 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2412
2413         * passes.def: Add arg to pass_dominator pass instantiation.
2414         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
2415         of comment.
2416         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
2417         may_peel_loop_headers_p.
2418         (pass_dominator::set_pass_param): New member function.  Set
2419         may_peel_loop_headers_p.
2420         (pass_dominator::may_peel_loop_headers_p): New private member.
2421         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
2422         first_pass_instance.
2423
2424 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2425
2426         * passes.def: Add arg to pass_reassoc pass instantiation.
2427         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
2428         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
2429         of first_pass_instance.
2430         (execute_reassoc): Add and handle insert_powi_p parameter.
2431         (pass_reassoc::insert_powi_p): New private member.
2432         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
2433         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
2434         (pass_reassoc::execute): Call execute_reassoc with extra arg.
2435
2436 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2437
2438         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
2439         * gen-pass-instances.awk (handle_line): Same.
2440         * pass_manager.h (class pass_manager): Define and undefine
2441         NEXT_PASS_WITH_ARG.
2442         * passes.c (opt_pass::set_pass_param): New function.
2443         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
2444         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
2445         * tree-pass.h (gimple_opt::set_pass_param): Declare.
2446         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
2447         warn_array_bounds_p parameter.
2448         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
2449         (pass_vrp::set_pass_param): New function.
2450         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
2451         (pass_vrp::warn_array_bounds_p): New private member.
2452
2453 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2454
2455         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
2456         (output_probe_stack_range): Rotate the loop and simplify.
2457
2458 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2459
2460         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
2461         (output_probe_stack_range): Rotate the loop and simplify.
2462
2463 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2464
2465         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
2466         an lea instruction when possible.
2467         (output_adjust_stack_and_probe): Rotate the loop and simplify.
2468         (ix86_emit_probe_stack_range): Adjust.
2469         (output_probe_stack_range): Rotate the loop and simplify.
2470
2471 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2472
2473         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
2474         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
2475         with appropriate pragma GCC target.
2476
2477 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2478
2479         PR target/65837
2480         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
2481         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
2482
2483 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2484
2485         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
2486         (cortexa57_tunings): Use it.
2487
2488 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2489
2490         PR target/65837
2491         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
2492         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
2493         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
2494         undefine __ARM_FP.
2495         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
2496         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
2497         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
2498         * doc/extend.texi (-mfpu=): Describe attribute.
2499
2500 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2501
2502         PR target/65837
2503         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
2504         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
2505         arm_init_neon_builtins.
2506         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
2507         (arm_init_neon_builtins_internal)
2508         (arm_init_crypto_builtins_internal):
2509         Test and set neon_set_p, neon_crypto_set_p.
2510         (neon_set_p, neon_crypto_set_p): New static booleans.
2511
2512 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2513
2514         PR target/65837
2515         * config/arm/arm.c (arm_fpu_desc): Remove.
2516         (all_fpus): Make global.
2517         (arm_option_override): Use FPU TARGET accessors.
2518         (arm_declare_function_name): Likewise.
2519         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
2520         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
2521         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
2522         (TARGET_NEON): Likewise.
2523         (all_fpus): Declare extern.
2524         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
2525         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
2526
2527 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2528
2529         PR middle-end/68366
2530         * sdbout.c: Include emit-rtl.h and function.h.
2531
2532 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
2533
2534         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
2535         Remove support for FreeBSD 5 and earlier.
2536
2537 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2538
2539         * configure: Regenerate.
2540         * configure.ac: Always define ENABLE_OFFLOADING.
2541         * cgraph.c (cgraph_node::create): Adjust.
2542         * gcc.c (process_command): Likewise.
2543         * omp-low.c (create_omp_child_function): Likewise.
2544         (expand_omp_target): Likewise.
2545         * varpool.c (varpool_node::get_create): Likewise.
2546
2547 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2548
2549         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
2550         * df-scan.c (df_get_exit_block_use_set): Adjust.
2551         * except.c (expand_eh_return): Likewise.
2552
2553 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2554
2555         * config/i386/i386.h (TARGET_PECOFF): Remove define.
2556         * defaults.h (TARGET_PECOFF): New default definition.
2557         * varasm.c (handle_vtv_comdat_section): Adjust.
2558
2559 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2560
2561         * defaults.h: New definition of SDB_DEBUGGING_INFO.
2562         * doc/tm.texi: Regenerate.
2563         * doc/tm.texi.in: Adjust.
2564         * final.c (rest_of_clean_state): Remove check if
2565         SDB_DEBUGGING_INFO is defined.
2566         * function.c (number_blocks): Likewise.
2567         * output.h: Likewise.
2568         * sdbout.c: Likewise.
2569         * toplev.c (process_options): Likewise.
2570
2571 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2572
2573         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
2574         (enum sdb_masks): Likewise.
2575         * sdbout.c (plain_type_1): Likewise.
2576         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
2577
2578 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
2579
2580         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
2581         internal calls - 0 if ordered simd and 1 for ordered threads simd.
2582         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
2583         argument is 1, replace it with GOMP_ordered_* call instead of removing
2584         it.
2585
2586 2015-11-13  Rich Felker <dalias@libc.org>
2587
2588         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
2589         address loading hack for FDPIC targets.
2590
2591 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
2592             Jeff Law  <law@redhat.com>
2593
2594         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
2595         * common.opt (-fsplit-paths): New flag controlling path splitting.
2596         * doc/invoke.texi (fsplit-paths): Document.
2597         * opts.c (default_options_table): Add -fsplit-paths to -O2.
2598         * passes.def: Add split_paths pass.
2599         * timevar.def (TV_SPLIT_PATHS): New timevar.
2600         * tracer.c: Include "tracer.h"
2601         (ignore_bb_p): No longer static.
2602         (transform_duplicate): New function, broken out of tail_duplicate.
2603         (tail_duplicate): Use transform_duplicate.
2604         * tracer.h (ignore_bb_p): Declare
2605         (transform_duplicate): Likewise.
2606         * tree-pass.h (make_pass_split_paths): Declare.
2607         * gimple-ssa-split-paths.c: New file.
2608
2609 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
2610             Marek Polacek  <polacek@redhat.com>
2611             Jason Merrill  <jason@redhat.com>
2612
2613         * convert.c (maybe_fold_build1_loc): New.
2614         (maybe_fold_build2_loc): New.
2615         (convert_to_pointer_1): Split out from convert_to_pointer.
2616         (convert_to_pointer_nofold): New.
2617         (convert_to_real_1): Split out from convert_to_real.
2618         (convert_to_real_nofold): New.
2619         (convert_to_integer_1): Split out from convert_to_integer.
2620         (convert_to_integer_nofold): New.
2621         (convert_to_complex_1): Split out from convert_to_complex.
2622         (convert_to_complex_nofold): New.
2623         * convert.h: Declare new functions.
2624         * tree-complex.c (create_one_component_var): Break up line to
2625         avoid sequence point issues.
2626
2627 2015-11-13  Jason Merrill  <jason@redhat.com>
2628
2629         * fold-const.c (fold_convert_const): Fold changing cv-quals on
2630         VECTOR_CST.
2631
2632         * hash-map.h (hash_map::empty): New.
2633
2634 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2635
2636         * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
2637         (oacc_loop_fixed_partitions): Correct return type to bool.
2638         (oacc_loop_auto_partitions): New.
2639         (oacc_loop_partition): Take mask argument, call
2640         oacc_loop_auto_partitions.
2641         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
2642
2643 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2644
2645         * config/rs6000/constraints.md (we constraint): New constraint for
2646         64-bit power9 vector support.
2647         (wL constraint): New constraint for the element in a vector that
2648         can be addressed by the MFVSRLD instruction.
2649
2650         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
2651         declaration.
2652         (convert_int_to_float128): Likewise.
2653         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
2654         hardware support for IEEE 128-bit floating point.
2655         (rs6000_expand_float128_convert): Likewise.
2656         (convert_float128_to_int): Likewise.
2657         (convert_int_to_float128): Likewise.
2658
2659         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
2660         ISA 3.0 hardware IEEE 128-bit floating point.
2661         (UNSPEC_IEEE128_MOVE): Likewise.
2662         (UNSPEC_IEEE128_CONVERT): Likewise.
2663         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
2664         (Ff): Add support for DImode.
2665         (Fv): Likewise.
2666         (any_fix code iterator): New and updated iterators for IEEE
2667         128-bit floating point hardware support.
2668         (any_float code iterator): Likewise.
2669         (s code attribute): Likewise.
2670         (su code attribute): Likewise.
2671         (az code attribute): Likewise.
2672         (uns code attribute): Likewise.
2673         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
2674         floating point hardware support.
2675         (abs<mode>2, FLOAT128 iterator): Likewise.
2676         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
2677         floating point hardware.
2678         (sub<mode>3, IEEE128 iterator): Likewise.
2679         (mul<mode>3, IEEE128 iterator): Likewise.
2680         (div<mode>3, IEEE128 iterator): Likewise.
2681         (copysign<mode>3, IEEE128 iterator): Likewise.
2682         (sqrt<mode>2, IEEE128 iterator): Likewise.
2683         (neg<mode>2, IEEE128 iterator): Likewise.
2684         (abs<mode>2, IEEE128 iterator): Likewise.
2685         (nabs<mode>2, IEEE128 iterator): Likewise.
2686         (fma<mode>4_hw, IEEE128 iterator): Likewise.
2687         (fms<mode>4_hw, IEEE128 iterator): Likewise.
2688         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
2689         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
2690         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
2691         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
2692         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
2693         (fix_fixuns code attribute): Likewise.
2694         (float_floatuns code attribute): Likewise.
2695         (fix<uns>_<mode>si2_hw): Likewise.
2696         (fix<uns>_<mode>di2_hw): Likewise.
2697         (float<uns>_<mode>si2_hw): Likewise.
2698         (float<uns>_<mode>di2_hw): Likewise.
2699         (xscvqp<su>wz_<mode>): Likewise.
2700         (xscvqp<su>dz_<mode>): Likewise.
2701         (xscv<su>dqp_<mode): Likewise.
2702         (ieee128_mfvsrd): Likewise.
2703         (ieee128_mfvsrwz): Likewise.
2704         (ieee128_mtvsrw): Likewise.
2705         (ieee128_mtvsrd): Likewise.
2706         (trunc<mode>df2_odd): Likewise.
2707         (cmp<mode>_h): Likewise.
2708         (128-bit GPR splitters): Don't split a 128-bit move that is a
2709         direct move between GPR and vector registers using ISA 3.0 direct
2710         move instructions.
2711         (maddld4): Add support for the ISA 3.0 integer multiply-add
2712         instruction.
2713
2714         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
2715         debugging.
2716         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
2717         constraint.  Disable the VSX<->GPR direct move helpers if we have
2718         the MFVSRLD and MTVSRDD instructions.
2719         (rs6000_secondary_reload_simple_move): Add support for doing
2720         vector direct moves directly without additional scratch registers
2721         if we have ISA 3.0 instructions.
2722         (rs6000_secondary_reload_direct_move): Update comments.
2723         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
2724         instructions.
2725
2726         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
2727         direct move instructions.
2728         (vsx_movti_64bit): Likewise.
2729         (vsx_extract_<mode>): Likewise.
2730
2731         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
2732         macros for ISA 3.0 direct move instructions.
2733         (TARGET_DIRECT_MOVE_128): Likewise.
2734         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
2735         instruction.
2736
2737         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
2738         constraints.  Update wa documentation to say not to use %x<n> on
2739         instructions that only take Altivec registers.
2740
2741 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2742
2743         * Makefile.in (OBJS): Add gcc-rich-location.o.
2744         * diagnostic.c (diagnostic_append_note): Pass line_table to
2745         rich_location ctor.
2746         (emit_diagnostic): Likewise.
2747         (inform): Likewise.
2748         (inform_n): Likewise.
2749         (warning): Likewise.
2750         (warning_at): Likewise.
2751         (warning_n): Likewise.
2752         (pedwarn): Likewise.
2753         (permerror): Likewise.
2754         (error): Likewise.
2755         (error_n): Likewise.
2756         (error_at): Likewise.
2757         (sorry): Likewise.
2758         (fatal_error): Likewise.
2759         (internal_error): Likewise.
2760         (internal_error_no_backtrace): Likewise.
2761         (source_range::debug): Likewise.
2762         * gcc-rich-location.c: New file.
2763         * gcc-rich-location.h: New file.
2764         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
2765         (warning_at): Likewise.
2766         * gimple.h (gimple_set_block): Use set_block function.
2767         * input.c (dump_line_table_statistics): Dump stats on how many
2768         ranges were optimized vs how many needed ad-hoc table.
2769         (write_digit_row): Add "map" param; use its range_bits
2770         to calculate the per-character offset.
2771         (dump_location_info): Print the range and column bits for each
2772         ordinary map.  Use the range bits to calculate the per-character
2773         offset.  Pass the map as a new param to the various calls to
2774         write_digit_row.  Eliminate uses of
2775         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
2776         * print-tree.c (print_node): Print any source range information.
2777         * rtl-error.c (diagnostic_for_asm): Likewise.
2778         * toplev.c (general_init): Initialize line_table's
2779         default_range_bits.
2780         * tree-cfg.c (move_block_to_fn): Likewise.
2781         (move_block_to_fn): Likewise.
2782         * tree-inline.c (copy_phis_for_bb): Likewise.
2783         * tree.c (tree_set_block): Likewise.
2784         (get_pure_location): New function.
2785         (set_source_range): New functions.
2786         (set_block): New function.
2787         (set_source_range): New functions.
2788         * tree.h (CAN_HAVE_RANGE_P): New.
2789         (EXPR_LOCATION_RANGE): New.
2790         (EXPR_HAS_RANGE): New.
2791         (get_expr_source_range): New inline function.
2792         (DECL_LOCATION_RANGE): New.
2793         (set_source_range): New decls.
2794         (get_decl_source_range): New inline function.
2795
2796 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
2797
2798         PR tree-optimization/67682
2799         * tree-vect-slp.c (vect_split_slp_store_group): New.
2800         (vect_analyze_slp_instance): During basic block SLP, recurse on
2801         subgroups if vect_build_slp_tree fails after 1st vector.
2802
2803 2015-11-13  Christian Bruel  <christian.bruel@st.com>
2804
2805         PR target/65837
2806         * config/arm/arm.c (arm_option_override): Move NEON check...
2807         (arm_option_check_internal): here
2808         (arm_file_start): Move .fpu print...
2809         (arm_declare_function_name): here
2810         (arm_option_print): Dump current fpu name.
2811         * config/arm/arm.opt (arm_fpu_index): Mark Save.
2812
2813 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
2814             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2815
2816         * combine.c (subst): Don't substitute or simplify when
2817         handling register-wise widening multiply.
2818         (force_to_mode): Likewise.
2819
2820 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
2821
2822         PR tree-optimization/68264
2823         * tree-call-cdce.c (gen_one_condition): Update commentary.
2824         (gen_conditions_for_pow_int_base): Invert the sense of the tests
2825         passed to gen_one_condition.
2826         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
2827         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
2828         using EDGE_FALSE_VALUE for edges to the call block and
2829         EDGE_TRUE_VALUE for the others.
2830
2831 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2832
2833         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
2834         complex types.
2835
2836 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2837
2838         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
2839
2840 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2841
2842         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
2843         len_of_prefix.
2844
2845 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2846
2847         * gen-pass-instances.awk (handle_line): Add args_str variable.
2848
2849 2015-11-13  Martin Liska  <mliska@suse.cz>
2850
2851         * graphite-poly.c (free_scop): Release scop->drs vector.
2852         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
2853         Release dom vector.
2854         (try_generate_gimple_bb): Use vNULL as a default initialization
2855         for vectors.
2856
2857 2015-11-13  Martin Liska  <mliska@suse.cz>
2858
2859         PR ipa/68311
2860         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
2861         Replace array initialization (using a variable post-increment)
2862         that possible triggers multiple unsequenced modifications
2863         with a pair of pushes to a vector.
2864
2865 2015-11-13  Richard Biener  <rguenther@suse.de>
2866
2867         PR tree-optimization/68306
2868         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
2869         loop related checks ...
2870         (vect_verify_datarefs_alignment): ... here.
2871         (vect_slp_analyze_and_verify_node_alignment): Compute and
2872         verify alignment of the single DR that it matters.
2873         * tree-vect-stmts.c (vectorizable_store): Add an assert.
2874         (vectorizable_load): Add a comment.
2875         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
2876         for determining load cost.
2877
2878 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2879
2880         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
2881         mix of boolean and integer vectors in a single statement.
2882         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
2883         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
2884         determine constant type.
2885         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
2886         for loop invariants.
2887
2888 2015-11-13  Alan Hayward <alan.hayward@arm.com>
2889
2890         PR tree-optimization/66558
2891         * tree-vect-loop.c (is_integer_induction):Add.
2892         (vectorizable_reduction): Add integer induction checks.
2893
2894 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
2895
2896         Revert [ARM] Remove neon-testgen.ml and generated tests.
2897
2898         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
2899
2900         [ARM] Remove neon-testgen.ml and generated tests.
2901
2902         * config/arm/neon-testgen.ml: Remove.
2903
2904 2015-11-13  Richard Biener  <rguenther@suse.de>
2905
2906         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
2907         Signal fatal failure if early checks fail.
2908         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
2909         do not bother testing further vector sizes.
2910
2911 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
2912
2913         * config/i386/predicates.md (misaligned_operand): Return true if
2914         operand is aligned to less than its natural alignmnet.
2915
2916 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2917
2918         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
2919         (vec_cmpu@var{m}@var{n}): New item.
2920         (vcond@var{m}@var{n}): Specify comparison is signed.
2921         (vcondu@var{m}@var{n}): New item.
2922         (vcond_mask_@var{m}@var{n}): New item.
2923         (maskload@var{m}@var{n}): New item.
2924         (maskstore@var{m}@var{n}): New item.
2925
2926 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2927
2928         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
2929         types of stored value and storage are compatible.
2930
2931 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
2932
2933         * gcc.c (POST_LINK_SPEC): Define if not already defined.
2934         (LINK_COMMAND_SPEC): Use post_link.
2935         (post_link_spec): New, initialize to POST_LINK_SPEC.
2936         (post_link): Initialize new static spec.
2937         * doc/tm.texi.in (POST_LINK_SPEC): Document.
2938         * doc/tm.texi: Regenerated.
2939
2940 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2941
2942         PR driver/67613
2943         * Makefile.in (GCC_OBJS): Add spellcheck.o.
2944         (OBJS): Add spellcheck-tree.o.
2945         * gcc.c: Include "spellcheck.h".
2946         (suggest_option): New function.
2947         (driver::handle_unrecognized_options): Call suggest_option to
2948         provide a hint about misspelled options.
2949         * spellcheck.c: Update file comment.
2950         (levenshtein_distance): Convert 4-param implementation from static
2951         to extern scope.  Remove note about unit tests from leading
2952         comment for const char * implementation.  Move tree
2953         implementation to...
2954         * spellcheck-tree.c: New file.
2955         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
2956
2957 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2958
2959         * Makefile.in (OBJS): Add spellcheck.o.
2960         * spellcheck.c: New file.
2961         * spellcheck.h: New file.
2962
2963 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
2964
2965         * config/ft32/ft32.md (*sne): New insn pattern.
2966
2967 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
2968
2969         * cprop.c (is_too_expensive): Remove.
2970         (gcse.h): Include.
2971         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
2972         is_too_expensive.
2973         * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
2974         * gcse.c (is_too_expensive): Rename to ...
2975         (gcse_or_cprop_is_too_expensive): ... this.
2976         Expand warning to add required size of max-gcse-memory.
2977         (one_pre_gcse_pass): Use it.
2978         (one_code_hoisting_pass): Use it.
2979         * params.def (max-gcse-memory): Increase from 50MB to 128MB.
2980
2981 2015-11-12  James Norris  <jnorris@codesourcery.com>
2982             Joseph Myers  <joseph@codesourcery.com>
2983
2984         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
2985         GF_OMP_TARGET_KIND_OACC_DECLARE.
2986         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
2987         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
2988         * gimplify.c (oacc_declare_returns): New.
2989         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
2990         (device_resident_p): New function.
2991         (oacc_default_clause): Handle device_resident clause.
2992         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
2993         (gimplify_expr): Handle OACC_DECLARE.
2994         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
2995         * omp-low.c (expand_omp_target): Handle
2996         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
2997         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
2998         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
2999         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
3000         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3001         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
3002         GOMP_MAP_DEVICE_RESIDENT.
3003
3004 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3005
3006         [ARM] Remove neon-testgen.ml and generated tests.
3007
3008         * config/arm/neon-testgen.ml: Remove.
3009
3010 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
3011
3012         * config/aarch64/aarch64-cores.def (qdf24xx): New.
3013         * config/aarch64/aarch64-tune.md: Regenerated.
3014         * config/arm/arm-cores.def (qdf24xx): New.
3015         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
3016         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
3017         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
3018         (ARM Options/-mtune): Likewise.
3019
3020 2015-11-12  Martin Liska  <mliska@suse.cz>
3021
3022         * config/i386/i386.c (ix86_valid_target_attribute_p):
3023         Finalize options at the of the function.
3024         * gcc.c (driver_get_configure_time_options): Call newly
3025         introduced init_opts_obstack.
3026         * lto-wrapper.c (main): Likewise.
3027         * opts.c (init_opts_obstack): New function.
3028         (init_options_struct): Call newly introduced init_opts_obstack.
3029         * opts.h (init_options_struct): Declare.
3030
3031 2015-11-12  Martin Liska  <mliska@suse.cz>
3032
3033         PR ipa/68035
3034         * ipa-icf.c (void sem_item::set_hash): New function.
3035         (sem_function::get_hash): Use renamed m_hash member variable.
3036         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
3037         (sem_item::update_hash_by_local_refs): Likewise.
3038         (sem_variable::get_hash): Use renamed m_hash member variable.
3039         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
3040         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
3041         (sem_item_optimizer::build_graph): As the hash value of an item
3042         is lazy initialized, force the calculation.
3043         * ipa-icf.h (set_hash): Declare new function and rename hash member
3044         variable to m_hash.
3045
3046 2015-11-12  Richard Biener  <rguenther@suse.de>
3047
3048         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
3049         Rename to vect_slp_analyze_instance_dependence.
3050         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
3051         Remove WAR special-case.
3052         (vect_slp_analyze_node_dependences): Instead add more specific
3053         code here, not relying on other instances being vectorized.
3054         (vect_slp_analyze_instance_dependence): Adjust accordingly.
3055         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
3056         vertical space in dump files.
3057         (vect_print_slp_tree): Likewise.
3058         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
3059         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
3060         not vectorized stmts until after dependence analysis removed
3061         instances.  Merge alignment and dependence checks.
3062         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
3063         flag on all stmts.
3064
3065 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
3066
3067         * config/aarch64/aarch64-protos.h (tune_params): Add new members
3068         "max_case_values" and "cache_line_size".
3069         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
3070         function.
3071         (aarch64_override_options_internal): Tune heuristics based on new
3072         members in "tune_params".
3073         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3074
3075 2015-11-12  Richard Biener  <rguenther@suse.de>
3076
3077         PR tree-optimization/68306
3078         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
3079         relevant and vectorizable checks here.
3080         (vect_verify_datarefs_alignment): Add relevant check here.
3081
3082 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3083
3084         * gimplify.c (oacc_default_clause): New.
3085         (omp_notice_variable): Call it.
3086
3087 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3088
3089         PR tree-optimization/68305
3090         * tree-vect-slp.c (vect_get_constant_vectors): Support
3091         COND_EXPR with SSA_NAME as a condition.
3092
3093 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3094
3095         * config/visium/visium-protos.h (notice_update_cc): Delete.
3096         (print_operand): Likewise.
3097         (print_operand_address): Likewise.
3098
3099 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3100
3101         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
3102         FUNCTION_VALUE_REGNO_P): Remove.
3103         * config/alpha/alpha-protos.h (function_value): Remove.
3104         * config/alpha/alpha.c (function_value): Rename to...
3105         (alpha_function_value_1): ... this.  Make static.
3106         (alpha_function_value, alpha_libcall_value,
3107         alpha_function_value_regno_p): New functions.
3108         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3109         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3110
3111 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3112
3113         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3114         * config/alpha/alpha.c (alpha_memory_latency): Make static.
3115         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
3116         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3117
3118 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3119
3120         PR target/67265
3121         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
3122         assertion on the CFA register.
3123
3124 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3125
3126         * expr.c (do_store_flag): Expand vector comparison as
3127         VEC_COND_EXPR if vector comparison is not supported by target.
3128
3129 2015-11-12  Renlin Li  <renlin.li@arm.com>
3130
3131         * config/arm/arm.md (addsi3_compare_op2): Make the order of
3132         assembly pattern consistent with constraint order.
3133
3134 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3135
3136         * gen-pass-instances.awk (handle_line): Simplify match regexp.
3137
3138 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3139
3140         * gen-pass-instances.awk (handle_line): Simplify init of
3141         postfix_starts_at.
3142
3143 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3144
3145         * gen-pass-instances.awk (handle_line): Rename var where to
3146         call_starts_at.
3147
3148 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
3149
3150         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
3151         do not expand to rtl.
3152
3153 2015-11-12  Richard Biener  <rguenther@suse.de>
3154
3155         PR tree-optimization/58497
3156         * tree-vect-generic.c: Include gimplify.h.
3157         (tree_vec_extract): Lookup constant/constructor DEFs.
3158         (do_cond): Unshare cond.
3159
3160 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3161
3162         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
3163         combined insn if the alignment of vector mode memory operand
3164         is less than ssememalign.
3165
3166 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3167
3168         * gen-pass-instances.awk (handle_line): Print parentheses and
3169         pass_name explicitly.
3170
3171 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3172
3173         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
3174         and postfix vars.
3175
3176 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3177
3178         * gen-pass-instances.awk (handle_line): Add comments.
3179
3180 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3181
3182         * gen-pass-instances.awk (handle_line): Rename len_of_end to
3183         len_of_close.
3184
3185 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3186
3187         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
3188
3189 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3190
3191         * gen-pass-instances.awk (handle_line): Restructure using early-out.
3192
3193 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3194
3195         * gen-pass-instances.awk (handle_line): Unify semicolon use.
3196
3197 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3198
3199         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
3200
3201 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3202
3203         * gen-pass-instances.awk: Add emacs indent setting.
3204
3205 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3206
3207         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
3208         to match.pd.
3209         Move Convert A/(B/C) to (A/B)*C to match.pd.
3210         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
3211         Move Optimize (X & (-A)) / A where A is a power of 2, to
3212         X >> log2(A) to match.pd.
3213
3214         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
3215         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
3216         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
3217         New simplifier.
3218         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
3219
3220 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
3221
3222         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
3223         variable.
3224         (neon_vst2_lane<mode>): Likewise.
3225         (neon_vld3_lane<mode>): Likewise.
3226         (neon_vst3_lane<mode>): Likewise.
3227         (neon_vld4_lane<mode>): Likewise.
3228         (neon_vst4_lane<mode>): Likewise.
3229
3230 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
3231             Sebastian Pop  <s.pop@samsung.com>
3232
3233         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3234         New member codegen_error
3235         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
3236         early return.
3237         (translate_isl_ast_node_user): Early return in case of error.
3238         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
3239         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
3240         (add_parameters_to_ivs_params): Remove macro.
3241         (graphite_regenerate_ast_isl): Add if_region pointer to region.
3242         * graphite-poly.c (new_poly_dr): Remove macro.
3243         (print_pdr): Same.
3244         (new_gimple_poly_bb): Same.
3245         (free_gimple_poly_bb): Same.
3246         (print_scop_params): Same.
3247         * graphite-poly.h (struct poly_dr): Same.
3248         (struct poly_bb): Add new_bb.
3249         (gbb_from_bb): Remove dead code.
3250         (pbb_from_bb): Same.
3251         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
3252         (parameter_index_in_region): Same.
3253         (find_scop_parameters): Same.
3254         (build_cross_bb_scalars_def): New.
3255         (build_cross_bb_scalars_use): New.
3256         (graphite_find_cross_bb_scalar_vars): New
3257         (try_generate_gimple_bb): Reads and Writes.
3258         (build_alias_set): Move.
3259         (gather_bbs::before_dom_children): Gather bbs visited.
3260         (build_scops): call build_alias_set.
3261         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
3262         (remove_simple_copy_phi): Delete.
3263         (remove_invariant_phi): Delete.
3264         (simple_copy_phi_p): Delete.
3265         (reduction_phi_p): Delete.
3266         (isl_id_for_dr): Remove unused param.
3267         (parameter_index_in_region_1): Remove macro usage.
3268         (set_scop_parameter_dim): Same.
3269         (add_param_constraints): Same.
3270         (add_conditions_to_constraints): Same
3271         (build_scop_iteration_domain): Same.
3272         (pdr_add_alias_set): Comment.
3273         (add_scalar_version_numbers): New.
3274         (build_poly_dr): ISL id.
3275         (build_scop_drs): Move.
3276         (build_poly_sr_1): Same.
3277         (insert_stmts): Remove.
3278         (build_poly_sr): New.
3279         (new_pbb_from_pbb): Delete.
3280         (insert_out_of_ssa_copy_on_edge): Delete.
3281         (create_zero_dim_array): Delete.
3282         (scalar_close_phi_node_p): Delete.
3283         (propagate_expr_outside_region): Delete.
3284         (rewrite_close_phi_out_of_ssa): Delete.
3285         (rewrite_phi_out_of_ssa): Delete.
3286         (rewrite_degenerate_phi): Delete.
3287         (rewrite_reductions_out_of_ssa): Delete.
3288         (rewrite_cross_bb_scalar_dependence): Delete.
3289         (handle_scalar_deps_crossing_scop_limits):
3290         (rewrite_cross_bb_scalar_deps): Delete.
3291         (build_poly_scop): Remove calls to out-of-ssa functions.
3292         * graphite.c (graphite_transform_loops): Early return in case of
3293         codegen error.
3294         * sese.c (debug_rename_map_1): Delete.
3295         (debug_rename_map): Delete.
3296         (sese_record_loop): Remove macro.
3297         (build_sese_loop_nests): Same.
3298         (new_sese_info): Same.
3299         (free_sese_info): Same.
3300         (sese_insert_phis_for_liveouts):
3301         (is_loop_closed_ssa_use): New.
3302         (number_of_phi_nodes): New.
3303         (bb_contains_loop_close_phi_nodes): New.
3304         (bb_contains_loop_phi_nodes): New.
3305         (phi_uses_name): New.
3306         (is_valid_rename):
3307         (get_rename): Add old_bb and loop_phi for more precise matching of
3308         exprs.
3309         (set_rename): Pass region.
3310         (later_of_the_two): New.
3311         (gsi_insert_earliest): New.
3312         (collect_all_ssa_names): New.
3313         (substitute_ssa_name): New.
3314         (rename_all_uses): New.
3315         (get_rename_from_scev): New.
3316         (rename_uses): Pass old_bb for more precise matching of exprs.
3317         (get_def_bb_for_const): New.
3318         (get_new_name): New.
3319         (get_loc): New.
3320         (get_edges): New.
3321         (copy_loop_phi_args): New.
3322         (copy_loop_phi_nodes): New.
3323         (get_loop_init_value): New.
3324         (find_init_value): New.
3325         (find_init_value_close_phi): New.
3326         (copy_loop_close_phi_args): New.
3327         (copy_loop_close_phi_nodes): New.
3328         (add_phi_arg_for_new_expr): New.
3329         (copy_cond_phi_args): New.
3330         (copy_cond_phi_nodes): New.
3331         (copy_phi_nodes): New.
3332         (should_copy_to_new_region): New.
3333         (set_rename_for_each_def): New.
3334         (graphite_copy_stmts_from_block): Early return in case of error.
3335         (copy_bb_and_scalar_dependences): Same.
3336         * sese.h (vec_find): New.
3337         (SESE_PARAMS): Delete.
3338         (SESE_LOOPS): Delete.
3339         (SESE_LOOP_NEST): Delete.
3340         (sese_contains_loop): Remove macro usage.
3341         (sese_nb_params): Same.
3342         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
3343
3344 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3345
3346         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
3347         isl_union_map_add_map on every pbb->schedule.
3348
3349 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3350
3351         * tree-parloops.c (create_parallel_loop): Return void.
3352
3353 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3354
3355         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
3356         block only when needed.
3357
3358 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
3359
3360         * config/alpha/alpha-protos.h (print_operand): Remove.
3361         (print_operand_address): Remove.
3362         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
3363         (PRINT_OPERAND_ADDRESS): Remove.
3364         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
3365         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
3366         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
3367         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
3368         (print_operand_address): Rename to...
3369         (alpha_print_operand_address): ...this and make static.
3370         (print_operand): Rename to...
3371         (alpha_print_operand): ...this and make static.
3372         (alpha_print_operand_punct_valid_p): New static function.
3373
3374 2015-11-11  Richard Biener  <rguenther@suse.de>
3375
3376         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
3377         Declare.
3378         (vect_analyze_data_refs_alignment): Make loop vect specific.
3379         (vect_verify_datarefs_alignment): Likewise.
3380         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
3381         Add missing continue.
3382         (vect_compute_data_ref_alignment): Export.
3383         (vect_compute_data_refs_alignment): Merge into...
3384         (vect_analyze_data_refs_alignment): ... this.
3385         (verify_data_ref_alignment): Split out from ...
3386         (vect_verify_datarefs_alignment): ... here.
3387         (vect_slp_analyze_and_verify_node_alignment): New function.
3388         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
3389         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
3390         misplaced checks on alignment.
3391         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
3392         alignment analysis after SLP discovery and do it per instance.
3393         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
3394         bother to re-try using different vector sizes.
3395
3396 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3397             Cesar Philippidis  <cesar@codesourcery.com>
3398
3399         * gimplify.c (enum omp_region_type): Add ORT_ACC,
3400         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
3401         (gimple_add_tmp_var): Add ORT_ACC checks.
3402         (gimplify_var_or_parm_decl): Likewise.
3403         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
3404         (omp_add_variable): Look in outer contexts for openacc and allow
3405         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
3406         (omp_notice_variable, omp_is_private, omp_check_private): Add
3407         ORT_ACC checks.
3408         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
3409         Permit private openacc reductions.
3410         (gimplify_oacc_cache): Specify ORT_ACC.
3411         (gimplify_omp_workshare): Adjust OpenACC region types.
3412         (gimplify_omp_target_update): Likewise.
3413         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
3414         (lower-rec_input_clauses): Don't handle openacc firstprivate
3415         references here.
3416         (lower_omp_target): Emit initializers for openacc firstprivate vars.
3417
3418 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3419
3420         PR target/67265
3421         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
3422         frame pointer for stack checking if non-call exceptions aren't used.
3423         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
3424
3425 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
3426
3427         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
3428         [LA]SHIFTRT.
3429
3430 2015-11-11  Martin Liska  <mliska@suse.cz>
3431             Richard Biener  <rguenther@suse.de>
3432
3433         PR rtl-optimization/68287
3434         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
3435         number of elements.
3436
3437 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
3438
3439         * config/mips/mips.c (mips_breakable_sequence_p): New function.
3440         (mips_break_sequence): New function.
3441         (mips_reorg_process_insns): Use them. Use compact branches in selected
3442         situations.
3443
3444 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
3445
3446         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
3447
3448 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
3449             Jim Wilson  <wilson@gcc.gnu.org>
3450
3451         PR target/67305
3452         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
3453         be true and eliminable registers mentioned.
3454
3455 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
3456
3457         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
3458         options.
3459         * config/arc/arc-opts.h: Add ARCv2 CPUs.
3460         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
3461         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
3462         situation, and store instructions with large offsets.
3463         (arc_secondary_reload_conv): New function.
3464         (arc_init): Add ARCv2 options.
3465         (arc_conditional_register_usage): Select the proper register usage
3466         for ARCv2 processors.
3467         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
3468         architecture.
3469         (arc_compute_function_type): Likewise.
3470         (arc_print_operand): Handle new ARCv2 punctuation characters.
3471         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
3472         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
3473         function.
3474         (arc_reorg, arc_hazard): Use it.
3475         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
3476         (ASM_SPEC): Add ARCv2 options.
3477         (TARGET_NORM): ARC HS has norm instructions by default.
3478         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
3479         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
3480         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
3481         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
3482         Likewise.
3483         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
3484         (TARGET_LP_WR_INTERLOCK): Likewise.
3485         * config/arc/arc.md
3486         (commutative_binary_mult_comparison_result_used, movsicc_insn)
3487         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
3488         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
3489         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
3490         Use it for ARCv2.
3491         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
3492         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
3493         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
3494         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
3495         (extzvsi): New pattern.
3496         * config/arc/arc.opt: New ARCv2 options.
3497         * config/arc/arcEM.md: New file.
3498         * config/arc/arcHS.md: Likewise.
3499         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
3500         values.
3501         (Cm2): A signed 9-bit integer constant constraint.
3502         (C62): An unsigned 6-bit integer constant constraint.
3503         (C16): A signed 16-bit integer constant constraint.
3504         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
3505         (short_const_int_operand): New predicate.
3506         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
3507         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
3508         -mcode-density and -mdiv-rem.
3509
3510 2015-11-11  Julia Koval  <julia.koval@intel.com>
3511
3512         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
3513
3514 2015-11-11  Julia Koval  <julia.koval@intel.com>
3515
3516         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
3517
3518 2015-11-11  Martin Liska  <mliska@suse.cz>
3519
3520         * gimple-ssa-strength-reduction.c (create_phi_basis):
3521         Use auto_vec.
3522         * passes.c (release_dump_file_name): New function.
3523         (pass_init_dump_file): Used from this function.
3524         (pass_fini_dump_file): Likewise.
3525         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
3526         * var-tracking.c (vt_initialize): Use pool_allocator.
3527
3528 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
3529             Jiong Wang      <jiong.wang@arm.com>
3530
3531         PR tree-optimization/68234
3532         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
3533         node which estimiated to be VR_VARYING initially.
3534
3535 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
3536
3537         * regname.c (scan_rtx_reg): Check the matching number of consecutive
3538         registers when tying chains.
3539         (build_def_use): Move terminated_this_insn earlier in the function.
3540
3541 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
3542
3543         * configure.ac: Use = with test and not ==.
3544         * configure: Regenerated.
3545
3546 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
3547
3548         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
3549         machine asserts.  Update defines for 64 bit.
3550
3551 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3552
3553         PR target/63870
3554         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
3555         lane number.
3556         (neon_vst1_lane<mode>): Likewise.
3557         (neon_vld2_lane<mode>): Likewise.
3558         (neon_vst2_lane<mode>): Likewise.
3559         (neon_vld3_lane<mode>): Likewise.
3560         (neon_vst3_lane<mode>): Likewise.
3561         (neon_vld4_lane<mode>): Likewise.
3562         (neon_vst4_lane<mode>): Likewise.
3563
3564 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3565
3566         PR target/63870
3567         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
3568         qualifier_struct_load_store_lane_index.
3569         (arm_storestruct_lane_qualifiers) Likewise.
3570         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
3571         big-endian.
3572         (neon_vst1_lane<mode>) Likewise.
3573         (neon_vld2_lane<mode>) Likewise.
3574         (neon_vst2_lane<mode>) Likewise.
3575         (neon_vld3_lane<mode>) Likewise.
3576         (neon_vst3_lane<mode>) Likewise.
3577         (neon_vld4_lane<mode>) Likewise.
3578         (neon_vst4_lane<mode>) Likewise.
3579
3580 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3581
3582         PR target/63870
3583         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
3584         qualifier_struct_load_store_lane_index.
3585         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3586         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
3587         argument qualifiers.
3588         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
3589         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
3590
3591 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3592
3593         * config/nvptx/nvptx.opt (moptimize): New flag.
3594         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
3595         default.
3596         (nvptx_optimize_inner): New.
3597         (nvptx_process_pars): Call it when optimizing.
3598         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
3599
3600 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3601
3602         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3603         Remove redundant code.
3604
3605 2015-11-10  Jeff Law  <law@redhat.com>
3606
3607         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
3608         call to output_address.
3609         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
3610         Add unnamed machine_mode argument.
3611
3612 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3613
3614         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
3615         default to 64-bit.
3616
3617 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3618
3619         * config/i386/i386.md (*movabs<mode>_1): Add explicit
3620         size directives for -masm=intel.
3621         (*movabs<mode>_2): Ditto.
3622
3623 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3624
3625         * config/i386/i386.c (ix86_print_operand): Remove dead code that
3626         tried to avoid (%rip) for call operands.
3627
3628 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3629
3630         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
3631         argument.  Do not use RIP relative addressing when no_rip is set.
3632         (ix86_print_operand): Update call to ix86_print_operand_address_as.
3633         (ix86_print_operand_address): Ditto.
3634         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
3635         absolute movabs operand 0.  Add square braces for -masm=intel.
3636         (*movabs<mode>_2): Ditto for operand 1.
3637
3638 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3639
3640         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
3641         combine_vcvtf2i pattern.
3642
3643 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3644
3645         * config/arm/arm.c (neon_valid_immediate): Remove integer
3646         CONST_DOUBLE handling.  It should never occur.
3647
3648 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
3649
3650         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
3651         (ATOMIC_LDOP): Likewise.
3652         (atomic_ldop): Likewise.
3653         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
3654         (ATOMIC_LDOP): Likewise.
3655         (atomic_ldop): Likewise.
3656
3657 2015-11-10  Martin Liska  <mliska@suse.cz>
3658
3659         * alloc-pool.h (allocate_raw): New function.
3660         (operator new (size_t, object_allocator<T> &a)): Use the
3661         function instead of object_allocator::allocate).
3662
3663 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3664
3665         * config/i386/sse.md (HALFMASKMODE): New attribute.
3666         (DOUBLEMASKMODE): New attribute.
3667         (vec_pack_trunc_qi): New.
3668         (vec_pack_trunc_<mode>): New.
3669         (vec_unpacks_lo_hi): New.
3670         (vec_unpacks_lo_si): New.
3671         (vec_unpacks_lo_di): New.
3672         (vec_unpacks_hi_hi): New.
3673         (vec_unpacks_hi_<mode>): New.
3674
3675 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3676
3677         * optabs.c (expand_binop_directly): Allow scalar mode for
3678         vec_pack_trunc_optab.
3679         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
3680         boolean vector producers from pattern sequence when computing VF.
3681         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
3682         vect_recog_mask_conversion_pattern.
3683         (search_type_for_mask): Choose the smallest
3684         type if different size types are mixed.
3685         (build_mask_conversion): New.
3686         (vect_recog_mask_conversion_pattern): New.
3687         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
3688         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
3689         load with pattern.
3690         (vectorizable_conversion): Support boolean vectors.
3691         (free_stmt_vec_info): Allow patterns for statements with no lhs.
3692         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
3693
3694 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3695
3696         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
3697         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
3698         Cast mask to FP mode if required.
3699         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
3700         (vcond_mask_<mode><avx512fmaskmodelower>): New.
3701         (vcond_mask_<mode><sseintvecmodelower>): New.
3702         (vcond_mask_<mode><sseintvecmodelower>): New.
3703         (vcond_mask_v2div2di): New.
3704         (vcond_mask_<mode><sseintvecmodelower>): New.
3705         (vcond_mask_<mode><sseintvecmodelower>): New.
3706
3707 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3708
3709         * optabs-query.h (get_vcond_mask_icode): New.
3710         * optabs-tree.c (expand_vec_cond_expr_p): Use
3711         get_vcond_mask_icode for VEC_COND_EXPR with mask.
3712         * optabs.c (expand_vec_cond_mask_expr): New.
3713         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
3714         * optabs.def (vcond_mask_optab): New.
3715         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
3716         generate redundant comparison for COND_EXPR.
3717         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
3718         as a condition.
3719         (vectorizable_condition): Likewise.
3720         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
3721         cond_exp with no embedded comparison.
3722         (vect_build_slp_tree_1): Likewise.
3723
3724 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3725
3726         * config/i386/sse.md (maskload<mode>): Rename to ...
3727         (maskload<mode><sseintvecmodelower>): ... this.
3728         (maskstore<mode>): Rename to ...
3729         (maskstore<mode><sseintvecmodelower>): ... this.
3730         (maskload<mode><avx512fmaskmodelower>): New.
3731         (maskstore<mode><avx512fmaskmodelower>): New.
3732
3733 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3734
3735         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
3736         (expand_MASK_STORE): Adjust to maskstore optab changes.
3737         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
3738          Adjust to maskload, maskstore optab changes.
3739         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
3740         * optabs.def (maskload_optab): Transform into convert optab.
3741         (maskstore_optab): Likewise.
3742         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
3743         can_vec_mask_load_store_p signature change.
3744         (predicate_mem_writes): Use boolean mask.
3745         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
3746         can_vec_mask_load_store_p signature change.  Allow invariant masks.
3747         (vectorizable_operation): Ignore type precision for boolean vectors.
3748
3749 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3750
3751         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
3752         (const_vector_mask_from_tree): New.
3753         (const_vector_from_tree): Use const_vector_mask_from_tree
3754         for boolean vectors.
3755         * optabs-query.h (get_vec_cmp_icode): New.
3756         * optabs-tree.c (expand_vec_cmp_expr_p): New.
3757         * optabs-tree.h (expand_vec_cmp_expr_p): New.
3758         * optabs.c (vector_compare_rtx): Add OPNO arg.
3759         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
3760         (expand_vec_cmp_expr): New.
3761         * optabs.def (vec_cmp_optab): New.
3762         (vec_cmpu_optab): New.
3763         * optabs.h (expand_vec_cmp_expr): New.
3764         * tree-vect-generic.c (expand_vector_comparison): Add vector
3765         comparison optabs check.
3766         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
3767         operations for VF.  Add mask type computation.
3768         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
3769         (vectorizable_comparison): New.
3770         (vect_analyze_stmt): Add vectorizable_comparison.
3771         (vect_transform_stmt): Likewise.
3772         (vect_init_vector): Support boolean vector invariants.
3773         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3774         (vectorizable_condition): Directly provide vectype for invariants
3775         used in comparison.
3776         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
3777         (enum vect_var_kind): Add vect_mask_var.
3778         (enum stmt_vec_info_type): Add comparison_vec_info_type.
3779         (vectorizable_comparison): New.
3780         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3781         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
3782         (vect_create_destination_var): Likewise.
3783         * tree-vect-patterns.c (check_bool_pattern): Check fails
3784         if we can vectorize comparison directly.
3785         (search_type_for_mask): New.
3786         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
3787         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
3788         comparison statements.
3789         (vect_get_constant_vectors): Support boolean vector constants.
3790         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
3791         (ix86_expand_int_vec_cmp): New.
3792         (ix86_expand_fp_vec_cmp): New.
3793         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
3794         op_true and op_false.
3795         (ix86_int_cmp_code_to_pcmp_immediate): New.
3796         (ix86_fp_cmp_code_to_pcmp_immediate): New.
3797         (ix86_cmp_code_to_pcmp_immediate): New.
3798         (ix86_expand_mask_vec_cmp): New.
3799         (ix86_expand_fp_vec_cmp): New.
3800         (ix86_expand_int_sse_cmp): New.
3801         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
3802         (ix86_expand_int_vec_cmp): New.
3803         (ix86_get_mask_mode): New.
3804         (TARGET_VECTORIZE_GET_MASK_MODE): New.
3805         * config/i386/sse.md (avx512fmaskmodelower): New.
3806         (vec_cmp<mode><avx512fmaskmodelower>): New.
3807         (vec_cmp<mode><sseintvecmodelower>): New.
3808         (vec_cmpv2div2di): New.
3809         (vec_cmpu<mode><avx512fmaskmodelower>): New.
3810         (vec_cmpu<mode><sseintvecmodelower>): New.
3811         (vec_cmpuv2div2di): New.
3812
3813 2015-11-10  Richard Biener  <rguenther@suse.de>
3814
3815         PR tree-optimization/68240
3816         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
3817         properly.
3818         (visit_phi): For PHIs with just a single executable edge
3819         take its value directly.
3820         (expressions_equal_p): Handle VN_TOP properly.
3821
3822 2015-11-10  Richard Biener  <rguenther@suse.de>
3823
3824         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
3825         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
3826         conservatively.
3827
3828 2015-11-10  Richard Biener  <rguenther@suse.de>
3829
3830         PR tree-optimization/56118
3831         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
3832         cost favor vectorized version.
3833
3834 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3835
3836         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
3837         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
3838         (neg_not_op): New code attribute.
3839
3840 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3841
3842         * ifcvt.c (noce_try_inverse_constants): New function.
3843         (noce_process_if_block): Call it.
3844         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
3845         * optabs.def (negcc_optab, notcc_optab): Declare.
3846         * optabs.c (emit_conditional_neg_or_complement): New function.
3847         * doc/tm.texi (Standard Names): Document negcc, notcc names.
3848
3849 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3850
3851         PR rtl-optimization/68236
3852         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
3853         if insn_queue doesn't exist.
3854         (haifa_sched_finish): Reset insn_queue to NULL.
3855
3856 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
3857
3858         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
3859         (build_def_use): Initialize terminated_this_insn.
3860         (find_best_rename_reg): Pick and check register from the tied chain.
3861         (regrename_do_replace): Mark head as renamed.
3862         (struct du_head *terminated_this_insn). New static variable.
3863         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
3864         * regrename.h (struct du_head): Add tied_chain, renamed members.
3865
3866 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3867
3868         PR bootstrap/68256
3869         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
3870         Return false.
3871
3872 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3873
3874         PR target/57845
3875         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
3876         not promote the mode for aggregate types.
3877
3878 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3879
3880         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
3881         * omp-low.c (build_oacc_routine_dims): New.
3882
3883 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3884
3885         * config/rs6000/constraints.md (wF constraint): New constraints
3886         for power9/toc fusion.
3887         (wG constraint): Likewise.
3888
3889         * config/rs6000/predicates.md (u6bit_cint_operand): New
3890         predicate, recognize 0..63.
3891         (upper16_cint_operand): New predicate for power9 and toc fusion.
3892         (fpr_reg_operand): Likewise.
3893         (toc_fusion_or_p9_reg_operand): Likewise.
3894         (toc_fusion_mem_raw): Likewise.
3895         (toc_fusion_mem_wrapped): Likewise.
3896         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
3897         address range.
3898         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
3899         instead.
3900         (fusion_addis_mem_combo_load): Add support for power9 fusion of
3901         floating point loads, floating point stores, and gpr stores.
3902         (fusion_addis_mem_combo_store): Likewise.
3903         (fusion_offsettable_mem_operand): Likewise.
3904
3905         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
3906         (emit_fusion_load_store): Likewise.
3907         (fusion_p9_p): Likewise.
3908         (expand_fusion_p9_load): Likewise.
3909         (expand_fusion_p9_store): Likewise.
3910         (emit_fusion_p9_load): Likewise.
3911         (emit_fusion_p9_store): Likewise.
3912         (fusion_wrap_memory_address): Likewise.
3913
3914         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
3915         elements for power9 fusion.
3916         (rs6000_debug_print_mode): Rework debug information to print more
3917         information about fusion.
3918         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
3919         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
3920         offsettable memory address.
3921         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
3922         (emit_fusion_gpr_load): Move most of the code from
3923         emit_fusion_gpr_load into emit_fusion-addis that handles both
3924         power8 and power9 fusion.
3925         (emit_fusion_addis): Likewise.
3926         (emit_fusion_load_store): Likewise.
3927         (fusion_wrap_memory_address): Add support for TOC fusion.
3928         (fusion_split_address): Likewise.
3929         (fusion_p9_p): Add support for power9 fusion.
3930         (expand_fusion_p9_load): Likewise.
3931         (expand_fusion_p9_store): Likewise.
3932         (emit_fusion_p9_load): Likewise.
3933         (emit_fusion_p9_store): Likewise.
3934
3935         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
3936         new instructions in ISA 3.0.
3937         (TARGET_CTZ): Likewise.
3938         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
3939         (TARGET_TOC_FUSION_FP): Likewise.
3940
3941         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
3942         fusion unspecs.
3943         (UNSPEC_FUSION_ADDIS): Likewise.
3944         (QHSI mode iterator): New iterator for power9 fusion.
3945         (GPR_FUSION): Likewise.
3946         (FPR_FUSION): Likewise.
3947         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
3948         (umod<mode>3): Likewise.
3949         (divmod peephole): Likewise.
3950         (udivmod peephole): Likewise.
3951         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
3952         instructions.
3953         (ctz<mode>2_h): Likewise.
3954         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
3955         (ashdi3_extswsli_dot): Likewise.
3956         (ashdi3_extswsli_dot2): Likewise.
3957         (power9 fusion splitter): New power9/toc fusion support.
3958         (toc_fusionload_<mode>): Likewise.
3959         (toc_fusionload_di): Likewise.
3960         (fusion_gpr_load_<mode>): Update predicate function.
3961         (power9 fusion peephole2s): New power9/toc fusion support.
3962         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
3963         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
3964         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3965         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3966         (fusion_p9_<mode>_constant): Likewise.
3967
3968 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
3969
3970         * optabs.c (prepare_libcall_arg): New function.
3971         (expand_fixed_convert): Add call to prepare_libcall_arg.
3972
3973 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
3974
3975         * sched-int.h (dump_rgn_dependencies_dot): Declare
3976         * sched-rgn.c (dump_rgn_dependencies_dot): New function
3977         * print-rtl.h (print_insn): Add prototype
3978
3979         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
3980         * common.opt (-fsched-verbose): Set default value to 1.
3981         * invoke.texi (-fsched-verbose): Update the option's description.
3982
3983 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3984
3985         * config/visium/visium.h (PRINT_OPERAND): Delete.
3986         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3987         (PRINT_OPERAND_ADDRESS): Likewise.
3988         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
3989         to...
3990         (visium_print_operand_punct_valid_p): ...this.  New function.
3991         (TARGET_PRINT_OPERAND): Define to...
3992         (print_operand): Rename to...
3993         (visium_print_operand): ...this.
3994         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
3995         (visium_output_address): Rename to...
3996         (visium_print_operand_address): ...this.
3997         (print_operand_address): Delete.
3998
3999 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4000
4001         PR middle-end/68259
4002         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
4003         Check that the type of the first operand is an aggregate type.
4004
4005 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4006
4007         * omp-low.c: Fix some OpenACC comment typos.
4008         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
4009         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
4010         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
4011
4012 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
4013
4014         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
4015
4016 2015-11-09  Jeff Law  <law@redhat.com>
4017
4018         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
4019         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
4020         Fix comment typo.
4021
4022 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4023             Peter Bergner  <bergner@vnet.ibm.com>
4024
4025         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
4026         ISA 3.0 (power9).
4027         (-mpower9-vector): Likewise.
4028         (-mpower9-dform): Likewise.
4029         (-mpower9-minmax): Likewise.
4030         (-mtoc-fusion): Likewise.
4031         (-mmodulo): Likewise.
4032         (-mfloat128-hardware): Likewise.
4033
4034         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
4035         mask for ISA 3.0 (power9).
4036         (POWERPC_MASKS): Add new ISA 3.0 switches.
4037         (power9 cpu): Add power9 cpu.
4038
4039         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
4040         (ASM_CPU_SPEC): Likewise.
4041         (EXTRA_SPECS): Likewise.
4042
4043         * config/rs6000/rs6000-opts.h (enum processor_type): Add
4044         PROCESSOR_POWER9.
4045
4046         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
4047         (rs6000_debug_reg_global): Add support for power9 fusion.
4048         (rs6000_setup_reg_addr_masks): Cache mode size.
4049         (rs6000_option_override_internal): Until real power9 tuning is
4050         added, use -mtune=power8 for -mcpu=power9.
4051         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
4052         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
4053         of Altivec registers.
4054         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
4055         (rs6000_loop_align): Add support for power9 cpu.
4056         (rs6000_file_start): Likewise.
4057         (rs6000_adjust_cost): Likewise.
4058         (rs6000_issue_rate): Likewise.
4059         (insn_must_be_first_in_group): Likewise.
4060         (insn_must_be_last_in_group): Likewise.
4061         (force_new_group): Likewise.
4062         (rs6000_register_move_cost): Likewise.
4063         (rs6000_opt_masks): Likewise.
4064
4065         * config/rs6000/rs6000.md (cpu attribute): Add power9.
4066         * config/rs6000/rs6000-tables.opt: Regenerate.
4067
4068         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4069         _ARCH_PWR9 if power9 support is available.
4070
4071         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
4072         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
4073
4074         * configure.ac: Determine if the assembler supports the ISA 3.0
4075         instructions.
4076         * config.in (HAVE_AS_POWER9): Likewise.
4077         * configure: Regenerate.
4078
4079         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
4080         switches.
4081
4082 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4083
4084         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
4085         Remove integer CONST_DOUBLE handling.  It should never occur.
4086
4087 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4088
4089         PR target/68129
4090         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
4091         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
4092         Delete VOIDmode case.  Assert that mode is not VOIDmode.
4093         * config/aarch64/predicates.md (const0_operand): Remove const_double
4094         match.
4095
4096 2015-11-09  Martin Liska  <mliska@suse.cz>
4097
4098         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
4099         body_info release function.
4100         * ipa-prop.c (ipa_release_body_info): New function.
4101         (ipa_analyze_node): Call the function.
4102         (ipa_node_params::~ipa_node_params): Release known_csts.
4103         * ipa-prop.h (ipa_release_body_info): Declare.
4104
4105 2015-11-09  Martin Liska  <mliska@suse.cz>
4106
4107         * gcc.c (record_temp_file): Release name string.
4108         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
4109         * lra-lives.c (free_live_range_list): Utilize
4110         lra_live_range_pool for allocation and deallocation.
4111         (create_live_range): Likewise.
4112         (copy_live_range): Likewise.
4113         (lra_merge_live_ranges): Likewise.
4114         (remove_some_program_points_and_update_live_ranges): Likewise.
4115         (lra_create_live_ranges_1): Release point_freq_vec that can
4116         be not freed from previous iteration of the function.
4117         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
4118         * tree-sra.c (sra_deinitialize): Release all vectors in
4119         base_access_vec.
4120         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
4121         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
4122         Release edge_info for a removed edge.
4123         (thread_through_all_blocks): Free region vector.
4124         * tree-ssa.h (free_dom_edge_info): Declare function extern.
4125
4126 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
4127
4128         * optabs.c (expand_vec_cond_expr): Always get sign from type.
4129         * tree.c (wide_int_to_tree): Support negative values for boolean.
4130         (build_nonstandard_boolean_type): Use signed type for booleans.
4131
4132 2015-11-09  Richard Biener  <rguenther@suse.de>
4133
4134         PR tree-optimization/68248
4135         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
4136
4137 2015-11-09  Richard Biener  <rguenther@suse.de>
4138
4139         PR tree-optimization/56118
4140         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
4141         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
4142         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
4143         function.
4144         (vect_slp_analyze_data_ref_dependences): Instead of computing
4145         all dependences of the region DRs just analyze the code motions
4146         SLP vectorization will perform.  Remove SLP instances that
4147         cannot have their store/load motions applied.
4148         (vect_analyze_data_refs): Allow DRs without a vectype
4149         in BB vectorization.
4150
4151 2015-11-09  Julian Brown  <julian@codesourcery.com>
4152
4153         * final.c (output_asm_insn): Pass VOIDmode to output_address.
4154         (output_address): Add MODE argument. Pass to print_operand_address
4155         hook.
4156         * targhooks.c (default_print_operand_address): Add MODE argument.
4157         * targhooks.h (default_print_operand_address): Update prototype.
4158         * output.h (output_address): Update prototype.
4159         * target.def (print_operand_address): Add MODE argument.
4160         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
4161         output_address.
4162         (print_operand): Pass access mode to output_address.
4163         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
4164         argument.
4165         (mcore_print_operand): Update calls to mcore_print_operand_address.
4166         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
4167         output_address.
4168         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
4169         output_address.
4170         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
4171         global.
4172         (tilegx_print_operand): Don't set above global. Update calls to
4173         output_address.
4174         (tilegx_print_operand_address): Add MODE argument. Use instead of
4175         output_memory_reference_mode global.
4176         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
4177         (frv_print_operand): Pass mode to frv_print_operand_address calls.
4178         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
4179         output_address.
4180         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
4181         (cris_print_operand): Pass mode to output_address calls.
4182         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
4183         * config/aarch64/aarch64.h (aarch64_print_operand)
4184         (aarch64_print_operand_address): Remove prototypes.
4185         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
4186         global.
4187         (aarch64_print_operand): Make static. Update calls to output_address.
4188         (aarch64_print_operand_address): Add MODE argument. Use instead of
4189         aarch64_memory_reference_mode global.
4190         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
4191         hooks.
4192         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4193         Delete macro definitions.
4194         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
4195         * config/xtensa/xtensa.c (print_operand): Pass mode in
4196         output_address calls.
4197         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
4198         argument.
4199         (h83000_print_operand): Update calls to h8300_print_operand_address
4200         and output_address.
4201         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
4202         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
4203         global.
4204         (tilepro_print_operand): Pass mode to output_address.
4205         (tilepro_print_operand_address): Add MODE argument. Use instead of
4206         output_memory_reference_mode.
4207         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
4208         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
4209         to output_address calls.
4210         (nvptx_print_operand_address): Add MODE argument.
4211         * config/alpha/alpha.c (print_operand): Pass mode argument in
4212         output_address calls.
4213         * config/m68k/m68k.c (print_operand): Pass mode argument in
4214         output_address call.
4215         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
4216         (avr_print_operand): Update calls to avr_print_operand_address.
4217         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
4218         argument. Update calls to output_address.
4219         (sparc_print_operand): Pass mode to output_address.
4220         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
4221         argument.
4222         (iq2000_print_operand): Pass mode in output_address calls.
4223         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
4224         MODE argument.
4225         (xstormy16_print_operand): Pass mode to
4226         xstormy16_print_operand_address calls.
4227         * config/mips/mips.c (mips_print_operand): Update calls to
4228         output_address.
4229         (mips_print_operand_address): Add MODE argument.
4230         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
4231         to output_address.
4232         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
4233         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
4234         output_address.
4235         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
4236         (rx_print_operand): Update calls to output_address,
4237         rx_print_operand_address.
4238         * config/nds32/nds32.c (nds32_print_operand): Update calls to
4239         output_address.
4240         (nds32_print_operand_address): Add MODE argument.
4241         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
4242         output_address calls.
4243         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
4244         output_address call.
4245         (c6x_print_address_operand): Update calls to output_address.
4246         (c6x_print_operand_address): Pass mode to above.
4247         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
4248         (v850_print_operand): Pass mode to v850_print_operand_address,
4249         output_address.
4250         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
4251         (mmix_print_operand): Pass mode in output_address calls.
4252         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
4253         (sh_print_operand): Pass mem mode to output_address,
4254         sh_print_operand_address.
4255         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
4256         (cr16_print_operand): Pass mode to output_address,
4257         cr16_print_operand_address.
4258         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
4259         output_address.
4260         * config/microblaze/microblaze.c (print_operand): Pass mode to
4261         output_address.
4262         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
4263         output_address.
4264         (nios2_print_operand_address): Add MODE argument. Update call to
4265         nios2_print_operand_address.
4266         * config/s390/s390.c (print_operand): Pass mode to output_address.
4267         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
4268         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
4269         output_address.
4270         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
4271         Use instead of output_memory_reference_mode.
4272         (output_memory_reference_mode): Delete global.
4273         (arm_print_operand): Pass mem mode to output_address.
4274         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
4275         (m32r_print_operand): Pass mode to output_address.
4276         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
4277         argument.
4278         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
4279         * config/i386/i386.c (ix86_print_operand): Pass mode to
4280         output_address calls.
4281         (ix86_print_operand_address): Add MODE argument.
4282
4283 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4284
4285         PR middle-end/68251
4286         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
4287         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
4288         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
4289         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4290
4291 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4292
4293         PR rtl-optimization/67749
4294         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
4295         case before emitting the two blocks.  Instead modify the register
4296         in the corresponding final insn of the basic block.
4297
4298 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4299
4300         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
4301         assembler syntax.
4302         Support Solaris ld.
4303         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
4304
4305         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
4306         HAVE_INITFINI_ARRAY_SUPPORT.
4307         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
4308
4309         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
4310         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
4311         Don't check HAVE_AS_SPARC_NOBITS.
4312         Heed SECTION_NOTYPE.
4313
4314         * configure: Regenerate.
4315         * config.in: Regenerate.
4316
4317 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4318
4319         PR middle-end/68253
4320         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
4321
4322 2015-11-09  Richard Henderson  <rth@redhat.com>
4323
4324         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
4325         __SEG_GS, __SEG_TLS.
4326         (ix86_register_pragmas): Register address spaces __seg_fs,
4327         __seg_gs, __seg_tls.
4328         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
4329         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
4330         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
4331         * config/i386/i386.c (ix86_decompose_address): Likewise.
4332         (ix86_legitimate_address_p): Likewise.
4333         (memory_address_length): Likewise.  Check mem address space too.
4334         (ix86_print_operand): Use ix86_print_operand_address_as.
4335         (ix86_print_operand_address_as): Rename from
4336         ix86_print_operand_address, add new addr_space_t parameter.
4337         Validate that either the parameter or the ix86_address segment
4338         is default address space.  Handle ADDR_SPACE_SEG_TLS.
4339         (ix86_print_operand_address): New.
4340         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
4341         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
4342         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
4343         (ix86_addr_space_zero_address_valid): New.
4344         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4345         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
4346         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
4347         * config/i386/predicates.md (address_no_seg_operand): Likewise.
4348         (vsib_address_operand): Likewise.
4349         (address_mpx_no_base_operand): Likewise.
4350         (address_mpx_no_index_operand): Likewise.
4351         * doc/extend.texi (x86 Named Address Spaces): New section.
4352
4353         * config/i386/i386.c (ix86_check_no_addr_space): New.
4354         (decide_alg): Add have_as parameter.
4355         (alg_usable_p): Likewise; disable rep algorithms if set.
4356         (ix86_expand_set_or_movmem): Notice if either MEM has a
4357         non-default address space.
4358         (ix86_expand_strlen): Likewise.
4359         * config/i386/i386.md (strmov, strset): Likewise.
4360         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
4361         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
4362         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
4363         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
4364         *cmpstrnqi_1, *strlenqi_1): Likewise.
4365
4366         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
4367         (*movabs<mode>_2): Likewise.
4368
4369         * dwarf2out.c (modified_type_die): Pass the address space number
4370         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
4371         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
4372         * targhooks.c (default_addr_space_debug): New.
4373         * targhooks.h (default_addr_space_debug): Declare.
4374         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
4375         * doc/tm.texi: Rebuild.
4376
4377         * gimple.c (check_loadstore): Return false when 0 is a valid address.
4378         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
4379         null when 0 is valid in the source address space.
4380         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4381         * targhooks.c (default_addr_space_zero_address_valid): New.
4382         * targhooks.h (default_addr_space_zero_address_valid): Declare.
4383         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
4384         * doc/tm.texi: Rebuild.
4385
4386         * cselib.c (add_mem_for_addr): Compare address spaces when
4387         matching memories.
4388         (cselib_lookup_mem): Likewise.
4389         * fold-const.c (operand_equal_p): Check address spaces of
4390         pointer types before checking integer constants.
4391
4392         PR tree-opt/66768
4393         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
4394         the correct type for the base.
4395
4396 2015-11-09  Jeff Law  <law@redhat.com>
4397
4398         * tree-into-ssa.c (names_to_release): No longer static.
4399         * tree-into-ssa.h (names_to_release): Declare.
4400         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
4401         (release_free_names_and_compact_live_names): New function extracted
4402         from pass_release_ssa_names::execute.
4403         (pass_release_ssa_names::execute): Use it.
4404
4405 2015-11-09  Alan Modra  <amodra@gmail.com>
4406
4407         * gensupport.c (add_mnemonic_string): Make len param a size_t.
4408         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
4409         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
4410         return value.
4411
4412 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
4413
4414         PR rtl-optimization/68182
4415         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
4416         branch with only one successor just like unconditional branches.
4417
4418 2015-11-08  Jeff Law  <law@redhat.com>
4419
4420         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
4421         non-FSM path has no edges marked with EDGE_DFS_BACK.
4422         (ssa_redirect_edges): No longer call mark_loop_for_removal.
4423         (thread_single_edge, def_split_header_continue_p): Remove.
4424         (bb_ends_with_multiway_branch): Likewise.
4425         (thread_through_loop_header): Remove cases of threading from
4426         latch through the header.  Simplify knowing we won't thread
4427         the latch.
4428         (thread_through_all_blocks): Simplify knowing that only the FSM
4429         threader needs to handle backedges.
4430
4431 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4432
4433         * doc/extend.texi (type attributes): Document scalar_storage_order.
4434         (Structure-Packing Pragmas): Rename into...
4435         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
4436         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
4437         (Warnings): Document -Wno-scalar-storage-order.
4438         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
4439         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
4440         extract_bit_field and store_bit_field.
4441         (initialize_argument_information): Adjust call to store_expr.
4442         (load_register_parameters): Adjust call to extract_bit_field.
4443         * expmed.c (check_reverse_storage_order_support): New function.
4444         (check_reverse_float_storage_order_support): Likewise.
4445         (flip_storage_order): Likewise.
4446         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
4447         of the value if it is true.  Pass REVERSE to recursive call after
4448         adjusting the target offset.
4449         Do not use extraction or movstrict instruction if REVERSE is true.
4450         Pass REVERSE to store_fixed_bit_field.
4451         (store_bit_field): Add REVERSE parameter and pass to it to above.
4452         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
4453         store_split_bit_field and store_fixed_bit_field_1.
4454         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
4455         order of the value if it is true and adjust the target offset.
4456         (store_split_bit_field): Add REVERSE parameter and pass it to
4457         store_fixed_bit_field.  Adjust the target offset if it is true.
4458         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
4459         of the value if it is true.  Pass REVERSE to recursive call after
4460         adjusting the target offset.
4461         Do not use extraction or subreg instruction if REVERSE is true.
4462         Pass REVERSE to extract_fixed_bit_field.
4463         (extract_bit_field): Add REVERSE parameter and pass to it to above.
4464         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
4465         extract_split_bit_field and extract_fixed_bit_field_1.
4466         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
4467         order of the value if it is true and adjust the target offset.
4468         (extract_split_bit_field): Add REVERSE parameter and pass it to
4469         extract_fixed_bit_field.  Adjust the target offset if it is true.
4470         * expmed.h (flip_storage_order): Declare.
4471         (store_bit_field): Adjust prototype.
4472         (extract_bit_field): Likewise.
4473         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
4474         (emit_group_store): Adjust call to store_bit_field.
4475         (copy_blkmode_from_reg): Likewise.
4476         (copy_blkmode_to_reg): Likewise.
4477         (write_complex_part): Likewise.
4478         (read_complex_part): Likewise.
4479         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
4480         that it isn't true if the target is a register.
4481         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
4482         and flip the storage order of the value.
4483         <BIT_IOR_EXPR>: Flip the storage order of the value.
4484         (get_bit_range): Adjust call to get_inner_reference.
4485         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
4486         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
4487         with reverse storage order.
4488         (store_expr_with_bounds): Add REVERSE parameter and pass it to
4489         recursive calls and call to store_bit_field.  Force the value into a
4490         register if it is true and then flip the storage order of the value.
4491         (store_expr): Add REVERSE parameter and pass it to above.
4492         (categorize_ctor_elements_1): Adjust call to
4493         initializer_constant_valid_p.
4494         (store_constructor_field): Add REVERSE parameter and pass it to
4495         recursive calls and call to store_field.
4496         (store_constructor): Add REVERSE parameter and pass it to calls to
4497         store_constructor_field and store_expr.  Set it to true for an
4498         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
4499         (store_field): Add REVERSE parameter and pass it to recursive calls
4500         and calls to store_expr and store_bit_field.  Temporarily flip the
4501         storage order of the value with record type and integral mode and
4502         adjust the shift if it is true.
4503         (get_inner_reference): Add PREVERSEP parameter and set it to true
4504         upon encoutering a reference with reverse storage order.
4505         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
4506         (expand_constructor): Adjust call to store_constructor.
4507         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
4508         of the union type to store_expr in the MEM case and assert that it
4509         isn't set in the REG case.  Adjust call to store_field.
4510         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
4511         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
4512         get_inner_reference and extract_bit_field. Temporarily flip the
4513         storage order of the value with record type and integral mode and
4514         adjust the shift if it is true.  Flip the storage order of the value
4515         at the end if it is true.
4516         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
4517         get_inner_reference.  Do not fetch an inner reference if it is true.
4518         * expr.h (store_expr_with_bounds): Ajust prototype.
4519         (store_expr): Likewise.
4520         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
4521         REF_REVERSE_STORAGE_ORDER on the reference according to it.
4522         (optimize_bit_field_compare): Deal with reverse storage order.
4523         Adjust calls to get_inner_reference and make_bit_field_ref.
4524         (decode_field_reference): Add PREVERSEP parameter and adjust call to
4525         get_inner_reference.
4526         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
4527         to decode_field_reference and make_bit_field_ref.
4528         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
4529         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
4530         (fold_comparison): Adjust call to get_inner_reference.
4531         (split_address_to_core_and_offset): Adjust call to
4532         get_inner_reference.
4533         * gimple-expr.c (useless_type_conversion_p): Return false for array
4534         types with different TYPE_REVERSE_STORAGE_ORDER flag.
4535         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
4536         REF_REVERSE_STORAGE_ORDER flag.
4537         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
4538         * output.h (assemble_real): Adjust prototype.
4539         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
4540         * stor-layout.c (finish_record_layout): Propagate the
4541         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
4542         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
4543         (TYPE_SATURATING): Adjust.
4544         (REF_REVERSE_STORAGE_ORDER): Document.
4545         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
4546         set it to true upon encoutering a reference with reverse storage order.
4547         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
4548         * tree-inline.c (remap_gimple_op_r): Propagate the
4549         REF_REVERSE_STORAGE_ORDER flag.
4550         (copy_tree_body_r): Likewise.
4551         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
4552         store_expr.
4553         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
4554         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
4555         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4556         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
4557         REF_REVERSE_STORAGE_ORDER flag.
4558         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
4559         (gimple_canonical_types_compatible_p): Likewise.
4560         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
4561         (TYPE_SATURATING): Adjust.
4562         (REF_REVERSE_STORAGE_ORDER): New flag.
4563         (reverse_storage_order_for_component_p): New inline predicate.
4564         (storage_order_barrier_p): Likewise.
4565         (get_inner_reference): Adjust prototype.
4566         * varasm.c: Include expmed.h.
4567         (assemble_variable_contents): Adjust call to output_constant.
4568         (assemble_real): Add REVERSE parameter.  Flip the storage
4569         order of the value if REVERSE is true.
4570         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
4571         (assemble_constant_contents): Adjust call to output_constant.
4572         (output_constant_pool_2): Adjust call to assemble_real.
4573         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
4574         TYPE_REVERSE_STORAGE_ORDER.
4575         (initializer_constant_valid_p): Add REVERSE parameter.
4576         (output_constant): Add REVERSE parameter.
4577         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
4578         <REAL_TYPE>: Adjust call to assemble_real.
4579         <COMPLEX_TYPE>: Pass it to recursive calls.
4580         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
4581         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
4582         (struct oc_local_state): Add REVERSE field.
4583         (output_constructor_array_range): Adjust calls to output_constant.
4584         (output_constructor_regular_field): Likewise.
4585         (output_constructor_bitfield): Adjust call to output_constructor.
4586         Flip the storage order of the value if REVERSE is true.
4587         (output_constructor): Add REVERSE parameter.  Set it to true for an
4588         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
4589         output_constructor_bitfield.
4590         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
4591         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
4592         * builtins.c (get_object_alignment_2): Likewise.
4593         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
4594         and get_ref_base_and_extent.
4595         * dbxout.c (dbxout_expand_expr): Likewise.
4596         * dwarf2out.c (add_var_loc_to_decl): Likewise.
4597         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
4598         (loc_list_from_tree): Likewise.
4599         (fortran_common): Likewise.
4600         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
4601         get_ref_base_and_extent.
4602         (get_base_constructor): Likewise.
4603         (fold_const_aggregate_ref_1): Likewise.
4604         * gimple-laddress.c (pass_laddress::execute): Adjust call to
4605         get_inner_reference.
4606         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
4607         get_inner_reference and bail out on reverse storage order.
4608         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
4609         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
4610         build_ref_for_offset.
4611         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
4612         get_ref_base_and_extent.
4613         (ipa_polymorphic_call_context): Likewise.
4614         (extr_type_from_vtbl_ptr_store): Likewise.
4615         (check_stmt_for_type_change): Likewise.
4616         (get_dynamic_type): Likewise.
4617         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
4618         get_ref_base_and_extent.
4619         (compute_complex_assign_jump_func): Likewise.
4620         (get_ancestor_addr_info): Likewise.
4621         (compute_known_type_jump_func): Likewise.
4622         (determine_known_aggregate_parts): Likewise.
4623         (ipa_get_adjustment_candidate): Likewise.
4624         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
4625         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
4626         (build_ref_for_offset): Adjust prototype.
4627         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
4628         get_inner_reference.
4629         * tree-affine.c (tree_to_aff_combination): Adjust call to
4630         get_inner_reference.
4631         (get_inner_reference_aff): Likewise.
4632         * tree-data-ref.c (split_constant_offset_1): Likewise.
4633         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
4634         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
4635         get_inner_reference.
4636         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
4637         (dump_access): Print new fields.
4638         (create_access): Adjust call to get_ref_base_and_extent and set the
4639         REVERSE flag according to the result.
4640         (completely_scalarize_record): Set the REVERSE flag.
4641         (scalarize_elem): Add REVERSE parameter.
4642         (build_access_from_expr_1): Preserve storage order barriers.
4643         (build_accesses_from_assign): Likewise.
4644         (build_ref_for_offset): Add REVERSE parameter and set the
4645         REF_REVERSE_STORAGE_ORDER flag accordingly.
4646         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
4647         the REF_REVERSE_STORAGE_ORDER flag if there are components.
4648         (analyze_access_subtree): Likewise.
4649         (create_artificial_child_access): Set the REVERSE flag.
4650         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
4651         (turn_representatives_into_adjustments): Propagate REVERSE flag.
4652         (ipa_sra_check_caller): Adjust call to get_inner_reference.
4653         * tree-ssa-alias.c (ao_ref_base): Adjust call to
4654         get_ref_base_and_extent.
4655         (aliasing_component_refs_p): Likewise.
4656         (stmt_kills_ref_p_1): Likewise.
4657         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4658         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
4659         Return true if reverse storage order.
4660         <BIT_FIELD_REF>: Likewise.
4661         <COMPONENT_REF>: Likewise.
4662         <ARRAY_REF>: Likewise.
4663         <ARRAY_RANGE_REF>: Likewise.
4664         (split_address_cost): Likewise.  Bail out if reverse storage order.
4665         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
4666         get_inner_reference.  Bail out if reverse storage order.
4667         (bswap_replace): Adjust call to get_inner_reference.
4668         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
4669         the REF_REVERSE_STORAGE_ORDER flag.
4670         <BIT_FIELD_REF>: Likewise.
4671         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
4672         barriers.
4673         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
4674         to the REF_REVERSE_STORAGE_ORDER flag.
4675         <BIT_FIELD_REF>: Likewise.
4676         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
4677         (contains_storage_order_barrier_p): New predicate.
4678         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
4679         Punt on storage order barriers if necessary.
4680         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
4681         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
4682         call to get_ref_base_and_extent.
4683         (do_structure_copy): Likewise.
4684         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
4685         get_inner_reference.
4686         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
4687         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
4688         * ubsan.c (instrument_bool_enum_load): Likewise.
4689         (instrument_object_size): Likewise.
4690         * var-tracking.c (track_expr_p): Adjust call to
4691         get_ref_base_and_extent.
4692         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
4693         get_inner_reference.
4694         * config/s390/s390.c (s390_expand_atomic): Adjust call to
4695         store_bit_field.
4696         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
4697         extract_bit_field.
4698         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
4699
4700 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4701
4702         * config/sparc/sparc.opt (mfix-at697f): Add final period.
4703
4704 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
4705
4706         PR rtl-optimization/67864
4707         * common/config/i386/i386-common.c (ix86_option_optimization_table)
4708         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
4709         at -Os and up.
4710
4711 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4712
4713         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
4714         internal functions.
4715
4716 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4717
4718         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
4719         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
4720
4721 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4722
4723         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
4724         * internal-fn.c: Don't undef it here.
4725         * tree-core.h: Likewise.
4726
4727 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4728
4729         * builtins.c (fold_builtin_nan): Delete.
4730         (fold_builtin_memcmp): Remove case where both arguments are constant.
4731         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
4732         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
4733         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
4734         * fold-const-call.c: Include fold-const.h.
4735         (host_size_t_cst_p): New function.
4736         (build_cmp_result, fold_const_builtin_nan): Likewise.
4737         (fold_const_call_1): New function, split out from...
4738         (fold_const_call): ...here (for all three interfaces).  Handle
4739         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
4740
4741 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4742
4743         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
4744         (fold_builtin_1): Don't call them.
4745         * fold-const-call.c: Include tm.h.
4746         (fold_const_call_ss): New variant for integer-to-integer folds.
4747         (fold_const_call): Call it.
4748
4749 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4750
4751         * builtins.c (fold_builtin_classify): Move constant cases to...
4752         * fold-const-call.c (fold_const_call_ss): ...here.
4753
4754 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4755
4756         * builtins.h (c_getstr): Move to...
4757         * fold-const.h (c_getstr): ...here.
4758         * builtins.c (c_getstr): Move to...
4759         * fold-const.c (c_getstr): ...here.
4760
4761 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4762
4763         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
4764         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
4765
4766 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4767
4768         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
4769         the dominance info; free it if we can't.
4770         (pass_call_cdce::execute): Don't free the dominance info here.
4771
4772 2015-11-06  Jeff Law <law@redhat.com>
4773
4774         * tree-ssa-threadedge.c (dummy_simplify): Remove.
4775         (thread_around_empty_blocks): Remove backedge_seen_p argument.
4776         If we thread to a backedge, then return false.  Update recursive
4777         call to eliminate backedge_seen_p argument.
4778         (thread_through_normal_block): Remove backedge_seen_p argument.
4779         Remove backedge_seen_p argument from calls to
4780         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
4781         If we thread to a backedge, then return 0.
4782         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
4783         pass it to thread_through_normal_block or thread_through_empty_blocks.
4784         For joiner handling, if we see a backedge, do not try normal
4785         threading.
4786
4787 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4788
4789         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
4790         * graphite-poly.c (new_scop): Initialize original_schedule.
4791         (free_scop): Free original_schedule.
4792         * graphite-poly.h (struct scop): Add field original_schedule.
4793         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
4794         (build_poly_scop): Call build_scop_original_schedule.
4795
4796 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4797
4798         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
4799         (build_pbb_minimal_scattering_polyhedrons): New.
4800         (build_scop_scattering): Remove.
4801         (build_scop_minimal_scattering): New.
4802         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
4803         (build_poly_scop): Call build_scop_minimal_scattering.
4804
4805 2015-11-06  Jeff Law <law@redhat.com>
4806
4807         * cfg-flags.def (IGNORE): New edge flag.
4808         * tree-vrp.c (identify_jump_threads): Mark and clear edges
4809         scheduled for removal with EDGE_IGNORE around call into
4810         jump threader.  Do no thread across edges with EDGE_IGNORE,
4811         but do allow threading across those with EDGE_DFS_BACK.
4812
4813 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
4814
4815         * doc/md.texi (multi-alternative constraints): Don't document
4816         alternatives inherently tied to reload for the user documentation.
4817
4818 2015-11-06  Michael Collison  <michael.collison@linaro.org>
4819             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4820
4821         Revert:
4822         2015-08-01  Michael Collison  <michael.collison@linaro.org
4823                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4824
4825         * config/arm/arm.md (*arm_smin_cmp): New pattern.
4826         (*arm_umin_cmp): Likewise.
4827
4828 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
4829
4830         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
4831         * omp-low.c (check_omp_nesting_restrictions): Update for the
4832         various new OpenMP 4.5 nesting restrictions, clarified
4833         nesting glossary, closely nested region relationship clarified
4834         to mean explicit or implicit parallel regions (target/teams),
4835         use %</%> or %qs where appropriate.
4836
4837 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4838             Sebastian Pop  <s.pop@samsung.com>
4839
4840         * graphite-scop-detection.c (loop_is_valid_scop): Call
4841         optimize_loop_nest_for_speed_p.
4842
4843 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4844             Sebastian Pop  <s.pop@samsung.com>
4845
4846         * graphite-optimize-isl.c (optimize_isl): Call
4847         isl_options_set_schedule_maximize_band_depth.
4848
4849 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4850             Sebastian Pop  <s.pop@samsung.com>
4851
4852         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
4853         and exit edges should not be a part of irreducible loop.
4854         (scop_detection::can_represent_loop_1): Loops should not be
4855         irreducible.
4856         (scop_detection::harmful_stmt_in_region): All the basic block
4857         should belong to reducible loops.
4858
4859 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
4860
4861         * config/aarch64/aarch64-simd-builtins.def: Update builtins
4862         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
4863         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
4864         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
4865         (aarch64_tbx4v8qi): Rename to...
4866         aarch64_tbx4<mode>): ... this.
4867         (aarch64_qtbl3<mode>): New pattern.
4868         (aarch64_qtbx3<mode>): New pattern.
4869         (aarch64_qtbl4<mode>): New pattern.
4870         (aarch64_qtbx4<mode>): New pattern.
4871         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
4872         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
4873         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
4874         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
4875         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
4876         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
4877         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
4878         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
4879         functions.
4880
4881 2015-11-06  Mike Stump  <mikestump@comcast.net>
4882
4883         PR debug/66728
4884         * dwarf2out.c (get_full_len): Return a value based upon the actual
4885         precision needed for the value.
4886         (add_const_value_attribute): Use a maximal wide-int for
4887         CONST_WIDE_INTs, not VOIDmode.
4888         (output_die): Don't ever output NULL with printf.
4889
4890         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
4891         BLKmode nor VOIDmode values.
4892
4893 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
4894
4895         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
4896         and "range2".
4897         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
4898         * diagnostic-core.h (warning_at_rich_loc): New declaration.
4899         (error_at_rich_loc): New declaration.
4900         (permerror_at_rich_loc): New declaration.
4901         (inform_at_rich_loc): New declaration.
4902         * diagnostic-show-locus.c (adjust_line): Delete.
4903         (struct point_state): New struct.
4904         (class colorizer): New class.
4905         (class layout_point): New class.
4906         (class layout_range): New class.
4907         (struct line_bounds): New.
4908         (class layout): New class.
4909         (colorizer::colorizer): New ctor.
4910         (colorizer::~colorizer): New dtor.
4911         (layout::layout): New ctor.
4912         (layout::print_source_line): New method.
4913         (layout::print_annotation_line): New method.
4914         (layout::get_state_at_point): New method.
4915         (layout::get_x_bound_for_row): New method.
4916         (diagnostic_show_locus): Reimplement in terms of class layout.
4917         (diagnostic_print_caret_line): Delete.
4918         * diagnostic.c (diagnostic_initialize): Replace
4919         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
4920         (diagnostic_set_info_translated): Convert param from location_t
4921         to rich_location *.  Eliminate calls to set_location on the
4922         message in favor of storing the rich_location ptr there.
4923         (diagnostic_set_info): Convert param from location_t to
4924         rich_location *.
4925         (diagnostic_build_prefix): Break out array into...
4926         (diagnostic_kind_color): New variable.
4927         (diagnostic_get_color_for_kind): New function.
4928         (diagnostic_report_diagnostic): Colorize the option_text
4929         using the color for the severity.
4930         (diagnostic_append_note): Update for change in signature of
4931         diagnostic_set_info.
4932         (diagnostic_append_note_at_rich_loc): New function.
4933         (emit_diagnostic): Update for change in signature of
4934         diagnostic_set_info.
4935         (inform): Likewise.
4936         (inform_at_rich_loc): New function.
4937         (inform_n): Update for change in signature of diagnostic_set_info.
4938         (warning): Likewise.
4939         (warning_at): Likewise.
4940         (warning_at_rich_loc): New function.
4941         (warning_n): Update for change in signature of diagnostic_set_info.
4942         (pedwarn): Likewise.
4943         (permerror): Likewise.
4944         (permerror_at_rich_loc): New function.
4945         (error): Update for change in signature of diagnostic_set_info.
4946         (error_n): Likewise.
4947         (error_at): Likewise.
4948         (error_at_rich_loc): New function.
4949         (sorry): Update for change in signature of diagnostic_set_info.
4950         (fatal_error): Likewise.
4951         (internal_error): Likewise.
4952         (internal_error_no_backtrace): Likewise.
4953         (source_range::debug): New function.
4954         * diagnostic.h (struct diagnostic_info): Eliminate field
4955         "override_column".  Add field "richloc".
4956         (struct diagnostic_context): Add field "colorize_source_p".
4957         (diagnostic_override_column): Delete.
4958         (diagnostic_set_info): Convert param from location_t to
4959         rich_location *.
4960         (diagnostic_set_info_translated): Likewise.
4961         (diagnostic_append_note_at_rich_loc): New function.
4962         (diagnostic_num_locations): New function.
4963         (diagnostic_expand_location): Get the location from the
4964         rich_location.
4965         (diagnostic_print_caret_line): Delete.
4966         (diagnostic_get_color_for_kind): New declaration.
4967         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
4968         (error_cb): Update for change in signature of "error" callback.
4969         (fatal_at): Likewise.
4970         (warning_at): Likewise.
4971         * input.c (linemap_client_expand_location_to_spelling_point): New.
4972         * pretty-print.c (text_info::set_range): New method.
4973         (text_info::get_location): New method.
4974         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
4975         (struct text_info): Eliminate "locations" array in favor of
4976         "m_richloc", a rich_location *.
4977         (textinfo::set_location): Add a "caret_p" param, and reimplement
4978         in terms of a call to set_range.
4979         (textinfo::get_location): Eliminate inline implementation in favor of
4980         an out-of-line reimplementation.
4981         (textinfo::set_range): New method.
4982         * rtl-error.c (diagnostic_for_asm): Update for change in signature
4983         of diagnostic_set_info.
4984         * tree-diagnostic.c (default_tree_printer): Update for new
4985         "caret_p" param for textinfo::set_location.
4986         * tree-pretty-print.c (percent_K_format): Likewise.
4987
4988 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4989
4990         Properly apply.
4991         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4992         * config/aarch64/aarch64.c
4993         (aarch64_can_use_per_function_literal_pools_p): New.
4994         (aarch64_use_blocks_for_constant_p): Adjust declaration
4995         and use aarch64_can_use_function_literal_pools_p.
4996         (aarch64_select_rtx_section): Update.
4997
4998 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4999
5000         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
5001         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
5002         (arm_output_multireg_pop): Likewise.
5003         (output_move_double):  Likewise.
5004         (output_move_quad):  Likewise.
5005         (output_return_instruction): Likewise.
5006         (arm_print_operand): Remove support for %( and %. print modifiers.
5007         (arm_output_shift): Make unified asm.
5008         (arm_declare_function_name): Likewise.
5009         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
5010         (ASM_APP_OFF): Adjust.
5011         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
5012         (ASM_OUTPUT_REG_POP): Likewise.
5013         * config/arm/arm.md: Adjust uses of %., %(, %)
5014         * config/arm/sync.md: Likewise.
5015         * config/arm/thumb2.md: Likewise.
5016         * config/arm/ldmstm.md: Regenerate.
5017         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
5018         * doc/invoke.texi (masm-unified-syntax): Update documentation.
5019
5020 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5021
5022         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
5023
5024 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5025
5026         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
5027         add OEP_MATCH_SIDE_EFFECTS.
5028         * fold-const.c (operand_equal_p): Update documentation; handle
5029         OEP_MATCH_SIDE_EFFECTS.
5030         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
5031         OEP_MATCH_SIDE_EFFECTS.
5032
5033 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
5034             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5035
5036         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
5037         * config/aarch64/aarch64-protos.h: Declare.
5038         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
5039         frsqrts.
5040         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
5041         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
5042         code when applicable.
5043         * config/aarch64/aarch64.md: Added enum entries.
5044         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
5045
5046 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5047
5048         PR ipa/68057
5049         PR ipa/68220
5050         * ipa-polymorphic-call.c
5051         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
5052         issue when offset is out of range.
5053         (contains_type_p): Fix out of range check, clear dynamic flag.
5054
5055 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
5056
5057         * config.gcc (e6500): Fix cpu_is_64bit typo.
5058
5059 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
5060
5061         * tree-sra.c (completely_scalarize): Properly handle negative array
5062         indices using offset_int.
5063
5064 2015-11-06  Richard Biener  <rguenther@suse.de>
5065
5066         * alloc-pool.h (object_allocator::allocate): Default-initialize
5067         object.
5068
5069 2015-11-06  Richard Biener  <rguenther@suse.de>
5070
5071         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
5072         * lra.c (init_reg_info): Truncate copy_vec instead of
5073         re-allocating a new one and leaking the old.
5074         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
5075         bb_infos vec.
5076         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
5077         * postreload-gcse.c (free_mem): Free modify_mem_list and
5078         canon_modify_mem_list.
5079
5080 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
5081
5082         PR tree-optimization/68145
5083         * tree-vect-stmts.c (vectorizable_operation): Fix
5084         determination for booleans.
5085
5086 2015-11-06  Tom de Vries  <tom@codesourcery.com>
5087
5088         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
5089         cond_jump, instead of split after last nondebug insn before cond_jump.
5090         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
5091         returning.
5092
5093 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5094
5095         PR target/68088
5096         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
5097         subregs from accumulator and make sure it's a register.
5098
5099 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
5100
5101         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
5102         low part to scalar.
5103         (reduc_uplus_<mode>): Remove.
5104         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
5105         loongson_extract_lo_<mode>.
5106         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
5107         reduc_smax_<mode>, reduc_smax_<mode>, use vec
5108         loongson_extract_lo_<mode>.
5109         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
5110
5111 2015-11-06  Richard Biener  <rguenther@suse.de>
5112
5113         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
5114         members.
5115         (vect_stmt_in_region_p): Declare.
5116         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
5117         (destroy_bb_vec_info): Likewise.
5118         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
5119         (vect_get_and_check_slp_defs): Likewise.
5120         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
5121         (vect_slp_bb): Likewise.
5122         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
5123         in terms of vect_stmt_in_region_p.
5124         (vect_pattern_recog): Iterate over the BB region.
5125         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
5126         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
5127         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
5128         * config/i386/i386.c: Include gimple-iterator.h.
5129         * config/aarch64/aarch64.c: Likewise.
5130
5131 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
5132
5133         PR rtl-optimization/67753
5134         PR rtl-optimization/64164
5135         * function.c (assign_parm_setup_block): Avoid allocating a
5136         stack slot if we don't have an ABI-reserved one.  Emit the
5137         copy to target_reg in the conversion seq if the copy from
5138         entry_parm is in it too.  Don't use the conversion seq to copy
5139         a PARALLEL to a REG or a CONCAT.
5140
5141 2015-11-06  Richard Biener  <rguenther@suse.de>
5142
5143         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
5144         equal_keys.
5145
5146 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
5147             Thomas Schwinge  <thomas@codesourcery.com>
5148             James Norris  <jnorris@codesourcery.com>
5149
5150
5151         * gimplify.c (gimplify_scan_omp_clauses): Add support for
5152         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
5153         (gimplify_adjust_omp_clauses): Likewise.
5154         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
5155         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
5156         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
5157         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
5158         (omp_clause_code_name): Likewise.
5159         (walk_tree_1): Handle OMP_CLAUSE_TILE.
5160         * tree.h (OMP_TILE_LIST): New macro.
5161
5162 2015-11-05  Martin Sebor  <msebor@redhat.com>
5163
5164         PR c++/67942
5165         * doc/invoke.texi (-Wplacement-new): Document new option.
5166
5167 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
5168
5169         PR tree-optimization/65963
5170         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
5171         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
5172
5173 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
5174
5175         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
5176         (noce_convert_multiple_sets): Likewise.
5177         (noce_process_if_block): Call them.
5178
5179 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5180
5181         * gimple-fold.c: Include omp-low.h.
5182         (fold_internal_goacc_dim): New.
5183         (gimple_fold_call): Call it.
5184
5185 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
5186             Ilya Verbin  <ilya.verbin@intel.com>
5187
5188         * builtin-types.def
5189         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
5190         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
5191         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
5192         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
5193         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
5194         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
5195         (struct cgraph_simd_clone_arg): Adjust comment.
5196         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
5197         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
5198         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
5199         to GOMP_target_data_ext.
5200         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
5201         to GOMP_target_update_ext.
5202         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
5203         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
5204         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
5205         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
5206         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
5207         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
5208         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
5209         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
5210         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
5211         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
5212         * tree-core.h (enum omp_clause_schedule_kind): Add
5213         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
5214         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
5215         OMP_CLAUSE_SCHEDULE_LAST value.
5216         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
5217         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
5218         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
5219         OMP_FOR_CHECK.  Remove comment.
5220         * tree-pretty-print.c (dump_omp_clause): Handle
5221         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
5222         Simplify.  Print schedule clause modifiers.
5223         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
5224         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
5225         cases.
5226         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
5227         (omp_default_clause): Tweak for
5228         private/firstprivate/is_device_ptr variables on target
5229         construct and use_device_ptr on target data.
5230         (omp_check_private): Likewise.
5231         (omp_notice_variable): For references check whether what it refers
5232         to has mappable type, rather than the reference itself.
5233         (omp_is_private): Diagnose linear iteration variables on non-simd
5234         constructs.
5235         (omp_no_lastprivate): Return true only for Fortran.
5236         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
5237         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
5238         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
5239         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
5240         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
5241         lastprivate and linear when combined with distribute.  Gimplify
5242         variable low-bound for array reduction.  Look through
5243         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
5244         reductions.
5245         (gimplify_adjust_omp_clauses_1): For implicit references to
5246         variables with reference type and when not ref to scalar or
5247         ref to pointer, map what they refer to using tofrom and
5248         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
5249         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
5250         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
5251         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
5252         Diagnose the same var on both firstprivate and lastprivate on
5253         distribute construct.
5254         (gimplify_omp_for): Fix up handling of predetermined
5255         lastprivate or linear iter vars when combined with distribute.
5256         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
5257         functions.
5258         (gimplify_omp_workshare): Call optimize_target_teams.
5259         * omp-low.c (struct omp_region): Add sched_modifiers field.
5260         (struct omp_for_data): Likewise.
5261         (omp_any_child_fn_dumped): New variable.
5262         (extract_omp_for_data): Fill in sched_modifiers, and mask out
5263         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
5264         from sched_kind.
5265         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
5266         bits of OMP_CLAUSE_SCHED_KIND.
5267         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
5268         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
5269         for array section reductions.
5270         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
5271         for distribute parallel for, if there are lastprivate clauses on the
5272         for.
5273         (lower_rec_input_clauses): Handle non-zero low-bound on array
5274         section reductions.
5275         (lower_reduction_clauses): Likewise.
5276         (lower_send_clauses): Look through POINTER_PLUS_EXPR
5277         for array section reductions.
5278         (expand_parallel_call): Use nonmonotonic entrypoints for
5279         nonmonotonic: dynamic/guided.
5280         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
5281         child_fn if current_function_decl has assembler name set, but child_fn
5282         does not.  Dump the header and IL of the child function when not in SSA
5283         form.
5284         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
5285         arguments to BUILT_IN_GOMP_TARGET.
5286         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
5287         Initialize the extra _looptemp_ clause to fd->loop.n2.
5288         (expand_omp_for): Use nonmonotonic entrypoints for
5289         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
5290         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
5291         again if we have dumped any child functions.
5292         (lower_omp_for_lastprivate): Determine the right count variable
5293         for distribute simd, or distribute parallel for{, simd}.
5294         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
5295         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
5296         support.
5297         (simd_clone_clauses_extract): Handle variable step
5298         for references and arguments passed by reference.
5299         (simd_clone_mangle): Mangle ref/uval/val variable steps.
5300         (simd_clone_adjust_argument_types): Handle
5301         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
5302         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
5303         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
5304         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
5305         (simd_clone_linear_addend): New function.
5306         (simd_clone_adjust): Handle variable step like similarly
5307         to constant step, use simd_clone_linear_addend to determine
5308         the actual step at runtime.
5309
5310 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5311
5312         * target.def (goacc.dim_limit): New hook.
5313         * targhooks.h (default_goacc_dim_limit): Declare.
5314         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
5315         * doc/tm.texi: Rebuilt.
5316         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
5317         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
5318         (default_goacc_dim_limit): New.
5319         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5320         (nvptx_goacc_dim_limit) New.
5321         (TARGET_GOACC_DIM_LIMIT): Override.
5322         * tree-vrp.c: Include omp-low.h, target.h.
5323         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
5324         IFN_GOACC_DIM_POS.
5325
5326 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5327
5328         * tree-vect-generic.c (do_compare): Use -1 for true
5329         result instead of 1.
5330
5331 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5332
5333         * config/aarch64/aarch64.c
5334         (aarch64_can_use_per_function_literal_pools_p): New.
5335         (aarch64_use_blocks_for_constant_p): Adjust declaration
5336         and use aarch64_can_use_function_literal_pools_p.
5337         (aarch64_select_rtx_section): Update.
5338
5339 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5340
5341         * targhooks.c (default_get_mask_mode): Use BLKmode in
5342         case target doesn't support required vector mode.
5343         * stor-layout.c (layout_type); Check for BLKmode.
5344
5345 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5346             Sebastian Pop  <s.pop@samsung.com>
5347
5348         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
5349         Remove use of parameter_rename_map.
5350         (copy_def): Remove.
5351         (copy_internal_parameters): Remove.
5352         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
5353         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
5354         (free_sese_info): Do not free parameter_rename_map.
5355         (set_rename): Do not use parameter_rename_map.
5356         (rename_uses): Update call to set_rename.
5357         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
5358         * sese.h (parameter_rename_map_t): Remove.
5359         (struct sese_info_t): Remove field parameter_rename_map.
5360
5361 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5362             Sebastian Pop  <s.pop@samsung.com>
5363
5364         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
5365         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
5366         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
5367         anonymous namespace.
5368         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
5369         (isl_id_for_pbb): Use a buffer of size 10.
5370         (isl_id_for_ssa_name): Same.
5371         * sese.c (set_rename): Add more dumps.
5372
5373 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5374
5375         * omp-low.c (struct omp_context): Remove reduction_map field.
5376         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
5377         (new_omp_context, delete_omp_context, scan_omp_target): Remove
5378         reduction_map handling.
5379         (lower_omp_target): Remove obsolete openacc reduction handling.
5380
5381 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5382
5383         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
5384
5385 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5386             Cesar Philippidis  <cesar@codesourcery.com>
5387
5388         * config/nvptx/nvptx.c: Include gimple headers.
5389         (worker_red_size, worker_red_align, worker_red_name,
5390         worker_red_sym): New.
5391         (nvptx_option_override): Initialize worker reduction buffer.
5392         (nvptx_file_end): Write out worker reduction buffer var.
5393         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
5394         nvptx_expand_cmp_swap): New builtin expanders.
5395         (enum nvptx_builtins): New.
5396         (nvptx_builtin_decls): New.
5397         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
5398         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5399         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
5400         nvptx_lockless_update): New helpers.
5401         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
5402         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
5403         (nvptx_goacc_reduction): New.
5404         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
5405         TARGET_BUILTIN_DECL): Override.
5406         (TARGET_GOACC_REDUCTION): Override.
5407
5408 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5409             Cesar Philippidis  <cesar@codesourcery.com>
5410
5411         * internal-fn.def (GOACC_REDUCTION): New.
5412         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
5413         * internal-fn.c (expand_GOACC_REDUCTION): New.
5414         * target.def (goacc.reduction): New OpenACC hook.
5415         * targhooks.h (default_goacc_reduction): Declare.
5416         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
5417         * doc/tm.texi: Rebuilt.
5418         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
5419         scan_sharing_clauses): Remove oacc reduction handling here.
5420         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
5421         (oacc_lower_reduction_var_helper): Delete.
5422         (lower_oacc_reductions): New.
5423         (lower_reduction_clauses): Don't handle OpenACC reductions here.
5424         (lower_oacc_head_tail): Call lower_oacc_reductions.
5425         (oacc_gimple_assign, oacc_init_reduction_array,
5426         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
5427         oacc_process_reduction_data): Delete.
5428         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
5429         dummy OpenACC gang reduction for reductions at outer level.
5430         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
5431         (default_goacc_reduction): New.
5432         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
5433
5434 2015-11-04  Martin Liska  <mliska@suse.cz>
5435
5436         * cgraphunit.c (cgraph_node::expand_thunk): Call
5437         allocate_struct_function before init_function_start.
5438         (cgraph_node::expand): Use push_cfun and pop_cfun.
5439         * config/i386/i386.c (ix86_code_end): Call
5440         allocate_struct_function before init_function_start.
5441         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
5442         * function.c (init_function_start): Move preamble to all
5443         callers.
5444         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
5445         (execute_one_pass): Handle newly added TODO_discard_function.
5446         (execute_pass_list_1): Terminate if cfun equals to NULL.
5447         (execute_pass_list): Do not push and pop cfun, expect that
5448         cfun is set.
5449         * tree-pass.h (TODO_discard_function): Define.
5450
5451 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
5452
5453         * cfganal.c (inverted_post_order_compute): Remove conditional
5454         compilation, use flag_checking.
5455         * config.in: Regenerate.
5456         * configure: Regenerate.
5457         * configure.ac: Remove ENABLE_CHECKING.
5458         * genconditions.c: Do not #undef ENABLE_CHECKING.
5459         * sese.h (bb_in_region): Comment out broken check.
5460         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
5461         conditional compilation, use flag_checking.
5462
5463 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5464
5465         PR tree-optimization/67742
5466         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
5467         field.
5468         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
5469         (create_variable_info_for_1): Add and handle handle_param parameter.
5470         Add restrict handling.
5471         (create_variable_info_for): Call create_variable_info_for_1 with extra
5472         arg.
5473         (make_param_constraints): Drop restrict_name parameter.  Ignore
5474         vi->only_restrict_pointers.
5475         (intra_create_variable_infos): Call create_variable_info_for_1 with
5476         extra arg.  Remove restrict handling.  Call make_param_constraints with
5477         one fewer arg.
5478
5479 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5480
5481         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
5482         variable.
5483
5484 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5485
5486         * config/arm/coff.h: Remove.
5487
5488 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
5491         check for aggregate types and beef up comment for mode check.
5492
5493 2015-11-03  Richard Biener  <rguenther@suse.de>
5494
5495         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
5496         data references here.
5497         * tree-vect-loop.c: Include cgraph.h.
5498         (vect_analyze_loop_2): Collect data references here.
5499         * tree-vect-slp.c (find_bb_location): Inline ...
5500         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
5501         Factor in vect_slp_transform_bb.
5502         (vect_slp_transform_bb): Removed.
5503         (vect_slp_analyze_bb_1): Collect data references here.
5504         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
5505         vect_slp_bb.
5506         * tree-vectorizer.h (vect_slp_bb): Declare.
5507         (vect_slp_analyze_bb): Remove.
5508         (vect_slp_transform_bb): Remove.
5509         (find_bb_location): Remove.
5510         (vect_analyze_data_refs): Remove stmt count reference parameter.
5511
5512 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
5513
5514         * multiple_target.c (create_dispatcher_calls): Add target check
5515         on ifunc.
5516         (create_target_clone): Change assembler name for versioned declarations.
5517
5518 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
5519             Chung-Lin Tang  <cltang@codesourcery.com>
5520
5521         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
5522         * omp-low.c (check_omp_nesting_restrictions): Allow
5523         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
5524         contexts.
5525
5526 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
5527
5528         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
5529         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
5530         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
5531         builtin.
5532         (vmulxq_f32): Likewise.
5533         (vmulx_f64): New.
5534         (vmulxq_f64): Rewrite to call fmulx builtin.
5535         (vmulxs_f32): Likewise.
5536         (vmulxd_f64): Likewise.
5537         (vmulx_lane_f32): Remove.
5538         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
5539
5540 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
5541
5542         * config/aarch64/aarch64.md (*movhf_aarch64): Use
5543         aarch64_reg_or_fp_zero for second operand.
5544
5545 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
5546
5547         * gimple-expr.c: Include hash-set.h and rtl.h.
5548         (mark_addressable_queue): New var.
5549         (mark_addressable): Factor actual marking into...
5550         (mark_addressable_1): ... this.  Queue it up during expand.
5551         (mark_addressable_2): New.
5552         (flush_mark_addressable_queue): New.
5553         * gimple-expr.h (flush_mark_addressable_queue): Declare.
5554         * cfgexpand.c: Include gimple-expr.h.
5555         (pass_expand::execute): Flush mark_addressable queue.
5556
5557 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
5558
5559         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
5560         bb_no_side_effects_p tests...
5561         (tree_ssa_ifcombine_bb): ... here.
5562
5563         PR tree-optimization/68083
5564         * tree-ssa-ifcombine.c: Include tree-ssa.h.
5565         (bb_no_side_effects_p): Test for undefined uses too.
5566         * tree-ssa.c (gimple_uses_undefined_value_p): New.
5567         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
5568
5569 2015-11-02  Jeff Law <law@redhat.com>
5570
5571         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
5572         cases where the loop latch edge is in the middle of an FSM path.
5573
5574 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5575
5576         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
5577         (make_param_constraints): ... this.  Add and handle restrict_name
5578         parameter.  Handle is_full_var case.
5579         (intra_create_variable_infos): Use make_param_constraints.
5580
5581 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5582
5583         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
5584         make_copy_constraint call with make_constraint_from call.
5585
5586 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
5587
5588         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
5589         PIE executables.
5590
5591 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
5592
5593         * builtins.h (fold_fma): Move to fold-const-call.h.
5594         * builtins.c: Include fold-const-call.h.
5595         (mathfn_built_in_2): New function, split out from...
5596         (mathfn_built_in_1): ...here.
5597         (do_real_to_int_conversion, fold_const_builtin_pow)
5598         (fold_const_builtin_logb, fold_const_builtin_significand)
5599         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
5600         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
5601         (fold_builtin_sincos): Use fold_const_call to handle constants.
5602         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
5603         checks for ERROR_MARK.  Use fold_const_call to handle constant
5604         folds for math functions.
5605         (fold_fma): Move to fold-const-call.c.
5606         * fold-const.c: Include fold-const-call.h.
5607         * Makefile.in (OBJS): Add fold-const-call.o.
5608         (PLUGIN_HEADERS): Add fold-const-call.h.
5609         * realmpfr.h (real_from_mpfr): Allow the format to be specified
5610         directly.
5611         * realmpfr.c (real_from_mpfr): Likewise.
5612         * fold-const-call.h, fold-const-call.c: New files.
5613
5614 2015-11-02  Julian Brown  <julian@codesourcery.com>
5615
5616         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
5617         brackets and semicolon.
5618
5619 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
5620
5621         Revert:
5622         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
5623
5624         PR tree-optimization/65963
5625         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
5626         LSHIFT_EXPRs as equivalent MULT_EXPRs.
5627
5628 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
5629
5630         PR middle-end/68166
5631         * fold-const.c: Include "md5.h".
5632
5633 2015-11-01  Jeff Law <law@redhat.com>
5634
5635         * vmsdbgout.c: Revert unused header file reduction patch.
5636
5637         * config/mcore/mcore.c: Include regs.h.
5638
5639 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5640
5641         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
5642
5643 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5644
5645         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
5646         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
5647         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
5648
5649 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
5650
5651         * ggc-common.c: Restore needed header for checking=release.
5652
5653 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5654
5655         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
5656
5657 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5658
5659         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
5660         existing varinfo for arguments.
5661
5662 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5663
5664         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
5665         create_function_info_for.  Dump constraints generated during
5666         create_function_info_for. Move intra_create_variable_infos call and
5667         function-return-values-escape bit to ...
5668         (create_function_info_for): ... here, and merge
5669         intra_create_variable_infos call with argument loop.  Add and handle
5670         nonlocal_p parameter.
5671
5672 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5673
5674         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
5675         updating is alap, and seperated from preceding code.  Make sure
5676         insert_vi_for_tree is seperated from surrounding code.
5677
5678 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5679
5680         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
5681
5682 2015-10-30  Jeff Law <law@redhat.com>
5683             Nathan Sidwell  <nathan@acm.org>
5684
5685         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
5686         args.
5687         (MOVE_MAX): Set to 8.
5688
5689 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
5690
5691         * cgraph.c: Include context.h for offloading.
5692         * varpool.c: Include context.h and omp-low.h.
5693
5694 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
5695
5696         * rtl.h (contains_symbol_ref_p): Declare.
5697         (SYMBOL_REF_P): Define.
5698         * rtlanal.c (contains_symbol_ref_p: New function.
5699         * lra-constraints.c (contains_symbol_ref_p): Remove.
5700         * var-tracking.c (contains_symbol_ref): Remove.
5701         (track_expr_p): Use contains_symbol_ref_p instead of
5702         contains_symbol_ref.
5703
5704 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5705
5706         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
5707         * fold-const.c (get_array_ctor_element_at_index): New.
5708         (fold): Remove binary-search through CONSTRUCTOR, call previous.
5709
5710         * fold-const.h (get_array_ctor_element_at_index): New.
5711
5712 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
5713
5714         * Makefile.in (OBJS): Add multiple_target.o.
5715         * attrib.c (make_attribute): Moved from config/i386/i386.c
5716         * config/i386/i386.c (make_attribute): Deleted.
5717         * multiple_target.c (create_dispatcher_calls): New.
5718         (get_attr_len): Ditto.
5719         (get_attr_str): Ditto.
5720         (separate_attrs): Ditto.
5721         (is_valid_asm_symbol): Ditto.
5722         (create_new_asm_name): Ditto.
5723         (create_target_clone): Ditto.
5724         (expand_target_clones): Ditto.
5725         (ipa_target_clone): Ditto.
5726         (ipa_dispatcher_calls): Ditto.
5727         * passes.def (pass_target_clone): Two new ipa passes.
5728         * tree-pass.h (make_pass_target_clone): Ditto.
5729         * doc/extend.texi (target_clones): New attribute description.
5730
5731 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
5732
5733         PR rtl-optimization/68106
5734         * lra-remat.c (input_regno_present_p): Process hard regs
5735         explicitly present in machine description insns.
5736         (call_used_input_regno_present_p): Ditto.
5737         (calculate_gen_cands): Ditto.
5738         (do_remat): Ditto.
5739
5740 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
5741
5742         * config/arm/neon-testgen.ml: Fix comment typo.
5743
5744 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5745
5746         * rtlanal.c (reg_set_p): Expand function comment.
5747
5748 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
5749
5750         * alias.c: Remove unused headers.
5751         * asan.c: Likewise.
5752         * attribs.c: Likewise.
5753         * auto-inc-dec.c: Likewise.
5754         * auto-profile.c: Likewise.
5755         * bb-reorder.c: Likewise.
5756         * bitmap.c: Likewise.
5757         * bt-load.c: Likewise.
5758         * builtins.c: Likewise.
5759         * caller-save.c: Likewise.
5760         * calls.c: Likewise.
5761         * ccmp.c: Likewise.
5762         * cfg.c: Likewise.
5763         * cfganal.c: Likewise.
5764         * cfgbuild.c: Likewise.
5765         * cfgcleanup.c: Likewise.
5766         * cfgexpand.c: Likewise.
5767         * cfghooks.c: Likewise.
5768         * cfgloop.c: Likewise.
5769         * cfgloopanal.c: Likewise.
5770         * cfgloopmanip.c: Likewise.
5771         * cfgrtl.c: Likewise.
5772         * cgraph.c: Likewise.
5773         * cgraphbuild.c: Likewise.
5774         * cgraphclones.c: Likewise.
5775         * cgraphunit.c: Likewise.
5776         * cilk-common.c: Likewise.
5777         * combine-stack-adj.c: Likewise.
5778         * combine.c: Likewise.
5779         * compare-elim.c: Likewise.
5780         * convert.c: Likewise.
5781         * coverage.c: Likewise.
5782         * cppbuiltin.c: Likewise.
5783         * cprop.c: Likewise.
5784         * cse.c: Likewise.
5785         * cselib.c: Likewise.
5786         * data-streamer-in.c: Likewise.
5787         * data-streamer-out.c: Likewise.
5788         * data-streamer.c: Likewise.
5789         * dbxout.c: Likewise.
5790         * dce.c: Likewise.
5791         * ddg.c: Likewise.
5792         * debug.c: Likewise.
5793         * df-core.c: Likewise.
5794         * df-problems.c: Likewise.
5795         * df-scan.c: Likewise.
5796         * dfp.c: Likewise.
5797         * dojump.c: Likewise.
5798         * dominance.c: Likewise.
5799         * domwalk.c: Likewise.
5800         * double-int.c: Likewise.
5801         * dse.c: Likewise.
5802         * dumpfile.c: Likewise.
5803         * dwarf2asm.c: Likewise.
5804         * dwarf2cfi.c: Likewise.
5805         * dwarf2out.c: Likewise.
5806         * emit-rtl.c: Likewise.
5807         * except.c: Likewise.
5808         * explow.c: Likewise.
5809         * expmed.c: Likewise.
5810         * expr.c: Likewise.
5811         * final.c: Likewise.
5812         * fixed-value.c: Likewise.
5813         * fold-const.c: Likewise.
5814         * function.c: Likewise.
5815         * fwprop.c: Likewise.
5816         * gcse.c: Likewise.
5817         * generic-match-head.c: Likewise.
5818         * ggc-common.c: Likewise.
5819         * gimple-builder.c: Likewise.
5820         * gimple-expr.c: Likewise.
5821         * gimple-fold.c: Likewise.
5822         * gimple-iterator.c: Likewise.
5823         * gimple-low.c: Likewise.
5824         * gimple-match-head.c: Likewise.
5825         * gimple-pretty-print.c: Likewise.
5826         * gimple-ssa-isolate-paths.c: Likewise.
5827         * gimple-ssa-strength-reduction.c: Likewise.
5828         * gimple-streamer-in.c: Likewise.
5829         * gimple-streamer-out.c: Likewise.
5830         * gimple-walk.c: Likewise.
5831         * gimple.c: Likewise.
5832         * gimplify-me.c: Likewise.
5833         * gimplify.c: Likewise.
5834         * godump.c: Likewise.
5835         * graph.c: Likewise.
5836         * graphds.c: Likewise.
5837         * haifa-sched.c: Likewise.
5838         * hw-doloop.c: Likewise.
5839         * ifcvt.c: Likewise.
5840         * init-regs.c: Likewise.
5841         * internal-fn.c: Likewise.
5842         * ipa-chkp.c: Likewise.
5843         * ipa-comdats.c: Likewise.
5844         * ipa-cp.c: Likewise.
5845         * ipa-devirt.c: Likewise.
5846         * ipa-icf-gimple.c: Likewise.
5847         * ipa-icf.c: Likewise.
5848         * ipa-inline-analysis.c: Likewise.
5849         * ipa-inline-transform.c: Likewise.
5850         * ipa-inline.c: Likewise.
5851         * ipa-polymorphic-call.c: Likewise.
5852         * ipa-profile.c: Likewise.
5853         * ipa-prop.c: Likewise.
5854         * ipa-pure-const.c: Likewise.
5855         * ipa-ref.c: Likewise.
5856         * ipa-reference.c: Likewise.
5857         * ipa-split.c: Likewise.
5858         * ipa-utils.c: Likewise.
5859         * ipa-visibility.c: Likewise.
5860         * ipa.c: Likewise.
5861         * ira-build.c: Likewise.
5862         * ira-color.c: Likewise.
5863         * ira-conflicts.c: Likewise.
5864         * ira-costs.c: Likewise.
5865         * ira-emit.c: Likewise.
5866         * ira-lives.c: Likewise.
5867         * ira.c: Likewise.
5868         * jump.c: Likewise.
5869         * langhooks.c: Likewise.
5870         * lcm.c: Likewise.
5871         * lists.c: Likewise.
5872         * loop-doloop.c: Likewise.
5873         * loop-init.c: Likewise.
5874         * loop-invariant.c: Likewise.
5875         * loop-iv.c: Likewise.
5876         * loop-unroll.c: Likewise.
5877         * lower-subreg.c: Likewise.
5878         * lra-assigns.c: Likewise.
5879         * lra-coalesce.c: Likewise.
5880         * lra-constraints.c: Likewise.
5881         * lra-eliminations.c: Likewise.
5882         * lra-lives.c: Likewise.
5883         * lra-remat.c: Likewise.
5884         * lra-spills.c: Likewise.
5885         * lra.c: Likewise.
5886         * lto-cgraph.c: Likewise.
5887         * lto-compress.c: Likewise.
5888         * lto-opts.c: Likewise.
5889         * lto-section-in.c: Likewise.
5890         * lto-section-out.c: Likewise.
5891         * lto-streamer-in.c: Likewise.
5892         * lto-streamer-out.c: Likewise.
5893         * lto-streamer.c: Likewise.
5894         * mcf.c: Likewise.
5895         * mode-switching.c: Likewise.
5896         * modulo-sched.c: Likewise.
5897         * optabs.c: Likewise.
5898         * opts-global.c: Likewise.
5899         * passes.c: Likewise.
5900         * plugin.c: Likewise.
5901         * postreload-gcse.c: Likewise.
5902         * postreload.c: Likewise.
5903         * predict.c: Likewise.
5904         * print-tree.c: Likewise.
5905         * profile.c: Likewise.
5906         * real.c: Likewise.
5907         * realmpfr.c: Likewise.
5908         * recog.c: Likewise.
5909         * ree.c: Likewise.
5910         * reg-stack.c: Likewise.
5911         * regcprop.c: Likewise.
5912         * reginfo.c: Likewise.
5913         * regrename.c: Likewise.
5914         * regstat.c: Likewise.
5915         * reload.c: Likewise.
5916         * reload1.c: Likewise.
5917         * reorg.c: Likewise.
5918         * resource.c: Likewise.
5919         * rtl-chkp.c: Likewise.
5920         * rtl-error.c: Likewise.
5921         * rtlanal.c: Likewise.
5922         * rtlhooks.c: Likewise.
5923         * sanopt.c: Likewise.
5924         * sched-deps.c: Likewise.
5925         * sched-ebb.c: Likewise.
5926         * sched-rgn.c: Likewise.
5927         * sdbout.c: Likewise.
5928         * sel-sched-dump.c: Likewise.
5929         * sel-sched-ir.c: Likewise.
5930         * sel-sched.c: Likewise.
5931         * sese.c: Likewise.
5932         * shrink-wrap.c: Likewise.
5933         * simplify-rtx.c: Likewise.
5934         * stack-ptr-mod.c: Likewise.
5935         * statistics.c: Likewise.
5936         * stmt.c: Likewise.
5937         * stor-layout.c: Likewise.
5938         * store-motion.c: Likewise.
5939         * stringpool.c: Likewise.
5940         * symtab.c: Likewise.
5941         * target-globals.c: Likewise.
5942         * targhooks.c: Likewise.
5943         * toplev.c: Likewise.
5944         * tracer.c: Likewise.
5945         * trans-mem.c: Likewise.
5946         * tree-affine.c: Likewise.
5947         * tree-call-cdce.c: Likewise.
5948         * tree-cfg.c: Likewise.
5949         * tree-cfgcleanup.c: Likewise.
5950         * tree-chkp-opt.c: Likewise.
5951         * tree-chkp.c: Likewise.
5952         * tree-chrec.c: Likewise.
5953         * tree-complex.c: Likewise.
5954         * tree-data-ref.c: Likewise.
5955         * tree-dfa.c: Likewise.
5956         * tree-diagnostic.c: Likewise.
5957         * tree-dump.c: Likewise.
5958         * tree-eh.c: Likewise.
5959         * tree-emutls.c: Likewise.
5960         * tree-if-conv.c: Likewise.
5961         * tree-inline.c: Likewise.
5962         * tree-into-ssa.c: Likewise.
5963         * tree-iterator.c: Likewise.
5964         * tree-loop-distribution.c: Likewise.
5965         * tree-nested.c: Likewise.
5966         * tree-nrv.c: Likewise.
5967         * tree-object-size.c: Likewise.
5968         * tree-outof-ssa.c: Likewise.
5969         * tree-parloops.c: Likewise.
5970         * tree-phinodes.c: Likewise.
5971         * tree-predcom.c: Likewise.
5972         * tree-pretty-print.c: Likewise.
5973         * tree-profile.c: Likewise.
5974         * tree-scalar-evolution.c: Likewise.
5975         * tree-sra.c: Likewise.
5976         * tree-ssa-address.c: Likewise.
5977         * tree-ssa-alias.c: Likewise.
5978         * tree-ssa-ccp.c: Likewise.
5979         * tree-ssa-coalesce.c: Likewise.
5980         * tree-ssa-copy.c: Likewise.
5981         * tree-ssa-dce.c: Likewise.
5982         * tree-ssa-dse.c: Likewise.
5983         * tree-ssa-forwprop.c: Likewise.
5984         * tree-ssa-ifcombine.c: Likewise.
5985         * tree-ssa-live.c: Likewise.
5986         * tree-ssa-loop-ch.c: Likewise.
5987         * tree-ssa-loop-im.c: Likewise.
5988         * tree-ssa-loop-ivcanon.c: Likewise.
5989         * tree-ssa-loop-ivopts.c: Likewise.
5990         * tree-ssa-loop-manip.c: Likewise.
5991         * tree-ssa-loop-niter.c: Likewise.
5992         * tree-ssa-loop-prefetch.c: Likewise.
5993         * tree-ssa-loop-unswitch.c: Likewise.
5994         * tree-ssa-loop.c: Likewise.
5995         * tree-ssa-math-opts.c: Likewise.
5996         * tree-ssa-operands.c: Likewise.
5997         * tree-ssa-phiopt.c: Likewise.
5998         * tree-ssa-phiprop.c: Likewise.
5999         * tree-ssa-pre.c: Likewise.
6000         * tree-ssa-propagate.c: Likewise.
6001         * tree-ssa-reassoc.c: Likewise.
6002         * tree-ssa-scopedtables.c: Likewise.
6003         * tree-ssa-sink.c: Likewise.
6004         * tree-ssa-strlen.c: Likewise.
6005         * tree-ssa-structalias.c: Likewise.
6006         * tree-ssa-tail-merge.c: Likewise.
6007         * tree-ssa-ter.c: Likewise.
6008         * tree-ssa-threadupdate.c: Likewise.
6009         * tree-ssa-uncprop.c: Likewise.
6010         * tree-ssa-uninit.c: Likewise.
6011         * tree-ssa.c: Likewise.
6012         * tree-ssanames.c: Likewise.
6013         * tree-stdarg.c: Likewise.
6014         * tree-streamer-in.c: Likewise.
6015         * tree-streamer-out.c: Likewise.
6016         * tree-streamer.c: Likewise.
6017         * tree-switch-conversion.c: Likewise.
6018         * tree-tailcall.c: Likewise.
6019         * tree-vect-data-refs.c: Likewise.
6020         * tree-vect-generic.c: Likewise.
6021         * tree-vect-loop-manip.c: Likewise.
6022         * tree-vect-loop.c: Likewise.
6023         * tree-vect-patterns.c: Likewise.
6024         * tree-vect-slp.c: Likewise.
6025         * tree-vect-stmts.c: Likewise.
6026         * tree-vectorizer.c: Likewise.
6027         * tree-vrp.c: Likewise.
6028         * tree.c: Likewise.
6029         * tsan.c: Likewise.
6030         * ubsan.c: Likewise.
6031         * value-prof.c: Likewise.
6032         * var-tracking.c: Likewise.
6033         * varasm.c: Likewise.
6034         * varpool.c: Likewise.
6035         * vmsdbgout.c: Likewise.
6036         * vtable-verify.c: Likewise.
6037         * web.c: Likewise.
6038         * wide-int-print.cc: Likewise.
6039         * wide-int.cc: Likewise.
6040         * xcoffout.c: Likewise.
6041
6042 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
6043
6044         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
6045         between pass numbering and execution order.
6046
6047 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6048
6049         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
6050         check for dependencies.
6051
6052 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6053
6054         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
6055         CDI_DOMINATORS.
6056
6057 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6058
6059         * real.h (format_helper): New.
6060         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
6061         (real_from_target, real_nan, real_2expN, real_value_truncate)
6062         (significand_size, real_from_string2, exact_real_inverse)
6063         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
6064         (real_round, real_isinteger, real_from_integer): Replace
6065         machine_mode arguments with format_helper arguments.
6066         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
6067         (real_from_integer, real_nan, real_2expN, real_convert)
6068         (real_value_truncate, exact_real_truncate, real_to_target)
6069         (real_from_target, significand_size, real_powi, real_trunc)
6070         (real_floor, real_ceil, real_round, real_isinteger): Replace
6071         machine_mode arguments with format_helper arguments.
6072         (real_to_target_fmt, real_from_target_fmt): Delete.
6073         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
6074         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
6075         argument with real_format.
6076         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
6077
6078 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6079
6080         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
6081         (fixed_to_decimal, fixed_convert_from_real)
6082         (real_convert_from_fixed): Fix mode arguments to real_2expN.
6083
6084 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6085
6086         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
6087         SCALAR_FLOAT_MODE_P.
6088
6089 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
6090
6091         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
6092         (completely_scalarize): Comment zero-length arrays.
6093         (get_access_replacement): Correct comment re. precondition.
6094
6095 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6096
6097         * config/i386/i386.c (get_builtin_code_for_version): Set priority
6098         for PROCESSOR_ZNVER1.
6099         (enum processor_model): Add M_AMDFAM17H_znver1.
6100         (struct arch_names_table): Likewise.
6101         * doc/extend.texi: ADD znver1.
6102
6103 2015-10-30  Richard Biener  <rguenther@suse.de>
6104
6105         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
6106         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
6107         zeros to be folded to VECTOR_CSTs.
6108         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
6109         * fold-const.c (fold): Use build_vector_from_ctor.
6110
6111 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
6112
6113         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
6114         "mov %0.h[0], %1.h[0] to "neon_move".
6115         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
6116         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
6117         "mov_imm".
6118         (*cmovsi_insn_uxtw): Likewise.
6119
6120 2015-10-30  Tom de Vries  <tom@codesourcery.com>
6121
6122         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
6123         unsigned, and initialize, and use initial value instead of hardcoded
6124         constant.  Add generic constraints dumping section.  Don't dump global
6125         initializers constraints dumping section if empty.  Don't update
6126         variable from if unused.
6127
6128 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6129
6130         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
6131         flag_checking and/or CHECKING_P to eliminate conditional compilation
6132         on ENABLE_CHECKING.
6133         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
6134         * config/bfin/bfin.c (hwloop_optimize): Likewise.
6135         * config/i386/i386.c (ix86_print_operand_address): Likewise.
6136         (output_387_binary_op): Likewise.
6137         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
6138         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
6139         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
6140         Likewise.
6141         * config/rs6000/rs6000.h: Likewise.
6142         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
6143
6144 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6145
6146         * config/sh/sh.opt (mfdpic): Add missing period.
6147
6148 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6149
6150         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6151         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
6152         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6153         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
6154         mcore_base_register_rtx_p, mcore_legitimate_index_p,
6155         mcore_legitimate_address_p): New functions.
6156         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6157
6158 2015-10-29  Jeff Law  <law@redhat.com>
6159
6160         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
6161         method.
6162         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
6163         * tree-ssa-threadedge.c
6164         (record_temporary_equivalences_from_stmts_at_dest): Remove
6165         backedge_seen argument and associated code which invalidated
6166         equivalences based on the value of that argument.
6167         (thread_through_normal_block): Corresponding changes.
6168
6169 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6170
6171         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
6172         function earlier in the file.
6173         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
6174         df_regs_ever_live_p.
6175
6176 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6177
6178         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
6179         by ignoring it.
6180
6181 2015-10-29  Richard Henderson  <rth@redhat.com>
6182
6183         PR target/68124
6184         PR rtl-opt/67609
6185         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
6186         sse check to the exact conditions of PR 67609.
6187
6188 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6189
6190         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
6191         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
6192         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
6193         of the traditional names that TFmode uses for handling IEEE
6194         extended double. If -mfloat128, add KFmode functions for all of
6195         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
6196         make TFmode use the same emulation functions as KFmode.
6197         (init_float128_ibm): Likewise.
6198         (init_float128_ieee): Likewise.
6199         (rs6000_generate_compare): For IEEE 128-bit floating point
6200         comparisons, call the unordered comparison function instead of the
6201         ordered comparison function.
6202         (rs6000_expand_float128_convert): Deal with operands that are
6203         memory operands. Restructure the code to use a switch statement on
6204         the mode. Add support for TFmode defaulting to either IBM extended
6205         double or IEEE 128-bit floating point. If the underlying types are
6206         the same, use a move instead of a conversion function.
6207         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
6208         use for IEEE 128-bit floating point constants with -mfloat128.
6209         (rs6000_c_mode_for_suffix): Likewise.
6210         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
6211         128-bit floating point with IBM extended double floating point.
6212         (rs6000_invalid_binary_op): Likewise.
6213         (rs6000_gen_le_vsx_permute): On little endian systems generate a
6214         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
6215         types that can go in vector registers.
6216         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
6217         point types that can go in vector registers on little endian
6218         PowerPC systems.
6219         (mark_swaps_for_removal): Likewise.
6220         (rs6000_analyze_swaps): Likewise.
6221         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
6222
6223         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
6224         rework IEEE 128-bit floating point insns to deal with TFmode being
6225         either IBM extended double or IEEE 128-bit floating point.
6226         (IFKF): Likewise.
6227         (IBM128): Update iterator to add condition that the mode is IBM
6228         extended double.
6229         (IEEE128): New iterator for IEEE 128-bit floating point.
6230         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
6231         (FLOAT128): Likewise.
6232         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
6233         iterator.
6234         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
6235         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
6236         instead of hard coding TFmode or KFmode.
6237         (negtf2_internal): Likewise.
6238         (neg<mode>2_internal): Likewise.
6239         (abs<mode>2): Likewise.
6240         (abstf2_internal): Likewise.
6241         (abs<mode>2_internal): Likewise.
6242         (ieee_128bit_neg<mode>2): Likewise.
6243         (ieee_128bit_neg<mode>2_internal): Likewise.
6244         (ieee_128bit_abs<mode>2): Likewise.
6245         (ieee_128bit_abs<mode>2_internal): Likewise.
6246         (ieee_128bit_nabs<mode>2): Likewise.
6247         (ieee_128bit_nabs<mode>2_internal): Likewise.
6248         (extendiftf2): Add explicit conversions between 128-bit floating
6249         point types. Drop the old conversions that had become unwieldy.
6250         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
6251         (extendifkf2): Likewise.
6252         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
6253         (extendtfkf2): Likewise.
6254         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
6255         (trunciftf2): Likewise.
6256         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
6257         (truncifkf2): Likewise.
6258         (float<SDI:mode><IFKF:mode>2): Likewise.
6259         (trunckftf2): Likewise.
6260         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
6261         (trunctfif2): Likewise.
6262         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
6263         (extenddftf2): Rework 128-bit floating point conversions to
6264         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
6265         KFmode expanders into one function.
6266         (extenddf<mode>2): Likewise.
6267         (extenddftf2_fprs): Likewise.
6268         (extenddf<mode>2_fprs): Likewise.
6269         (extenddftf2_vsx): Likewise.
6270         (extenddf<mode>2_vsx): Likewise.
6271         (extendsftf2): Likewise.
6272         (extendsf<mode>2): Likewise.
6273         (trunctfdf2): Likewise.
6274         (trunc<mode>df2): Likewise.
6275         (trunctfdf2_internal1): Likewise.
6276         (trunc<mode>df2_internal1): Likewise.
6277         (trunctfdf2_internal2): Likewise.
6278         (trunc<mode>df2_internal2): Likewise.
6279         (trunctfsf2): Likewise.
6280         (trunc<mode>sf2): Likewise.
6281         (trunctfsf2_fprs): Likewise.
6282         (trunc<mode>sf2_fprs): Likewise.
6283         (floatsit2f): Likewise.
6284         (floatsi<mode>2): Likewise.
6285         (fix_trunc_helper): Likewise.
6286         (fix_trunc_helper<mode>): Likewise.
6287         (fix_trunctfsi2): Likewise.
6288         (fix_trunc<mode>si2): Likewise.
6289         (fix_trunctfsi2_fprs): Likewise.
6290         (fix_trunc<mode>si2_fprs): Likewise.
6291         (fix_trunctfsi2_internal): Likewise.
6292         (fix_trunc<mode>si2_internal): Likewise.
6293         (fix_trunctfdi2): Likewise.
6294         (fix_trunc<mode>di2): Likewise.
6295         (fixuns_trunctf<mode>2): Likewise.
6296         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6297         (floatditf2): Likewise.
6298         (floatdi<mode>2): Likewise.
6299         (floatuns<mode>tf2): Likewise.
6300         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
6301         (cmptf_internal1): Use a mode iterator to add support for both
6302         types (IFmode, TFmode) that support IBM extended double.
6303         (cmp<mode>_internal1): Likewise.
6304         (cmptf_internal2): Likewise.
6305         (cmp<mode>_internal2): Likewise.
6306
6307         * doc/extend.texi (Floating Types): Document __ibm128 and
6308         __float128 on PowerPC.
6309
6310         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6311         -mfloat128 and -mno-float128.
6312
6313 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6314
6315         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
6316         floating point modes that can go in vector registers.
6317         (MODES_TIEABLE_P): Move tests for vector modes before tests for
6318         scalar floating point, so that IEEE 128-bit floating point that
6319         can go in vector registers bind with vectors and not FP.
6320         (struct rs6000_args): Add libcall field.
6321
6322         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
6323         and -mfloat128-software switches.  Replace them with a binary
6324         -mfloat128 switch.
6325         (-mfloat128): Likewise.
6326
6327         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
6328         128-bit floating point types in GPRs, even if the appropriate
6329         option enabling the type was not used.
6330         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
6331         debugging.
6332         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
6333         pre-decrement on IEEE 128-bit floating point values.
6334         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
6335         is IEEE 128-bit floating point.
6336         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
6337         128-bit floating point types that can go in vector registers.
6338         (rs6000_option_override_internal): Change -mfloat128-none and
6339         -mfloat128-software to -mfloat128, and move code to be near other
6340         VSX option handling.
6341         (rs6000_option_override_internal): Disable -mfloat128 if we don't
6342         have the Altivec ABI.
6343         (rs6000_init_builtins): Don't make TFmode use either IFmode or
6344         KFmode floating point nodes. Instead, have three separate nodes.
6345         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
6346         eventually moving the long double default to IEEE 128-bit floating
6347         point.
6348         (rs6000_opt_masks): Add -mfloat128.
6349         (struct rs6000_opt_var): Fix typo in comment.
6350         (init_cumulative_args): Initialize libcall field in
6351         CUMULATIVE_ARGS.
6352         (rs6000_function_arg): Treat library functions as if they had
6353         prototypes to prevent IEEE 128-bit support functions from passing
6354         arguments in both GPRs and vector registers.
6355         (rs6000_arg_partial_bytes): Likewise.
6356
6357         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
6358         an option that can be turned on via -mcpu=<xxx>.
6359
6360         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
6361         longer used.
6362
6363         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6364         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
6365         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
6366         double is IBM extended double.
6367
6368         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
6369         SUBREGs.
6370
6371 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6372
6373         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
6374         * genconditions.c: Define CHECKING_P in the generated code.
6375         * genextract.c: Use flag_checking in insn_extract.
6376         * gengtype.c (main): Remove conditional compilation.
6377         * gengtype.h: Likewise.
6378
6379 2015-10-29  Jeff Law  <law@redhat.com>
6380
6381         PR tree-optimization/67892
6382         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
6383         in comment.
6384         (thread_through_normal_block): If we have seen a backedge, then
6385         do nothing.  No longer call find_jump_threads_backwards here.
6386         (thread_across_edge): Use find_jump_threads_backwards to find
6387         jump threads if the old style threader was not successful.
6388         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
6389         gsi_last_nondebug_bb.  Return NULL if the block does not end
6390         with a control statement.
6391         (find_jump_threads_backwards): Setup code moved here from
6392         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
6393         single edge argument instead of name & block.
6394         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
6395         prototype.
6396
6397 2015-10-29  Tom de Vries  <tom@codesourcery.com>
6398
6399         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
6400         types.
6401
6402 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
6403
6404         * omp-low.c (lower_omp_target): Remove unreachable code & merge
6405         ifs.
6406
6407 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
6408
6409         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
6410
6411 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6412
6413         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6414         guard_bb0 and use guard_bb throughout.
6415
6416 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6417
6418         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6419         unnecessary label.
6420
6421 2015-10-29  Richard Biener  <rguenther@suse.de>
6422
6423         PR middle-end/68142
6424         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
6425         overflow.
6426
6427 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
6428
6429         * alias.c: Reorder #include statements and remove duplicates.
6430         * asan.c: Likewise.
6431         * attribs.c: Likewise.
6432         * auto-inc-dec.c: Likewise.
6433         * auto-profile.c: Likewise.
6434         * bb-reorder.c: Likewise.
6435         * bt-load.c: Likewise.
6436         * builtins.c: Likewise.
6437         * caller-save.c: Likewise.
6438         * calls.c: Likewise.
6439         * ccmp.c: Likewise.
6440         * cfg.c: Likewise.
6441         * cfganal.c: Likewise.
6442         * cfgbuild.c: Likewise.
6443         * cfgcleanup.c: Likewise.
6444         * cfgexpand.c: Likewise.
6445         * cfghooks.c: Likewise.
6446         * cfgloop.c: Likewise.
6447         * cfgloopanal.c: Likewise.
6448         * cfgloopmanip.c: Likewise.
6449         * cfgrtl.c: Likewise.
6450         * cgraph.c: Likewise.
6451         * cgraphbuild.c: Likewise.
6452         * cgraphclones.c: Likewise.
6453         * cgraphunit.c: Likewise.
6454         * cilk-common.c: Likewise.
6455         * combine-stack-adj.c: Likewise.
6456         * combine.c: Likewise.
6457         * compare-elim.c: Likewise.
6458         * convert.c: Likewise.
6459         * coverage.c: Likewise.
6460         * cppbuiltin.c: Likewise.
6461         * cprop.c: Likewise.
6462         * cse.c: Likewise.
6463         * cselib.c: Likewise.
6464         * data-streamer-in.c: Likewise.
6465         * data-streamer-out.c: Likewise.
6466         * data-streamer.c: Likewise.
6467         * dbxout.c: Likewise.
6468         * dce.c: Likewise.
6469         * ddg.c: Likewise.
6470         * debug.c: Likewise.
6471         * df-core.c: Likewise.
6472         * df-problems.c: Likewise.
6473         * df-scan.c: Likewise.
6474         * dfp.c: Likewise.
6475         * dojump.c: Likewise.
6476         * dominance.c: Likewise.
6477         * double-int.c: Likewise.
6478         * dse.c: Likewise.
6479         * dumpfile.c: Likewise.
6480         * dwarf2asm.c: Likewise.
6481         * dwarf2cfi.c: Likewise.
6482         * dwarf2out.c: Likewise.
6483         * emit-rtl.c: Likewise.
6484         * except.c: Likewise.
6485         * explow.c: Likewise.
6486         * expmed.c: Likewise.
6487         * expr.c: Likewise.
6488         * final.c: Likewise.
6489         * fixed-value.c: Likewise.
6490         * fold-const.c: Likewise.
6491         * function.c: Likewise.
6492         * fwprop.c: Likewise.
6493         * gcse.c: Likewise.
6494         * generic-match-head.c: Likewise.
6495         * ggc-common.c: Likewise.
6496         * gimple-builder.c: Likewise.
6497         * gimple-expr.c: Likewise.
6498         * gimple-fold.c: Likewise.
6499         * gimple-iterator.c: Likewise.
6500         * gimple-low.c: Likewise.
6501         * gimple-match-head.c: Likewise.
6502         * gimple-pretty-print.c: Likewise.
6503         * gimple-ssa-isolate-paths.c: Likewise.
6504         * gimple-ssa-strength-reduction.c: Likewise.
6505         * gimple-streamer-in.c: Likewise.
6506         * gimple-streamer-out.c: Likewise.
6507         * gimple-walk.c: Likewise.
6508         * gimple.c: Likewise.
6509         * gimplify-me.c: Likewise.
6510         * gimplify.c: Likewise.
6511         * godump.c: Likewise.
6512         * graph.c: Likewise.
6513         * graphite-poly.c: Likewise.
6514         * haifa-sched.c: Likewise.
6515         * hw-doloop.c: Likewise.
6516         * ifcvt.c: Likewise.
6517         * incpath.c: Likewise.
6518         * init-regs.c: Likewise.
6519         * internal-fn.c: Likewise.
6520         * ipa-chkp.c: Likewise.
6521         * ipa-comdats.c: Likewise.
6522         * ipa-cp.c: Likewise.
6523         * ipa-devirt.c: Likewise.
6524         * ipa-icf-gimple.c: Likewise.
6525         * ipa-icf.c: Likewise.
6526         * ipa-inline-analysis.c: Likewise.
6527         * ipa-inline-transform.c: Likewise.
6528         * ipa-inline.c: Likewise.
6529         * ipa-polymorphic-call.c: Likewise.
6530         * ipa-profile.c: Likewise.
6531         * ipa-prop.c: Likewise.
6532         * ipa-pure-const.c: Likewise.
6533         * ipa-ref.c: Likewise.
6534         * ipa-reference.c: Likewise.
6535         * ipa-split.c: Likewise.
6536         * ipa-utils.c: Likewise.
6537         * ipa-visibility.c: Likewise.
6538         * ipa.c: Likewise.
6539         * ira-build.c: Likewise.
6540         * ira-color.c: Likewise.
6541         * ira-conflicts.c: Likewise.
6542         * ira-costs.c: Likewise.
6543         * ira-emit.c: Likewise.
6544         * ira-lives.c: Likewise.
6545         * ira.c: Likewise.
6546         * jump.c: Likewise.
6547         * langhooks.c: Likewise.
6548         * lcm.c: Likewise.
6549         * lists.c: Likewise.
6550         * loop-doloop.c: Likewise.
6551         * loop-init.c: Likewise.
6552         * loop-invariant.c: Likewise.
6553         * loop-iv.c: Likewise.
6554         * loop-unroll.c: Likewise.
6555         * lower-subreg.c: Likewise.
6556         * lra-assigns.c: Likewise.
6557         * lra-coalesce.c: Likewise.
6558         * lra-constraints.c: Likewise.
6559         * lra-eliminations.c: Likewise.
6560         * lra-lives.c: Likewise.
6561         * lra-remat.c: Likewise.
6562         * lra-spills.c: Likewise.
6563         * lra.c: Likewise.
6564         * lto-cgraph.c: Likewise.
6565         * lto-compress.c: Likewise.
6566         * lto-opts.c: Likewise.
6567         * lto-section-in.c: Likewise.
6568         * lto-section-out.c: Likewise.
6569         * lto-streamer-in.c: Likewise.
6570         * lto-streamer-out.c: Likewise.
6571         * lto-streamer.c: Likewise.
6572         * mode-switching.c: Likewise.
6573         * modulo-sched.c: Likewise.
6574         * omp-low.c: Likewise.
6575         * optabs.c: Likewise.
6576         * opts-global.c: Likewise.
6577         * passes.c: Likewise.
6578         * plugin.c: Likewise.
6579         * postreload-gcse.c: Likewise.
6580         * postreload.c: Likewise.
6581         * predict.c: Likewise.
6582         * print-tree.c: Likewise.
6583         * profile.c: Likewise.
6584         * real.c: Likewise.
6585         * realmpfr.c: Likewise.
6586         * recog.c: Likewise.
6587         * ree.c: Likewise.
6588         * reg-stack.c: Likewise.
6589         * regcprop.c: Likewise.
6590         * reginfo.c: Likewise.
6591         * regrename.c: Likewise.
6592         * regstat.c: Likewise.
6593         * reload.c: Likewise.
6594         * reload1.c: Likewise.
6595         * reorg.c: Likewise.
6596         * resource.c: Likewise.
6597         * rtl-chkp.c: Likewise.
6598         * rtl-error.c: Likewise.
6599         * rtlanal.c: Likewise.
6600         * rtlhooks.c: Likewise.
6601         * sanopt.c: Likewise.
6602         * sched-deps.c: Likewise.
6603         * sched-ebb.c: Likewise.
6604         * sched-rgn.c: Likewise.
6605         * sese.c: Likewise.
6606         * shrink-wrap.c: Likewise.
6607         * simplify-rtx.c: Likewise.
6608         * stack-ptr-mod.c: Likewise.
6609         * statistics.c: Likewise.
6610         * stmt.c: Likewise.
6611         * stor-layout.c: Likewise.
6612         * store-motion.c: Likewise.
6613         * stringpool.c: Likewise.
6614         * symtab.c: Likewise.
6615         * target-globals.c: Likewise.
6616         * targhooks.c: Likewise.
6617         * toplev.c: Likewise.
6618         * tracer.c: Likewise.
6619         * trans-mem.c: Likewise.
6620         * tree-affine.c: Likewise.
6621         * tree-call-cdce.c: Likewise.
6622         * tree-cfg.c: Likewise.
6623         * tree-cfgcleanup.c: Likewise.
6624         * tree-chkp-opt.c: Likewise.
6625         * tree-chkp.c: Likewise.
6626         * tree-chrec.c: Likewise.
6627         * tree-complex.c: Likewise.
6628         * tree-data-ref.c: Likewise.
6629         * tree-dfa.c: Likewise.
6630         * tree-diagnostic.c: Likewise.
6631         * tree-dump.c: Likewise.
6632         * tree-eh.c: Likewise.
6633         * tree-emutls.c: Likewise.
6634         * tree-if-conv.c: Likewise.
6635         * tree-inline.c: Likewise.
6636         * tree-into-ssa.c: Likewise.
6637         * tree-iterator.c: Likewise.
6638         * tree-loop-distribution.c: Likewise.
6639         * tree-nested.c: Likewise.
6640         * tree-nrv.c: Likewise.
6641         * tree-object-size.c: Likewise.
6642         * tree-outof-ssa.c: Likewise.
6643         * tree-parloops.c: Likewise.
6644         * tree-phinodes.c: Likewise.
6645         * tree-predcom.c: Likewise.
6646         * tree-pretty-print.c: Likewise.
6647         * tree-profile.c: Likewise.
6648         * tree-scalar-evolution.c: Likewise.
6649         * tree-sra.c: Likewise.
6650         * tree-ssa-address.c: Likewise.
6651         * tree-ssa-alias.c: Likewise.
6652         * tree-ssa-ccp.c: Likewise.
6653         * tree-ssa-coalesce.c: Likewise.
6654         * tree-ssa-copy.c: Likewise.
6655         * tree-ssa-dce.c: Likewise.
6656         * tree-ssa-dom.c: Likewise.
6657         * tree-ssa-dse.c: Likewise.
6658         * tree-ssa-forwprop.c: Likewise.
6659         * tree-ssa-ifcombine.c: Likewise.
6660         * tree-ssa-live.c: Likewise.
6661         * tree-ssa-loop-ch.c: Likewise.
6662         * tree-ssa-loop-im.c: Likewise.
6663         * tree-ssa-loop-ivcanon.c: Likewise.
6664         * tree-ssa-loop-ivopts.c: Likewise.
6665         * tree-ssa-loop-manip.c: Likewise.
6666         * tree-ssa-loop-niter.c: Likewise.
6667         * tree-ssa-loop-prefetch.c: Likewise.
6668         * tree-ssa-loop-unswitch.c: Likewise.
6669         * tree-ssa-loop.c: Likewise.
6670         * tree-ssa-math-opts.c: Likewise.
6671         * tree-ssa-operands.c: Likewise.
6672         * tree-ssa-phiopt.c: Likewise.
6673         * tree-ssa-phiprop.c: Likewise.
6674         * tree-ssa-pre.c: Likewise.
6675         * tree-ssa-propagate.c: Likewise.
6676         * tree-ssa-reassoc.c: Likewise.
6677         * tree-ssa-sccvn.c: Likewise.
6678         * tree-ssa-scopedtables.c: Likewise.
6679         * tree-ssa-sink.c: Likewise.
6680         * tree-ssa-strlen.c: Likewise.
6681         * tree-ssa-structalias.c: Likewise.
6682         * tree-ssa-tail-merge.c: Likewise.
6683         * tree-ssa-ter.c: Likewise.
6684         * tree-ssa-threadedge.c: Likewise.
6685         * tree-ssa-threadupdate.c: Likewise.
6686         * tree-ssa-uncprop.c: Likewise.
6687         * tree-ssa-uninit.c: Likewise.
6688         * tree-ssa.c: Likewise.
6689         * tree-ssanames.c: Likewise.
6690         * tree-stdarg.c: Likewise.
6691         * tree-streamer-in.c: Likewise.
6692         * tree-streamer-out.c: Likewise.
6693         * tree-streamer.c: Likewise.
6694         * tree-switch-conversion.c: Likewise.
6695         * tree-tailcall.c: Likewise.
6696         * tree-vect-data-refs.c: Likewise.
6697         * tree-vect-generic.c: Likewise.
6698         * tree-vect-loop-manip.c: Likewise.
6699         * tree-vect-loop.c: Likewise.
6700         * tree-vect-patterns.c: Likewise.
6701         * tree-vect-slp.c: Likewise.
6702         * tree-vect-stmts.c: Likewise.
6703         * tree-vectorizer.c: Likewise.
6704         * tree-vrp.c: Likewise.
6705         * tree.c: Likewise.
6706         * tsan.c: Likewise.
6707         * ubsan.c: Likewise.
6708         * value-prof.c: Likewise.
6709         * var-tracking.c: Likewise.
6710         * varasm.c: Likewise.
6711         * varpool.c: Likewise.
6712         * vtable-verify.c: Likewise.
6713         * web.c: Likewise.
6714         * wide-int-print.cc: Likewise.
6715         * wide-int.cc: Likewise.
6716         * xcoffout.c: Likewise.
6717
6718 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
6719
6720         * Makefile.in (NO_PIE_CFLAGS): New.
6721         (NO_PIE_FLAG): Likewise.
6722         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6723         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6724         (BUILD_NO_PIE_CFLAGS): Likewise.
6725         (BUILD_NO_PIE_FLAG): Likewise.
6726         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
6727         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
6728         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
6729         $(BUILD_NO_PIE_CFLAGS).
6730         (BUILD_CXXFLAGS): Likewise.
6731         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
6732         $(BUILD_NO_PIE_FLAG).
6733         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
6734         (BUILD_NO_PIE_FLAG): Likewise.
6735         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6736         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6737         * configure: Regenerated.
6738
6739 2015-10-29  Richard Biener  <rguenther@suse.de>
6740
6741         PR middle-end/56956
6742         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
6743         unsigned conditonal negation to ABS_EXPR.
6744
6745 2015-10-29  Richard Biener  <rguenther@suse.de>
6746
6747         * gimple-match-head.c (gimple_simplify): Remove premature checking
6748         of builtin_decl_implicit of function calls we simplify.
6749
6750 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
6751
6752         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
6753         (get_computation_cost_at): Ditto.
6754         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
6755         and inv_expr_id.
6756
6757 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6758
6759         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
6760         superfluous code.
6761
6762 2015-10-28  Jason Merrill  <jason@redhat.com>
6763
6764         * Makefile.in (TAGS): Include libcpp and libiberty.
6765
6766 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6767
6768         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
6769         (extract_omp_for_data): Remove OpenACC special handling of
6770         chunking.
6771
6772         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
6773         (struct parallel): Update comment.
6774         (nvptx_reorg): Likewise.
6775         (nvptx_neuter): Cleanup whitespace.
6776
6777 2015-10-28  Richard Henderson  <rth@redhat.com>
6778
6779         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
6780
6781 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6782
6783         PR target/67839
6784         * config/avr/predicates.md (low_io_address_operand): Don't
6785         consider MODE when computing upper bound.
6786         (io_address_operand): Likewise.
6787
6788 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
6789
6790         * fold-const.c (operand_equal_p): Do not verify that types are
6791         compatible for MEM_REFs.
6792
6793 2015-10-28  Richard Biener  <rguenther@suse.de>
6794
6795         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
6796         in simplifying VEC_COND_EXPR conditions.
6797
6798 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6799
6800         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
6801         into vi_next of a full_var.
6802
6803 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6804
6805         * tree-ssa-structalias.c (new_var_info, make_heapvar)
6806         (make_constraint_from_restrict, make_constraint_from_global_restrict)
6807         (create_function_info_for, create_variable_info_for_1)
6808         (create_variable_info_for): Add and handle add_id parameter.
6809         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
6810         (init_base_vars): Add extra argument to calls to new_var_info.
6811         (get_vi_for_tree): Add extra argument to call to
6812         create_variable_info_for.
6813         (process_constraint, do_deref, process_all_all_constraints): Add extra
6814         argument to calls to new_scalar_tmp_constraint_exp.
6815         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
6816         argument to calls to make_heapvar.
6817         (make_restrict_var_constraints): Add extra argument to call to
6818         make_constraint_from_global_restrict.
6819         (intra_create_variable_infos): Add extra argument to call to
6820         create_variable_info_for_1.
6821         (ipa_pta_execute): Add extra argument to call to
6822         create_function_info_for.
6823
6824 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6825
6826         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
6827         (sibcall_value): Likewise.
6828
6829 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6830
6831         * config/nvptx/nvptx.h (struct machine_function): Add
6832         axis_predicate.
6833         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
6834         nvptx_expand_oacc_join): Declare.
6835         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
6836         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
6837         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
6838         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
6839         UNSPECV_JOINING, UNSPECV_JOIN): New.
6840         (BITS, BITD): New mode iterators.
6841         (br_true_uni, br_false_uni): New.
6842         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
6843         (oacc_dim_size, oacc_dim_pos): New.
6844         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
6845         (oacc_fork, oacc_join): New.
6846         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
6847         (worker_load<mode>, worker_store<mode>): New.
6848         (nvptx_barsync): New.
6849         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
6850         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
6851         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
6852         worker_bcast_sym): New.
6853         (nvptx_option_override): Initialize worker broadcast buffer.
6854         (nvptx_emit_forking, nvptx_emit_joining): New.
6855         (nvptx_init_axis_predicate): New.
6856         (nvptx_declare_function_name): Init axis predicates.
6857         (nvptx_expand_call): Add fork/join markers around routine call.
6858         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
6859         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
6860         (nvptx_gen_vcast): New.
6861         (struct wcast_data_t): New.
6862         (enum propagate_mask): New.
6863         (nvptx_gen_wcast): New.
6864         (nvptx_print_operand): Add 'S' case.
6865         (struct parallel): New.
6866         (parallel::parallel, parallel::~parallel): New.
6867         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
6868         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
6869         nvptx_find_par, nvptx_discover_pars): New.
6870         (nvptx_propagate): New.
6871         (vprop_gen, nvptx_vpropagate): New.
6872         (wprop_gen, nvptx_wpropagate): New.
6873         (nvptx_wsync): New.
6874         (nvptx_single, nvptx_skip_par): New.
6875         (nvptx_process_pars, nvptx_neuter_pars): New.
6876         (ntptx_reorg): Split blocks, generate parallel structure, apply
6877         neutering.
6878         (nvptx_cannot_copy_insn_p): New.
6879         (nvptx_file_end): Emit worker broadcast decl.
6880         (nvptx_goacc_fork_join): New.
6881         (TARGET_CANNOT_COPY_INSN_P): Override.
6882         (TARGET_GOACC_FORK_JOIN): Override.
6883
6884 2015-10-28  Richard Biener  <rguenther@suse.de>
6885
6886         * fold-const.c (negate_expr_p): Adjust the division case to
6887         properly avoid introducing undefined overflow.
6888         (fold_negate_expr): Likewise.
6889
6890 2015-10-28  Richard Biener  <rguenther@suse.de>
6891
6892         PR tree-optimization/65962
6893         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6894         Avoid creating loop carried dependences also for outer loops
6895         of the loop a use to replace is in.
6896
6897 2015-10-28  Richard Biener  <rguenther@suse.de>
6898
6899         * common.opt (fchecking): New flag controlling flag_checking.
6900         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
6901         * timevar.c (timer::print): Adjust output.
6902         * doc/invoke.texi (fchecking): Document.
6903
6904 2015-10-28  Richard Biener  <rguenther@suse.de>
6905
6906         PR middle-end/68067
6907         * fold-const.c (negate_expr_p): We cannot negate plus or minus
6908         if overflow is not wrapping.  Likewise multiplication unless
6909         one operand is constant and not power of two.
6910         (fold_negate_expr): Adjust accordingly.
6911
6912 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6913
6914         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
6915         fields.
6916         (is_oacc_parallel, is_oacc_kernels): New.
6917         (enclosing_target_ctx): May return NULL.
6918         (ctx_in_oacc_kernels_region): New.
6919         (check_oacc_kernel_gwv): New.
6920         (oacc_loop_or_target_p): Delete.
6921         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
6922         operands.  Strip reductions fro kernels.
6923         (scan_omp_target): Don't calculate gwv mask.
6924         (lower_oacc_head_mark, lower_oacc_loop_marker,
6925         lower_oacc_head_tail): New.
6926         (struct oacc_collapse): New.
6927         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
6928         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6929         Remove OpenACC handling.
6930         (expand_oacc_for): New.
6931         (expand_omp_for): Call expand_oacc_for.
6932         (lower_omp_for): Call lower_oacc_head_tail.
6933
6934 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
6935
6936         * attribs.c (check_attribute_tables): New function, broken out from...
6937         (init_attributes): Use it.
6938         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
6939         gcc_checking_assert and checking_* functions to eliminate
6940         ENABLE_CHECKING conditionals.
6941         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
6942         (pass_expand::execute): Likewise.
6943         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
6944         * cgraphunit.c (mark_functions_to_output): Likewise.
6945         (cgraph_node::expand_thunk): Likewise.
6946         (symbol_table::compile): Likewise.
6947         * ddg.c (add_cross_iteration_register_deps): Likewise.
6948         (create_ddg_all_sccs): Likewise.
6949         * df-core.c (df_finish_pass, df_analyze): Likewise.
6950         * diagnostic-core.h: Likewise.
6951         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
6952         * dominance.c (calculate_dominance_info): Likewise.
6953         * dwarf2out.c (add_AT_die_ref): Likewise.
6954         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
6955         (loc_list_from_tree, gen_lexical_block_die): Likewise.
6956         gen_type_die_with_usage, gen_type_die): Likewise.
6957         (dwarf2out_decl): Likewise.
6958         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
6959         * except.c (duplicate_eh_regions): Likewise.
6960         * fwprop.c (register_active_defs, update_df_init): Likewise.
6961         (fwprop_init, fwprop_done): Likewise.
6962         (update_uses): Likewise.
6963         * ggc-page.c (ggc_grow): Likewise.
6964         * gimplify.c (gimplify_body): Likewise.
6965         (gimplify_hasher::equal): Likewise.
6966         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
6967         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
6968         Likewise.
6969         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
6970         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
6971         * hash-table.h (::find_empty_slot_for_expand): Likewise.
6972         * ifcvt.c (if_convert): Likewise.
6973         * ipa-cp.c (ipcp_propagate_stage): Likewise.
6974         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
6975         (odr_type_p, odr_types_equivalent_p): Likewise.
6976         (add_type_duplicate, get_odr_type): Likewise.
6977         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
6978         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6979         (sem_item_optimizer::verify_classes): Likewise.
6980         (sem_item_optimizer::traverse_congruence_split): Likewise.
6981         (sem_item_optimizer::checking_verify_classes): New.
6982         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
6983         method.
6984         * cfgrtl.c (commit_edge_insertions): Likewise.
6985         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
6986         (rtl_flow_call_edges_add): Likewise.
6987         * cgraph.c (symbol_table::create_edge): Likewise.
6988         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
6989         * cgraph.h (symtab_node): Likewise.
6990         (symtab_node::checking_verify_symtab_nodes): Define.
6991         (cgraph_node::checking_verify_cgraph_nodes): Define.
6992         * cfghooks.h (checking_verify_flow_info): Define.
6993         * cfgloop.h (checking_verify_loop_structure): Define.
6994         * dominance.h (checking_verify_dominators): Define.
6995         * et-forest.c: Fix comment.
6996         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
6997         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6998         ENABLE_CHECKING conditionals.
6999         * ipa-inline-transform.c (save_inline_function_body): Likewise.
7000         * ipa-inline.c (inline_small_functions): Likewise.
7001         (early_inliner): Likewise.
7002         * ipa-inline.h (estimate_edge_growth): Likewise.
7003         * ipa-visibility.c (function_and_variable_visibility): Likewise.
7004         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
7005         (ipa_single_use): Likewise.
7006         * ira-int.h: Likewise.
7007         * ira.c (ira): Likewise.
7008         * loop-doloop.c (doloop_optimize_loops): Likewise.
7009         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
7010         * loop-invariant.c (move_loop_invariants): Likewise.
7011         * lra-assigns.c (lra_assign): Likewise.
7012         * lra-constraints.c (lra_constraints): Likewise.
7013         * lra-eliminations.c (lra_eliminate): Likewise.
7014         * lra-int.h (struct lra_reg): Likewise.
7015         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7016         (lra_create_live_ranges_1): Likewise.
7017         * lra-remat.c (create_remat_bb_data): Likewise.
7018         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
7019         (lra): Likewise.
7020         (check_rtl): Always define. Remove incorrect guard around
7021         extract_constrain_insn call.
7022         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
7023         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7024         ENABLE_CHECKING conditionals.
7025         * lto-streamer-out.c (DFS::DFS): Likewise.
7026         (lto_output): Likewise.
7027         * lto-streamer.c (lto_streamer_init): Likewise.
7028         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
7029         expand_omp_target, execute_expand_omp): Likewise.
7030         (lower_omp_target): Likewise.
7031         * passes.c (execute_function_todo): Likewise.
7032         (execute_todo, execute_one_pass): Likewise.
7033         (verify_curr_properties): Always define.
7034         * predict.c (tree_estimate_probability: Use flag_checking,
7035         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7036         ENABLE_CHECKING conditionals.
7037         (propagate_freq): Likewise.
7038         * pretty-print.c (pp_format): Likewise.
7039         * real.c (real_to_decimal_for_mode): Likewise.
7040         * recog.c (split_all_insns): Likewise.
7041         * regcprop.c (kill_value_one_regno): Likewise.
7042         (copy_value): Likewise.
7043         (validate_value_data): Define unconditionally.
7044         * reload.c: Fix comment.
7045         * timevar.c: Include options.h
7046         * tree-ssa.h (checking_verify_ssa): Define.
7047         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
7048         * sched-deps.c (CHECK): Remove unused macro.
7049         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
7050         gcc_checking_assert and checking_* functions to eliminate
7051         ENABLE_CHECKING conditionals.
7052         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
7053         * sel-sched.c (struct moveop_static_params): Likewise.
7054         (find_best_reg_for_expr, move_cond_jump): Likewise.
7055         (move_op_orig_expr_not_found): Likewise.
7056         (code_motion_process_successors, move_op): Likewise.
7057         * ssa-iterators.h (first_readonly_imm_use): Likewise.
7058         (next_readonly_imm_use): Likewise.
7059         * store-motion.c (compute_store_table): Likewise.
7060         * symbol-summary.h (function_summary::function_summary): Likewise.
7061         * target.h (cumulative_args_t): Likewise.
7062         (get_cumulative_args, pack_cumulative_args): Likewise.
7063         * timevar.c: (timer::print): Likewise.
7064         * trans-mem.c (ipa_tm_execute): Likewise.
7065         * tree-cfg.c (move_stmt_op): Likewise.
7066         (move_sese_region_to_fn): Likewise.
7067         (gimple_flow_call_edges_add): Likewise.
7068         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
7069         Likewise.
7070         * tree-eh.c (remove_unreachable_handlers): Likewise.
7071         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
7072         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
7073         * tree-into-ssa.c (update_ssa): Likewise.
7074         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
7075         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
7076         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
7077         * tree-predcom.c (suitable_component_p): Likewise.
7078         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
7079         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
7080         * tree-ssa-live.c (verify_live_on_entry): Likewise.
7081         * tree-ssa-live.h (register_ssa_partition): Likewise.
7082         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
7083         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
7084         (tree_transform_and_unroll_loop): Likewise.
7085         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7086         * tree-ssa-operands.c (get_expr_operands): Likewise.
7087         * tree-ssa-propagate.c (replace_exp_1): Likewise.
7088         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
7089         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7090         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
7091         * tree-ssanames.c (release_ssa_name_fn): Likewise.
7092         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
7093         * tree-vect-loop-manip.c
7094         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7095         (slpeel_checking_verify_cfg_after_peeling): Likewise.
7096         (vect_do_peeling_for_loop_bound): Likewise.
7097         (vect_do_peeling_for_alignment): Likewise.
7098         * tree-vrp.c (supports_overflow_infinity): Likewise.
7099         (set_value_range): Likewise.
7100         * tree.c (free_lang_data_in_cgraph): Likewise.
7101         * value-prof.c (gimple_remove_histogram_value): Likewise.
7102         (free_hist): Likewise.
7103         * var-tracking.c (canonicalize_values_star): Likewise.
7104         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
7105
7106 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7107
7108         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
7109         IFN_GOACC_LOOP): New.
7110         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
7111         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
7112         IFN_UNIQUE_OACC_TAIL_MARK.
7113         (enum ifn_goacc_loop_kind): New.
7114         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
7115         IFN_UNIQUE_OACC_JOIN cases.
7116         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
7117         (expand_GOACC_LOOP): New.
7118         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
7119         * omp-low.c: Include gimple-pretty-print.h.
7120         (struct oacc_loop): New.
7121         (enum oacc_loop_flags): New.
7122         (oacc_thread_numbers): New.
7123         (oacc_xform_loop): New.
7124         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
7125         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
7126         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
7127         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
7128         oacc_loop_discovery): New.
7129         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
7130         oacc_loop_process): New.
7131         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
7132         (execute_oacc_device_lower): Discover & process loops.  Process
7133         internal fns.
7134         * target.def (goacc.fork_join): Change sense of hook, clarify
7135         documentation.
7136         * doc/tm.texi: Regenerated.
7137
7138 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7139
7140         * target-insns.def (oacc_fork, oacc_join): Define.
7141         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
7142         (goacc.fork_join): New GOACC hook.
7143         * targhooks.h (default_goacc_fork_join): Declare.
7144         * omp-low.c (default_goacc_forkjoin): New.
7145         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
7146         * doc/tm.texi: Regenerate.
7147
7148 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7149
7150         * omp-low.c (oacc_init_rediction_array): New.
7151         (oacc_initialize_reduction_data): Initialize array.
7152
7153 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7154
7155         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
7156
7157 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7158
7159         * internal-fn.c (expand_UNIQUE): New.
7160         * internal-fn.h (enum ifn_unique_kind): New.
7161         * internal-fn.def (IFN_UNIQUE): New.
7162         * target-insns.def (unique): Define.
7163         * gimple.h (gimple_call_internal_unique_p): New.
7164         * gimple.c (gimple_call_same_target_p): Check internal fn
7165         uniqueness.
7166         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
7167         * tree-ssa-threadedge.c
7168         (record_temporary_equivalences_from_stmts): Likewise.
7169         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
7170
7171 2015-10-27  Richard Henderson  <rth@redhat.com>
7172
7173         PR rtl-opt/67609
7174         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
7175         narrowing subregs on SSE and MMX registers.
7176         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
7177         appear to be sub-words of multi-register pseudos must be rejected.
7178         * doc/tm.texi: Regenerate.
7179
7180 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7181
7182         PR target/68102
7183         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
7184         operands[0] is a reg before taking its REGNO in split condition.
7185         (*movdi_aarch64): Likewise.
7186
7187 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7188
7189         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
7190         Handle floating point inner modes properly.
7191
7192 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
7193
7194         * tree-vect-looop.c
7195         (vectorizable_live_operation): Change iterator.
7196
7197 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7198             Aditya Kumar  <aditya.k7@samsung.com>
7199
7200         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
7201           function to schedule based on isl_schedule_node.
7202         (get_schedule_map_st): New schedule optimizer based on
7203         isl_schedule_node.
7204         (scop_get_domains): New. Return the isl_union_set containing the
7205         domains of all the pbbs.
7206         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
7207
7208 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7209
7210         PR target/67215
7211         * calls.c (prepare_call_address): Don't handle -fno-plt here.
7212         * config/i386/i386.c (ix86_expand_call): Generate indirect call
7213         via GOT for -fno-plt.  Support indirect call via GOT for x32.
7214         * config/i386/predicates.md (sibcall_memory_operand): Allow
7215         GOT memory operand.
7216
7217 2015-10-27  Richard Biener  <rguenther@suse.de>
7218
7219         PR tree-optimization/68104
7220         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7221         strided access check ...
7222         (vect_compute_data_refs_alignment): ... here.
7223
7224 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
7225             Joseph Myers  <joseph@codesourcery.com>
7226             Mark Shinwell  <shinwell@codesourcery.com>
7227             Andrew Stubbs  <ams@codesourcery.com>
7228             Rich Felker <dalias@libc.org>
7229
7230         * config.gcc: Handle --enable-fdpic.
7231         * config/sh/constraints.md (Ccl): New constraint.
7232         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
7233         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
7234         __SH_FDPIC__.
7235         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
7236         library functions.
7237         * config/sh/sh-protos.h (function_symbol_result): New struct.
7238         (function_symbol): Return function_symbol_result.
7239         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
7240         declarations.
7241         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
7242         target hook.
7243         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
7244         (sh_option_override): Force -fPIC if FDPIC is in effect.
7245         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
7246         UNSPEC_GOTOFFFUNCDESC cases.
7247         (prepare_move_operands): Use FDPIC initial GOT register for
7248         TLS-related GOT access; inhibit cross-section address offset constants
7249         for FDPIC.
7250         (sh_assemble_integer): New function.
7251         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
7252         PC-relative call sites.
7253         (expand_ashiftrt): Adapt invocation of function_symbol.
7254         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
7255         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
7256         UNSPEC_GOTOFFFUNCDESC.
7257         (legitimize_pic_address): Resolve function symbols to function
7258         descriptors for FDPIC.  Do not use GOT-relative addressing for local
7259         data that may be read-only on FDPIC.
7260         (sh_emit_storesi, sh_emit_storehi): New functions.
7261         (sh_trampoline_init): Generate FDPIC trampolines.
7262         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
7263         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
7264         (sh_output_mi_thunk): Generate FDPIC call.
7265         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
7266         FDPIC, generate call site labels to use PC-relative addressing rather
7267         than GOT-relative addressing.
7268         (sh_conditional_register_usage): Make PIC register fixed and call used
7269         when FDPIC is in effect.
7270         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
7271         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
7272         sh_get_fdpic_reg_initial_val): New functions.
7273         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
7274         Handle -mfdpic.
7275         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
7276         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
7277         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
7278         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
7279         FDPIC_SELF_SPECS.
7280         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
7281         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
7282         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
7283         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
7284         constants.
7285         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
7286         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
7287         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
7288         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
7289         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
7290         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
7291         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
7292         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
7293         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
7294         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
7295         block_move_real, block_lump_real, block_move_real_i4,
7296         block_lump_real_i4): Add support for FDPIC calls.
7297         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
7298         call_value_pop): Adjust for new function_symbol signature.
7299         * config/sh/sh.opt (-mfdpic): New option.
7300         * doc/install.texi (Options specification): Document --enable-fdpic.
7301         * doc/invoke.texi (SH Options): Document -mfdpic.
7302
7303
7304 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
7305
7306         PR tree-optimization/65963
7307         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
7308         LSHIFT_EXPRs as equivalent MULT_EXPRs.
7309
7310 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7311
7312         PR target/67929
7313         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
7314         * config/arm/constraints.md (Dp): Update callsite.
7315         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
7316
7317 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7318
7319         * builtins.c (fold_builtin_load_exponent): Rename to...
7320         (fold_const_builtin_load_exponent): ...this and only handle
7321         constant arguments.
7322         (fold_builtin_2): Update accordingly.
7323         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
7324
7325 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7326
7327         * builtins.c (fold_builtin_logb): Rename to...
7328         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
7329         (fold_builtin_significand): Rename to...
7330         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
7331         (fold_builtin_1): Update accordingly.
7332
7333 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7334
7335         * builtins.c (fold_builtin_fmin_fmax): Delete.
7336         (fold_builtin_2): Handle constant fmin and fmax arguments here.
7337         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
7338
7339 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
7340
7341         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
7342         for register extension into sign and zero register extension.
7343         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
7344         for sign and zero register extension.
7345         (cortexa57_addrcost_table): Likewise.
7346         (xgene1_addrcost_table): Likewise.
7347
7348 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7349
7350         * fold-const.c (fold_minmax): Delete.
7351         (fold_binary_loc): Don't call it.
7352         * match.pd: Add rules previously handled by fold_minmax.
7353
7354 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7355
7356         * builtins.c (fold_builtin_fma): Remove constant handling.
7357         (fold_builtin_3): Handle constant fma arguments here.
7358
7359 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7360
7361         * builtins.c (fold_builtin_fabs): Remove constant handling.
7362         (fold_builtin_abs): Likewise.
7363
7364 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7365
7366         * builtins.c (fold_builtin_copysign): Delete.
7367         (fold_builtin_2): Handle constant copysign arguments here.
7368         * match.pd: Add rules previously handled by fold_builtin_copysign.
7369
7370 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7371
7372         * builtins.c (fold_builtin_signbit): Delete.
7373         (fold_builtin_2): Handle constant signbit arguments here.
7374         * match.pd: Add rules previously handled by fold_builtin_signbit.
7375
7376 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7377
7378         * match.pd: Handle sqrt(x) cmp 0 specially.
7379
7380 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
7381
7382         * tree-vect-generic.c (expand_vector_operations_1): Check
7383         optab type before using it.
7384
7385 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7386
7387         * config/aarch64/aarch64-protos.h
7388         (struct tune_params): Add autoprefetcher_model field.
7389         * config/aarch64/aarch64.c: Include params.h
7390         (generic_tunings): Specify autoprefetcher_model value.
7391         (cortexa53_tunings): Likewise.
7392         (cortexa57_tunings): Likewise.
7393         (cortexa72_tunings): Likewise.
7394         (thunderx_tunings): Likewise.
7395         (xgene1_tunings): Likewise.
7396         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
7397         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
7398         (aarch64_override_options_internal): Set
7399         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
7400
7401 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7402
7403         * builtins.c (fold_builtin_exponent): Delete.
7404         (fold_builtin_2): Handle constant expN arguments here.
7405         * match.pd: Fold expN(logN(x)) -> x.
7406
7407 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7408
7409         * builtins.c (fold_builtin_powi): Delete.
7410         (fold_builtin_2): Handle constant powi arguments here.
7411         * match.pd: Add rules previously handled by fold_builtin_powi.
7412
7413 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7414
7415         * builtins.c (fold_builtin_pow): Delete in favor of...
7416         (fold_const_builtin_pow): ...this new function.  Only handle constant
7417         arguments.
7418         (fold_builtin_2): Update accordingly.
7419         * match.pd: Add rules previously handled by fold_builtin_pow.
7420
7421 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7422
7423         * builtins.c (fold_builtin_hypot): Delete.
7424         (fold_builtin_2): Handle constant hypot arguments here.
7425         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
7426         hypot(x, x) to fabs(x)*sqrt(2).
7427
7428 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7429
7430         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
7431         instead of make_ssa_name if not yet in SSA form.
7432
7433 2015-10-27  Richard Biener  <rguenther@suse.de>
7434
7435         * cfg.c (free_edge): Add function argument and use it instead of cfun.
7436         (clear_edges): Likewise.
7437         * cfg.h (clear_edges): Adjust prototype.
7438         * cfgexpand.c (pass_expand::execute): Adjust.
7439         * cfgloop.c (release_recorded_exits): Add function argument and use
7440         it instead of cfun.
7441         * cfgloop.h (release_recorded_exits): Adjust prototype.
7442         (loops_state_satisfies_p): Add overload with function argument.
7443         (loops_state_set): Likewise.
7444         (loops_state_clear): Likewise.
7445         (struct loop_iterator): Add function argument to constructor
7446         and iterator and use it instead of cfun.
7447         (FOR_EACH_LOOP_FN): New macro.
7448         (loop_optimizer_finalize): Add overload with function argument.
7449         * loop-init.c (loop_optimizer_init): Adjust.
7450         (fix_loop_structure): Likewise.
7451         (loop_optimizer_finaliz): Add function argument and use it
7452         instead of cfun.
7453         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
7454         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
7455         * cgraph.c (release_function_body): Do not push/pop cfun.
7456         * final.c (rest_of_clean_state): Adjust.
7457         * graphite.c (graphite_finalize): Likewise.
7458         * tree-ssa-copy.c (fini_copy_prop): Likewise.
7459         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
7460         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
7461         (tree_unroll_loops_completely): Likewise.
7462         (pass_complete_unrolli::execute): Likewise.
7463         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
7464         Add function argument and use it instead of cfun.
7465         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
7466         Adjust prototype.
7467         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
7468         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
7469         instead of cfun.
7470         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
7471         * tree-ssanames.c (fini_ssanames): Add function argument and use it
7472         instead of cfun.
7473         * tree-ssanames.c (fini_ssanames): Adjust prototype.
7474         * tree-vrp.c (execute_vrp): Adjust.
7475         * value-prof.c (free_histograms): Add function argument and use it
7476         instead of cfun.
7477         * value-prof.h (free_histograms): Adjust prototype.
7478
7479 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
7480
7481         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
7482         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
7483         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
7484
7485 2015-10-27  Tom de Vries  <tom@codesourcery.com>
7486
7487         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
7488         field_type.
7489
7490 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
7491
7492         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
7493         (inv_can_prop_to_addr_use): New function.
7494         (record_use): Call can_prop_to_addr_uses, set the new field.
7495         (get_inv_cost): Count cost if inv can't be propagated into its
7496         address uses.
7497
7498 2015-10-26  Doug Evans  <dje@google.com>
7499
7500         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
7501
7502 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
7503
7504         * match.pd (fold_widened_comparison): Apply simplifications to all
7505         integral types.
7506
7507 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
7508
7509         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
7510         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
7511         * doc/tm.texi: Regenerated.
7512         * reorg.c (dbr_schedule): Use new hook.
7513         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
7514
7515 2015-10-26  Jeff Law  <law@redhat.com>
7516
7517         PR tree-optimization/68013
7518         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7519         Make sure the first block in the path is in VISITED_BBs.
7520
7521 2015-10-26  Richard Biener  <rguenther@suse.de>
7522         Dominik Vogt  <vogt@linux.vnet.ibm.com>
7523
7524         PR middle-end/67443
7525         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
7526         Properly prune ref->ref for accesses outside of ref.
7527
7528 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7529
7530         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
7531         new statements to be inserted if inplace.  Allow calls to have
7532         nonempty sequences.
7533
7534 2015-10-26  Richard Biener  <rguenther@suse.de>
7535
7536         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
7537         (do_valueize): New function.
7538         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
7539         replace_uses_by.
7540         * tree-ssa-threadedge.c: Remove builtins.h include, include
7541         gimple-fold.h
7542         (fold_assignment_stmt): Remove.
7543         (threadedge_valueize): New function.
7544         (record_temporary_equivalences_from_stmts): Use
7545         gimple_fold_stmt_to_constant_1, note additional cleanup
7546         opportunities.
7547
7548 2015-10-26  Richard Biener  <rguenther@suse.de>
7549
7550         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
7551         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
7552
7553 2015-10-26  Alan Hayward <alan.hayward@arm.com>
7554
7555         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
7556         VEC_COND_EXPR types.
7557
7558 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7559
7560         * auto-inc-dec.c (insert_move_insn_before): Delete.
7561         (attempt_change): Remember to cost the simple move in the
7562         FORM_PRE_ADD and FORM_POST_ADD cases.
7563
7564 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7565
7566         PR target/68091
7567         * config/sh/sh.c (sh_vector_mode_supported_p): Use
7568         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
7569
7570 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7571
7572         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
7573         factored out of ...
7574         (intra_create_variable_infos): ... here.
7575
7576 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7577
7578         * tree-ssa-structalias.c (intra_create_variable_infos): Add
7579         restrict_pointer_p and recursive_restrict_p variables.
7580
7581 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7582
7583         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
7584         get_vi_for_tree call.
7585
7586 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7587
7588         PR middle-end/67989
7589         * optabs.c (expand_atomic_compare_and_swap): Handle case when
7590         ptarget_oval or ptarget_bool are const0_rtx.
7591
7592 2015-10-26  Christian Bruel  <christian.bruel@st.com>
7593
7594         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
7595         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
7596         * cp/method.c (implicitly_declare_fn): Likewise.
7597         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
7598         * java/class.c (add_method_1): Likewise.
7599
7600 2015-10-26  Richard Biener  <rguenther@suse.de>
7601
7602         * alloc-pool.h (base_pool_allocator): Use placement new.
7603         (base_pool_allocator::remove): Likewise.  Compute size outside of
7604         flag_checking.
7605
7606 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7607
7608         * builtins.c (do_real_to_int_conversion): New function.
7609         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
7610         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
7611         arguments here.
7612         * match.pd: Add rules previously handled by fold_fixed_mathfn
7613         and fold_builtin_int_roundingfn.
7614
7615 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7616
7617         * match.pd: Use macros to define built-in operator lists.
7618
7619 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
7620             Richard Biener  <rguenther@suse.de>
7621
7622         * genmatch.c (dt_simplify::gen): Skip captures that are
7623         part of the result.
7624         (parser::parse_expr): Allow captures in results too.
7625         * builtins.c (fold_builtin_cexp): Delete.
7626         (fold_builtin_1): Handle constant cexp arguments here.
7627         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
7628
7629 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
7630
7631         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
7632         conditional compilation.
7633         (base_pool_allocator::remove): Use flag_checking.
7634
7635 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
7636
7637         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
7638
7639         PR middle-end/68079
7640         * dojump.c (do_compare_and_jump): Canonicalize both function and
7641         method types.
7642
7643 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
7644
7645         PR target/68084
7646         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
7647         for =@ccae.
7648
7649 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7650
7651         PR ipa/pr67600
7652         * ipa-polymorphic-call.c
7653         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
7654         instance offset with offset of outer type.
7655
7656 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7657
7658         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
7659
7660 2015-10-23  Caroline Tice  <cmtice@google.com>
7661
7662         (from Richard Biener
7663         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
7664         call to iterative_hash_host_wide_int.
7665
7666 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7667
7668         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
7669         Define as yes.
7670
7671 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7672
7673         * tree-vect-generic.c (expand_vector_operations_1): Check
7674         optab exists before use it.
7675
7676 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7677
7678         * tree-vect-generic.c (expand_vector_condition): Avoid
7679         uninitialized variable warning.
7680
7681 2015-10-23  Jeff Law  <law@redhat.com>
7682
7683         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
7684         here.  Instead...
7685         (execute_todo): Call it here.
7686         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
7687         statistics
7688         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
7689
7690 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7691             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7692
7693         * config.gcc (enable_secureplt): Add *-linux*-musl*.
7694
7695 2015-10-23  Jeff Law  <law@redhat.com>
7696
7697         PR tree-optimization/67830
7698         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
7699         Explicitly verify the mask has no bits outside the type of
7700         the innermost operands.
7701
7702 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7703             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7704
7705         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
7706         (MUSL_DYNAMIC_LINKER64): Define.
7707         (GNU_USER_DYNAMIC_LINKER32): Update.
7708         (GNU_USER_DYNAMIC_LINKER64): Update.
7709         (CHOOSE_DYNAMIC_LINKER): Update.
7710
7711         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
7712         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
7713         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
7714         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
7715         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
7716         (CHOOSE_DYNAMIC_LINKER): Update.
7717         (INCLUDE_DEFAULTS): Redefine.
7718
7719         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
7720
7721 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7722
7723         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
7724         comparing addresses.
7725
7726 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7727
7728         * fold-const.c (operand_equal_p): Handle matching of vector
7729         constructors.
7730
7731 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7732
7733         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
7734
7735 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
7736             Andrew Pinski  <apinski@cavium.com>
7737
7738         PR rtl-optimization/67736
7739         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
7740         of gen_lowpart.
7741
7742 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7743
7744         PR middle-end/68066
7745         * tree.c (build_truth_vector_type): Support BLK mode
7746         returned for boolean vector.
7747
7748 2015-10-23  Alan Hayward <alan.hayward@arm.com>
7749
7750         PR tree-optimization/65947
7751         * tree-vect-loop.c
7752         (vect_is_simple_reduction_1): Find condition reductions.
7753         (vect_model_reduction_cost): Add condition reduction costs.
7754         (get_initial_def_for_reduction): Add condition reduction initial var.
7755         (vect_create_epilog_for_reduction): Add condition reduction epilog.
7756         (vectorizable_reduction): Condition reduction support.
7757         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
7758         * doc/sourcebuild.texi (Vector-specific attributes): Document
7759         vect_max_reduc
7760
7761 2015-10-23  Richard Biener  <rguenther@suse.de>
7762
7763         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
7764         and builtins.def.
7765
7766 2015-10-23  Richard Biener  <rguenther@suse.de>
7767             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7768
7769         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
7770         into (A ^ B) - B to match.pd
7771         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
7772
7773         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
7774         New simplifier.
7775         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
7776         New simplifier.
7777         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
7778         New simplifier.
7779         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
7780         New simplifier.
7781         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
7782         INTEGER_CST@1)): New simplifier.
7783
7784 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
7785
7786         * builtins.c (integer_valued_real_p): Move to fold-const.c.
7787         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
7788         (fold_builtin_ceil, fold_builtin_round): Delete.
7789         (fold_builtin_1): Handle constant trunc, floor, ceil and round
7790         arguments here.
7791         * convert.c (convert_to_real): Remove narrowing of rounding
7792         functions.
7793         * fold-const.h (integer_valued_real_unary_p)
7794         (integer_valued_real_binary_p, integer_valued_real_call_p)
7795         (integer_valued_real_single_p, integer_valued_real_p): Declare.
7796         * fold-const.c (tree_single_nonnegative_warnv_p): Move
7797         name_registered_for_update_p check to SSA_NAME case statement.
7798         Don't call tree_simple_nonnegative_warnv_p for SSA names.
7799         (integer_valued_real_unary_p, integer_valued_real_binary_p)
7800         (integer_valued_real_call_p, integer_valued_real_single_p)
7801         (integer_valued_real_invalid_p): New functions.
7802         (integer_valued_real_p): Move from fold-const.c and rework
7803         to call the functions above.  Handle SSA names.
7804         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
7805         * gimple-fold.c (gimple_assign_integer_valued_real_p)
7806         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
7807         (gimple_stmt_integer_valued_real_p): New functions.
7808         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
7809         Fold f(x)->x for the same f if x is known to be integer-valued.
7810         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
7811         the result.  Canonicalize floor(x) as trunc(x) if x is
7812         nonnegative.
7813
7814 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7815
7816         * tree-ssa-structalias.c (intra_create_variable_infos): Use
7817         make_constraint_from.
7818
7819 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7820
7821         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
7822         setting of is_full_var in case of a single field.
7823
7824 2015-10-22  Martin Sebor  <msebor@redhat.com>
7825
7826         PR driver/68043
7827         * config/i386/i386.opt: Add missing periods to the ends of sentences.
7828         * config/msp430/msp430.opt: Same.
7829
7830 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7831
7832         * doc/extend.exp (Global Register Variables): Rewrite.
7833
7834 2015-10-22  Jeff Law  <law@redhat.com>
7835
7836         * genattrtab.c (main): If we do not have any annul-true or annul-false
7837         slots, then write out a dummy eligible_for_annul_true or
7838         eligible_for_annul_false as needed.
7839
7840 2015-10-22  Nick Clifton  <nickc@redhat.com>
7841
7842         * config/msp430/msp430.opt: Add -msilicon-errata and
7843         -msilicon-errata-warn.
7844         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
7845         assembler.
7846         * doc/invoke.texi: Document new options.
7847
7848 2015-10-22  Richard Biener  <rguenther@suse.de>
7849
7850         PR tree-optimization/58497
7851         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
7852         (expand_vector_operations_1): Use it.  Lower operations on
7853         all uniform vectors to scalar operations if the HW supports it.
7854
7855 2015-10-22  Richard Biener  <rguenther@suse.de>
7856
7857         PR tree-optimization/19049
7858         PR tree-optimization/65962
7859         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
7860         to strided accesses if single-element interleaving doesn't work.
7861
7862 2015-10-22  Richard Biener  <rguenther@suse.de>
7863
7864         PR middle-end/68046
7865         PR middle-end/61893
7866         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
7867         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
7868         (expand_unop): Likewise.
7869
7870 2015-10-22  Richard Biener  <rguenther@suse.de>
7871
7872         * fold-const.c (fold_addr_of_array_ref_difference): Properly
7873         convert operands before folding a MINUS_EXPR.
7874         (fold_binary_loc): Move simplification of MINUS_EXPR on
7875         converted POINTER_PLUS_EXPRs ...
7876         * match.pd: ... here.
7877
7878 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7879
7880         * builtins.c (fold_builtin_tan): Delete.
7881         (fold_builtin_1): Handle constant tan arguments here.
7882         * match.pd: Simplify (tan (atan x)) to x.
7883
7884 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7885
7886         * builtins.c (fold_builtin_cproj): Delete.
7887         (fold_builtin_1): Handle constant arguments here.
7888         (build_complex_cproj): Move and rename to...
7889         * tree.c: (build_complex_inf): ...this.
7890         * tree.h (build_complex_inf): Declare.
7891         * match.pd: Fold cproj(x)->x if x has no infinity.
7892         Use build_complex_inf for existing cproj rules.
7893
7894 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7895
7896         PR target/68015
7897         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
7898         already have a comparison result.
7899
7900 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7901
7902         PR target/63304
7903         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
7904         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
7905         (aarch64_classify_address): Likewise.
7906         (aarch64_secondary_reload): Likewise.
7907         (aarch64_override_options_after_change_1): Adjust.
7908         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
7909         Use aarch64_nopcrelative_literal_loads.
7910         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
7911         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
7912         Declare.
7913
7914 2015-10-21  Martin Sebor  <msebor@redhat.com>
7915
7916         PR driver/68043
7917         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
7918         (print_filtered_help): Reference aliased option's name and encourage
7919         readers to use it in preference to the alias if the former is not
7920         documented.  Mention when using an option is diagnosed.
7921         * gcc.c (display_help): End each sentence with a period.
7922
7923         * common.opt: End each sentence that describes an option with
7924         a period.
7925         * config/aarch64/aarch64.opt: Same.
7926         * config/alpha/alpha.opt: Same.
7927         * config/arc/arc.opt: Same.
7928         * config/arm/arm.opt: Same.
7929         * config/avr/avr.opt: Same.
7930         * config/bfin/bfin.opt: Same.
7931         * config/c6x/c6x.opt: Same.
7932         * config/cr16/cr16.opt: Same.
7933         * config/cris/cris.opt: Same.
7934         * config/cris/linux.opt: Same.
7935         * config/darwin.opt: Same.
7936         * config/epiphany/epiphany.opt: Same.
7937         * config/fr30/fr30.opt: Same.
7938         * config/frv/frv.opt: Same.
7939         * config/ft32/ft32.opt: Same.
7940         * config/g.opt: Same.
7941         * config/h8300/h8300.opt: Same.
7942         * config/i386/cygming.opt: Same.
7943         * config/i386/djgpp.opt: Same.
7944         * config/i386/i386.opt: Same.
7945         * config/i386/interix.opt: Same.
7946         * config/i386/mingw-w64.opt: Same.
7947         * config/i386/mingw.opt: Same.
7948         * config/ia64/ia64.opt: Same.
7949         * config/ia64/ilp32.opt: Same.
7950         * config/iq2000/iq2000.opt: Same.
7951         * config/linux.opt: Same.
7952         * config/lm32/lm32.opt: Same.
7953         * config/lynx.opt: Same.
7954         * config/m32c/m32c.opt: Same.
7955         * config/m32r/m32r.opt: Same.
7956         * config/m68k/ieee.opt: Same.
7957         * config/m68k/m68k.opt: Same.
7958         * config/mcore/mcore.opt: Same.
7959         * config/mep/mep.opt: Same.
7960         * config/microblaze/microblaze.opt: Same.
7961         * config/mips/mips.opt: Same.
7962         * config/mmix/mmix.opt: Same.
7963         * config/mn10300/mn10300.opt: Same.
7964         * config/moxie/moxie.opt: Same.
7965         * config/msp430/msp430.opt: Same.
7966         * config/nios2/elf.opt: Same.
7967         * config/nios2/nios2.opt: Same.
7968         * config/nvptx/nvptx.opt: Same.
7969         * config/pa/pa-hpux.opt: Same.
7970         * config/pa/pa-hpux1010.opt: Same.
7971         * config/pa/pa-hpux1111.opt: Same.
7972         * config/pa/pa-hpux1131.opt: Same.
7973         * config/pa/pa.opt: Same.
7974         * config/pa/pa64-hpux.opt: Same.
7975         * config/pdp11/pdp11.opt: Same.
7976         * config/rl78/rl78.opt: Same.
7977         * config/rs6000/476.opt: Same.
7978         * config/rs6000/aix64.opt: Same.
7979         * config/rs6000/darwin.opt: Same.
7980         * config/rs6000/linux64.opt: Same.
7981         * config/rs6000/rs6000.opt: Same.
7982         * config/rs6000/sysv4.opt: Same.
7983         * config/s390/s390.opt: Same.
7984         * config/s390/tpf.opt: Same.
7985         * config/sh/sh.opt: Same.
7986         * config/sol2.opt: Same.
7987         * config/sparc/long-double-switch.opt: Same.
7988         * config/sparc/sparc.opt: Same.
7989         * config/spu/spu.opt: Same.
7990         * config/stormy16/stormy16.opt: Same.
7991         * config/tilegx/tilegx.opt: Same.
7992         * config/tilepro/tilepro.opt: Same.
7993         * config/v850/v850.opt: Same.
7994         * config/vax/vax.opt: Same.
7995         * config/visium/visium.opt: Same.
7996         * config/vms/vms.opt: Same.
7997         * config/vxworks.opt: Same.
7998         * config/xtensa/xtensa.opt: Same.
7999
8000 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8001             Sebastian Pop  <s.pop@samsung.com>
8002
8003         * graphite-scop-detection.c (parameter_index_in_region): Update call to
8004         invariant_in_sese_p_rec.
8005         * graphite-sese-to-poly.c (extract_affine): Same.
8006         * sese.c (invariant_in_sese_p_rec): Pass in an extra
8007         parameter has_vdefs.
8008         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
8009         variable depends on virtual definitions in the current region.
8010         * sese.h (invariant_in_sese_p_rec): Update declaration.
8011
8012 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8013             Sebastian Pop  <s.pop@samsung.com>
8014
8015         * graphite-scop-detection.c (build_scops): Do not handle scops
8016         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
8017         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
8018
8019 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
8020
8021         * config.in: Regenerate.
8022         * configure: Regenerate.
8023         * configure.ac (CHECKING_P): Define.
8024         * system.h: Use CHECKING_P.
8025
8026 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8027
8028         PR ipa/67056
8029         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
8030         is negative we don't know the type.
8031         (check_stmt_for_type_change): Skip constructors of non-polymorphic
8032         types as those won't help devirutalization.
8033
8034 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8035
8036         * fold-const.c (operand_equal_p): Add code matching empty constructors.
8037
8038 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8039
8040         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
8041         comments.
8042         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
8043         Add comments on sign of the result.
8044         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
8045         Recurse on operand #1 instead of operand #0.
8046         <CEIL_MOD_EXPR>: Do not recurse.
8047         <ROUND_MOD_EXPR>: Likewise.
8048
8049 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8050
8051         * cfgrtl.c (pass_free_cfg::execute): Adjust.
8052         * final.c (dbr_sequence_length): Always define.
8053         (shorten_branches): Adjust.
8054         * genattr-common.c (main): Always define DELAY_SLOTS.
8055         * genattr.c (main): Unconditionally declare functions and define
8056         macros related to delay slots.
8057         * genattrtab.c (write_eligible_delay): Adjust.
8058         (main): Always write out delay slot functions.
8059         * opts.c (default_options_table): Adjust.
8060         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
8061         (redirect_with_delay_list_safe_p): Likewise.
8062         (fill_simple_delay_slots): Likewise.
8063         (fill_slots_from_thread): Likewise.
8064         (make_return_insns): Likewise.
8065         (dbr_schedule): Likewise.
8066         (rest_of_handle_delay_slots): Likewise.
8067         (pass_delay_slots::gate): Likewise.
8068         * toplev.c (process_options): Likewise.
8069
8070 2015-10-21  Richard Henderson  <rth@redhat.com>
8071
8072         * targhooks.c (default_addr_space_pointer_mode): Remove check
8073         for generic address space.
8074         (default_addr_space_address_mode): Likewise.
8075         (default_addr_space_valid_pointer_mode): Likewise.
8076         (default_addr_space_legitimate_address_p): Likewise.
8077         (default_addr_space_legitimize_address): Likewise.
8078         * target.def (addr_space.pointer_mode): Update documentation
8079         of default behavior.
8080         (addr_space.address_mode): Likewise.
8081         * tm.texi: Update.
8082
8083         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
8084         address spaces.
8085
8086 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8087
8088         * builtins.c (fold_builtin_cabs): Delete.
8089         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8090         * match.pd: Add rules previously handled by fold_builtin_cabs.
8091
8092 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8093
8094         * fold-const.h (fold_strip_sign_ops): Delete.
8095         * fold-const.c (fold_strip_sign_ops): Likewise.
8096         (fold_unary_loc, fold_binary_loc): Remove calls to it.
8097         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
8098         (fold_builtin_ccos): Delete.
8099         (fold_builtin_pow): Don't call fold_strip_sign_ops.
8100         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
8101         Remove fndecl argument.
8102         (fold_builtin_1): Update calls accordingly.  Handle constant
8103         cos, cosh, ccos and ccosh here.
8104
8105 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8106
8107         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
8108         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
8109         * common.opt (fssa-backprop): New option.
8110         * fold-const.h (negate_mathfn_p): Declare.
8111         * fold-const.c (negate_mathfn_p): Make public.
8112         * timevar.def (TV_TREE_BACKPROP): New.
8113         * tree-pass.h (make_pass_backprop): Declare.
8114         * passes.def (pass_backprop): Add.
8115         * gimple-ssa-backprop.c: New file.
8116
8117 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8118             Sebastian Pop  <s.pop@samsung.com>
8119
8120         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
8121         Do not call create_empty_if_region_on_edge when cond_expr is true.
8122         (translate_isl_ast_node_for): Check whether a guard has been generated.
8123
8124 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8125
8126         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
8127         (operator=): Removed.
8128         (dr_info): Make alias_set number the last argument with default
8129         value of invalid_alias_set.
8130         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
8131         of dr_info.
8132         (rewrite_reductions_out_of_ssa): Iterate only through the
8133         basic blocks which are inside region.
8134         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
8135         * sese.h (struct sese_l): Removed assignment operator.
8136         (split_region_for_bb): Removed dead code.
8137
8138 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8139
8140         * graphite-poly.h (struct dr_info): Removed conversion constructor.
8141         (struct scop): Renamed scop::region to scop::scop_info
8142         (scop_set_region): Same.
8143         (SCOP_REGION): Removed
8144         (SCOP_CONTEXT): Removed.
8145         (POLY_SCOP_P): Removed.
8146         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
8147         Rename scop->region to scop->scop_info.
8148         (add_parameters_to_ivs_params): Same.
8149         (graphite_regenerate_ast_isl): Same.
8150         * graphite-poly.c (new_scop): Same.
8151         (free_scop): Same.
8152         (print_scop_params): Same.
8153         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
8154         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
8155         (dot_all_scops_1): Rename scop->region to scop->scop_info.
8156         (scop_detection::nb_pbbs_in_loops): Same.
8157         (find_scop_parameters): Same.
8158         (try_generate_gimple_bb): Same.
8159         (gather_bbs::before_dom_children): Same.
8160         (gather_bbs::after_dom_children): Same.
8161         (build_scops): Same.
8162         * graphite-sese-to-poly.c (build_scop_scattering): Same.
8163         (extract_affine_chrec): Same.
8164         (extract_affine): Same.
8165         (set_scop_parameter_dim): Same.
8166         (build_loop_iteration_domains): Same.
8167         (create_pw_aff_from_tree): Same.
8168         (add_param_constraints): Same.
8169         (build_scop_iteration_domain): Same.
8170         (build_scop_drs): Same.
8171         (analyze_drs_in_stmts): Same.
8172         (insert_out_of_ssa_copy_on_edge): Same.
8173         (rewrite_close_phi_out_of_ssa):Same.
8174         (rewrite_reductions_out_of_ssa):Same.
8175         (handle_scalar_deps_crossing_scop_limits):Same.
8176         (rewrite_cross_bb_scalar_deps):Same.
8177         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
8178         (build_poly_scop):Same.
8179         (build_alias_set): Use pointer to dr_info.
8180         * graphite.c (print_graphite_scop_statistics):
8181         (graphite_transform_loops):
8182         * sese.h (struct sese_l): Remove conversion constructor.
8183
8184 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8185
8186         PR middle-end/67966
8187         * tree.c (verify_type): Verify that TYPE_MODE match
8188         between TYPE_CANONICAL and type.
8189         * expr.c (store_expr_with_bounds): Revert my previous change.
8190         * expmed.c (store_bit_field_1): Revert prevoius change.
8191         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
8192         to match for all types.
8193
8194 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
8195
8196         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
8197         nesting.
8198
8199 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8200
8201         * doc/tm.texi: Regenerated.
8202         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
8203         * stor-layout.c (layout_type): Use mode to get vector mask size.
8204         * target.def (get_mask_mode): New.
8205         * targhooks.c (default_get_mask_mode): New.
8206         * targhooks.h (default_get_mask_mode): New.
8207         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
8208         for boolean vector.
8209         * tree.c (MAX_BOOL_CACHED_PREC): New.
8210         (nonstandard_boolean_type_cache): New.
8211         (build_nonstandard_boolean_type): New.
8212         (make_vector_type): Vector mask has no canonical type.
8213         (build_truth_vector_type): New.
8214         (build_same_sized_truth_vector_type): New.
8215         (truth_type_for): Support vector masks.
8216         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
8217         (build_truth_vector_type): New.
8218         (build_same_sized_truth_vector_type): New.
8219         (build_nonstandard_boolean_type): New.
8220         * tree-cfg.c (verify_gimple_comparison) Require boolean
8221         vector type for vector comparison.
8222         (verify_gimple_assign_ternary): Likewise.
8223         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
8224         condition operand.
8225         * tree-vect-stmts.c (vectorizable_condition): Use boolean
8226         vector type for vector comparison.
8227         * tree-vect-generic.c (elem_op_func): Add new operand to hold
8228         vector type.
8229         (do_unop): Adjust to modified function type.
8230         (do_binop): Likewise.
8231         (do_plus_minus): Likewise.
8232         (do_negate); Likewise.
8233         (expand_vector_piecewise): Likewise.
8234         (do_cond): Likewise.
8235         (do_compare): Use comparison instead of condition.
8236         (expand_vector_divmod): Use boolean vector type for comparison.
8237         (expand_vector_operations_1): Skip scalar mask operations.
8238
8239 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8240
8241         * omp-low.c (simd_clone_create): Set in_other_partition
8242         for created clones.
8243
8244 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
8245
8246         * doc/extend.exp (Local Register Variables): Rewrite.
8247
8248 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8249
8250         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
8251         and x*x in cases where the operands are sign ops.  Extend these
8252         rules to handle copysign as a sign op (including for cos, cosh
8253         and pow, which already treated negate and abs as sign ops).
8254
8255 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
8256
8257         PR target/68018
8258         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
8259         for 64-bit MS_ABI targets also when default incoming stack boundary
8260         is overriden.
8261
8262 2015-10-21  Richard Biener  <rguenther@suse.de>
8263
8264         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
8265         cond stmts, enhanced and split out from ...
8266         (vn_phi_eq): ... here.
8267
8268 2015-10-21  Richard Biener  <rguenther@suse.de>
8269
8270         PR middle-end/68031
8271         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
8272         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
8273         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
8274         make sure they are not registered for update.
8275
8276 2015-10-21  Richard Biener  <rguenther@suse.de>
8277
8278         PR tree-optimization/68026
8279         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
8280         unsigned VARYING values.
8281
8282 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
8283
8284         * asan.c (asan_emit_stack_protection): Don't pass local stack to
8285         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
8286         NULL and use local stack than.
8287         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
8288         in addition to __asan_init.
8289         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
8290         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
8291         * asan.h (asan_intercepted_p): Handle new string builtins.
8292         * ubsan.c (ubsan_use_new_style_p): New function.
8293         (ubsan_instrument_float_cast): If location is unknown, assign
8294         input_location to loc. Propagate loc to ubsan_create_data if
8295         ubsan_use_new_style_p returned true.
8296
8297 2015-10-21  Jeff Law  <law@redhat.com>
8298
8299         * Makefile.in (OBJS): Remove sched-vis.c
8300         * sched-vis.c: Removed.  Code moved into...
8301         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
8302         * rtl.h: Remove prototypes for functions now living in print-rtl.c
8303         * print-rtl.h Add prototypes for new functions in print-rtl.c.
8304         * auto-inc-dec.c: Include print-rtl.h
8305         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
8306         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
8307
8308         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
8309         ATTRIBUTE_UNUSED.
8310
8311 2015-10-21  Richard Biener  <rguenther@suse.de>
8312             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8313
8314         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
8315         to match.pd.
8316 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
8317 about signed left shift stronger and clarify the cases when they're
8318 broken.
8319         Move (a * (1 << b)) is (a << b) to match.pd.
8320         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
8321         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
8322         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
8323
8324         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
8325         New simplifier.
8326         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
8327         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
8328         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
8329         : New simplifier.
8330         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
8331         New simplifier.
8332         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
8333
8334 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
8335             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8336             Alan Modra  <amodra@gmail.com>
8337
8338         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
8339         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
8340         (LINK_SPEC): Add %(link_secure_plt).
8341         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
8342         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
8343
8344 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
8345             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8346
8347         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
8348         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
8349
8350 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8351
8352         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
8353         New function.
8354         (fusion_load_store): Use it.
8355         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
8356         ldp and stp in VD modes.
8357         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
8358         (store_pair<mode>, VD): Likewise.
8359
8360 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8361
8362         PR rtl-optimization/67609
8363         * lra-splill.c (lra_final_code_change): Don't remove all
8364         sub-registers.
8365
8366 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8367
8368         * simplify-rtx.c (simplify_binary_operation): If either operand was
8369         a constant pool reference use them if all other simplifications failed.
8370
8371 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8372
8373         * config/aarch64/aarch64.md
8374         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
8375         * config/aarch64/aarch64-simd.md
8376         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
8377         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
8378         (aarch64_fpconst_pow_of_2): New function.
8379         (aarch64_vec_fpconst_pow_of_2): Likewise.
8380         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
8381         prototype.
8382         (aarch64_vec_fpconst_pow_of_2): Likewise.
8383         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
8384         (aarch64_fp_vec_pow2): Likewise.
8385
8386 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
8387
8388         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
8389         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
8390         * config/alpha/alpha.c (alpha_function_arg_advance): Update
8391         ALPHA_ARG_SIZE usage.
8392         (alpha_arg_partial_bytes): Ditto.
8393
8394 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8395
8396         PR target/66810
8397         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
8398         error_mark_node decls.
8399
8400 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8401
8402         PR target/67963
8403         PR target/67985
8404         * common/config/i386/i386-common.c (ix86_handle_option): Remove
8405         OPT_miamcu handling.
8406         * config/i386/i386.c (PTA_NO_80387): New macro.
8407         (processor_alias_table): Add PTA_NO_80387 to lakemont.
8408         (ix86_option_override_internal): Update MASK_80387 from
8409         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
8410         SSE math only if 80387 is supported.  Don't change
8411         MASK_FLOAT_RETURNS.
8412         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
8413         80387 is supported.
8414         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
8415         if TARGET_80387 is true and TARGET_IAMCU is false.
8416         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
8417         is true and TARGET_IAMCU_P is false.
8418
8419 2015-10-20  Richard Biener  <rguenther@suse.de>
8420
8421         PR tree-optimization/68017
8422         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
8423
8424 2015-10-20  Martin Liska  <mliska@suse.cz>
8425
8426         * cgraphclones.c (cgraph_node::create_virtual_clone):
8427         Verify cgraph_node.local.versionable instead of calling
8428         tree_versionable_function_p.
8429         * ipa-cp.c (determine_versionability): Save the information
8430         to ipa_node_params summary.
8431         (ipcp_versionable_function_p): Use it.
8432         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
8433         (ipcp_generate_summary): Do not compute cgraph_node
8434         versionability.
8435         * ipa-inline-analysis.c (inline_generate_summary): Compute
8436         versionability for all cgraph nodes.
8437         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
8438         ipa_node_params::versionability.
8439         * ipa-prop.h (struct ipa_node_params): Declare it.
8440
8441 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8442
8443         PR other/67868
8444         * varasm.c (assemble_variable): Move special vtv handling to..
8445         (handle_vtv_comdat_sections): .. here. New function.
8446         (output_object_block): Handle vtv sections.
8447
8448 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8449
8450         PR target/66912
8451         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
8452
8453 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
8454
8455         * doc/extend.texi: Update documentation WRT inline functions.
8456
8457 2015-10-20  Alan Modra  <amodra@gmail.com>
8458
8459         PR go/66870
8460         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
8461         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8462         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
8463
8464 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
8465
8466         PR rtl-optimization/66790
8467         * df.h (DF_MIR): New macro.
8468         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
8469         (DF_MIR_INFO_BB): New macro.
8470         (DF_MIR_IN, DF_MIR_OUT): New macros.
8471         (struct df_mir_bb_info): New.
8472         (df_mir): New macro.
8473         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
8474         declarations.
8475         (df_mir_get_bb_info): New.
8476         * df-problems.c (struct df_mir_problem_data): New.
8477         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
8478         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
8479         df_mir_confluence_0, df_mir_confluence_n,
8480         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
8481         df_mir_bottom_dump, df_mir_verify_solution_start,
8482         df_mir_verify_solution_end): New.
8483         (problem_MIR): New.
8484         (df_mir_add_problem, df_mir_simulate_one_insn): New.
8485         * timevar.def (TV_DF_MIR): New.
8486         * ree.c: Include bitmap.h
8487         (add_removable_extension): Add an INIT_REGS parameter.  Use it
8488         to skip zero-extensions that may get an uninitialized register.
8489         (find_removable_extensions): Compute must-initialized registers
8490         using the MIR dataflow problem. Update the call to
8491         add_removable_extension.
8492         (find_and_remove_re): Call df_mir_add_problem.
8493
8494 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
8495
8496         * common/config/mn10300/mn10300-common.c
8497         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
8498         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
8499
8500 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
8501
8502         * doc/extend.texi (Explicit Register Variables): Simplify and
8503         avoid unnecessary and confusion abbreviations.  Update cross
8504         references.
8505         doc/implement-c.tex: Update cross reference.
8506
8507 2015-10-19  Jeff Law  <law@redhat.com>
8508
8509         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
8510         that create irreducible loops unless the path elimiantes a multiway
8511         branch.
8512
8513 2015-10-19  Richard Biener  <rguenther@suse.de>
8514
8515         PR tree-optimization/67975
8516         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
8517         * tree-cfg.c (extract_true_false_controlled_edges): Split out
8518         core worker from ...
8519         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
8520         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
8521         instead of block number for PHIs with two or one args.
8522         (vn_phi_eq): Compare edge predicates of PHIs that are in different
8523         blocks.
8524
8525 2015-10-19  Richard Biener  <rguenther@suse.de>
8526
8527         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
8528         (gimple_stmt_nonnegative_warnv_p): Use it.
8529         * match.pd (CPROJ): New operator list.
8530         (cproj (complex ...)): Move simplifications from ...
8531         * builtins.c (fold_builtin_cproj): ... here.
8532
8533 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8534
8535         * config/i386/i386.c (ix86_expand_vector_move): Use
8536         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
8537         alignment.
8538
8539 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8540
8541         * doc/invoke.texi: Replace @optindex with @opindex.
8542
8543 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8544
8545         PR target/67995
8546         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
8547         arch= is set,  clear all bits in x_ix86_isa_flags, except for
8548         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
8549
8550 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
8551
8552         PR middle-end/68002
8553         * common.opt (fkeep-static-functions): New option.
8554         * doc/invoke.texi: Document it.
8555         * cgraphunit.c (cgraph_node::finalize_function): Use it.
8556
8557 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8558
8559         * sched-int.h (struct autopref_multipass_data_): Remove offset
8560         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
8561         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
8562         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
8563         (autopref_rank_data): New function.
8564         (autopref_rank_for_schedule): Use it.
8565         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
8566
8567 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
8568
8569         PR other/65800
8570         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
8571
8572 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8573
8574         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
8575         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
8576         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
8577         (STANDARD_STARTFILE_PREFIX_1): New.
8578         (STANDARD_STARTFILE_PREFIX_2): New.
8579
8580 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8581
8582         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
8583         (darwin_driver_init): Note a version-min when provided on the c/l.
8584         * config/darwin.h (%darwin_minversion): Remove.
8585         * config/i386/darwin.h: Likewise.
8586         * config/rs6000/darwin.h: Likewise.
8587         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
8588         rather than an arbitrary constant.
8589
8590 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8591
8592         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
8593         PPC, detect conflicts between -arch and multilib settings.  Detect
8594         and warn about conflicts between multiple -arch definitions.
8595
8596 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8597
8598         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
8599
8600 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8601
8602         * lra-constraints.c (add_next_usage_insn): Change argument type
8603         from rtx to rtx_insn *.
8604
8605 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
8606
8607         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
8608         for Lakemont.
8609
8610 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
8611
8612         * config/tilepro/gen-mul-tables.cc: Adjust include files.
8613         * config/tilegx/mul-tables.c: Regenerate.
8614         * config/tilepro/mul-tables.c: Regenerate.
8615
8616         * config/tilegx/tilegx-c.c: Adjust include files.
8617         * config/tilegx/tilegx.c: Likewise.
8618         * config/tilepro/tilepro-c.c: Likewise.
8619         * config/tilepro/tilepro.c: Likewise.
8620         * config/aarch64/aarch64-builtins.c: Likewise.
8621         * config/aarch64/aarch64.c: Likewise.
8622         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8623         * config/alpha/alpha.c: Likewise.
8624         * config/arc/arc.c: Likewise.
8625         * config/arm/aarch-common.c: Likewise.
8626         * config/arm/arm-builtins.c: Likewise.
8627         * config/arm/arm-c.c: Likewise.
8628         * config/arm/arm.c: Likewise.
8629         * config/avr/avr-c.c: Likewise.
8630         * config/avr/avr-devices.c: Likewise.
8631         * config/avr/avr-log.c: Likewise.
8632         * config/avr/avr.c: Likewise.
8633         * config/bfin/bfin.c: Likewise.
8634         * config/c6x/c6x.c: Likewise.
8635         * config/cr16/cr16.c: Likewise.
8636         * config/cris/cris.c: Likewise.
8637         * config/darwin-c.c: Likewise.
8638         * config/darwin-driver.c: Likewise.
8639         * config/darwin.c: Likewise.
8640         * config/default-c.c: Likewise.
8641         * config/epiphany/epiphany.c: Likewise.
8642         * config/epiphany/mode-switch-use.c: Likewise.
8643         * config/epiphany/resolve-sw-modes.c: Likewise.
8644         * config/fr30/fr30.c: Likewise.
8645         * config/frv/frv.c: Likewise.
8646         * config/ft32/ft32.c: Likewise.
8647         * config/glibc-c.c: Likewise.
8648         * config/h8300/h8300.c: Likewise.
8649         * config/i386/host-cygwin.c: Likewise.
8650         * config/i386/host-mingw32.c: Likewise.
8651         * config/i386/i386-c.c: Likewise.
8652         * config/i386/i386.c: Likewise.
8653         * config/i386/msformat-c.c: Likewise.
8654         * config/i386/winnt-cxx.c: Likewise.
8655         * config/i386/winnt-stubs.c: Likewise.
8656         * config/i386/winnt.c: Likewise.
8657         * config/ia64/ia64-c.c: Likewise.
8658         * config/ia64/ia64.c: Likewise.
8659         * config/iq2000/iq2000.c: Likewise.
8660         * config/lm32/lm32.c: Likewise.
8661         * config/m32c/m32c-pragma.c: Likewise.
8662         * config/m32c/m32c.c: Likewise.
8663         * config/m32r/m32r.c: Likewise.
8664         * config/mcore/mcore.c: Likewise.
8665         * config/mep/mep-pragma.c: Likewise.
8666         * config/mep/mep.c: Likewise.
8667         * config/microblaze/microblaze-c.c: Likewise.
8668         * config/microblaze/microblaze.c: Likewise.
8669         * config/mips/mips-tables.opt
8670         * config/mips/mips.c: Likewise.
8671         * config/mmix/mmix.c: Likewise.
8672         * config/mn10300/mn10300.c: Likewise.
8673         * config/moxie/moxie.c: Likewise.
8674         * config/msp430/msp430-c.c: Likewise.
8675         * config/msp430/msp430.c: Likewise.
8676         * config/nds32/nds32-cost.c: Likewise.
8677         * config/nds32/nds32-fp-as-gp.c: Likewise.
8678         * config/nds32/nds32-intrinsic.c: Likewise.
8679         * config/nds32/nds32-isr.c: Likewise.
8680         * config/nds32/nds32-md-auxiliary.c: Likewise.
8681         * config/nds32/nds32-memory-manipulation.c: Likewise.
8682         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8683         * config/nds32/nds32-predicates.c: Likewise.
8684         * config/nds32/nds32.c: Likewise.
8685         * config/nios2/nios2.c: Likewise.
8686         * config/nvptx/mkoffload.c: Likewise.
8687         * config/nvptx/nvptx.c: Likewise.
8688         * config/pa/pa.c: Likewise.
8689         * config/pdp11/pdp11.c: Likewise.
8690         * config/rl78/rl78-c.c: Likewise.
8691         * config/rl78/rl78.c: Likewise.
8692         * config/rs6000/host-darwin.c: Likewise.
8693         * config/rs6000/rs6000-c.c: Likewise.
8694         * config/rs6000/rs6000-linux.c: Likewise.
8695         * config/rs6000/rs6000.c: Likewise.
8696         * config/rx/rx.c: Likewise.
8697         * config/s390/s390-c.c: Likewise.
8698         * config/s390/s390.c: Likewise.
8699         * config/sh/sh-c.c: Likewise.
8700         * config/sh/sh-mem.cc: Likewise.
8701         * config/sh/sh.c: Likewise.
8702         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8703         * config/sh/sh_treg_combine.cc: Likewise.
8704         * config/sol2-c.c: Likewise.
8705         * config/sol2-cxx.c: Likewise.
8706         * config/sol2-stubs.c: Likewise.
8707         * config/sol2.c: Likewise.
8708         * config/sparc/sparc-c.c: Likewise.
8709         * config/sparc/sparc.c: Likewise.
8710         * config/spu/spu-c.c: Likewise.
8711         * config/spu/spu.c: Likewise.
8712         * config/stormy16/stormy16.c: Likewise.
8713         * config/v850/v850-c.c: Likewise.
8714         * config/v850/v850.c: Likewise.
8715         * config/vax/vax.c: Likewise.
8716         * config/visium/visium.c: Likewise.
8717         * config/vms/vms-c.c: Likewise.
8718         * config/vms/vms.c: Likewise.
8719         * config/vxworks.c: Likewise.
8720         * config/winnt-c.c: Likewise.
8721         * config/xtensa/xtensa.c: Likewise.
8722
8723 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8724
8725         PR target/67745
8726         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
8727         (FUNCTION_BOUNDARY_P): New macro:
8728         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
8729         New hook.
8730         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
8731         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
8732         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
8733         * function.c (allocate_struct_function): Call
8734         relayout_function hook.
8735         * passes.c (rest_of_decl_compilation): Likewise.
8736
8737 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8738
8739         PR target/67745
8740         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
8741         * config/arm/arm.c (arm_option_override_internal): Call
8742         arm_override_options_after_change_1.
8743         (arm_override_options_after_change): New function.
8744         (arm_override_options_after_change_1): Likewise.
8745         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
8746
8747 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8748
8749         Revert:
8750         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8751         empty constructors.
8752
8753 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8754
8755         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
8756         argument is an ADDR_EXPR.
8757
8758 2015-10-16  Richard Biener  <rguenther@suse.de>
8759
8760         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
8761         and get rid of force_gimple_operand_gsi.
8762         (gimple_fold_builtin_memory_chk): Likewise.
8763         (gimple_fold_builtin_stxcpy_chk): Likewise.
8764         (rewrite_to_defined_overflow): Likewise.
8765         (gimple_convert_to_ptrofftype): New function.
8766         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
8767
8768 2015-10-16  Richard Biener  <rguenther@suse.de>
8769
8770         * tree-nested.h (build_addr): Adjust prototype.
8771         * tree-nested.c (build_addr): Remove context argument and use
8772         mark_addressable.
8773         (get_static_chain): Adjust calls to build_addr.
8774         (convert_nl_goto_reference): Likewise.
8775         (convert_tramp_reference_op): Likewise.
8776         (finalize_nesting_tree_1): Likewise.
8777         * value-prof.c (gimple_ic): Likewise.
8778         * gimple-low.c (lower_builtin_setjmp): Likewise.
8779         * tree-parloops.c (take_address_of): Likewise.
8780         (create_call_for_reduction_1): Likewise.
8781         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
8782         (gimple_gen_ic_func_profiler): Likewise.
8783
8784 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8785
8786         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8787         empty constructors.
8788
8789 2015-10-16  Michael Collison  <michael.collison@linaro.org>
8790             Andrew Pinski <andrew.pinski@caviumnetworks.com>
8791
8792         * match.pd ((x < y) && (x < z) -> x < min (y,z),
8793         (x > y) and (x > z) -> x > max (y,z))
8794
8795 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
8796             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8797
8798         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
8799         (DYNAMIC_LINKER): Renamed to ...
8800         (GLIBC_DYNAMIC_LINKER): This.
8801         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
8802
8803 2015-10-15  Marek Polacek  <polacek@redhat.com>
8804
8805         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
8806         gimple_call_builtin instead of is_gimple_call.
8807
8808 2015-10-15  Richard Biener  <rguenther@suse.de>
8809
8810         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
8811
8812 2015-10-15  Richard Biener  <rguenther@suse.de>
8813
8814         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
8815         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
8816         * tree-vect-loop.c (get_initial_def_for_induction): Drop
8817         use of force_gimple_operand in favor of gimple_build.
8818         Use vect_get_new_ssa_name.
8819         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
8820         (vectorizable_mask_load_store): Likewise.
8821         (vectorizable_call): Likewise.
8822         (vectorizable_store): Likewise.
8823         (vectorizable_load): Likewise.
8824         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
8825
8826 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
8827
8828         PR tree-optimization/67945
8829         * tree-pass.h (PROP_gimple_opt_math): New property flag.
8830         * generic-match-head.c (canonicalize_math_p): New function.
8831         * gimple-match-head.c: Include tree-pass.h.
8832         (canonicalize_math_p): New function.
8833         * match.pd: Group math built-in rules into simplifications
8834         and canonicalizations.  Guard the latter with canonicalize_math_p.
8835         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
8836         PROP_gimple_opt_math property.
8837
8838 2015-10-15  Marek Polacek  <polacek@redhat.com>
8839
8840         PR tree-optimization/67953
8841         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
8842
8843 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
8844
8845         * config.gcc: Recognize "." in architecture base name for AArch64.
8846
8847 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8848
8849         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
8850         ROUND_UP macro.
8851         * config/mips/mips.c (mips_setup_incoming_varargs): Use
8852         ROUND_DOWN to calculate off.
8853         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
8854         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
8855         rounded_size.
8856
8857 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8858
8859         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
8860
8861 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
8862             Torvald Riegel  <triegel@redhat.com>
8863
8864         PR target/67281
8865         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
8866         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8867         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
8868         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
8869         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
8870         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8871         trechkpt, treclaim, tsr, ttest): New define_expands.
8872         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8873         __TM_FENCE__ for htm.
8874         * doc/extend.texi: Update documentation for htm builtins.
8875
8876 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8877
8878         PR target/67967
8879         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
8880         REG_CFA_EXPRESSION to aligned SSE stores.
8881
8882 2015-10-14  Jeff Law  <law@redhat.com>
8883
8884         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
8885         num_threaded_edges for successful FSM threads too.
8886
8887 2015-10-14  Richard Biener  <rguenther@suse.de>
8888
8889         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
8890         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
8891         (vect_get_vec_def_for_operand): Remove unused parameter.
8892         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
8893         (vect_create_epilog_for_reduction): Likewise.
8894         (vectorizable_reduction): Likewise.
8895         (vectorizable_live_operation): Likewise.
8896         * tree-vect-patterns.c (type_conversion_p): Likewise.
8897         (vect_recog_vector_vector_shift_pattern): Likewise.
8898         (check_bool_pattern): Likewise.
8899         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8900         (vect_analyze_slp_cost_1): Likewise.
8901         * tree-vect-stmts.c (process_use): Likewise.
8902         (vect_get_vec_def_for_operand): Do not handle reductions.
8903         (vect_get_vec_defs): Adjust.
8904         (vectorizable_mask_load_store): Likewise.
8905         (vectorizable_call): Likewise.
8906         (vectorizable_simd_clone_call): Likewise.
8907         (vect_get_loop_based_defs): Likewise.
8908         (vectorizable_conversion): Likewise.
8909         (vectorizable_assignment): Likewise.
8910         (vectorizable_shift): Likewise.
8911         (vectorizable_operation): Likewise.
8912         (vectorizable_store): Likewise.
8913         (vectorizable_load): Likewise.
8914         (vect_is_simple_cond): Likewise.
8915         (vectorizable_condition): Likewise.
8916         (vect_is_simple_use): Remove unused parameters.
8917         (vect_is_simple_use_1): Adjust and rename.
8918
8919 2015-10-14  Richard Biener  <rguenther@suse.de>
8920
8921         PR tree-optimization/67915
8922         * match.pd: Handle comparisons of addresses of STRING_CSTs.
8923         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
8924         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
8925         stmt folding in favor of GIMPLE one.
8926
8927 2015-10-14  Marek Polacek  <polacek@redhat.com>
8928
8929         PR tree-optimization/67815
8930         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
8931         (reassociate_bb): Call it.
8932
8933 2015-10-14  Richard Biener  <rguenther@suse.de>
8934
8935         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8936         Reset info at start.
8937         (vect_analyze_group_access_1): Add debug print.
8938         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
8939         (vect_compute_single_scalar_iteration_cost): ... to this.
8940         (vect_analyze_loop_2): Adjust.
8941         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
8942         * tree-vectorizer.h: ... here.
8943         (add_stmt_info_to_vec): Remove.
8944         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
8945
8946 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8947
8948         * targhooks.c (default_target_option_pragma_parse): Do not warn if
8949         called on behalf of "#pragma GCC pop_options".
8950
8951 2015-10-14  Tom de Vries  <tom@codesourcery.com>
8952
8953         * cfganal.c (verify_no_unreachable_blocks): New function.
8954         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
8955         verify_no_unreachable_blocks.
8956         cfganal.h (verify_no_unreachable_blocks): Declare.
8957
8958 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
8959
8960         * common.opt: Add flag_checking.
8961         * system.h (CHECKING_P): Define.
8962
8963 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
8964             Aldy Hernandez  <aldyh@redhat.com>
8965             Ilya Verbin  <ilya.verbin@intel.com>
8966
8967         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
8968         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
8969         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
8970         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
8971         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
8972         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
8973         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
8974         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
8975         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
8976         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
8977         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
8978         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
8979         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
8980         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
8981         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
8982         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
8983         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
8984         (struct cgraph_simd_clone_arg): Adjust comment.
8985         * coretypes.h (struct gomp_ordered): New forward decl.
8986         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
8987         set critical clauses to it.
8988         (gimple_build_omp_ordered): Return gomp_ordered * instead of
8989         gimple *.  Add CLAUSES argument, set ordered clauses to it.
8990         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
8991         GIMPLE_OMP_ORDERED.
8992         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
8993         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
8994         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
8995         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
8996         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
8997         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
8998         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
8999         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
9000         renumber
9001         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
9002         (gomp_critical): Add clauses field.
9003         (gomp_ordered): New struct.
9004         (is_a_helper <gomp_ordered *>::test): New inline.
9005         (gimple_build_omp_critical): Add CLAUSES argument.
9006         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
9007         instead of gimple *.
9008         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
9009         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
9010         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
9011         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
9012         inline functions.
9013         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
9014         (dump_gimple_omp_target): Handle enter data and exit data.
9015         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
9016         (dump_gimple_omp_critical): Print clauses.
9017         (dump_gimple_omp_ordered): New function.
9018         (dump_gimple_omp_task): Handle taskloop.
9019         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
9020         GIMPLE_OMP_ORDERED.
9021         * gimple-walk.c (walk_gimple_op): Walk clauses on
9022         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
9023         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
9024         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
9025         (struct gimplify_omp_ctx): Add loop_iter_var,
9026         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
9027         and target_firstprivatize_array_bases fields.
9028         (delete_omp_context): Release loop_iter_var.
9029         (gimplify_bind_expr): Handle ORT_NONE.
9030         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
9031         ORT_COMBINED_TARGET.
9032         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
9033         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
9034         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
9035         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
9036         ctx->target_map_scalars_firstprivate.
9037         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
9038         data sharing clauses.  For data sharing clause with VLA decl
9039         on omp target/target data don't add firstprivate for the pointer.
9040         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
9041         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
9042         the addition of ORT_COMBINED_TARGET.
9043         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
9044         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
9045         pointers as zero length array sections and
9046         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
9047         data sharing.
9048         (omp_check_private): Handle omp_member_access_dummy_var vars.
9049         (find_decl_expr): New function.
9050         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
9051         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
9052         Handle OMP_CLAUSE_GANG separately.  Handle
9053         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9054         clauses.  Diagnose linear clause on combined
9055         distribute {, parallel for} simd construct, unless it is the loop
9056         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
9057         Handle map clauses with COMPONENT_REF.  Initialize
9058         ctx->target_map_scalars_firstprivate,
9059         ctx->target_firstprivatize_array_bases and
9060         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
9061         linear clause even to target region if combined.  Remove
9062         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
9063         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
9064         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
9065         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
9066         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
9067         For linear clause on worksharing loop combined with parallel add
9068         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
9069         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
9070         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
9071         taskloop if needed.
9072         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
9073         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
9074         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
9075         GOMP_MAP_POINTER.
9076         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
9077         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
9078         in target body.  Handle removal of struct mapping if struct is not
9079         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
9080         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
9081         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
9082         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
9083         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
9084         clause appear together.  Handle
9085         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
9086         clause if it has map-type-modifier always.  Handle
9087         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9088         clauses.
9089         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
9090         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
9091         callers.
9092         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
9093         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
9094         iterators in doacross loops.
9095         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
9096         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
9097         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
9098         for the addition of ORT_COMBINED_TARGET.
9099         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
9100         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
9101         and OMP_TARGET_EXIT_DATA.
9102         (gimplify_omp_ordered): New function.
9103         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
9104         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
9105         Gimplify clauses on OMP_CRITICAL.
9106         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
9107         expand_GOMP_SIMD_ORDERED_END): New functions.
9108         * internal-fn.def (GOMP_SIMD_ORDERED_START,
9109         GOMP_SIMD_ORDERED_END): New internal functions.
9110         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
9111         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
9112         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
9113         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
9114         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
9115         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
9116         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
9117         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
9118         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
9119         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
9120         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
9121         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
9122         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
9123         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
9124         adjust type.
9125         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
9126         GOMP_target_data_41, adjust type.
9127         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
9128         GOMP_target_update_41, adjust type.
9129         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
9130         field.
9131         (struct omp_for_data): Add ordered and simd_schedule fields.
9132         (omp_member_access_dummy_var, unshare_and_remap_1,
9133         unshare_and_remap, is_taskloop_ctx): New functions.
9134         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
9135         (extract_omp_for_data): Handle taskloops and doacross loops
9136         and simd schedule modifier.
9137         (omp_adjust_chunk_size): New function.
9138         (get_ws_args_for): Use it.
9139         (lookup_sfield): Change first argument to splay_tree_key,
9140         add overload with first argument tree.
9141         (maybe_lookup_field): Likewise.
9142         (use_pointer_for_field): Handle omp_member_access_dummy_var.
9143         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
9144         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
9145         (build_outer_var_ref): Add LASTPRIVATE argument, handle
9146         taskloops and omp_member_access_dummy_var vars.
9147         (build_sender_ref): Change first argument to splay_tree_key,
9148         add overload with first argument tree.
9149         (install_var_field): For mask & 8 use &DECL_UID as key instead
9150         of the tree itself.
9151         (fixup_child_record_type): Const qualify *.omp_data_i.
9152         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
9153         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
9154         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
9155         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
9156         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
9157         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
9158         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
9159         kinds.
9160         (add_taskreg_looptemp_clauses): New function.
9161         (scan_omp_parallel): Use it.
9162         (scan_omp_task): Likewise.
9163         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9164         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
9165         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9166         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
9167         sandwiched taskloop constructs.  Type check
9168         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
9169         region.  Diagnose depend(source) or depend(sink:...) on
9170         target constructs or task/taskloop.
9171         (handle_simd_reference): Use get_name.
9172         (lower_rec_input_clauses): Likewise.  Ignore all
9173         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
9174         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
9175         before passing it to omp_clause_{default,copy}_ctor.  Handle
9176         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
9177         lastprivate_firstprivate flag for linear that needs copyin and
9178         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
9179         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
9180         on taskloop lookup decl in outer context.  Pass true to
9181         build_outer_var_ref lastprivate argument.  Handle
9182         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
9183         outside of outer taskloop for.
9184         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
9185         OMP_CLAUSE_DECL.
9186         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
9187         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
9188         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
9189         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
9190         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
9191         abstract origin.  Handle omp_member_access_dummy_var vars.
9192         (expand_parallel_call): Use expand_omp_build_assign.
9193         (expand_task_call): Handle taskloop construct expansion.  Add
9194         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
9195         integers.  Add priority argument to GOMP_task* calls.  Or in
9196         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
9197         GOMP_task call.
9198         (expand_omp_build_assign): Add prototype.  Add AFTER
9199         argument, if true emit statements after *GSI_P and continue linking.
9200         (expand_omp_taskreg): Adjust expand_task_call caller.
9201         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
9202         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
9203         zero_iter2_bb and first_zero_iter2 arguments, handle computation
9204         of counts even for ordered loops.
9205         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
9206         (expand_omp_ordered_source, expand_omp_ordered_sink,
9207         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
9208         functions.
9209         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
9210         clauses on worksharing loop.  Handle DOACROSS loop expansion.
9211         (expand_omp_for_static_nochunk): Handle linear clauses on
9212         worksharing loop.  Adjust expand_omp_for_init_counts
9213         callers.
9214         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
9215         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
9216         expand_omp_for_init_counts callers.
9217         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
9218         functions.
9219         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
9220         Handle doacross loops.
9221         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9222         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
9223         GOMP_target_{41,update_41,enter_exit_data} libcalls.
9224         (expand_omp): Don't expand ordered depend constructs here, record
9225         ord_stmt instead for later expand_omp_for_generic.
9226         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9227         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9228         clause as stand-alone directive.
9229         (lower_omp_ordered_clauses): New function.
9230         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
9231         don't lower anything.
9232         (lower_omp_for_lastprivate): Use last _looptemp_ clause
9233         on taskloop for comparison.
9234         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
9235         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
9236         expansion for linear adjustments.
9237         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9238         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
9239         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
9240         to tree * pointing to the stmt's clauses.
9241         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
9242         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9243         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
9244         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
9245         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
9246         clauses.  Always use short kind and 8-bit align shift.
9247         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
9248         (struct lower_omp_regimplify_operands_data): New type.
9249         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
9250         New functions.
9251         (lower_omp_1): Use lower_omp_regimplify_operands instead of
9252         gimple_regimplify_operands.
9253         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9254         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9255         clause as stand-alone directive.
9256         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
9257         (simd_clone_mangle): Mangle the various linear kinds
9258         per the new ABI.
9259         (simd_clone_adjust_argument_types): Handle
9260         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
9261         (simd_clone_init_simd_arrays): Don't do anything for uval.
9262         (simd_clone_adjust): Handle
9263         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9264         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
9265         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
9266         * omp-low.h (omp_member_access_dummy_var): New prototype.
9267         * passes.def (pass_simduid_cleanup): Schedule another copy of the
9268         pass after all optimizations.
9269         * tree.c (omp_clause_code_name): Add entries for
9270         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9271         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9272         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
9273         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
9274         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
9275         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
9276         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9277         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
9278         clauses.
9279         * tree-core.h (enum omp_clause_linear_kind): New.
9280         (struct tree_omp_clause): Change type of map_kind
9281         from unsigned char to unsigned int.  Add subcode.if_modifier
9282         and subcode.linear_kind fields.
9283         (enum omp_clause_code): Add
9284         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9285         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9286         (OMP_CLAUSE_REDUCTION): Document
9287         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9288         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
9289         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
9290         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
9291         operand.
9292         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
9293         operand.
9294         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
9295         codes.
9296         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
9297         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
9298         char.
9299         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
9300         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
9301         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
9302         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
9303         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
9304         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
9305         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
9306         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
9307         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
9308         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
9309         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
9310         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
9311         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
9312         * tree-inline.c (remap_gimple_stmt): Handle clauses on
9313         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
9314         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
9315         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
9316         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9317         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9318         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9319         (convert_local_omp_clauses): Likewise.
9320         * tree-pretty-print.c (dump_omp_clause): Handle
9321         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9322         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9323         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
9324         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
9325         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
9326         GOMP_MAP_FORCE_DEALLOC.  Handle
9327         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
9328         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
9329         and clauses on OMP_ORDERED and OMP_CRITICAL.
9330         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
9331         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
9332         (vectorize_loops): Adjust comments.
9333         (pass_simduid_cleanup::execute): Likewise.
9334         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9335         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
9336         * wide-int.h (wi::gcd): New.
9337
9338 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9339
9340         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
9341         (ix86_function_arg_advance): Ditto.
9342         (ix86_function_arg): Ditto.
9343         (ix86_gimplify_va_arg): Ditto.
9344         (ix86_class_max_nregs): Ditto.
9345         (inline_memory_move_cost): Ditto.
9346         (ix86_set_reg_reg_cost): Ditto.
9347         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
9348
9349 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
9350
9351         PR middle-end/67912
9352         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
9353
9354 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9355
9356         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
9357         ROUND_UP macro and UNITS_PER_WORD * 2.
9358         * config/sparc/sparc.c (sparc_compute_frame_size):
9359         Use ROUND_UP and ROUND_DOWN macros where applicable.
9360         (function_arg_record_value, function_arg_record_value_1)
9361         (function_arg_record_value_1): Ditto.
9362         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
9363         alignment to double-word.
9364         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
9365         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
9366         rounded_size.
9367
9368 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
9369
9370         * rtl.h (print_insn): Fix prototype.
9371
9372 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9373
9374         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
9375         -1.  Add assert that returned entry matches phi argument.
9376         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
9377         free_stmt_vec_info_vec ...
9378         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
9379         with -1.
9380
9381 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
9382
9383         PR tree-optimization/67909, 67947
9384         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
9385         really skip the inner loop.
9386
9387 2015-10-13  Jeff Law  <law@redhat.com>
9388
9389         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9390         Allow single block jump threading paths.
9391
9392 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9393
9394         PR tree-optimization/67476
9395         * doc/invoke.texi (@item parloops-schedule): New item.
9396         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
9397         * tree-parloops.c: Include params-enum.h.
9398         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
9399
9400 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9401
9402         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
9403         * params-enum.h: New file.
9404         * opts.c (handle_param): Handle case that param arg is a string.
9405         * params-list.h: Handle DEFPARAMENUM5 in params.def.
9406         * params.c (find_param): New function, factored out of ...
9407         (set_param_value): ... here.
9408         (param_string_value_p): New function.
9409         * params.h (struct param_info): Add value_names field.
9410         (find_param, param_string_value_p): Declare.
9411
9412 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9413
9414         PR tree-optimization/67476
9415         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
9416
9417 2015-10-13  Richard Biener  <rguenther@suse.de>
9418
9419         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
9420         the data dependence vector.
9421         (vect_peeling_hash_insert): Get the peeling hash table as argument.
9422         (vect_peeling_hash_get_lowest_cost): Likewise.
9423         (vect_enhance_data_refs_alignment): Adjust.
9424         (struct _vect_peel_info, struct _vect_peel_extended_info,
9425         struct peel_info_hasher): Move from ...
9426         * tree-vectorizer.h: ... here.
9427         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
9428         (LOOP_VINFO_PEELING_HTAB): Likewise.
9429         (struct _loop_vec_info): Remove min_profitable_iters and
9430         peeling_htab members.
9431         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
9432         here.
9433         (destroy_loop_vec_info): Adjust.
9434         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
9435         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
9436         to estimate alias versioning cost.
9437         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
9438
9439 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
9440
9441         * real.h (real_isinteger): Declare.
9442         * real.c (real_isinteger): New function.
9443         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
9444         if y is an even integer.
9445
9446 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9447
9448         revert:
9449         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9450         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9451         counts when these are more informative.
9452
9453 2015-10-12  Jeff Law  <law@redhat.com>
9454
9455         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
9456         (fsm_find_control_stmt_paths): Change name of first argument to
9457         more accurately relfect what it really is.  Handle simplification
9458         of GIMPLE_COND after finding a thread path for NAME.
9459         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
9460         nontrivial conditions to be handled by FSM threader.
9461         (thread_through_normal_block): Extract the name to looup via
9462         FSM threader from COND_EXPR.
9463
9464         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
9465         restriction that traced SSA_NAME is a user variable.
9466
9467 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9468
9469         PR tree-optimization/67476
9470         * omp-low.c (expand_omp_for_generic): Add missing phis.
9471
9472 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9473
9474         PR tree-optimization/67476
9475         * omp-low.c (expand_omp_for_generic): Handle simple latch.
9476
9477 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
9478
9479         * config/aarch64/aarch64-simd-builtins.def: Update builtins
9480         tables: add tbl3 and tbx4.
9481         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
9482         (aarch64_tbx4v8qi): New.
9483         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
9484         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
9485         Rewrite using builtin functions.
9486         * config/aarch64/iterators.md (UNSPEC_TBX): New.
9487
9488 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9489
9490         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
9491         ROUND_UP macro.
9492         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
9493         Use ROUND_UP and ROUND_DOWN macros where applicable.
9494         (rs6000_darwin64_record_arg_flush): Ditto.
9495         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
9496         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
9497         rounded_size.
9498
9499 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9500
9501         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
9502         (AARCH64_ROUND_DOWN): Ditto.
9503         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
9504
9505 2015-10-12  Richard Biener  <rguenther@suse.de>
9506
9507         PR ipa/67783
9508         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
9509         code that analyzes IVs on each stmt but in a cheaper way avoiding
9510         quadratic behavior.
9511
9512 2015-10-12  Nick Clifton  <nickc@redhat.com>
9513
9514         * config/msp430/msp430.c (msp430_mcu_names): Rename to
9515         msp430_mcu_data, add fields for ISA and hardware multiply
9516         support.  Import latest data from the devices.csv file.
9517         (msp430_override_option): Use the data from the new array.
9518         (msp430_use_f5_series_hwmult): Likewise.
9519         (use_32bit_hwmult): Likewise.
9520         (msp430_no_hwmult): Likewise.
9521         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
9522         MCU names.
9523         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
9524         not recognised then no hardware multiply support is assumed and
9525         that only the MSP430 ISA is allowed.
9526
9527 2015-10-12  Richard Biener  <rguenther@suse.de>
9528
9529         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
9530         related code ...
9531         (vect_analyze_loop_2): ... here.
9532
9533 2015-10-11  Jason Merrill  <jason@redhat.com>
9534
9535         PR c++/67557
9536         * expr.c (store_field): Call store_constructor directly when
9537         storing a CONSTRUCTOR into a target smaller than its type.
9538         Guard against unsafe bitwise copy.
9539
9540 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9541
9542         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9543         counts when these are more informative.
9544
9545 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9546
9547         * tree-profile.c (tree_profiling): Do not clear
9548         pure/const when not instrumenting.
9549         (pass tree_profile): Add dump of symtab.
9550
9551 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9552
9553         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
9554         addresses.
9555         (fold_addr_of_array_ref_difference): Likewise.
9556
9557 2015-10-11  Jeff Law  <law@redhat.com>
9558
9559         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
9560         tree-ssa-threadbackward.c.
9561         (fsm_find_control_statement_thread_paths): Likewise.
9562         (thread_through_normal_block): Break out FSM bits and move them
9563         into a new function in tree-ssa-threadbackward.c.  Call new function
9564         instead.
9565         Minimize header file usage.
9566         * tree-ssa-threadbackward.h: New file.
9567         * tree-ssa-threadbackward.c: Likewise.
9568         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
9569
9570 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
9571
9572         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
9573
9574 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
9575
9576         PR rtl-optimization/67864
9577         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
9578         fallthrough edges for conditional jumps.  Don't sort candidate
9579         edges if not optimizing for speed.
9580
9581 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9582
9583         * defaults.h (REVERSE_CONDITION): New default definition.
9584         * jump.c (reversed_comparison_code_parts): Adjust.
9585
9586 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9587
9588         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
9589         check HARD_FRAME_POINTER_IS_ARG_POINTER.
9590
9591 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9592
9593         * defaults.h (FRAME_ADDR_RTX): New default definition.
9594         * builtins.c (expand_builtin_return_addr): Adjust.
9595
9596 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9597
9598         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
9599         * builtins.c (expand_builtin_return_addr): Adjust.
9600
9601 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9602
9603         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
9604         * builtins.c (expand_builtin_return_addr): Adjust.
9605         * doc/tm.texi: Likewise.
9606         * doc/tm.texi.in: Likewise.
9607         * except.c (expand_builtin_unwind_init): Likewise.
9608
9609 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9610
9611         * builtins.c (expand_builtin_return_addr): Adjust.
9612         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
9613
9614 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9615
9616         * tree.c (type_with_interoperable_signedness): New.
9617         (gimple_canonical_types_compatible_p): Use it.
9618         * tree.h (type_with_interoperable_signedness): Declare
9619
9620 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9621
9622         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
9623         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
9624         when OEP_ADDRESS_OF is se.
9625
9626 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9627             Sebastian Pop  <s.pop@samsung.com>
9628
9629         * graphite-dependences.c (scop_get_dependences): Add dump of the
9630         data dependence graph.
9631         * graphite-poly.c (print_isl_union_map): New.
9632         (debug_isl_union_map): New.
9633         * graphite-poly.h (print_isl_union_map): Declare.
9634         (debug_isl_union_map): Declare.
9635
9636 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9637             Sebastian Pop  <s.pop@samsung.com>
9638
9639         * graphite-poly.c (print_iteration_domain): Remove verbosity.
9640         Remove OpenScop formatting.
9641         (print_iteration_domains): Same.
9642         (debug_iteration_domain): Same.
9643         (debug_iteration_domains): Same.
9644         (print_pdr): Same.
9645         (debug_pdr): Same.
9646         (dump_gbb_cases): Same.
9647         (dump_gbb_conditions): Same.
9648         (print_pdrs): Same.
9649         (debug_pdrs): Same.
9650         (print_pbb_body): Same.
9651         (print_pbb): Same.
9652         (print_scop_params): Same.
9653         (print_scop_context): Same.
9654         (print_scop): Same.
9655         (debug_pbb_domain): Same.
9656         (debug_pbb): Same.
9657         (debug_scop_context): Same.
9658         (debug_scop): Same.
9659         (debug_scop_params): Same.
9660         * graphite-poly.h: Same.
9661         * graphite.c (graphite_transform_loops): Same.
9662
9663 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9664
9665         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
9666         call that isn't needed.
9667
9668 2015-10-09  Jeff Law  <law@redhat.com>
9669
9670         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
9671         rather than moving each name to the freelist individually.
9672
9673 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
9674
9675         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
9676         * frame-header-opt.c: New file.
9677         * config/mips/mips-proto.h (mips_register_frame_header_opt):
9678         Add prototype.
9679         * config/mips/mips.c (mips_compute_frame_info): Check
9680         optimize_call_stack flag.
9681         (mips_option_override): Register new frame_header_opt pass.
9682         (mips_frame_info, mips_int_mask, mips_shadow_set,
9683         machine_function): Move these types to...
9684         * config/mips/mips.h: here.
9685         (machine_function): Add does_not_use_frame_header and
9686         optimize_call_stack fields.
9687         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
9688         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
9689         Document new flags.
9690         * config/mips/mips.opt (mframe-header-opt): Add new option.
9691
9692 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
9693
9694         * config/i386/i386.c
9695         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
9696         ROUND_DOWN where applicable.
9697
9698 2015-10-09  Jeff Law  <law@redhat.com>
9699
9700         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
9701         correct statement.
9702
9703 2015-10-09  Renlin Li  <renlin.li@arm.com>
9704
9705         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
9706         operands[0] and operands[2].
9707         (neon_vtrn<mode>_insn): Likewise.
9708         (neon_vzip<mode>_insn): Likewise.
9709
9710 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9711
9712         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
9713         ((X & C2) << C1): Expand to...
9714         (X {&,^,|} C2 << C1): ...This.
9715         ((X & C2) >> C1): Expand to...
9716         (X {&,^,|} C2 >> C1): ...This.
9717
9718 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
9719
9720         PR target/67895
9721         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
9722         Adjust embedded rounding/SAE specifier position.
9723         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
9724         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
9725         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
9726         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
9727         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
9728         Likewise.
9729         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
9730
9731 2015-10-09  Martin Jambor  <mjambor@suse.cz>
9732
9733         tree-optimization/67794
9734         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
9735         between types of state,ents but accept original definitions as a
9736         parameter.
9737         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
9738         iterate over definitions.
9739
9740 2015-10-09  James Norris  <jnorris@codesourcery.com>
9741
9742         * config/rs6000/rs6000.c (rs6000_offload_options): New.
9743         (TARGET_OFFLOAD_OPTIONS): New.
9744
9745 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
9746
9747         PR middle-end/67891
9748         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
9749
9750         PR middle-end/67766
9751         * function.c (expand_function_end): Move return value
9752         promotion past the handling of PARALLELs and CONCATs.
9753
9754         PR rtl-optimization/67828
9755         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
9756         (tree_may_unswitch_on): Don't unswitch on expressions
9757         involving undefined values.
9758
9759 2015-10-09  Richard Biener  <rguenther@suse.de>
9760
9761         * genmatch.c (print_operand): Fix formatting.
9762         (dt_node::append_simplify): Warn for multiple simplifiers
9763         that match the same pattern.
9764         * match.pd (log (exp @0)): Remove duplicates.
9765
9766 2015-10-09  Richard Biener  <rguenth@suse.de>
9767
9768         PR target/67366
9769         * gimple-fold.c (optabs-query.h): Include
9770         (gimple_fold_builtin_memory_op): Allow unaligned stores
9771         when movmisalign_optabs are available.
9772
9773 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9774
9775         PR target/67366
9776         * config/arm/arm.md (movmisalign<mode>): New.
9777         * config/arm/iterators.md (HSI): New.
9778
9779 2015-10-09  Richard Biener  <rguenther@suse.de>
9780
9781         PR tree-optimization/67891
9782         * gimple-match.h (gimple_simplified_result_is_gimple_val):
9783         New helper.
9784         (gimple_resimplify1): Declare.
9785         (gimple_resimplify2): Likewise.
9786         (gimple_resimplify3): Likewise.
9787         * gimple-match-head.c (gimple_resimplify1): Export.
9788         (gimple_resimplify2): Likewise.
9789         (gimple_resimplify3): Likewise.
9790         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
9791         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
9792         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
9793         to avoid creating stmts without VN info.
9794
9795 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
9796
9797         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
9798         of availability.
9799
9800 2015-10-08  Jeff Law  <law@redhat.com>
9801
9802         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
9803         and release_ssa_name in two places.
9804         (gimple_stringop_fixed_value): Similarly.
9805
9806         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
9807         release_defs.
9808
9809         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
9810         unlink_stmt_vdef and release_ssa_name_fn.
9811
9812         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
9813         release_defs.
9814
9815 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9816
9817         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
9818         SSE register save area to 16 bytes only if the incoming stack
9819         boundary is no less than 16 bytes.
9820
9821 2015-10-08  Jeff Law  <law@redhat.com>
9822
9823         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
9824         release_ssa_name.  Fix typo in comment.
9825
9826 2015-10-08  Nathan Sidwell  <nathan@acm.org>
9827
9828         * config/nvptx/nvptx.h (struct machine_function): Add comment.
9829         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
9830         may return pointer as well as in memory.
9831         (nvptx_output_return): Likewise.
9832
9833 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9834
9835         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
9836         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
9837         * match.pd: Add rules previously handled by fold_builtin_sqrt
9838         and fold_builtin_cbrt.
9839
9840 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9841
9842         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
9843         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
9844         * fold-const.h (tree_unary_nonnegative_warnv_p)
9845         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9846         (tree_expr_nonnegative_warnv_p): Add depth parameters.
9847         * fold-const.c: Include gimple-fold.h and params.h.
9848         (tree_ssa_name_nonnegative_warnv_p): New function.
9849         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
9850         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9851         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
9852         Add a depth parameter and increment it for recursive calls to
9853         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
9854         to handle SSA names.
9855         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
9856         (gimple_stmt_nonnegative_warnv_p): Declare.
9857         * tree-vrp.c (remove_range_assertions): Remove assert that condition
9858         cannot be proven false.
9859         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
9860         (gimple_stmt_nonnegative_warnv_p): Move to...
9861         * gimple-fold.c: ...here.  Add depth parameters and pass them
9862         down to the tree routines.  Accept statements that aren't
9863         assignments or calls but just return false for them.
9864         (gimple_val_nonnegative_real_p): Delete.
9865         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
9866         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
9867         Check HONOR_NANs first.
9868
9869 2015-10-08  Martin Jambor  <mjambor@suse.cz>
9870
9871         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
9872         unnecessary MIN.
9873
9874 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9875
9876         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
9877         in the tail of outer-loop.
9878
9879 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
9880
9881         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
9882         return UI_NONE.
9883
9884 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9885
9886         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
9887         "cfghooks.h", add prototypes for introduced new functions.
9888         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
9889         checks on ability of loop unswitching to tree_unswitch_single_loop;
9890         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
9891         on innermost loop check.
9892         (tree_unswitch_single_loop): Add all required checks on ability of
9893         loop unswitching under zero recursive level guard.
9894         (tree_unswitch_outer_loop): New function.
9895         (find_loop_guard): Likewise.
9896         (empty_bb_without_guard_p): Likewise.
9897         (used_outside_loop_p): Likewise.
9898         (get_vop_from_header): Likewise.
9899         (hoist_guard): Likewise.
9900         (check_exit_phi): Likewise.
9901
9902 2015-10-08  Marek Polacek  <polacek@redhat.com>
9903
9904         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
9905         ops element.
9906
9907 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9908
9909         PR c/65345
9910         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
9911         create_tmp_var_raw instead of create_tmp_var.
9912
9913 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
9914
9915         * expr.c (store_expr_with_bounds): Handle aggregate moves from
9916         BLKmode.
9917         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
9918         to define gimple type system; compare aggregates only by size.
9919
9920 2015-10-07  Jeff Law  <law@redhat.com>
9921
9922         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
9923         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
9924         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
9925         unnecessarily.
9926
9927 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9928             Sebastian Pop  <s.pop@samsung.com>
9929
9930         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
9931         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
9932         (generate_isl_schedule): Same.
9933         * graphite-optimize-isl.c (scop_get_domains): Same.
9934         (apply_schedule_map_to_scop): Same.
9935         * graphite-poly.c (print_iteration_domains): Same.
9936         (remove_gbbs_in_scop): Same.
9937         (new_scop): Same.
9938         (free_scop): Same.
9939         (print_scop): Same.
9940         * graphite-poly.h (struct scop): Rename bbs to pbbs.
9941         (SCOP_BBS): Remove.
9942         * graphite-scop-detection.c (compare_bb_depths): Remove.
9943         (graphite_sort_dominated_info): Remove.
9944         (try_generate_gimple_bb): Move out of scop_detection.
9945         (all_non_dominated_preds_marked_p): Remove.
9946         (build_scop_bbs_1): Remove.
9947         (build_scop_bbs): Remove.
9948         (nb_pbbs_in_loops): Do not use SCOP_BBS.
9949         (find_scop_parameters): Same.
9950         (sese_dom_walker): Rename gather_bbs.
9951         (before_dom_children): Call try_generate_gimple_bb and collect gbb
9952         and pbb.
9953         (build_scops): Call gather_bbs.
9954         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
9955         (add_conditions_to_constraints): Same.
9956         (build_scop_iteration_domain): Same.
9957         (build_scop_drs): Same.
9958         (new_pbb_from_pbb): Same.
9959         * sese.c (new_sese_info): Create bbs.
9960         * sese.h (struct sese_info_t): Add bbs.
9961
9962 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
9963
9964         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
9965         encoding in 64-bit mode.
9966
9967 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
9968
9969         PR target/66697
9970         * config/i386/i386.c (ix86_option_override_internal): Always use
9971         8-byte minimum stack boundary in 64-bit mode.
9972         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
9973         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
9974         Add a REG_CFA_EXPRESSION note if needed.
9975         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
9976         (ix86_handle_force_align_arg_pointer_attribute): New.
9977         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
9978         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
9979         with ix86_handle_force_align_arg_pointer_attribute.
9980         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
9981
9982 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9983             Sebastian Pop  <s.pop@samsung.com>
9984
9985         * graphite-scop-detection.c (parameter_index_in_region): Remove
9986         use of SESE_ADD_PARAMS.
9987         (find_scop_parameters): Same.
9988         * sese.c (new_sese_info): Same.
9989         * sese.h (struct sese_info_t): Remove add_params.
9990         (SESE_ADD_PARAMS): Remove.
9991
9992 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9993             Sebastian Pop  <s.pop@samsung.com>
9994
9995         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
9996         an sese_info_p.
9997         (copy_def): Same.
9998         (copy_internal_parameters): Same.
9999         (translate_isl_ast_to_gimple): Use an sese_l.
10000         (build_iv_mapping): Same.
10001         * graphite-poly.c (new_sese): Rename new_sese_info.
10002         (free_sese): Rename free_sese_info.
10003         * graphite-poly.h (struct scop): Use an sese_info_p.
10004         (scop_set_region): Same.
10005         * graphite-scop-detection.c (struct sese_l): Moved...
10006         (get_entry_bb): Moved...
10007         (get_exit_bb): Moved...
10008         (parameter_index_in_region_1): Use an sese_info_p.
10009         (parameter_index_in_region): Same.
10010         (scan_tree_for_params): Same.
10011         (find_params_in_bb): Same.
10012         (sese_dom_walker): Use an sese_l.
10013         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
10014         (reduction_phi_p): Same.
10015         (parameter_index_in_region_1): Use an sese_info_p.
10016         (propagate_expr_outside_region): Use an sese_l.
10017         * graphite.c: Replace uses of SCOP_REGION.
10018         * sese.c (sese_record_loop): Use an sese_info_p.
10019         (build_sese_loop_nests): Same.
10020         (sese_build_liveouts_use): Same.
10021         (sese_build_liveouts_bb): Same.
10022         (sese_build_liveouts_bb): Same.
10023         (sese_bad_liveouts_use): Same.
10024         (sese_reset_debug_liveouts_bb): Same.
10025         (sese_build_liveouts): Same.
10026         (new_sese): Renamed new_sese_info.
10027         (free_sese): Renamed free_sese_info.
10028         (set_rename): Use an sese_info_p.
10029         (graphite_copy_stmts_from_block): Same.
10030         (copy_bb_and_scalar_dependences): Same.
10031         (outermost_loop_in_sese_1): Use an sese_l.
10032         (outermost_loop_in_sese): Same.
10033         (if_region_set_false_region): Use an sese_info_p.
10034         (move_sese_in_condition): Same.
10035         (scalar_evolution_in_region): Use an sese_l.
10036         * sese.h (struct sese_l): ... here.
10037         (SESE_ENTRY): Remove.
10038         (SESE_ENTRY_BB): Remove.
10039         (SESE_EXIT): Remove.
10040         (SESE_EXIT_BB): Remove.
10041         (sese_contains_loop): Use an sese_info_p.
10042         (sese_nb_params): Same.
10043         (bb_in_sese_p): Use an sese_l.
10044         (stmt_in_sese_p): Same.
10045         (defined_in_sese_p): Same.
10046         (loop_in_sese_p): Same.
10047         (sese_loop_depth): Same.
10048         (struct ifsese_s): Use an sese_info_p.
10049         (gbb_loop_at_index): Use an sese_l.
10050         (nb_common_loops): Same.
10051         (scev_analyzable_p): Same.
10052
10053 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10054
10055         * config/i386/i386.c (ix86_conditional_register_usage): Use
10056         CALL_USED_REGISTERS_MASK.
10057         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
10058
10059 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10060
10061         PR bootstrap/67385
10062         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
10063         * configure: Regenerated.
10064
10065 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10066
10067         PR target/67850
10068         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
10069         (ix86_set_current_function): This.
10070         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
10071
10072 2015-10-07  Richard Biener  <rguenther@suse.de>
10073
10074         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
10075         (vinfo_for_stmt): Adjust.
10076         (set_vinfo_for_stmt): Likewise.
10077         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
10078         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
10079         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
10080         of inner loop.
10081         (vect_analyze_loop_1): Remove.
10082         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
10083         inner loop when vectorizing an outer loop by splitting out from ...
10084         (vect_analyze_loop_form): ... here.
10085
10086 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10087
10088         PR c/65345
10089         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
10090         Use create_tmp_var_raw instead of create_tmp_var.
10091
10092 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
10093
10094         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
10095         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
10096         * real.c (CACHED_FRACTION): New helper macro.
10097         (dconst_third_ptr): Use it.
10098         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
10099         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
10100         dconst_sixth.
10101         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
10102
10103 2015-10-06  Jeff Law  <law@redhat.com>
10104
10105         PR tree-optimization/67816
10106         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
10107         from remove_jump_threads_starting_at.  Accept an edge rather than
10108         a basic block.
10109         * tree-ssa-threadupdate.c (removed_edges): New hash table.
10110         (remove_jump_threads_including): Note edges that get removed from
10111         the CFG for later pruning of jump threading paths including them.
10112         (thread_through_all_blocks): Remove paths which include edges that
10113         have been removed.
10114         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
10115         on each outgoing edges when optimizing away a control statement.
10116
10117 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10118
10119         * reorg.c (emit_delay_sequence): Store list of delay slot insns
10120         in a vector instead of rtx_insn_list.
10121         (add_to_delay_list): Likewise.
10122         (delete_from_delay_slot): Likewise.
10123         (optimize_skip): Likewise.
10124         (redirect_with_delay_list_safe_p): Likewise.
10125         (check_annul_list_true_false): Likewise.
10126         (steal_delay_list_from_target): Likewise.
10127         (steal_delay_list_from_fallthrough): Likewise.
10128         (redundant_insn): Likewise.
10129         (fill_simple_delay_slots): Likewise.
10130         (fill_slots_from_thread): Likewise.
10131         (fill_eager_delay_slots): Likewise.
10132         (relax_delay_slots): Likewise.
10133
10134 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
10135
10136         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
10137         For -mgpopt=local, also exclude unintialized common symbols.
10138         * doc/invoke.texi (Nios II Options): Document the change.
10139
10140 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10141
10142         * config/aarch64/iterators.md (vwcore): Add missing cases for
10143          V4HF/V8HF modes.
10144
10145 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10146             Sebastian Pop  <s.pop@samsung.com>
10147
10148         * graphite-poly.c (new_scop): Initialize drs.
10149         * graphite-poly.h (struct dr_info): New.
10150         (struct scop): Add drs.
10151         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
10152         (pdr_add_memory_accesses): Same.
10153         (build_poly_dr): Same.
10154         (build_alias_set): Same.
10155         (build_scop_drs): Same.
10156         (build_pbb_drs): Remove.
10157         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
10158         * tree-data-ref.h (data_reference): Remove alias_set.
10159
10160 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10161             Sebastian Pop  <s.pop@samsung.com>
10162
10163         * graphite-poly.c (free_data_refs_aux): Remove.
10164         (free_gimple_poly_bb): Do not call free_data_refs_aux.
10165         * graphite-poly.h (struct base_alias_pair): Remove.
10166         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
10167         base_alias_pair and dr->aux.
10168         (build_alias_set): Same.
10169         * tree-data-ref.c (create_data_ref): Initialize alias_set.
10170         * tree-data-ref.h (data_reference): Add alias_set.
10171
10172 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10173             Sebastian Pop  <s.pop@samsung.com>
10174
10175         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
10176         Do not set PDR_BASE_OBJECT_SET.
10177         * graphite-poly.h (poly_dr): Same.
10178         (PDR_BASE_OBJECT_SET): Remove.
10179         (new_poly_dr): Update decl.
10180         * graphite-sese-to-poly.c (build_poly_dr): Update call to
10181         new_poly_dr.
10182         (write_alias_graph_to_ascii_dimacs): Remove.
10183         (write_alias_graph_to_ascii_dot): Remove.
10184         (write_alias_graph_to_ascii_ecc): Remove.
10185         (dr_same_base_object_p): Remove.
10186         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
10187         code.
10188         (build_base_obj_set_for_drs): Remove.
10189         (dump_alias_graphs): Remove.
10190         (build_scop_drs): Remove dead code.
10191
10192 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10193             Peter Bergner  <bergner@vnet.ibm.com>
10194
10195         PR target/67808
10196         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
10197         allow registers, but provide insns for the combiner to create for
10198         loads from memory. Separate VSX code from non-VSX code. For
10199         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
10200         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
10201         so that registers come before memory operations. Drop support from
10202         converting DFmode to TFmode, if the DFmode value is in a GPR
10203         register.
10204         (extenddftf2_fprs): Likewise.
10205         (extenddftf2_internal): Likewise.
10206         (extenddftf2_vsx): Likewise.
10207         (extendsftf2): In the expander, only allow registers, but provide
10208         insns for the combiner to create for stores and loads.
10209
10210 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10211
10212         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
10213         from the decl parameter.
10214
10215 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
10216
10217         PR 67861
10218         * gimple-fold.c (gimple_fold_builtin): Add break after
10219         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
10220
10221 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
10222
10223         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
10224         to scop->isl_context.
10225
10226 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10227
10228         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
10229         (output_probe_stack_range): Rotate the loop and simplify.
10230         (thumb1_expand_prologue): Tweak sorry message.
10231         * config/arm/arm.md (probe_stack): Use bare string.
10232
10233 2015-10-06  Nick Clifton  <nickc@redhat.com>
10234
10235         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
10236
10237 2015-10-06  Nick Clifton  <nickc@redhat.com>
10238
10239         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
10240         (ATTR_PERSIST): New constant.
10241         (msp430_data_attr): New function - verifies an attribute that only
10242         applies to variables.
10243         (msp430_attributes): Add noinit and persistent attributes.
10244         (noinit_section): New variable.
10245         (presis_section): New variable.
10246         (TARGET_ASM_INIT_SECTIONS): Define.
10247         (msp430_init_sections): New function - initialises the noinit and
10248         persist section variables.
10249         (msp430_select_section): Add support for noinit and persist
10250         attributes.
10251         (msp430_section_type_flags): Likewise.
10252         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
10253         and persistent attributes.
10254
10255 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10256             Sebastian Pop  <s.pop@samsung.com>
10257
10258         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
10259         (no_violations): Remove.
10260         (subtract_commutative_associative_deps): Remove.
10261         (compute_deps): Do not call subtract_commutative_associative_deps.
10262         (transform_is_safe): Remove.
10263         (graphite_legal_transform): Remove.
10264         * graphite-poly.h (graphite_legal_transform): Remove.
10265
10266 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
10267
10268         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
10269         which are in this region are passed so gcc_assert and remove redundant
10270         computation.
10271         * sese.c (sese_build_liveouts): Pass only those bbs which are not
10272         in region.
10273         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
10274         gcc_assert on that and remove unnecessary computation.
10275         (sese_build_liveouts_use): Same.
10276
10277 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10278
10279         * graphite-dependences.c (scop_get_reads): Renamed scop->context
10280         to scop->param_context.
10281         (scop_get_must_writes): Same.
10282         (scop_get_may_writes): Same.
10283         (scop_get_original_schedule): Same.
10284         (scop_get_transformed_schedule): Same.
10285         (subtract_commutative_associative_deps): Same.
10286         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
10287         (generate_isl_context): Same.
10288         (generate_isl_schedule): Same.
10289         (scop_to_isl_ast): Same.
10290         (graphite_regenerate_ast_isl): Same.
10291         * graphite-optimize-isl.c (scop_get_domains): Same.
10292         (optimize_isl): Renamed scop->context to scop->param_context.
10293         * graphite-poly.c (new_poly_bb): Change the type of argument to
10294         gimple_poly_bb_p.
10295         (new_scop): Renamed scop->context to scop->param_context.
10296         (free_scop): Same.
10297         (print_scop_context): Same.
10298         * graphite-poly.h (new_poly_dr): Change the type of argument from
10299         void* to data_reference_p.
10300         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
10301         (new_poly_bb): Change the type of argument from void* to
10302         gimple_poly_bb_p.
10303         (pbb_set_black_box): Same.
10304         (struct scop): Rename context to param_context, ctx to isl_context.
10305         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
10306         Move declarations closer to assignment.
10307         (find_params_in_bb): Same.
10308         (find_scop_parameters): Same.
10309         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
10310         Global to be used for statement IDs.
10311         (isl_id_for_pbb): Use ssa_name_version_typesize.
10312         (simple_copy_phi_p): Move declarations closer to assignment.
10313         (build_pbb_scattering_polyhedrons): Same.
10314         (build_scop_scattering): Same.
10315         (isl_id_for_ssa_name): Same.
10316         (extract_affine_name): Same.
10317         (extract_affine_int): Same.
10318         (extract_affine): Same.
10319         (set_scop_parameter_dim): Use renamed member.
10320         (build_loop_iteration_domains): Same.
10321         (add_param_constraints): Same.
10322         (build_scop_iteration_domain): Same.
10323         (pdr_add_data_dimensions): Same.
10324         (build_poly_dr): Same.
10325         (build_scop_drs): Move declarations closer to assignment.
10326         (analyze_drs_in_stmts): Same.
10327         (insert_out_of_ssa_copy): Same.
10328         (insert_out_of_ssa_copy_on_edge): Same.
10329         (propagate_expr_outside_region): Same.
10330         (rewrite_phi_out_of_ssa): Same.
10331         (rewrite_degenerate_phi): Same.
10332         (rewrite_reductions_out_of_ssa): Same.
10333         (rewrite_cross_bb_scalar_dependence): Same.
10334         (handle_scalar_deps_crossing_scop_limits): Same.
10335         (rewrite_cross_bb_scalar_deps): Same.
10336         * graphite.c (graphite_transform_loops): Use renamed member.
10337
10338 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
10339
10340         PR c/65345
10341         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
10342         create_tmp_var_raw instead of create_tmp_var.
10343
10344 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10345
10346         PR c/65345
10347         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
10348         Use create_tmp_var_raw instead of create_tmp_var.
10349
10350 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
10351
10352         PR target/67849
10353         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
10354         split for upper-bank registers when target does not support
10355         AVX512VL.
10356         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
10357         split when target does not support AVX512VL.
10358
10359 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
10360
10361         PR c/65345
10362         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
10363         Adjust to use create_tmp_var_raw instead of create_tmp_var.
10364
10365 2015-10-06  Nick Clifton  <nickc@redhat.com>
10366
10367         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
10368         multiplication.
10369
10370 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10371
10372         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
10373         (case ${target}): Add znver1.
10374         * config/i386/cpuid.h(bit_CLZERO):  Define.
10375         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
10376         -march=native recognize znver1 processors.
10377         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10378         znver1, clzero def_and_undef.
10379         * config/i386/i386.c (struct processor_costs znver1_cost): New.
10380         (m_znver1): New definition.
10381         (m_AMD_MULTIPLE): Includes m_znver1.
10382         (processor_target_table): Add znver1 entry.
10383         (ix86_target_string) : Add clzero entry.
10384         (static const char *const cpu_names): Add znver1 entry.
10385         (ix86_option_override_internal): Add znver1 instruction sets.
10386         (PTA_CLZERO) :  New definition.
10387         (ix86_option_override_internal): Handle new clzerooption.
10388         (ix86_issue_rate): Add znver1.
10389         (ix86_adjust_cost): Add znver1.
10390         (ia32_multipass_dfa_lookahead): Add znver1.
10391         (has_dispatch): Add znver1.
10392         * config/i386/i386.h (TARGET_znver1): New definition.
10393         (TARGET_CLZERO): Define.
10394         (TARGET_CLZERO_P): Define.
10395         (struct ix86_size_cost): Add TARGET_ZNVER1.
10396         (enum processor_type): Add PROCESSOR_znver1.
10397         * config/i386/i386.md (define_attr "cpu"): Add znver1.
10398         (set_attr znver1_decode): New definitions for znver1.
10399         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
10400         (mclzero): New.
10401         * config/i386/mmx.md (set_attr znver1_decode): New definitions
10402         for znver1.
10403         * config/i386/sse.md (set_attr znver1_decode): Likewise.
10404         * config/i386/x86-tune.def:  Add znver1 tunings.
10405         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
10406         * doc/invoke.texi: Add details about znver1
10407
10408 2015-10-06  Richard Biener  <rguenther@suse.de>
10409
10410         PR tree-optimization/67859
10411         * tree-ssa-pre.c (create_expression_by_pieces): Properly
10412         discard not inserted stmts.
10413
10414 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
10415
10416         * doc/extend.texi (Template Instantiation): Reorder options and
10417         de-emphasize -frepo.
10418         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
10419         example instead of -frepo.
10420
10421 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10422
10423         PR c/65345
10424         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
10425         use create_tmp_var_raw rather than create_tmp_var.
10426
10427 2015-10-06  Richard Biener  <rguenther@suse.de>
10428
10429         * tree-vectorizer.h (vec_info): New base class for...
10430         (_loop_vec_info): ... this and ...
10431         (_bb_vec_info): ... this.
10432         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
10433         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
10434         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
10435         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
10436         vect_destroy_datarefs): Adjust interface to take a vec_info *
10437         rather than both a loop_vec_info and a bb_vec_info argument.
10438         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
10439         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
10440         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
10441         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
10442         accordingly.
10443         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
10444         (destroy_loop_vec_info, vect_analyze_loop_2,
10445         vect_is_simple_reduction_1, get_initial_def_for_induction,
10446         vect_create_epilog_for_reduction, vectorizable_reduction,
10447         vectorizable_live_operation, vect_transform_loop): Adjust.
10448         * tree-vect-patterns.c (type_conversion_p,
10449         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
10450         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
10451         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
10452         check_bool_pattern, vect_recog_bool_pattern,
10453         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
10454         * tree-vect-slp.c (vect_get_and_check_slp_defs,
10455         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
10456         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
10457         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
10458         (new_bb_vec_info): Initialize base classs.
10459         * tree-vect-stmts.c (record_stmt_cost, process_use,
10460         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
10461         vectorizable_mask_load_store, vectorizable_call,
10462         vectorizable_simd_clone_call, vectorizable_conversion,
10463         vectorizable_assignment, vectorizable_shift,
10464         vectorizable_operation, vectorizable_store,
10465         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
10466         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
10467         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
10468
10469 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10470
10471         PR c/65345
10472         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
10473         create_tmp_var_raw rather than create_tmp_var.
10474
10475 2015-10-05  Marek Polacek  <polacek@redhat.com>
10476
10477         * tree-ssa-loop-im.c
10478         (move_computations_dom_walker::before_dom_children): Don't set
10479         SSA_NAME_ANTI_RANGE_P.
10480         * tree-ssa-phiopt.c (value_replacement): Likewise.
10481
10482 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10483             Sebastian Pop  <s.pop@samsung.com>
10484
10485         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
10486
10487 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10488             Sebastian Pop  <s.pop@samsung.com>
10489
10490         * graphite-poly.c (new_gimple_poly_bb): ... here.
10491         (free_data_refs_aux): ... here.
10492         (free_gimple_poly_bb): ... here.
10493         (remove_gbbs_in_scop): ... here.
10494         (new_scop): Call new_sese.
10495         (free_scop): Call remove_gbbs_in_scop and free_sese.
10496         * graphite-poly.h (base_alias_pair): ... here.
10497         (new_gimple_poly_bb): Declare.
10498         (free_gimple_poly_bb): Declare.
10499         * graphite-scop-detection.c (parameter_index_in_region_1):
10500         (parameter_index_in_region): ... here.
10501         (scan_tree_for_params): ... here.
10502         (find_params_in_bb): ... here.
10503         (find_scop_parameters): ... here.
10504         (build_scops): Call find_scop_parameters.
10505         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
10506         (free_scops): Move...
10507         (single_pred_cond_non_loop_exit): Move...
10508         (sese_dom_walker::before_dom_children): Move...
10509         (sese_dom_walker::after_dom_children): Move...
10510         (build_poly_scop): Move...
10511         * graphite-sese-to-poly.h (base_alias_pair): Move...
10512         * graphite.c (free_scops): ... here.
10513
10514 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10515             Sebastian Pop  <s.pop@samsung.com>
10516
10517         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
10518         (trivially_empty_bb_p): Move...
10519         (same_close_phi_node): Move...
10520         (new_gimple_poly_bb): Move...
10521         (compare_bb_depths): Move...
10522         (graphite_sort_dominated_info): Move...
10523         (remove_duplicate_close_phi): Move...
10524         (make_close_phi_nodes_unique): Move...
10525         (canonicalize_loop_closed_ssa): Move...
10526         (canonicalize_loop_closed_ssa_form): Move...
10527         (loop_ivs_can_be_represented): Move...
10528         (single_pred_cond_non_loop_exit): Move...
10529         (graphite_can_represent_init): Move...
10530         (graphite_can_represent_scev): Move...
10531         (stmt_has_simple_data_refs_p): Move...
10532         (stmt_has_side_effects):  Move...
10533         (graphite_can_represent_stmt): Move...
10534         (scop_detection): ... here.
10535         (sese_dom_walker): ... and here.
10536         (build_scops): Call all moved functions.
10537         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
10538         (all_non_dominated_preds_marked_p): Move...
10539         (build_scop_bbs_1): Move...
10540         (build_scop_bbs): Move...
10541         (set_scop_parameter_dim): Move...
10542         (nb_pbbs_in_loops): Move...
10543         (build_poly_scop): Do not call all the moved functions.
10544
10545 2015-10-05  Martin Jambor  <mjambor@suse.cz>
10546             Jan Hubicka  <hubicka@ucw.cz>
10547
10548         * ipa-cp.c (ipcp_alignment_lattice): New type.
10549         (ipcp_param_lattices): Use the above to represent alignment.
10550         (ipcp_alignment_lattice::print): New function.
10551         (print_all_lattices): Use it to print alignment information.
10552         (ipcp_alignment_lattice::top_p): New function.
10553         (ipcp_alignment_lattice::bottom_p): Likewise.
10554         (ipcp_alignment_lattice::set_to_bottom): Likewise.
10555         (ipcp_alignment_lattice::meet_with_1): Likewise.
10556         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
10557         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
10558         (initialize_node_lattices): Likewise.
10559         (propagate_alignment_accross_jump_function): Work with the new class
10560         for alignment lattices.
10561         (propagate_constants_accross_call): Pass only the alignment lattice to
10562         propagate_alignment_accross_jump_function.
10563         (ipcp_store_alignment_results): Work with the new class for alignment
10564         lattices.
10565
10566 2015-10-05  Marek Polacek  <polacek@redhat.com>
10567
10568         PR tree-optimization/67821
10569         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
10570
10571 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
10572
10573         PR other/65021
10574         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
10575         function to...
10576         (mkoffload_cleanup): ... this.  Adjust all users.
10577         (maybe_unlink): Look at save_temps and verbose flags instead of
10578         debug flag.
10579         (main): Parse "-save-temps" flag.
10580         (generate_target_descr_file, generate_target_offloadend_file)
10581         (generate_host_descr_file, prepare_target_image): Pass it on.
10582         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
10583         (mkoffload_cleanup): New function.
10584         (maybe_unlink): Look at save_temps and verbose flags instead of
10585         debug flag.
10586         (main): Instead of calling utils_cleanup, register atexit handler
10587         for mkoffload_cleanup.
10588         (main): Parse "-save-temps" flag.
10589         (compile_native, main): Pass it on.
10590         * lto-wrapper.c (compile_offload_image): Likewise.
10591
10592 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10593
10594         * gimple.h (gimple_op_ptr): Require a non const gimple *.
10595         (gimple_assign_lhs_ptr): Likewise.
10596         (gimple_assign_rhs1_ptr): Likewise.
10597         (gimple_assign_rhs2_ptr): Likewise.
10598         (gimple_assign_rhs3_ptr): Likewise.
10599         (gimple_call_lhs_ptr): Likewise.
10600         (gimple_call_fn_ptr): Likewise.
10601         (gimple_call_chain_ptr): Likewise.
10602                 (gimple_call_arg_ptr): Likewise.
10603                 (gimple_cond_lhs_ptr): Likewise.
10604         (gimple_cond_rhs_ptr): Likewise.
10605         (gimple_switch_index_ptr): Likewise.
10606         (gimple_return_retval_ptr): Likewise.
10607
10608 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10609
10610         * gimple.h (gimple_asm_input_op_ptr): Remove.
10611         (gimple_asm_output_op_ptr): Likewise.
10612
10613 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10614
10615         * gimple.h (gimple_location_ptr): Remove.
10616         * tree-vrp.c (check_all_array_refs): Adjust.
10617
10618 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10619
10620         * tree-ssa-operands.c (build_uses): store tree * instead of
10621         tree.
10622         (finalize_ssa_uses): Adjust.
10623         (append_use): Likewise.
10624         (verify_ssa_operands): Likewise.
10625
10626 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10627
10628         * real.h (build_real_truncate): Declare.
10629         * tree.c (build_real_truncate): New function.
10630         (strip_float_extensions): Use it.
10631         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
10632         (fold_builtin_hypot, fold_builtin_pow): Likewise.
10633         * match.pd: Likewise.
10634
10635 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
10636            Jiong Wang  <jiong.wang@arm.com>
10637
10638         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
10639
10640 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10641
10642         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
10643         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
10644         (aarch64_print_operand, aarch64_float_const_representable_p)
10645         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
10646         instead of REAL_VALUE_FROM_CONST_DOUBLE.
10647         * config/arc/arc.c (arc_print_operand): Likewise.
10648         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
10649         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
10650         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
10651         Likewise.
10652         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
10653         (consttable_16): Likewise.
10654         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
10655         * config/avr/avr.c (avr_print_operand): Likewise.
10656         * config/bfin/bfin.md: Likewise (in a define_split).
10657         * config/c6x/c6x.md: Likewise (in a define_split).
10658         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
10659         (cr16_print_operand): Likewise.
10660         * config/cris/cris.c (cris_print_operand): Likewise.
10661         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
10662         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10663         (fr30_const_double_is_zero): Likewise.
10664         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
10665         * config/frv/frv.md: Likewise (in a define_split).
10666         * config/frv/predicates.md (int_2word_operand): Likewise.
10667         * config/h8300/h8300.c (h8300_print_operand): Likewise.
10668         * config/i386/i386.c (standard_80387_constant_p): Likewise.
10669         (ix86_print_operand, ix86_split_to_parts): Likewise.
10670         * config/i386/i386.md: Likewise (in a define_split).
10671         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
10672         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
10673         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
10674         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
10675         (print_operand): Likewise.
10676         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
10677         * config/mep/mep.md: Likewise (in define_split).
10678         * config/microblaze/microblaze.c (microblaze_const_double_ok)
10679         (print_operand): Likewise.
10680         * config/mips/mips.md (consttable_float): Likewise.
10681         * config/mmix/mmix.c (mmix_intval): Likewise.
10682         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10683         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
10684         * config/pa/pa.c (pa_singlemove_string): Likewise.
10685         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
10686         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
10687         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
10688         (output_toc): Likewise.
10689         * config/rs6000/rs6000.md: Likewise (in define_splits).
10690         * config/rx/rx.c (rx_print_operand): Likewise.
10691         * config/s390/s390.c (s390_output_pool_entry): Likewise.
10692         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10693         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
10694         (and also in define_splits).
10695         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
10696         (fp_high_losum_p): Likewise.
10697         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
10698         (*movsf_high): Likewise.
10699         * config/spu/spu.c (const_double_to_hwint): Likewise.
10700         * config/v850/v850.c (const_double_split): Likewise.
10701         * config/vax/vax.c (vax_float_literal): Likewise.
10702         * config/visium/visium.c (visium_expand_copysign): Likewise.
10703         * config/visium/visium.md: Likewise (in define_split).
10704         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10705         * config/xtensa/xtensa.c (print_operand): Likewise.
10706         (xtensa_output_literal): Likewise.
10707         * cprop.c (implicit_set_cond_p): Likewise.
10708         * dwarf2out.c (insert_float): Likewise.
10709         * expmed.c (expand_mult, make_tree): Likewise.
10710         * expr.c (compress_float_constant): Likewise.
10711         * rtlanal.c (split_double): Likewise.
10712         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10713         (simplify_const_unary_operation, simplify_binary_operation_1)
10714         (simplify_const_binary_operation): Likewise.
10715         (simplify_const_relational_operation): Likewise.
10716         * varasm.c (output_constant_pool_2): Likewise.
10717
10718 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10719
10720         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
10721         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10722         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
10723         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
10724         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10725         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
10726         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
10727         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
10728         (ix86_emit_swsqrtsf): Likewise.
10729         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
10730         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
10731         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
10732         * config/pa/pa.c (pa_expand_builtin): Likewise.
10733         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
10734         (rs6000_scale_v2df): Likewise.
10735         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
10736         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
10737         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
10738         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
10739         (vec_ctul): Likewise.
10740         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
10741         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
10742         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
10743         * cse.c (fold_rtx): Likewise.
10744         * emit-rtl.c (immed_double_const): Likewise (in comments).
10745         (init_emit_once): Likewise.
10746         * expr.c (compress_float_constant, expand_expr_real_1)
10747         (const_vector_from_tree): Likewise.
10748         * optabs.c (expand_float, expand_fix): Likewise.
10749         * reg-stack.c (reg_to_stack): Likewise.
10750         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10751         (simplify_const_unary_operation, simplify_binary_operation_1)
10752         (simplify_const_binary_operation, simplify_relational_operation)
10753         (simplify_immed_subreg): Likewise.
10754
10755 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10756
10757         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
10758         * doc/tm.texi: Regenerate.
10759         * real.h (REAL_ARITHMETIC): Delete.
10760         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
10761         (ix86_expand_round_sse4): Use real_arithmetic instead of
10762         REAL_ARITHMETIC.
10763         * config/i386/sse.md (round<mode>2): Likewise.
10764         * rtl.h (rtx_to_tree_code): Likewise (in comment).
10765         * explow.c (rtx_to_tree_code): Likewise (in comment).
10766         * match.pd: Likewise.
10767         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10768         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10769         (expand_pow_as_sqrts): Likewise.
10770         * tree-pretty-print.c (dump_generic_node): Remove code that
10771         was conditional on REAL_ARITHMETIC being undefined.
10772
10773 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10774
10775         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
10776         * doc/tm.texi: Regenerate.
10777         * real.h (real_less): Declare.
10778         (REAL_VALUES_LESS): Delete.
10779         * real.c (real_less): New function.
10780         (real_compare): Use it.
10781         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
10782         of REAL_VALUES_LESS.
10783         * config/microblaze/microblaze.c (microblaze_const_double_ok):
10784         Likewise.
10785         * fold-const.c (fold_convert_const_int_from_real): Likewise.
10786         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10787         (simplify_const_relational_operation): Likewise.
10788         * tree-call-cdce.c (check_pow): Likewise.
10789         (gen_conditions_for_pow_cst_base): Likewise.
10790
10791 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10792
10793         * real.h (REAL_VALUES_IDENTICAL): Delete.
10794         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
10795         instead of REAL_VALUES_IDENTICAL.
10796         * fold-const.c (operand_equal_p): Likewise.
10797         * ipa-icf.c (sem_variable::equals): Likewise.
10798         * tree-complex.c (some_nonzerop): Likewise.
10799         (expand_complex_multiplication): Likewise.
10800         * tree.c (simple_cst_equal): Likewise.
10801         * varasm.c (compare_constant): Likewise.
10802
10803 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10804
10805         * real.h (real_equal): Declare.
10806         (REAL_VALUES_EQUAL): Delete.
10807         * real.c (real_equal): New function.
10808         (real_compare): Use it.
10809         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
10810         * doc/tm.texi: Regenerate.
10811         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
10812         real_equal instead of REAL_VALUES_EQUAL.
10813         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
10814         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
10815         (fp_const_from_val): Likewise.
10816         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
10817         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
10818         (floating_exact_log2): Likewise.
10819         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10820         * config/vax/vax.c (vax_float_literal): Likewise.
10821         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10822         * cprop.c (implicit_set_cond_p): Likewise.
10823         * expmed.c (expand_mult): Likewise.
10824         * fold-const.c (const_binop): Likewise.
10825         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10826         (simplify_const_binary_operation): Likewise.
10827         (simplify_const_relational_operation): Likewise.
10828         * tree-call-cdce.c (check_pow): Likewise.
10829         (gen_conditions_for_pow_cst_base): Likewise.
10830         * tree-inline.c (estimate_num_insns): Likewise.
10831         * tree-ssa-dom.c (record_equality): Likewise.
10832         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10833         (gimple_expand_builtin_pow): Likewise.
10834         (pass_optimize_widening_mul::execute): Likewise.
10835         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
10836         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10837         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
10838
10839 2015-10-05  Richard Biener  <rguenther@suse.de>
10840
10841         PR ipa/67783
10842         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
10843         consider loop header PHI defs as IVs.
10844
10845 2015-10-05  Richard Biener  <rguenther@suse.de>
10846
10847         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
10848         call handling ...
10849         (create_expression_by_pieces): ... here and build GIMPLE
10850         calls directly.  Use gimple_build API and avoid force_gimple_operand.
10851         (insert_into_preds_of_block): Simplify.
10852         (do_regular_insertion): Add comment.
10853
10854 2015-10-04  Jason Merrill  <jason@redhat.com>
10855
10856         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
10857
10858 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
10859
10860         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
10861         check for general register.
10862         (ix86_emit_save_regs): Ditto.
10863         (ix86_emit_save_regs_using_mov): Ditto.
10864         (ix86_emit_restore_regs_using_pop): Ditto.
10865         (ix86_emit_restore_regs_using_mov): Ditto.
10866
10867 2015-10-03  Marek Polacek  <polacek@redhat.com>
10868
10869         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
10870         (insn-dfatab.o): Likewise.
10871
10872 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
10873
10874         * config.gcc (xtensa*-*-uclinux*): New configuration.
10875         * config/xtensa/uclinux.h: New file.
10876         * config/xtensa/uclinux.opt: New file.
10877
10878 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
10879
10880         * doc/cpp.texi (Standard Predefined Macros): Document value of
10881         __cplusplus for C++14.
10882
10883 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
10884
10885         * gcc.c (process_command): Use spec_machine rather than
10886         spec_host_machine to build tooldir_prefix2.
10887
10888 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10889             Bernd Schmidt  <bernds@codesourcery.com>
10890
10891         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
10892         (Token, Stmt): Remove structs.
10893         (decls, vars, fns): Remove variables.
10894         (alloc_comment, append_stmt, is_keyword): Remove macros.
10895         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
10896         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
10897         (parse_init, parse_file): Remove functions.
10898         (read_file): Accept a pointer to a length and store into it.
10899         (process): Don't try to parse the input file, just write it out as
10900         a string, but looking for maps.  Also write out the length.
10901         (main): Don't use "-S" to compile PTX code.
10902
10903 2015-10-02  Jeff Law  <law@redhat.com>
10904
10905         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
10906         fixups.
10907
10908 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10909
10910         PR target/67822
10911         * config/nvptx/mkoffload.c (main): Scan the argument vector for
10912         -fopenmp, and skip generating an offloading image if specified.
10913
10914 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
10915
10916         * system.h (ROUND_UP): New macro definition.
10917         (ROUND_DOWN): Ditto.
10918         * ggc-page.c (ROUND_UP): Remove local macro definition.
10919         (PAGE_ALIGN): Implement using ROUND_UP macro.
10920
10921         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
10922         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
10923         to align values.
10924         (ix86_compute_frame_layout): Ditto.
10925         (ix86_expand_prologue): Ditto.
10926         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
10927         to round down values.
10928         (expand_set_or_movmem_via_rep): Ditto.
10929
10930 2015-10-02  Marek Polacek  <polacek@redhat.com>
10931
10932         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
10933
10934 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
10935
10936         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
10937         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
10938         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
10939         (free_gimple_bb): Renamed free_gimple_poly_bb.
10940         (try_generate_gimple_bb): Hoist loop invariant code.
10941         (analyze_drs_in_stmts): Same.
10942         (build_scop_drs): Call renamed functions.
10943         (new_pbb_from_pbb): Same.
10944         (scop_ivs_can_be_represented): Delete as functionality now moved to
10945         graphite-scop-detection.c
10946         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
10947
10948 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
10949
10950         * graphite-scop-detection.c (stmt_has_side_effects): New function
10951           outlined from stmt_simple_for_scop_p.
10952         (graphite_can_represent_stmt): Same.
10953         (stmt_simple_for_scop_p): Moved code out of this function for better
10954         readability.
10955
10956 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10957
10958         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
10959         F_AVX512IFMA.
10960         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
10961
10962 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10963
10964         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
10965
10966 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
10967
10968         PR rtl-optimization/67756
10969         * lra-constraints.c (match_reload): Add a new parameter.  Use it
10970         for creating a pseudo with the same value.
10971         (curr_insn_transform): Pass a new argument to match_reload.
10972
10973 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10974
10975         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
10976         (expand_vec_perm_even_odd_1): Handle V64QImode.
10977         (ix86_expand_vec_perm_const_1): Try expansion with
10978         expand_vec_perm_even_odd_trunc as well.
10979         * config/i386/sse.md (VI124_AVX512F): Rename to ...
10980         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
10981         to V54QI.
10982         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
10983         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
10984         to V32HI and V16SI.
10985         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
10986         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
10987         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
10988         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
10989         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
10990         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
10991
10992 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10993
10994         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
10995         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
10996
10997 2015-10-02  Jason Merrill  <jason@redhat.com>
10998
10999         PR c/59218
11000         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
11001         (diagnose_tm_1_op): Also diagnose volatile accesses in
11002         transaction_safe function.
11003
11004 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
11005
11006         * system.h (malloc.h): Don't include obsolete header.
11007
11008 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11009
11010         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
11011         (TLS_SECTION_ASM_FLAG): Delete.
11012
11013 2015-10-02  Marek Polacek  <polacek@redhat.com>
11014
11015         PR c/64249
11016         * doc/invoke.texi: Document -Wduplicated-cond.
11017         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
11018         (insn-dfatab.o): Likewise.
11019         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
11020         warning.
11021
11022 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
11023
11024         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
11025         sequences.
11026
11027 2015-10-02  Renlin Li  <renlin.li@arm.com>
11028
11029         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
11030
11031 2015-10-02  Renlin Li  <renlin.li@arm.com>
11032
11033         PR target/66776
11034         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
11035
11036 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11037
11038         PR rtl-optimization/67786
11039         PR rtl-optimization/67787
11040         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
11041         it modifies a reg used in the condition calculation.
11042
11043 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
11044
11045         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
11046         alternatives for reads from memory and moves from general-purpose
11047         registers.
11048         (*aarch64_combinez_be<mode>): Likewise.
11049
11050 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
11051
11052         PR target/51726
11053         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
11054         selectany within this function without need to keep attribute.
11055         (i386_pe_encode_section_info): Remove selectany-code.
11056
11057 2015-10-02  Richard Biener  <rguenther@suse.de>
11058
11059         * tree-ssa-sccvn.c (has_VN_INFO): New function.
11060         (free_scc_vn): Use it.
11061         (visit_use): Remove dead code and refactor to use gassign
11062         and use less indentation.
11063
11064 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11065
11066         PR target/67788
11067         PR target/67789
11068         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
11069         (rs6000_cannot_copy_insn_p): New function.
11070         * config/rs6000/rs6000.md (cannot_copy): New attribute.
11071         (load_toc_v4_PIC_1_normal): Set cannot_copy.
11072         (load_toc_v4_PIC_1_476): Ditto.
11073
11074 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11075
11076         * graphite-scop-detection.c (struct sese_l): New conversion constructor
11077         so that this type can be pushed into a vec.
11078         (class scop_builder): use sese_l to collect scops.
11079         (get_scops): New getter function.
11080         (remove_intersecting_scops): Use sese_l instead of scops_p.
11081         (intersects): Same.
11082         (add_scop): Same.
11083         (subsumes): Same.
11084         (remove_subscops): Same.
11085         (build_scops): Add scops to vec<scops_p> once all the scops have been
11086         detected.
11087
11088 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11089
11090         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11091         Renamed type from gimple_bb_p to gimple_poly_bb_p.
11092         (translate_isl_ast_node_user): Same.
11093         * graphite-poly.c (new_poly_bb): Same.
11094         * graphite-poly.h (gbb_from_bb): Same.
11095         * sese.h: Same.
11096         * graphite-sese-to-poly.c (new_gimple_bb):
11097         gimple_bb_p -> gimple_poly_bb_p
11098         (build_scop_scattering): Same.
11099         (find_params_in_bb): Same.
11100         (add_conditions_to_domain): Same.
11101         (sese_dom_walker::before_dom_children): Same.
11102         (analyze_drs_in_stmts): Same.
11103         (new_pbb_from_pbb): Same.
11104         (free_data_refs_aux): New pointer to type base_alias_pair.
11105         * graphite-sese-to-poly.h: Same.
11106         * sese.c (if_region_set_false_region): Fixed Indentation.
11107         (move_sese_in_condition): Same.
11108
11109 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11110             Aditya Kumar  <aditya.k7@samsung.com>
11111
11112         PR tree-optimization/66980
11113         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
11114         when data reference analysis has failed.
11115
11116 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11117             Aditya Kumar  <aditya.k7@samsung.com>
11118
11119         PR tree-optimization/67754
11120         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
11121         scev analysis on the same loop nest as analyze_drs_in_stmts.
11122         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
11123         renamed...
11124         (try_generate_gimple_bb): Call outermost_loop_in_sese.
11125         (analyze_drs_in_stmts): Same.
11126         * sese.c (outermost_loop_in_sese): ...here.
11127
11128 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11129             Aditya Kumar  <aditya.k7@samsung.com>
11130
11131         PR tree-optimization/67754
11132         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
11133         recursion on the inner loops.
11134
11135 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11136
11137         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
11138         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
11139         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
11140         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
11141         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
11142
11143 2015-10-01  Marek Polacek  <polacek@redhat.com>
11144
11145         PR c/65345
11146         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
11147         create_tmp_var_raw rather than create_tmp_var.
11148
11149 2015-10-01  Marek Polacek  <polacek@redhat.com>
11150
11151         PR tree-optimization/67769
11152         * tree-ssa-phiopt.c (conditional_replacement): Call
11153         reset_flow_sensitive_info_in_bb.
11154         (minmax_replacement): Likewise.
11155         (abs_replacement): Likewise.
11156
11157 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
11158
11159         * builtins.c: Don't include gomp-constants.h.
11160         (fold_builtin_1): Don't fold acc_on_device here.
11161         * gimple-fold.c: Include gomp-constants.h.
11162         (gimple_fold_builtin_acc_on_device): New.
11163         (gimple_fold_builtin): Call it.
11164
11165 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
11166
11167         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
11168         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
11169
11170 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
11171
11172         * config/arm/aarch-common-protos.h
11173         (aarch_accumulator_forwarding): New.
11174         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11175         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
11176         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11177         * config/arm/cortex-a53.md: Rewrite.
11178
11179 2015-10-01  Richard Biener  <rguenther@suse.de>
11180
11181         * gimple-match.h (mprts_hook): Declare.
11182         * gimple-match.head.c (mprts_hook): Define.
11183         (maybe_push_res_to_seq): Use new hook.
11184         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11185         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
11186         (vn_ssa_aux::has_constants): Remove.
11187         * tree-ssa-sccvn.c: Include gimple-match.h.
11188         (VN_INFO_GET): Assert we don't re-use SSA names.
11189         (vn_get_expr_for): Remove.
11190         (expr_has_constants): Likewise.
11191         (stmt_has_constants): Likewise.
11192         (simplify_binary_expression): Likewise.
11193         (simplify_unary_expression): Likewise.
11194         (vn_lookup_simplify_result): New hook.
11195         (visit_copy): Adjust.
11196         (visit_reference_op_call): Likewise.
11197         (visit_phi): Likewise.
11198         (visit_use): Likewise.
11199         (process_scc): Likewise.
11200         (init_scc_vn): Likewise.
11201         (visit_reference_op_load): Likewise.  Use match-and-simplify and
11202         a gimple seq for inserted expressions.
11203         (try_to_simplify): Remove GENERIC stmt combining code.
11204         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
11205         * tree-ssa-pre.c (eliminate_insert): Adjust.
11206         (eliminate_dom_walker::before_dom_children): Likewise.
11207
11208 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11209
11210         * doc/invoke.texi (Optimization Options): Add
11211         -freorder-blocks-algorithm=.
11212         (Optimize Options) <-O>: Add -freorder-blocks.
11213         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
11214         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
11215         <-freorder-blocks>: Also enabled at levels -O and -Os.
11216         <-freorder-blocks-algorithm=>: Document new option.
11217
11218 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11219
11220         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
11221         with flag_reorder_blocks_algorithm.
11222         * common.opt (freorder-blocks-algorithm=): New flag.
11223         (reorder_blocks_algorithm): New enum.
11224         * flag-types.h (reorder_blocks_algorithm): New enum.
11225         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
11226         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
11227
11228 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11229
11230         * bb-reorder.c: Add intro comment.
11231         (reorder_basic_blocks_software_trace_cache): Print a header to
11232         the dump file.
11233         (edge_order): New function.
11234         (reorder_basic_blocks_simple): New function.
11235         (reorder_basic_blocks): Choose between the STC and the simple
11236         algorithms (always choose the former).
11237
11238 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11239
11240         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
11241         function, factored out from ...
11242         (reorder_basic_blocks): ... here.
11243
11244 2015-10-01  Tom de Vries  <tom@codesourcery.com>
11245
11246         * tree-cfg.c (dump_function_to_file): Dump function attributes using
11247         __attribute__(()) string.  Move dumping of function attributes to before
11248         function name.
11249
11250 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
11251
11252         PR target/66870
11253         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
11254         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
11255         based on gold linker version.
11256         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
11257         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
11258         * configure, config.in: Regenerate.
11259
11260 2015-10-01  Alan Modra  <amodra@gmail.com>
11261
11262         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
11263         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
11264         (rs6000_output_mi_thunk): Likewise.
11265
11266 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11267
11268         * config/nvptx/mkoffload.c (process): Change offload data format.
11269
11270 2015-09-30  Jeff Law  <law@redhat.com>
11271
11272         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
11273         with constant conditions.
11274         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
11275         (remove_ctrl_stmt_and_useless_edges): No longer static.
11276         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
11277         (remove_ctrl_stmt_and_useless_edges): Likewise.
11278
11279 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11280             Cesar Philippidis  <cesar@codesourcery.com>
11281
11282         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
11283         (TARGET_GOACC_VALIDATE_DIMS): Override.
11284         * target.def (TARGET_GOACC): New target hook prefix.
11285         (validate_dims): New hook.
11286         * targhooks.h (default_goacc_validate_dims): New.
11287         * omp-low.c (oacc_validate_dims): New.
11288         (execute_oacc_device_lower): New.
11289         (default_goacc_validate_dims): New.
11290         (pass_data_oacc_device_lower): New.
11291         (pass_oacc_device_lower): New pass.
11292         (make_pass_oacc_device_lower): New.
11293         * tree-pass.h (make_pass_oacc_device_lower): Declare.
11294         * passes.def (pass_oacc_device_lower): Add it.
11295         * doc/tm.texi: Rebuilt.
11296         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
11297         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
11298
11299 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11300
11301         PR rtl-optimization/67037
11302         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
11303
11304 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
11305
11306         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
11307         * passes.c: Include tree-ssanames.h.
11308         (execute_function_todo): Flush the pending free SSA_NAMEs after
11309         eliminating unreachable basic blocks.
11310         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
11311         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
11312         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
11313         (flush_ssanames_freelist): New function.
11314         (release_ssaname_fn): Put released names on the queue.
11315         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
11316         * tree-ssanames.h (flush_ssanames_freelist): Declare.
11317
11318 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11319
11320         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
11321         (generate_target_descr_file, generate_target_offloadend_file)
11322         (generate_host_descr_file, prepare_target_image): Pass it on.
11323         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
11324         (compile_native, main): Pass it on.
11325         * lto-wrapper.c (compile_offload_image): Likewise.
11326
11327 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11328             Ilya Verbin  <ilya.verbin@intel.com>
11329             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11330
11331         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
11332         (prepare_target_image, main): Refactor argv building to use
11333         obstacks.
11334
11335 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11336
11337         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
11338         * config/spu/spu.c (spu_expand_atomic_op): New function.
11339         * config/spu/spu.md (AINT): New mode iterator.
11340         (ATOMIC): New code iterator.
11341         (atomic_name, atomic_pred): New code predicates.
11342         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
11343         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
11344         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
11345         "atomic_<atomic_name>_fetch<mode>"): Likewise.
11346
11347 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
11348
11349         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
11350         debug insns.
11351         (scalar_chain::convert_reg): Likewise.
11352
11353 2015-09-30  Richard Biener  <rguenther@suse.de>
11354
11355         * builtins.c: Add comment that no new simplifications should
11356         be added here.
11357
11358 2015-09-30  Marek Polacek  <polacek@redhat.com>
11359
11360         PR tree-optimization/67690
11361         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
11362         reset_flow_sensitive_info_in_bb.
11363         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
11364         * tree-ssanames.c: Include "gimple-iterator.h".
11365         (reset_flow_sensitive_info_in_bb): New function.
11366         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
11367
11368 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11369
11370         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
11371         variable, replacing it with...
11372         (offload_abi): ... this new variable.  Adjust all users.
11373         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
11374
11375 2015-09-30  Matthias Klose  <doko@ubuntu.com>
11376
11377         * configure.ac: Remove extraneous ;;.
11378         * configure: Regenerate.
11379
11380 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
11381
11382         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
11383         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
11384         predicate, disallow register for operand 2.
11385
11386 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
11387
11388         * graphite-dependences.c (scop_get_dependences): Moved in down
11389         in order to be visible to its caller.
11390         * graphite-poly.h: Removed compute_deps, and extend_schedule.
11391
11392 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11393             Aditya Kumar  <aditya.k7@samsung.com>
11394
11395         PR tree-optimization/67754
11396         * graphite-optimize-isl.c (optimize_isl): Call
11397         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
11398
11399 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11400
11401         * builtins.c (expand_builtin_acc_on_device): Delete.
11402         (expand_builtin): Don't call it.
11403         (fold_builtin_1): Fold acc_on_device.
11404
11405 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
11406
11407         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
11408         (ix86_nsaved_sseregs): Likewise.
11409
11410 2015-09-29  Jeff Law  <law@redhat.com>
11411
11412         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
11413         computation of unused value.
11414
11415         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
11416         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
11417         inline macro expansion.
11418
11419         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
11420
11421         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
11422         (gen_shl_sext): Likewise.
11423         * config/sh/sh.md (divsi3): Likewise.
11424         (imm->ext_dest_operand splitter): Likewise.
11425
11426 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11427             Aditya Kumar  <aditya.k7@samsung.com>
11428
11429         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
11430         (nb_data_writes_in_bb): Remove.
11431         (split_pbb): Remove.
11432         (split_reduction_stmt): Remove.
11433         (is_reduction_operation_p): Remove.
11434         (phi_contains_arg): Remove.
11435         (follow_ssa_with_commutative_ops): Remove.
11436         (detect_commutative_reduction_arg): Remove.
11437         (detect_commutative_reduction_assign): Remove.
11438         (follow_inital_value_to_phi): Remove.
11439         (edge_initial_value_for_loop_phi): Remove.
11440         (initial_value_for_loop_phi): Remove.
11441         (used_outside_reduction): Remove.
11442         (detect_commutative_reduction): Remove.
11443         (translate_scalar_reduction_to_array_for_stmt): Remove.
11444         (remove_phi): Remove.
11445         (dr_indices_valid_in_loop): Remove.
11446         (close_phi_written_to_memory): Remove.
11447         (translate_scalar_reduction_to_array): Remove.
11448         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
11449         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
11450         (rewrite_commutative_reductions_out_of_ssa): Remove.
11451         (build_poly_scop): Remove call to
11452         rewrite_commutative_reductions_out_of_ssa.
11453
11454 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
11455
11456         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
11457         Add new insn types for vector load and store pairs.
11458         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
11459         types "neon_ldp{,_q}".
11460         * config/arm/cortex-a57.md (neon_load_c): Add insn types
11461         "neon_ldp{,_q}".
11462         (neon_store_complex): Add insn types "neon_stp{,_q}".
11463         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
11464         "neon_{ldp,stp}_q".
11465
11466 2015-09-29  Jeff Law  <law@redhat.com>
11467
11468         * config/rx/constraints.md (Int08): Fix undefined left shift
11469         behaviour.
11470         (Sint08, Sint16, Sint24): Likewise.
11471         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11472
11473         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
11474         behaviour.
11475
11476         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
11477         left shift behaviour.
11478         * config/msp430/constraints.md ('L' constraint): Similarly.
11479         ('Ys' constraint): Similarly.
11480
11481 2015-09-29  Richard Biener  <rguenther@suse.de>
11482
11483         PR tree-optimization/67170
11484         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
11485         the translate function pointer parameter to get the
11486         bool whether to disambiguate only by reference.
11487         (walk_non_aliased_vuses): Likewise.
11488         * tree-ssa-alias.c (maybe_skip_until): Adjust.
11489         (get_continuation_for_phi_1): Likewise.
11490         (get_continuation_for_phi): Likewise.
11491         (walk_non_aliased_vuses): Likewise.
11492         * tree-ssa-sccvn.c (const_parms): New bitmap.
11493         (vn_reference_lookup_3): Adjust for interface change.
11494         Disambiguate parameters pointing to readonly memory.
11495         (free_scc_vn): Free const_parms.
11496         (run_scc_vn): Initialize const_parms from a fn spec attribute.
11497
11498 2015-09-29  Richard Biener  <rguenther@suse.de>
11499
11500         PR tree-optimization/67741
11501         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
11502         builtin calls with correct signature.
11503
11504 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
11505
11506         PR target/65105
11507         * config/i386/i386.c: Include dbgcnt.h.
11508         (has_non_address_hard_reg): New.
11509         (convertible_comparison_p): New.
11510         (scalar_to_vector_candidate_p): New.
11511         (remove_non_convertible_regs): New.
11512         (scalar_chain): New.
11513         (scalar_chain::scalar_chain): New.
11514         (scalar_chain::~scalar_chain): New.
11515         (scalar_chain::add_to_queue): New.
11516         (scalar_chain::mark_dual_mode_def): New.
11517         (scalar_chain::analyze_register_chain): New.
11518         (scalar_chain::add_insn): New.
11519         (scalar_chain::build): New.
11520         (scalar_chain::compute_convert_gain): New.
11521         (scalar_chain::replace_with_subreg): New.
11522         (scalar_chain::replace_with_subreg_in_insn): New.
11523         (scalar_chain::emit_conversion_insns): New.
11524         (scalar_chain::make_vector_copies): New.
11525         (scalar_chain::convert_reg): New.
11526         (scalar_chain::convert_op): New.
11527         (scalar_chain::convert_insn): New.
11528         (scalar_chain::convert): New.
11529         (convert_scalars_to_vector): New.
11530         (pass_data_stv): New.
11531         (pass_stv): New.
11532         (make_pass_stv): New.
11533         (ix86_option_override): Created and register stv pass.
11534         (flag_opts): Add -mstv.
11535         (ix86_option_override_internal): Likewise.
11536         * config/i386/i386.md (SWIM1248x): New.
11537         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
11538         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
11539         (*anddi3_doubleword): New.
11540         (*zext<mode>_doubleword): New.
11541         (*zextsi_doubleword): New.
11542         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
11543         (*<code>di3_doubleword): New.
11544         * config/i386/i386.opt (mstv): New.
11545         * dbgcnt.def (stv_conversion): New.
11546
11547 2015-09-29  Tom de Vries  <tom@codesourcery.com>
11548
11549         * tree-cfg.c (dump_function_to_file): Dump function attributes.
11550
11551 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11552
11553         PR target/67716
11554         * config/sh/sh.c (sh_override_options_after_change): New.
11555         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
11556         (sh_option_override): Move align_loops, align_jumps and
11557         align_functions handling into sh_override_options_after_change.
11558
11559 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
11560
11561         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
11562         (nvptx_record_offload_symbol): Record function execution geometry.
11563         * config/nvptx/mkoffload.c (process): Include launch geometry in
11564         function data.
11565         * omp-low.c (oacc_launch_pack): New.
11566         (replace_oacc_fn_attrib): New.
11567         (set_oacc_fn_attrib): New.
11568         (get_oacc_fn_attrib): New.
11569         (expand_omp_target): Create keyed varargs for GOACC_parallel call
11570         generation.
11571         * omp-low.h (get_oacc_fn_attrib): Declare.
11572         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
11573         (DEF_FUNCTION_TYPE_VAR_11): Delete.
11574         * tree.h (OMP_CLAUSE_EXPR): New.
11575         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
11576
11577 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11578             Sebastian Pop  <s.pop@samsung.com>
11579
11580         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
11581
11582 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11583             Sebastian Pop  <s.pop@samsung.com>
11584
11585         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
11586         * graphite-scop-detection.c (struct sese_l): New type.
11587         (get_entry_bb): API for getting entry bb of SESE.
11588         (get_exit_bb): API for getting exit bb of SESE.
11589         (class debug_printer): New type.  Simple printer in debug mode.
11590         (trivially_empty_bb_p): New.  Return true when BB is empty or
11591         contains only debug instructions.
11592         (graphite_can_represent_expr): Call scalar_evoution_in_region
11593         instead of analyze_scalar_evolution.  Pass in scop instead of only
11594         the scop entry.
11595         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
11596         scop entry.
11597         (stmt_simple_for_scop_p): Same.
11598         (harmful_stmt_in_bb): Same.
11599         (graphite_can_represent_loop): Deleted.
11600         (struct scopdet_info): Deleted.
11601         (scopdet_basic_block_info): Deleted.
11602         (build_scops_1): Deleted.
11603         (bb_in_sd_region): Deleted.
11604         (find_single_entry_edge): Deleted.
11605         (find_single_exit_edge): Deleted.
11606         (create_single_entry_edge): Deleted.
11607         (sd_region_without_exit): Deleted.
11608         (create_single_exit_edge): Deleted.
11609         (unmark_exit_edges): Deleted.
11610         (mark_exit_edges): Deleted.
11611         (create_sese_edges): Deleted.
11612         (build_graphite_scops): Deleted.
11613         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
11614         (build_scops): Use the new scop_builder to build scops.
11615         (dot_all_scops_1): Use the new pretty printer.  Print loop father
11616         as well.
11617         (loop_body_is_valid_scop): New.  Return true if loop body is a
11618         valid scop.
11619         (class scop_builder): New.  Builds SCoPs for polyhedral
11620         optimizations.
11621         (scop_builder): New constructor.
11622         (static sese_l invalid_sese): sese_l with invalid edges.
11623         (get_sese): Get an sese (from a loop) if possible, invalid_sese
11624         otherwise.
11625         (get_nearest_dom_with_single_entry): Get nearest dominator of a
11626         basic_block with single entry.  Return NULL if we get to the
11627         beginning of a function.
11628         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
11629         a basic_block with single exit.  Return NULL if we get to the
11630         beginning of a function.
11631         (print_sese): Pretty-print SESE.
11632         (merge_sese): Merge two SESEs if possible and return the new SESE.
11633         (build_scop_depth): Start building the SCoP within a loop nest.
11634         (build_scop_breadth): Start building the SCoP at a single loop
11635         depth.  Merge adjacent SESEs if valid.
11636         (can_represent_loop_1): Returns true if Graphite can represent
11637         loop inside SCoP.  Helper for can_represent_loop.
11638         (can_represent_loop): Returns true if Graphite can represent LOOP
11639         and all its nested loops in SCoP.
11640         (loop_is_valid_scop): Returns true if LOOP and all its nests
11641         constitute a valid SCoP.
11642         (region_has_one_loop): Returns true of a region has only one loop.
11643         (add_scop): Add SCoP to the list of valid scops.  Removes an
11644         already existing scop if it intersects with or subsumed by this one.
11645         (harmful_stmt_in_region): Returns true if SCoP has any statment
11646         which cannot be represented by Graphite.
11647         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
11648         (remove_subscops): Remove any SCoP from the list of already found
11649         SCoPs, if subsumed by S1.
11650         (intersects): Return true if region bounded by SCoPs S1 and S2
11651         intersect.
11652         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
11653         * graphite.c (print_graphite_scop_statistics):
11654         (print_graphite_statistics): Print SCoP info while debugging.
11655         (graphite_initialize): Early exit in case number of loops in a
11656         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
11657         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11658         (graphite_finalize):
11659         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
11660         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
11661         (recompute_all_dominators): Recalculate POST_DOMINATORS.
11662         * tree-cfg.c (print_loops): Print the function name while printing
11663         loops.
11664
11665 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11666             Sebastian Pop  <s.pop@samsung.com>
11667
11668         PR tree-optimization/67700
11669         * graphite-sese-to-poly.c (parameter_index_in_region): Call
11670         invariant_in_sese_p_rec.
11671         (extract_affine): Same.
11672         (rewrite_cross_bb_scalar_deps): Call update_ssa.
11673         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
11674         * sese.h (invariant_in_sese_p_rec): Declare.
11675
11676 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
11677
11678         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
11679
11680 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
11681
11682         Revert:
11683         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11684                     Jiong Wang  <jiong.wang@arm.com>
11685
11686         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11687         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11688         (REG_CLASS_NAMES): Likewise.
11689         (REG_CLASS_CONTENTS): Likewise.
11690         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11691         (aarch64_register_move_cost): Likewise.
11692         (aarch64_load_symref_appropriately): Invoke the new added pattern if
11693         possible.
11694         * config/aarch64/constraints.md (Uc0): New constraint.
11695
11696 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
11697
11698         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
11699
11700 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
11701
11702         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
11703         SECTION_EXCLUDE in XO mapping class.
11704
11705 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
11706
11707         PR target/54236
11708         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
11709         and handle ne and eq codes.
11710         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
11711         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
11712         CONST_INT_P.  Use reverse_condition.
11713         (sh_split_treg_set_expr): Likewise.
11714
11715 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
11716
11717         * config/arm/types.md (type): Add rotate_imm.
11718         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
11719         ROR immediate case.
11720         (*rorsi3_insn_uxtw): Likewise.
11721         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
11722         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
11723         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
11724
11725 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11726
11727         PR rtl-optimization/67481
11728         * ifcvt.c (contains_ccmode_rtx_p): New function.
11729         (insn_valid_noce_process_p): Use it.
11730
11731 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11732
11733         PR rtl-optimization/67456
11734         PR rtl-optimization/67464
11735         PR rtl-optimization/67465
11736         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
11737         move in the mode of x.  Handle combination of complex and simple
11738         block pairs as well as the case when one is empty.
11739
11740 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11741
11742         * doc/gimple.texi: Update references to gimple_statement_base.
11743         * gdbhooks.py: Likewise.
11744         * gimple.h: Likewise.
11745
11746 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11747
11748         * config/sparc/driver-sparc.c: map LEON to leon3
11749
11750 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11751
11752         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
11753           and make it inverse to change default
11754         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
11755           supervisor mode
11756         * doc/invoke.texi: Document change of default
11757
11758 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11759
11760         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
11761         true on %f0 for a target without FPU.
11762         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
11763         without FPU.
11764         (untyped_return): Do not load %f0 for a target without FPU.
11765
11766 2015-09-28  Andrew Pinski  <apinski@cavium.com>
11767
11768         * config/aarch64/aarch64.md (prefetch):
11769         Change the predicate of operand 0 to register_operand.
11770
11771 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
11772
11773         * config/i386/predicates.md (register_sse4nonimm_operand): New
11774         predicate.
11775         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
11776         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
11777         Use register_sse4nonimm_operand as operand 0 predicate.
11778         (*vec_extractv8hi_sse2): Remove insn pattern.
11779         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
11780         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
11781
11782 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
11783             Kaz Kojima  <kkojima@gcc.gnu.org>
11784
11785         PR target/67391
11786         * config/sh/sh-protos.h (sh_lra_p): Declare.
11787         * config/sh/sh.c (sh_lra_p): Make non-static.
11788         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
11789         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
11790         Expand into addsi3_scr if operands[2] if needed.
11791         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
11792         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
11793         (addsi3_scr, *addsi3): New insn_and_split patterns.
11794
11795 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
11796
11797         PR rtl-optimization/64164
11798         PR tree-optimization/67312
11799         PR middle-end/67340
11800         PR middle-end/67490
11801         PR bootstrap/67597
11802         * cfgexpand.c (parm_in_stack_slot_p): Remove.
11803         (ssa_default_def_partition): Remove.
11804         (get_rtl_for_parm_ssa_default_def): Remove.
11805         (set_rtl): Check that RTL assignments match expectations.
11806         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
11807         default def location for params and results.  Record SSA names
11808         or types in REG and MEM attrs, respectively.
11809         (set_parm_rtl): New.
11810         (expand_one_ssa_partition): Drop logic that assigned MEMs with
11811         unassigned addresses.
11812         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
11813         deferred stack alloc vars.
11814         (expand_used_vars): Skip partitions holding parm default defs.
11815         Move adjust_one_expanded_partition_var loop...
11816         (pass_expand::execute): ... here.  Drop redundant assert.
11817         Adjust comments before the final loop over all ssa names.
11818         Require assigned rtl of parms and results to match exactly.
11819         Reset its attributes to match them, not any other variables in
11820         the same partition.
11821         (expand_debug_expr): Use entry value for PARM's default defs
11822         only iff they have zero nondebug uses.
11823         * cfgexpand.h (parm_in_stack_slot_p): Remove.
11824         (get_rtl_for_parm_ssa_default_def): Remove.
11825         (set_parm_rtl): Declare.
11826         * doc/invoke.texi: Improve wording.
11827         * explow.c (promote_decl_mode): Fix promote_function_mode for
11828         result decls not by reference.
11829         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
11830         bypass TYPE_MODE to get the actual vector mode.
11831         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
11832         2015-08-19's changes as follows.  Drop include of
11833         basic-block.h and df.h.
11834         (rtl_for_parm): Remove.
11835         (maybe_reset_rtl_for_parm): Remove.
11836         (parm_in_unassigned_mem_p): Remove.
11837         (use_register_for_decl): Add logic for RESULT_DECLs matching
11838         assign_parms' behavior.
11839         (split_complex_args): Revert.
11840         (assign_parms_augmented_arg_list): Revert.  Add comment
11841         referencing the logic above.
11842         (assign_parm_adjust_stack_rtl): Revert.
11843         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
11844         of SET_DECL_RTL.  Set up a REG if the parm demands so.
11845         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
11846         calls into a single set_parm_rtl.  Set up a temporary RTL
11847         temporarily for expand_assignment.
11848         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
11849         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
11850         (assign_bounds): Revert.
11851         (assign_parms): Revert.  Use set_parm_rtl.
11852         (allocate_struct_function): Relayout result and parms of
11853         non-abstruct functions.
11854         (expand_function_start): Revert.  Use set_parm_rtl.  If the
11855         result is not a hard reg, create a pseudo from the promoted
11856         mode of the default def.  Promote static chain mode.
11857         * tree-outof-ssa.c (remove_ssa_form): Drop unused
11858         partition_has_default_def.  Set up
11859         partitions_for_parm_default_defs.
11860         (finish_out_of_ssa): Remove partition_has_default_def.
11861         Release partitions_for_parm_default_defs.
11862         * tree-outof-ssa.h (struct ssaexpand): Remove
11863         partition_has_default_def.  Add
11864         partitions_for_parm_default_defs.
11865         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
11866         stor-layout.h.
11867         (build_ssa_conflict_graph): Fix conflict-detection of default
11868         defs of even unused default defs of params and results.
11869         (for_all_parms): New.
11870         (create_default_def): New.
11871         (register_default_def): New.
11872         (coalesce_with_default): New.
11873         (create_outofssa_var_map): Create default defs for all parms
11874         and results, and register their partitions.  Add GIMPLE_RETURN
11875         operands as coalesce candidates with results.  Add default
11876         defs of each parm or result as coalesce candidates with its
11877         other defs.  Mark each result def, and each default def of
11878         parms, as used_in_copy.
11879         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
11880         with the ssa names, even anonymous ones.  Drop
11881         parm_in_stack_slot_p calls.  Require same signedness and
11882         alignment.
11883         (coalesce_ssa_name): Add coalesce candidates for all defs of
11884         each parm and result, even unused ones.
11885         (parm_default_def_partition_arg): New type.
11886         (set_parm_default_def_partition): New.
11887         (get_parm_default_def_partitions): New.
11888         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
11889         * tree-ssa-live.c (partition_view_init): Regard unused defs of
11890         parms and results as used.
11891         (verify_live_on_entry): Don't error out just because they're
11892         not live.
11893
11894 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
11895
11896         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11897         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
11898         (output_fde): Don't output length for debug_frame on AIX.
11899         (output_call_frame_info): Don't output length for debug_frame on AIX.
11900         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
11901         HAVE_XCOFF_DWARF_EXTRAS.
11902         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
11903         HAVE_XCOFF_DWARF_EXTRAS.
11904         (output_compilation_unit_header): Don't output length on AIX.
11905         (output_pubnames): Don't output length on AIX.
11906         (output_aranges): Delete argument. Compute length locally. Don't
11907         output length on AIX.
11908         (output_line_info): Don't output length on AIX.
11909         (dwarf2out_finish): Don't compute aranges_length.
11910         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11911         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
11912         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
11913         symbol decoration for AIX.
11914         (rs6000_xcoff_debug_unwind_info): New.
11915         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
11916         for SECTION_DEBUG.
11917         (rs6000_xcoff_declare_function_name): Emit different
11918         .function pseudo-op when DWARF2_DEBUG. Don't call
11919         xcoffout_declare_function for DWARF2_DEBUG.
11920         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
11921         Redefine.
11922         * config/rs6000/aix71.h: New.
11923         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
11924         locations support.
11925         * configure: Regenerate.
11926         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
11927         DWARF support.
11928
11929 2015-09-26  Jeff Law  <law@redhat.com>
11930
11931         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
11932         behaviour.
11933         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
11934         behaviour.
11935
11936         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
11937         behaviour
11938
11939         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
11940         undefined behaviour.
11941
11942         * config/cris/cris.md (asrandb): Fix left shift undefined
11943         behaviour.
11944         (asrandw): Likewise.
11945
11946 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
11947
11948         PR target/61578
11949         * lra-constarints.c (match_reload): Check presence of the input pseudo
11950         in the output operand.
11951
11952 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11953
11954         * doc/invoke.texi (-fsanitize): Minor wording tweak.
11955
11956 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11957
11958         * doc/invoke.texi (-fsanitize): Update URLs.
11959
11960 2015-09-25  Teresa Johnson  <tejohnson@google.com>
11961
11962         * opts.c (finish_options): Unset -freorder-blocks-and-partition
11963         if not using profile.
11964
11965 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11966
11967         PR pretty-print/67567
11968         * pretty-print.c (pp_string): Add gcc_checking_assert.
11969         * pretty-print.h (output_buffer_append_r): Likewise.
11970
11971 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
11972
11973         PR target/67675
11974         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
11975         addr2 individually.  Don't emit logical or insn if one is known to
11976         be aligned approriately.
11977         (sh_expand_cmpnstr): Likewise.
11978
11979 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
11980
11981         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
11982         __builtin_aarch64_fp[sc]r arguments into a register.
11983
11984 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
11985
11986         * config.gcc (x86_archs): Replace lakemount with lakemont.
11987         (with_cpu): Likewise.
11988         (with_arch): Likewise.
11989         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
11990         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
11991         __tune_lakemount__ with __tune_lakemont__.
11992         * config/i386/i386.c (lakemount_cost): Renamed to ...
11993         (lakemont_cost): This.
11994         (m_LAKEMOUNT): Renamed to ...
11995         (m_LAKEMONT): This.
11996         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
11997         (processor_target_table): Replace "lakemount" with "lakemont".
11998         (processor_alias_table): Likewise.
11999         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
12000         PROCESSOR_LAKEMONT.
12001         (ix86_adjust_cost): Likewise.
12002         (ia32_multipass_dfa_lookahead): Likewise.
12003         * config/i386/i386.h (processor_type): Likewise.
12004         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
12005         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
12006         Lakemount with Lakemont.
12007
12008 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
12009
12010         * config.gcc (x86_archs): Replace iamcu with lakemount.
12011         (with_cpu): Likewise.
12012         (with_arch): Likewise.
12013         * doc/invoke.texi: Likewise.
12014         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12015         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
12016         __tune_iamcu__ with __tune_lakemount__.
12017         * config/i386/i386.c (iamcu_cost): Renamed to ...
12018         (lakemount_cost): This.
12019         (m_IAMCU): Renamed to ...
12020         (m_LAKEMOUNT): This.
12021         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
12022         (processor_target_table): Replace "iamcu" with "lakemount".
12023         (processor_alias_table): Likewise.
12024         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
12025         PROCESSOR_LAKEMOUNT.
12026         (ix86_adjust_cost): Likewise.
12027         (ia32_multipass_dfa_lookahead): Likewise.
12028         * config/i386/i386.h (processor_type): Likewise.
12029         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
12030
12031 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
12032
12033         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
12034         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
12035         Declare.
12036         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
12037         (pa_expand_compare_and_swap_loop): New.
12038         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
12039         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
12040         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
12041         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
12042         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
12043         Revise.
12044
12045 2015-09-24  Michael Collison  <michael.collison@linaro.org>
12046
12047         PR other/57195
12048         * read-md.c (read_name): Allow mode iterators inside angle
12049         brackets in rtl expressions.
12050
12051 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
12052
12053         PR target/61578
12054         * ira-color.c (update_allocno_cost): Add parameter.
12055         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
12056         parameter.
12057
12058 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12059
12060         PR driver/67640
12061         * opts-common.c (prune_options): Discard all -fdiagnostics-color
12062         but the last one, which is moved to the front to be processed
12063         first.
12064         * opts.c (enable_warning_as_error): Reject options that do not
12065         control warnings.
12066
12067 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12068
12069         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
12070
12071 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12072
12073         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
12074         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
12075         (aarch64_cannot_force_const_mem): Likewise.
12076         (aarch64_classify_address): Likewise.
12077         (aarch64_classify_symbolic_expression): Likewise.
12078         (aarch64_print_operand): Likewise.
12079         (aarch64_classify_symbol): Likewise.
12080         (aarch64_mov_operand_p): Likewise.
12081         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
12082         (aarch64_mov_operand): Likewise.
12083
12084 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
12085
12086         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
12087         for info->spe_gp_size.
12088
12089 2015-09-24  Richard Biener  <rguenther@suse.de>
12090
12091         PR lto/67699
12092         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
12093         abstract origins.
12094
12095 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
12096
12097         * tree-object-size.c (plus_stmt_object_size)
12098         (cond_expr_object_size): Change the formal parameters from gimple
12099         to gimple *.
12100         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
12101         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
12102         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
12103
12104 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12105
12106         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
12107         Check for ld -type pie on Solaris 11.x and 12.
12108         * configure: Regenerate.
12109         * config.in: Regenerate.
12110
12111         * gcc.c (LD_PIE_SPEC): Allow redefinition.
12112
12113         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
12114         (STARTFILE_SPEC): Use it.
12115         (ENDFILE_CRTEND_SPEC): Define.
12116         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
12117         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
12118         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
12119         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
12120         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
12121         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
12122         (ENDFILE_ARCH_SPEC): Define.
12123         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
12124
12125 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12126
12127         * configure.ac (gcc_cv_solaris_crts): New test.
12128         * configure. Regenerate.
12129         * config.in: Regenerate.
12130         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
12131         HAVE_SOLARIS_CRTS variant.
12132
12133 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12134
12135         * tree-inline.h (count_insns_seq): Delete prototype.
12136         (estimate_num_insns_seq): Define prototype.
12137         * tree-inline.c (count_insns_seq): Delete.
12138         (estimate_num_insns_seq): Remove static qualifier.
12139         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
12140         with estimate_num_insns_seq.
12141
12142 2015-09-24  Richard Biener  <rguenther@suse.de>
12143
12144         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
12145         members.
12146         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
12147         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
12148         offset.
12149         (ao_ref_init_from_vn_reference): Record clique and base in the
12150         built base.
12151         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
12152
12153 2015-09-24  Richard Biener  <rguenther@suse.de>
12154
12155         PR tree-optimization/48885
12156         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
12157         as not including any restrict tags from other pointers.
12158
12159 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12160
12161         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
12162         character when appending to offload_targets.
12163
12164         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
12165         offload targets by commas, not colons.
12166         * config.in: Regenerate.
12167         * configure: Likewise.
12168         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
12169         instead of setting up the default offload targets here...
12170         (process_command): ..., do it here.
12171         libgomp/
12172         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
12173         targets are separated by commas.
12174         * config.h.in: Regenerate.
12175
12176 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12177             Nathan Sidwell  <nathan@codesourcery.com>
12178
12179         * omp-low.h (omp_reduction_init_op): Declare.
12180         * omp-low.c (omp_reduction_init_op): New, broken out of ...
12181         (omp_reduction_init): ... here.  Call it.
12182         * tree-parloops.c (initialize_reductions): Use
12183         omp_reduction_init_op.
12184
12185 2015-09-23   Richard Biener  <rguenther@suse.de>
12186
12187         PR middle-end/67662
12188         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
12189         undefined overflow unless they will cancel out.
12190
12191 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12192
12193         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
12194         insn emit.
12195
12196 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12197
12198         PR c/49655
12199         * opts.h (write_langs): Declare.
12200         * opts-global.c (write_langs): Make it extern.
12201
12202 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
12203
12204         PR target/67391
12205         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
12206         overlapping regs when matching the pattern.
12207
12208 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
12209
12210         * config/aarch64/aarch64-simd.md
12211         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
12212         (aarch64_float_truncate_hi_v4sf_le): New.
12213         (aarch64_float_truncate_hi_v4sf_be): Likewise.
12214
12215 2015-09-23  Richard Biener  <rguenther@suse.de>
12216
12217         * tree-ssa-structalias.c (intra_create_variable_infos): Build
12218         representatives for all restrict qualified pointer destinations.
12219
12220 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12221
12222         * config/i386/i386.md (define_code_attr mshift): New.
12223         (define_mode_iterator SWI1248_AVX512BW): Rename ...
12224         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
12225         only.
12226         (define_insn "*k<logic><mode>"): Use new iterator name.
12227         (define_insn "*<mshift><mode>3"): New.
12228
12229 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
12230
12231         PR middle-end/67649
12232         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
12233         mark the block as accessible.
12234
12235 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
12236
12237         * function.c (thread_prologue_and_epilogue_insns): Delete
12238         orig_entry_edge argument to try_shrink_wrapping.
12239         * shrink-wrap.c (can_get_prologue): New function.
12240         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
12241         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
12242         can_get_prologue where needed.  Remove code that finds a single
12243         edge for the prologue.  Remove code that tests if any reg clobbered
12244         by the prologue is live on the prologue edge.  Remove code that finds
12245         the new prologue edge after duplicating blocks.  Make a new prologue
12246         block and edge.
12247         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
12248
12249 2015-09-22  Jeff Law  <law@redhat.com>
12250
12251         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
12252         behavior.
12253
12254 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
12255
12256         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
12257         -Wtemplates, -Wnamespaces): Document.
12258
12259 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12260
12261         PR tree-optimization/67671
12262         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
12263         pointer references as restrict.
12264
12265 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12266
12267         * config/nios2/nios2.c (nios2_legitimize_address): When handling
12268         'reg + reloc' cases, allow first operand to be non-REG, and use
12269         force_reg() to enforce address pattern.
12270
12271 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
12272
12273         PR target/67480
12274         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
12275         (define_mode_iterator VI12_AVX_AVX512F): New.
12276         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
12277         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
12278         (define_insn "*<code><mode>3"): ... Into new pattern using
12279         VI12_AVX_AVX512F iterators without masking.
12280
12281 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12282
12283         * config.gcc: Support "skylake-avx512".
12284         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12285         PROCESSOR_SKYLAKE_AVX512.
12286         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
12287         (processor_target_table): Add "skylake-avx512".
12288         (PTA_SKYLAKE_AVX512): Define.
12289         (ix86_option_override_internal): Add "skylake_avx512".
12290         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
12291         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
12292         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
12293         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
12294         * doc/invoke.texi (skylake-avx512): New.
12295
12296 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12297
12298         * config/i386/i386.md (define_insn "kunpckhi"): Fix
12299         operand in pattern.
12300         (define_insn "kunpcksi"): Ditto.
12301         (define_insn "kunpckdi"): Ditto.
12302
12303 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12304
12305         * config/i386/i386.md (define_split not/xor SWI1248x): Use
12306         iterator instead of fixed modes.
12307
12308 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12309
12310         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12311         Adjust declaration.
12312         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
12313         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
12314         out_result.  Update to support update-fetch operations.
12315         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
12316         Adjust for change to aarch64_gen_atomic_ldop.
12317         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
12318         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
12319         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
12320         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
12321         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
12322
12323 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12324
12325         * config/aarch64/aarch64-protos.h
12326         (aarch64_atomic_ldop_supported_p): Declare.
12327         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
12328         (enum aarch64_atomic_load_op_code): New.
12329         (aarch64_emit_atomic_load_op): New.
12330         (aarch64_gen_atomic_ldop): Update to support load-operate
12331         patterns.
12332         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
12333         to an expander.
12334         (aarch64_atomic_<atomic_optab><mode>): New.
12335         (aarch64_atomic_<atomic_optab><mode>_lse): New.
12336         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
12337         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
12338         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
12339
12340 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12341
12342         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
12343         (UNSPECV_ATOMIC_LDOP_OR): New.
12344         (UNSPECV_ATOMIC_LDOP_BIC): New.
12345         (UNSPECV_ATOMIC_LDOP_XOR): New.
12346         (UNSPECV_ATOMIC_LDOP_PLUS): New.
12347         (ATOMIC_LDOP): New.
12348         (atomic_ldop): New.
12349         (aarch64_atomic_load<atomic_ldop><mode>): New.
12350
12351 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12352
12353         * config/aarch64/aarch64.md
12354         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
12355         pattern.
12356
12357 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12358
12359         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12360         Declare.
12361         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
12362         (aarch64_gen_atomic_ldop): New.
12363         (aarch64_split_atomic_op): Fix whitespace and add a comment.
12364         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
12365         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
12366         (atomic_exchange<mode>): Replace with an expander.
12367         (aarch64_atomic_exchange<mode>): New.
12368         (aarch64_atomic_exchange<mode>_lse): New.
12369         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
12370         (aarch64_atomic_swp<mode>): New.
12371
12372 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12373
12374         * tree-inline.c (expand_call_inline): Use inform for extra note.
12375         Do not give a note with UNKNOWN_LOCATION.
12376         Replace input_location with gimple_location (stmt).
12377         Use true/false instead of TRUE/FALSE.
12378
12379 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12380
12381         PR tree-optimization/67666
12382         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
12383         with single field non-conservative.
12384
12385 2015-09-21  David S. Miller  <davem@davemloft.net>
12386
12387         PR/67622
12388         Revert:
12389         2015-09-11  David S. Miller  <davem@davemloft.net>
12390
12391         * config/sparc/constraints.md: Make "U" constraint a real register
12392         constraint.
12393         * config/sparc/sparc.c (TARGET_LRA_P): Define.
12394         (D_MODES, DF_MODES): Add missing cast.
12395         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
12396         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
12397         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
12398         cost to 8.
12399         * config/sparc/sparc.h (PROMOTE_MODE): Define.
12400         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
12401         provide these insn when flag_pic.
12402
12403         2015-09-17  David S. Miller  <davem@davemloft.net>
12404
12405         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
12406         Declare.
12407         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
12408         function.
12409         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12410         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12411         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12412         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12413         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12414         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12415         provide when flag_pic.
12416
12417 2015-09-21  Jeff Law  <law@redhat.com>
12418
12419         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
12420         behavior.
12421
12422 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12423
12424         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
12425
12426 2015-09-21  Richard Biener  <rguenther@suse.de>
12427
12428         * passes.c (rest_of_decl_compilation): Do not call
12429         dwarf2out_early_global_decl for aliases.
12430
12431 2015-09-21  Richard Biener  <rguenther@suse.de>
12432
12433         PR debug/67664
12434         * dwarf2out.c (add_location_or_const_value_attribute): Remove
12435         attribute parameter.  Early exit if either DW_AT_const_value
12436         or DW_AT_location are present already.
12437         (gen_variable_die): Adjust caller.
12438         (dwarf2out_late_global_decl): Likewise.
12439
12440 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12441
12442         PR target/67657
12443         * config/sh/sh.c (sh_remove_overlapping_post_inc,
12444         sh_peephole_emit_move_insn): Add new functions.
12445         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
12446         sh_peephole_emit_move_insn): Declere them.
12447         * config/sh/sh.md: Use them in various peephole2 patterns.
12448
12449 2015-09-21  Richard Biener  <rguenther@suse.de>
12450
12451         PR middle-end/67651
12452         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
12453         address with -fno-delete-null-pointer-checks.
12454
12455 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
12456
12457         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
12458         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
12459         (reduc_uplus_v16qi): Remove.
12460
12461         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
12462         (reduc_<VEC_reduc_name>_v2df): Remove.
12463         (reduc_<VEC_reduc_name>_v4sf): Remove.
12464         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
12465
12466         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
12467         gen_ function by removing * prefix.
12468         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
12469
12470 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12471
12472         PR middle-end/60832
12473         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12474         Print i_bound without converting it to a tree.
12475
12476 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
12477
12478         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
12479         operands[4] operands[5] swap with std::swap, removed tmp variable.
12480         (arm_evpc_neon_vzip): Replaced in0/in1 and
12481         out0/out1 swaps with std::swap, removed x variable.
12482         (arm_evpc_neon_vtrn): Replaced in0/int1 and
12483         out0/out1 swaos with std::swap, removed x variable.
12484         (arm_expand_vec_perm_const_1): Replaced
12485         d->op0/d->op1 swap with std::swap, removed x variable.
12486         (arm_evpc_neon_vuzp): Replaced in0/in1 and
12487         out0/out1 swaps with std::swap, removed x variable.
12488
12489 2015-09-21  Jonathan Yong  <10walls@gmail.com>
12490
12491         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
12492         sysroot/usr/lib/32api for additional win32 libraries,
12493         fixes failing Cygwin bootstrapping.
12494
12495 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12496
12497         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
12498
12499 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12500
12501         PR target/67126
12502         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
12503         (*mov_t_msb_neg): Rewrite negc pattern.
12504
12505 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12506
12507         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
12508         immediate generation code.
12509
12510 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12511
12512         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
12513         redundant immediate generation code.
12514
12515 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12516
12517         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
12518         (AARCH64_NUM_BITMASKS): Remove.
12519         (aarch64_bitmasks_cmp): Remove.
12520         (aarch64_build_bitmask_table): Remove.
12521
12522 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12523
12524         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
12525         slow immediate matching loops with a faster algorithm.
12526
12527 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12528
12529         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
12530         faster algorithm.
12531
12532 2015-09-20  Jeff Law  <law@redhat.com>
12533
12534         PR tree-optimization/47679
12535         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
12536         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
12537         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
12538         (thread_through_normal_block): Use record_temporary_equivalences.
12539
12540 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
12541
12542         * coretypes.h (gimple): Change typedef to be a forward declaration.
12543         * gimple.h (gimple_statement_base): rename to gimple.
12544         * (all functions and types using gimple): Adjust.
12545         * *.[ch]: Likewise.
12546
12547 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
12548             David Edelsohn  <dje.gcc@gmail.com>
12549
12550         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
12551         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12552         (EH_FRAME_THROUGH_COLLECT2): Define.
12553         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12554         (ASM_OUTPUT_DWARF_PCREL): Define.
12555         (ASM_OUTPUT_DWARF_DATAREL): Define.
12556
12557 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
12558
12559         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
12560         of TARGET_ELF32.
12561
12562 2015-09-18  Jeff Law  <law@redhat.com>
12563
12564         PR tree-optimization/47679
12565         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
12566         it here ...
12567         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
12568         object.  Update constructor.
12569         (pass_dominator::execute):  Corresponding chagnes to declaration
12570         and initialization of avail_exprs_stack.  Update constructor call
12571         for dom_opt_dom_walker object.
12572         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
12573         it down to children as needed.
12574         (record_equivalences_from_incoming_edge): Likewise.
12575         (eliminate_redundant_computations): Likewise.
12576         (record_equivalences_from_stmt): Likewise.
12577         (simplify_stmt_for_jump_threading): Likewise.
12578         (record_temporary_equivalences): Likewise.
12579         (optimize_stmt): Likewise.
12580         (dom_opt_dom_walker::thread_across_edge): Update access to
12581         avail_exprs_stack object and pass it to children as needed.
12582         (dom_opt_dom_walker::before_dom_children): Similarly.
12583         (dom_opt_dom_walker::after_dom_children): Similarly.
12584         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
12585         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
12586         Add avail_expr_stack argument.  Pass it to children as needed.
12587         (dummy_simplify): Likewise.
12588         (simplify_control_stmt_condition): Likewise.
12589         (thread_around_empty_blocks): Likewise.
12590         (thread_through_normal_block): Likewise.
12591         (thread_across_edge): Likewise.
12592         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12593         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
12594
12595         PR tree-optimization/47679
12596         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
12597         it here ...
12598         (dom_opt_dom_walker): New private member holding the const_and_copies
12599         object.  Update constructor.
12600         (pass_dominator::execute): Corresponding changes to declaration
12601         and initialization of const_and_copies.  Update constructor call
12602         for the dom_opt_dom_walker object.
12603         (record_temporary_equivalences): Accept const_and_copies argument
12604         pass it down to children as needed.
12605         (record_equality): Likewise.
12606         (record_equivalences_from_incoming_edge): Likewise.
12607         (cprop_into_successor_phis, optimize_stmt): Likewise.
12608         (eliminate_redundant_computations): Likewise.
12609         (dom_opt_dom_walker::thread_across_edge): Update access to
12610         const_and_copies object and pass it to children as needed.
12611         (dom_opt_dom_walker::before_dom_children): Similarly.
12612         (dom_opt_dom_walker::after_dom_children): Similarly.
12613
12614         PR tree-optimization/47679
12615         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
12616         it into the avail_exprs_stack class.
12617         (pass_dominator::execute): Corresponding changes to declaration
12618         and initialization of avail_exprs.  Pass avail_exprs to
12619         dump_dominator_optimization_stats.
12620         (record_cond): Extract avail_exprs from avail_exprs_stack.
12621         (lookup_avail_expr): Similarly.
12622         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
12623         position in file.
12624         (dump_dominator_optimization_stats): Make static and prototype.
12625         Add argument for the hash table to dump.
12626         (debug_dominator_optimization_stats): Remove.
12627         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
12628         prototype.
12629         (debug_dominator_optimization_stats): Similarly.
12630         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
12631         "void" in prototype for pop_to_marker method.  Add accessor method
12632         for the underlying avail_exprs table.
12633
12634         * tree-ssa-threadedge.c: Remove trailing whitespace.
12635
12636 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
12637
12638         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
12639         unsigned.
12640         (pa_ldil_cint_p): Likewise.
12641         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
12642         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
12643         Update callers.
12644         * config/pa/pa.md: Likewise.
12645
12646 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
12647
12648         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
12649         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
12650         (diagnostic_show_locus): Likewise.
12651         (diagnostic_print_caret_line): Likewise.
12652         * diagnostic-show-locus.c: New file.
12653
12654 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
12655
12656         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
12657         "back" parameter. Declare label in #if block.
12658
12659 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
12660
12661         PR middle-end/67619
12662         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
12663         the address to a register.
12664
12665 2015-09-18  Jeff Law  <law@redhat.com>
12666
12667         PR tree-optimization/47679
12668         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
12669         * tree-ssa-dom.c: Remove unnecessary header includes.
12670         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
12671         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
12672         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
12673         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
12674         (pass_phi_only_cprop::execute): Likewise.
12675         (make_pass_phi_only_cprop): Likewise.
12676         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
12677         uses of file scoped statics by passing the required objects
12678         as parameters wherever needed.
12679
12680 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
12681             David Edelsohn  <dje.gcc@gmail.com>
12682
12683         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
12684         EH_FRAME_THROUGH_COLLECT2.
12685         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
12686         DW_EH_PE_datarel.
12687         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
12688         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
12689         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
12690         * except.c (switch_to_exception_section): Use a read-only section
12691         even if EH_FRAME_SECTION_NAME is undefined.
12692         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
12693         * collect2.c (write_c_file_stat): Provide dbase on AIX.
12694         (scan_prog_file): Don't export __dso_handle nor
12695         __gcc_unwind_dbase.
12696         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12697         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12698         (ASM_OUTPUT_DWARF_PCREL): Define.
12699         (ASM_OUTPUT_DWARF_DATAREL): Define.
12700         (EH_FRAME_THROUGH_COLLECT2): Define.
12701         (EH_FRAME_IN_DATA_SECTION): Delete.
12702         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
12703         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
12704         Declare.
12705         (rs6000_asm_output_dwarf_datarel): Declare.
12706         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
12707         (rs6000_aix_asm_output_dwarf_datarel): New.
12708         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
12709         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
12710         (EH_FRAME_THROUGH_COLLECT2): Define.
12711         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
12712         (EH_FRAME_THROUGH_COLLECT2): Define.
12713         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12714         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
12715         (EH_FRAME_THROUGH_COLLECT2): New.
12716         (ASM_OUTPUT_DWARF_DATAREL): New.
12717         * doc/tm.texi: Regenerate.
12718
12719 2015-09-18  Richard Biener  <rguenther@suse.de>
12720
12721         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
12722         we're in early phase.
12723         (schedule_generic_params_dies_gen): Likewise.
12724         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
12725         work as possible, retaining unhandled cases.
12726         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
12727         clear out generic_type_instances at the end.
12728         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
12729         (dwarf2out_early_finish): ... here.  Do most of
12730         gen_remaining_tmpl_value_param_die_attribute here.
12731
12732 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
12733
12734         PR tree-optimization/67283
12735         * tree-sra.c (type_consists_of_records_p): Rename to...
12736         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
12737         (completely_scalarize_record): Rename to...
12738         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
12739         (scalarize_elem): New.
12740         (analyze_all_variable_accesses): Follow renamings.
12741
12742 2015-09-18  Richard Biener  <rguenther@suse.de>
12743
12744         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
12745         in early-dwarf.
12746
12747 2015-09-18  Richard Biener  <rguenther@suse.de>
12748
12749         PR tree-optimization/66142
12750         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
12751         treat MEM[&x] and x the same.
12752         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
12753         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
12754         when we simplified sth.
12755         (vn_reference_maybe_forwprop_address): Likewise.
12756         (valueize_refs_1): When we simplified through
12757         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
12758         set valueized_anything to true.
12759         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
12760         one ref kills the other instead of just a offset-based test.
12761         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
12762         for the operand_equal_p test to compare bases and also compare
12763         sizes.
12764
12765 2015-09-17  Christian Bruel  <christian.bruel@st.com>
12766
12767         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
12768
12769 2015-09-17  Richard Henderson  <rth@redhat.com>
12770
12771         PR libstdc++/65913
12772         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
12773         pointers that encode the alignment of the object.
12774
12775 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12776
12777         PR rtl-optimization/66790
12778         * df-problems.c (LIVE): Amend documentation.
12779
12780 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
12781
12782         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
12783         and optabs-tree.o.
12784         (GTFILES): Replace optabs.c with optabs-libfunc.c.
12785         * genopinit.c (main): Add an include guard to insn-opinit.h.
12786         Protect the rtx_code parts with NUM_RTX_CODE.
12787         * optabs.h: Split parts out to...
12788         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
12789         * optabs.c: Split parts out to...
12790         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
12791         * cilk-common.c: Include optabs-query.h rather than optabs.h.
12792         * fold-const.c: Likewise.
12793         * target-globals.c: Likewise.
12794         * tree-if-conv.c: Likewise.
12795         * tree-ssa-forwprop.c: Likewise.
12796         * tree-ssa-loop-prefetch.c: Likewise.
12797         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
12798         Remove unncessary include files.
12799         * tree-ssa-phiopt.c: Likewise.
12800         * tree-ssa-reassoc.c: Likewise.
12801         * tree-switch-conversion.c: Likewise.
12802         * tree-vect-data-refs.c: Likewise.
12803         * tree-vect-generic.c: Likewise.
12804         * tree-vect-loop.c: Likewise.
12805         * tree-vect-patterns.c: Likewise.
12806         * tree-vect-slp.c: Likewise.
12807         * tree-vect-stmts.c: Likewise.
12808         * tree-vrp.c: Likewise.
12809         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
12810         rather than optabs.h.
12811         * expr.c: Include optabs-tree.h.
12812         * function.c: Likewise.
12813
12814 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12815
12816         PR middle-end/65958
12817         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
12818         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
12819         * config/arm/arm.c: Include common/common-target.h.
12820         (use_return_insn): Return 0 if the static chain register was saved
12821         above a non-APCS frame.
12822         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
12823         (struct scratch_reg): New.
12824         (get_scratch_register_on_entry): New function.
12825         (release_scratch_register_on_entry): Likewise.
12826         (arm_emit_probe_stack_range): Likewise.
12827         (output_probe_stack_range): Likewise.
12828         (arm_expand_prologue): Factor out code dealing with the IP register
12829         for nested function and adjust it for stack checking.
12830         Invoke arm_emit_probe_stack_range if static builtin stack checking
12831         is enabled.
12832         (thumb1_expand_prologue): Sorry out if static builtin stack checking
12833         is enabled.
12834         (arm_expand_epilogue): Add the saved static chain register, if any, to
12835         the amount of pre-pushed registers to pop.
12836         (arm_frame_pointer_required): Return true if static stack checking is
12837         enabled and we want to catch the exception with the EABI unwinder.
12838         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
12839         (UNSPEC_PROBE_STACK_RANGE): Likewise.
12840         * config/arm/arm.md (probe_stack): New insn.
12841         (probe_stack_range): Likewise.
12842
12843 2015-09-17  Richard Biener  <rguenther@suse.de>
12844
12845         * genmatch.c (parser::parse_expr): Improve error message
12846         for mis-placed flags.
12847
12848 2015-09-17  Richard Biener  <rguenther@suse.de>
12849
12850         * passes.c (rest_of_decl_compilation): Always call early_global_decl
12851         debug hook when we created a varpool node.
12852         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
12853         dwarf2out_early_global_decl, when not just add location or
12854         value attributes to existing DIEs.
12855
12856 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
12857
12858         * config/aarch64/aarch64.md (copysigndf3): New.
12859         (copysignsf3): Likewise.
12860
12861 2015-09-17  David S. Miller  <davem@davemloft.net>
12862
12863         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
12864         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
12865         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12866         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12867         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12868         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12869         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12870         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12871         provide when flag_pic.
12872
12873 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12874
12875         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
12876         object_allocator change.
12877
12878 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12879
12880         PR tree-optimization/66388
12881         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
12882         (dump_iv): Dump no_overflow information.
12883         (alloc_iv): Initialize new field for struct iv.
12884         (mark_bivs): Count number of no_overflow bivs.
12885         (find_deriving_biv_for_expr, record_biv_for_address_use): New
12886         functions.
12887         (idx_find_step): Call new functions above.
12888         (add_candidate_1, add_candidate): New paramter.
12889         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
12890         (get_computation_aff): Simplify convertion of cand for BIV.
12891         (get_computation_cost_at): Step cand's base if necessary.
12892
12893 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12894
12895         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
12896         parameter.
12897         (tree_simplify_using_condition): Ditto.
12898         (simplify_using_initial_conditions): Ditto.
12899         (loop_exits_before_overflow): Pass new argument to function
12900         simplify_using_initial_conditions.  Remove case for type conversions
12901         simplification.
12902         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
12903         parameter.
12904         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
12905         in iv base using loop initial conditions.
12906
12907 2015-09-16  Jeff Law  <law@redhat.com>
12908
12909         PR tree-optimization/47679
12910         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
12911         (free_all_edge_infos): Use it.
12912         (allocate_edge_info): Free preexisting edge info data.
12913         (pass_dominator::execute): Set up initial edge info structures.
12914         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
12915         thread_across_edge.
12916         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
12917         If non-null, then push/pop markers appropriately.
12918         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12919         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
12920         thread-across_edge.
12921
12922 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
12923
12924         * config/ft32/ft32.c: Fix the memory address space predicate.
12925
12926 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12927
12928         PR target/67573
12929         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
12930         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
12931
12932 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12933
12934         * toplev.h (check_global_declaration): Remove declaration.
12935         * toplev.c (check_global_declaration): Move to ...
12936         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
12937         (analyze_functions): Update call.
12938
12939 2015-09-16  David S. Miller  <davem@davemloft.net>
12940
12941         * lra-constraints.c (simplify_operand_subreg): Do not assume that
12942         lowpart of a SUBREG has offset zero.
12943
12944 2015-09-16  Jeff Law  <law@redhat.com>
12945
12946         PR tree-optimization/47679
12947         * tree-ssa-dom.c (enum expr_kind): Moved from here to
12948         tree-ssa-scopedtables.h.
12949         (struct hashable_expr, class expr_hash_elt): Likewise.
12950         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
12951         Move associated methods into tree-ssa-scopedtables.c.
12952         (avail_expr_hash, initialize_expr_from_cond): Similarly.
12953         (hashable_expr_equal_p, add_expr_commutative): Likewise.
12954         (add_hashable_expr): Likewise.
12955         (record_cond): Delete element directly.
12956         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
12957         private copy ctor and assignment operator methods.
12958         (expr_elt_hasher): Inline trivial methods.
12959         (initialize_expr_from_cond): Prototype.
12960         * tree-ssa-scopedtables.c: Add necessary includes, functions and
12961         methods that were previously in tree-ssa-dom.c.  Improve various
12962         comments.
12963
12964 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
12965
12966         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
12967
12968 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
12969
12970         PR bootstrap/67587
12971         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12972         fixup_partitions.
12973
12974 2015-09-16  Richard Biener  <rguenther@suse.de>
12975
12976         PR middle-end/67253
12977         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
12978         location of possibly shared trees.
12979
12980 2015-09-16  Richard Biener  <rguenther@suse.de>
12981
12982         PR middle-end/67271
12983         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
12984
12985 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
12986
12987         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
12988         offset and size computations instead of HOST_WIDE_INT.
12989
12990 2015-09-16  Richard Biener  <rguenther@suse.de>
12991
12992         PR middle-end/67442
12993         * fold-const.c (extract_muldiv_1): Properly extend multiplication
12994         result before builting a tree via wide_int_to_tree.
12995
12996 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
12997
12998         * Makefile.in: Add memory-block.cc
12999         (pool_allocator::initialize): Use fixed block size.
13000         (pool_allocator::release): Use memory_block_pool.
13001         (pool_allocator::allocate): Likewise.
13002         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
13003         object pools.
13004         * cfg.c (initialize_original_copy_tables): Likewise.
13005         * cselib.c (elt_list_pool, elt_loc_list_pool,
13006         cselib_val_pool): Likewise.
13007         * df-problems.c (df_chain_alloc): Likewise.
13008         * df-scan.c (df_scan_alloc): Likewise.
13009         * dse.c (cse_store_info_pool, rtx_store_info_pool,
13010         read_info_type_pool, insn_info_type_pool, bb_info_pool,
13011         group_info_pool, deferred_change_pool): Likewise.
13012         * et-forest.c (et_nodes, et_occurrences): Likewise.
13013         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
13014         ipcp_agg_lattice_pool): Likewise.
13015         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
13016         * ipa-profile.c (histogram_pool): Likewise.
13017         * ipa-prop.c (ipa_refdesc_pool): Likewise.
13018         * ira-build.c (live_range_pool, allocno_pool, object_pool,
13019         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
13020         * ira-color.c (update_cost_record_pool): Likewise.
13021         * lra-lives.c (lra_live_range_pool): Likewise.
13022         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
13023         * memory-block.cc: New file.
13024         * memory-block.h: New file.
13025         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
13026         * sched-deps.c (sched_deps_init): Likewise.
13027         * sel-sched-ir.c (sched_lists_pool): Likewise.
13028         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
13029         * tree-sra.c (access_pool): Likewise.
13030         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13031         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
13032         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
13033         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
13034         * tree-ssa-strlen.c (strinfo_pool): Likewise.
13035         * tree-ssa-structalias.c (variable_info_pool): Likewise.
13036         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
13037         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
13038
13039 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13040
13041         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
13042         definition.
13043         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
13044         call0 ABI.
13045
13046 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13047
13048         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
13049         to pass TLS call argument, according to current ABI.
13050         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
13051         callx0 for TLS call, according to current ABI.
13052
13053 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13054
13055         * tree-eh.c (lower_try_finally_dup_block): Clear location information
13056         on stack restore statements.
13057         (decide_copy_try_finally): Do not consider a stack restore statement as
13058         coming from sources.
13059
13060 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
13061
13062         * config/alpha/alpha.c (alpha_expand_block_clear): Use
13063         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
13064
13065 2015-09-15  Jeff Law  <law@redhat.com>
13066
13067         PR tree-optimization/47679
13068         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
13069         methods and private members.
13070         (avail_exprs_stack): Similarly.  Change type of global
13071         from a pair of expr_hash_elt_t to the new class.
13072         (expr_elt_hasher::hash): Corresponding changes.
13073         (expr_elt_hasher::equal): Similarly.
13074         (avail_expr_hash): Similarly.
13075         (pass_dominator::execute): Similarly.
13076         (dom_opt_dom_walker::thread_across_edge): Similarly.
13077         (record_cond): Similarly.
13078         (dom_opt_dom_walker::before_dom_children): Similarly.
13079         (dom_opt_dom_walker::after_dom_children): Similarly.
13080         (lookup_avail_expr): Likewise.
13081         (initialize_hash_element): Now a expr_hash_elt constructor.
13082         (initialize_hash_element_from_expr): Similarly.
13083         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
13084         (free_expr_hash_elt): Call dtor for the element.
13085         (remove_local_expressions_from_table): Now the "pop_to_marker"
13086         method in the available_exprs_stack class.
13087         (avail_expr_stack::record_expr): Method factored out.
13088         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
13089         Fix formatting.
13090         (hashable_expr_equal_p): Fix formatting.
13091
13092 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
13093
13094         * input.h (location_get_source_line): Drop "expanded_location"
13095         param in favor of a file and line number.
13096         * input.c (location_get_source_line): Likewise.
13097         (dump_location_info): Update for change in signature of
13098         location_get_source_line.
13099         * diagnostic.c (diagnostic_print_caret_line): Likewise.
13100
13101 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13102
13103         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
13104         Bump to 4KB for SJLJ exceptions.
13105         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
13106         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
13107         * doc/tm.texi: Regenerate.
13108
13109 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13110
13111         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
13112         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
13113         Update prototype.
13114
13115 2015-09-15  Richard Biener  <rguenther@suse.de>
13116
13117         PR tree-optimization/67470
13118         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
13119         structure for PHI hoisting by inserting a forwarder block
13120         if appropriate.
13121
13122 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13123
13124         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
13125         (arm_option_print): New function.
13126
13127 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13128
13129         PR target/52144
13130         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
13131         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
13132         Remove flags parameter.
13133         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
13134         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
13135         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
13136         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
13137         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
13138         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
13139         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
13140         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
13141
13142 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13143
13144         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
13145
13146         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
13147         AARCH64_VALID_SIMD_DREG_MODE.
13148
13149 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13150
13151         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
13152         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
13153         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
13154         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
13155         aarch64_ld4_lane<mode>): Combine together, making...
13156         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13157         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13158         aarch64_st4_lane<mode>): Combine together, making...
13159         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13160         * config/aarch64/iterators.md (nregs): Add comment.
13161
13162 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13163
13164         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
13165         Change operand mode from <V_TWO_ELEM> to BLK.
13166         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
13167         (aarch64_vec_store_lanesoi_lane<mode): Likewise
13168         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13169         (aarch64_ld2_lane<mode>): Likewise.
13170         (aarch64_st2_lane<VQ:mode>): Likewise.
13171         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
13172
13173 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13174
13175         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
13176         Change operand mode from <V_FOUR_ELEM> to BLK.
13177         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13178         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
13179         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13180         (aarch64_ld4_lane<mode>): Likewise.
13181         (aarch64_st4_lane<mode>): Likewise.
13182         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
13183
13184 2015-09-15  Richard Biener  <rguenther@suse.de>
13185
13186         PR middle-end/67563
13187         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
13188         transfer EH info from old to new stmt.
13189         (replace_call_with_value): Likewise.
13190         (replace_call_with_call_and_fold): Likewise.
13191         (gimple_fold_builtin_memory_op): Likewise.
13192         (gimple_fold_builtin_memset): Likewise.
13193         (gimple_fold_builtin_stpcpy): Likewise.
13194         (gimple_fold_call): Likewise.
13195
13196 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13197
13198         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
13199         comment.
13200         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
13201         (aarch64_simd_intEI_type_node): Likewise.
13202         (aarch64_simd_builtin_std_type): Remove EImode case.
13203         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
13204         * config/aarch64/aarch64-modes.def: Remove EImode.
13205
13206 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13207
13208         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
13209         Change operand mode from <V_THREE_ELEM> to BLK.
13210         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13211         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
13212         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13213         (aarch64_ld3_lane<mode>): Likewise.
13214         (aarch64_st3_lane<mode>): Likewise.
13215         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
13216
13217 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13218
13219         * config/aarch64/aarch64-simd.md
13220         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
13221         Change all TImode operands to BLKmode.
13222         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
13223         Change all EImode operands to BLKmode.
13224         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
13225         Change all OImode operands to BLKmode.
13226
13227         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
13228         and call set_mem_size.
13229         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
13230
13231         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
13232
13233 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13234
13235         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
13236         to...
13237         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
13238
13239         (vec_store_lanesci_lane<mode>): Rename to...
13240         (aarch64_vec_store_lanesci_lane<mode>): ...this.
13241
13242         (vec_store_lanesxi_lane<mode>): Rename to...
13243         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
13244
13245         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13246         aarch64_st4_lane<mode>): Follow renaming.
13247
13248 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13249
13250         * config/s390/s390.c (s390_const_operand_ok): Add missing
13251         brackets.
13252
13253 2015-09-15  Richard Biener  <rguenther@suse.de>
13254
13255         PR lto/67568
13256         * lto-streamer.h (lto_location_cache::current_sysp): Properly
13257         initialize.
13258         * lto-streamer-out.c (clear_line_info): Likewise.
13259
13260 2015-09-15  Richard Biener  <rguenther@suse.de>
13261
13262         * doc/match-and-simplify.texi: Fix wording.
13263
13264 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
13265
13266         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
13267         unnecessary type conversion in op1.
13268
13269 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
13270
13271         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
13272         (dup_block_and_redirect): Delete function.
13273         (can_dup_for_shrink_wrapping): New function.
13274         (fix_fake_fallthrough_edge): New function.
13275         (try_shrink_wrapping): Rewrite function.
13276         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
13277
13278 2015-09-14  Rich Felker  <dalias@libc.org>
13279
13280         * configure.ac: Change target pattern for sh TLS support
13281         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
13282         * configure: Regenerate.
13283
13284 2015-09-14  Jeff Law  <law@redhat.com>
13285
13286         PR tree-optimization/47679
13287         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
13288         type rather than void *.
13289
13290 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13291
13292         PR fortran/67460
13293         * diagnostic.c (diagnostic_initialize): Do not set
13294         some_warnings_are_errors.
13295         (diagnostic_finish): Use DK_WERROR count instead.
13296         (diagnostic_report_diagnostic): Do not set
13297         some_warnings_are_errors.
13298         * diagnostic.h (struct diagnostic_context): Remove
13299         some_warnings_are_errors.
13300
13301 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
13302
13303         * config/sparc/predicates.md (const_all_ones_operand): Use
13304         CONSTM1_RTX to simplify definition.
13305
13306 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
13307
13308         PR target/67061
13309         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
13310         Handle call insns.
13311
13312 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
13313
13314         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
13315         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
13316         OPT_fshow_column to handled saved option cases.
13317         (append_compiler_options): Do not skip the above added options.
13318
13319 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13320
13321         PR target/63304
13322         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
13323         nopcrelative_literal_loads.
13324         (aarch64_classify_address): Likewise.
13325         (aarch64_constant_pool_reload_icode): Define.
13326         (aarch64_secondary_reload): Handle secondary reloads for
13327         literal pools.
13328         (aarch64_override_options): Handle nopcrelative_literal_loads.
13329         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
13330         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
13331         Define.
13332         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
13333         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
13334         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
13335         predicate.
13336         * doc/invoke.texi (mpc-relative-literal-loads): Document.
13337
13338 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
13339
13340         PR middle-end/67401
13341         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
13342         sync_compare_and_swap_optab libcall to target_oval.
13343
13344 2015-09-14  Marek Polacek  <polacek@redhat.com>
13345
13346         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
13347         value.
13348         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
13349
13350 2015-09-11  Mark Wielaard  <mjw@redhat.com>
13351
13352         PR c/28901
13353         * toplev.c (check_global_declaration): Check and use
13354         warn_unused_const_variable.
13355         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
13356         (-Wunused-variable): Remove non-constant. For C implies
13357         -Wunused-const-variable.
13358         (-Wunused-const-variable): New.
13359
13360 2015-09-14  Richard Biener  <rguenther@suse.de>
13361
13362         * doc/match-and-simplify.texi: Update for changed syntax
13363         of inner ifs and the new switch expression.
13364
13365 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
13366
13367         * config/i386/haswell.md: New file describing Haswell pipeline.
13368         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
13369         haswell-like processors.
13370         (ix86_reassociation_width): Increase reassociation width for 64-bit
13371         Haswell processor family.
13372         * config/i386/i386.md: Introduce haswell cpu and include new md file.
13373
13374 2015-09-14  Richard Biener  <rguenther@suse.de>
13375
13376         * doc/match-and-simplify.texi: Fixup some formatting issues
13377         and document the 's' flag.
13378
13379 2015-09-13  Olivier Hainque  <hainque@adacore.com>
13380             Eric Botcazou  <ebotcazou@adacore.com>
13381
13382         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
13383         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
13384         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
13385         (TARGET_CPU_gr5): Likewise.
13386         (TARGET_CPU_gr6): Likewise.
13387         (MULTILIB_DEFAULTS): Likewise.
13388         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
13389         for mcpu=gr5 and mcpu=gr6.
13390         (MULTILIB_DIRNAMES): Adjust accordingly.
13391
13392 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13393
13394         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
13395         (mem_ref_p): Likewise.
13396         (outermost_indep_loop): Adjust.
13397         (mem_ref_in_stmt): Likewise.
13398         (determine_max_movement): Likewise.
13399         (mem_ref_alloc): Likewise.
13400         (record_mem_ref_loc): Likewise.
13401         (set_ref_stored_in_loop): Likewise.
13402         (mark_ref_stored): Likewise.
13403         (gather_mem_refs_stmt): Likewise.
13404         (mem_refs_may_alias_p): Likewise.
13405         (for_all_locs_in_loop): Likewise.
13406         (struct rewrite_mem_ref_loc): Likewise.
13407         (rewrite_mem_refs): Likewise.
13408         (struct first_mem_ref_loc_1): Likewise.
13409         (first_mem_ref_loc): Likewise.
13410         (struct sm_set_flag_if_changed): Likewise.
13411         (execute_sm_if_changed_flag_set): Likewise.
13412         (execute_sm): Likewise.
13413         (hoist_memory_references):
13414         (struct ref_always_accessed): Likewise.
13415         (ref_always_accessed_p): Likewise.
13416         (refs_independent_p): Likewise.
13417         (record_dep_loop): Likewise.
13418         (ref_indep_loop_p_1): Likewise.
13419         (ref_indep_loop_p_2): Likewise.
13420         (ref_indep_loop_p): Likewise.
13421         (can_sm_ref_p): Likewise.
13422         (find_refs_for_sm): Likewise.
13423         (tree_ssa_lim_finalize): Likewise.
13424
13425 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13426
13427         * dwarf2out.c (dw_attr_ref): Remove typedef.
13428         (dw_line_info_ref): Likewise.
13429         (pubname_ref): Likewise.
13430         (dw_ranges_ref): Likewise.
13431         (dw_ranges_by_label_ref): Likewise.
13432         (comdat_type_node_ref): Likewise.
13433         (get_AT): Adjust.
13434         (get_AT_low_pc): Likewise.
13435         (get_AT_hi_pc): Likewise.
13436         (get_AT_string): Likewise.
13437         (get_AT_flag): Likewise.
13438         (get_AT_unsigned): Likewise.
13439         (get_AT_ref): Likewise.
13440         (get_AT_file): Likewise.
13441         (remove_AT): Likewise.
13442         (print_die): Likewise.
13443         (check_die): Likewise.
13444         (die_checksum): Likewise.
13445         (attr_checksum_ordered): Likewise.
13446         (struct checksum_attributes): Likewise.
13447         (collect_checksum_attributes): Likewise.
13448         (die_checksum_ordered): Likewise.
13449         (same_die_p): Likewise.
13450         (is_declaration_die): Likewise.
13451         (clone_die): Likewise.
13452         (clone_as_declaration): Likewise.
13453         (copy_declaration_context): Likewise.
13454         (break_out_comdat_types): Likewise.
13455         (copy_decls_walk): Likewise.
13456         (output_location_lists): Likewise.
13457         (external_ref_hasher::hash): Likewise.
13458         (optimize_external_refs_1): Likewise.
13459         (build_abbrev_table): Likewise.
13460         (size_of_die): Likewise.
13461         (unmark_all_dies): Likewise.
13462         (size_of_pubnames): Likewise.
13463         (output_die_abbrevs): Likewise.
13464         (output_die): Likewise.
13465         (output_pubnames): Likewise.
13466         (add_ranges_num): Likewise.
13467         (add_ranges_by_labels): Likewise.
13468         (add_high_low_attributes): Likewise.
13469         (gen_producer_string): Likewise.
13470         (dwarf2out_set_name): Likewise.
13471         (new_line_info_table): Likewise.
13472         (prune_unused_types_walk_attribs): Likewise.
13473         (prune_unused_types_update_strings): Likewise.
13474         (prune_unused_types): Likewise.
13475         (resolve_addr): Likewise.
13476         (optimize_location_lists_1): Likewise.
13477         (index_location_lists): Likewise.
13478         (dwarf2out_finish): Likewise.
13479
13480 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13481
13482         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
13483
13484 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13485
13486         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
13487         (dump_asserts_for): Adjust.
13488         (register_new_assert_for): Likewise.
13489         (process_assert_insertions): Likewise.
13490         (insert_range_assertions): Likewise.
13491
13492 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13493
13494         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
13495         and remove typedef.
13496         (new_temp_expr_table): Adjust.
13497         (free_temp_expr_table): Likewise.
13498         (version_to_be_replaced_p): Likewise.
13499         (make_dependent_on_partition): Likewise.
13500         (add_to_partition_kill_list): Likewise.
13501         (remove_from_partition_kill_list): Likewise.
13502         (add_dependence): Likewise.
13503         (finished_with_expr): Likewise.
13504         (process_replaceable): Likewise.
13505         (kill_expr): Likewise.
13506         (kill_virtual_exprs): Likewise.
13507         (mark_replaceable): Likewise.
13508         (find_replaceable_in_bb): Likewise.
13509         (find_replaceable_exprs): Likewise.
13510         (debug_ter): Likewise.
13511
13512 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13513
13514         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
13515         (struct btr_user): Rename from btr_user_s.
13516         (struct btr_def): Rename from btr_def_s.
13517         (find_btr_def_group): Adjust.
13518         (add_btr_def): Likewise.
13519         (new_btr_user): Likewise.
13520         (note_other_use_this_block): Likewise.
13521         (compute_defs_uses_and_gen): Likewise.
13522         (link_btr_uses): Likewise.
13523         (build_btr_def_use_webs): Likewise.
13524         (block_at_edge_of_live_range_p): Likewise.
13525         (btr_def_live_range): Likewise.
13526         (combine_btr_defs): Likewise.
13527         (move_btr_def): Likewise.
13528         (migrate_btr_def): Likewise.
13529         (migrate_btr_defs): Likewise.
13530
13531 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13532
13533         * var-tracking.c (shared_hash_def): Rename to shared_hash.
13534         (shared_hash): Remove typedef.
13535         (struct dataflow_set): Adjust.
13536         (shared_hash_unshare): Likewise.
13537         (dataflow_set_merge): Likewise.
13538         (vt_initialize): Likewise.
13539         (vt_finalize): Likewise.
13540
13541 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13542
13543         * var-tracking.c (struct location_chain): Rename from
13544         location_chain_def.
13545         (struct variable_part): Adjust.
13546         (variable_htab_free): Likewise.
13547         (unshare_variable): Likewise.
13548         (get_init_value): Likewise.
13549         (get_addr_from_local_cache): Likewise.
13550         (drop_overlapping_mem_locs): Likewise.
13551         (val_reset): Likewise.
13552         (struct variable_union_info): Likewise.
13553         (variable_union): Likewise.
13554         (find_loc_in_1pdv): Likewise.
13555         (insert_into_intersection): Likewise.
13556         (intersect_loc_chains): Likewise.
13557         (canonicalize_loc_order_check): Likewise.
13558         (canonicalize_values_mark): Likewise.
13559         (canonicalize_values_star): Likewise.
13560         (canonicalize_vars_star): Likewise.
13561         (variable_merge_over_cur): Likewise.
13562         (remove_duplicate_values): Likewise.
13563         (variable_post_merge_new_vals): Likewise.
13564         (variable_post_merge_perm_vals): Likewise.
13565         (find_mem_expr_in_1pdv): Likewise.
13566         (dataflow_set_preserve_mem_locs): Likewise.
13567         (dataflow_set_remove_mem_locs): Likewise.
13568         (variable_part_different_p): Likewise.
13569         (onepart_variable_different_p): Likewise.
13570         (find_src_set_src): Likewise.
13571         (dump_var): Likewise.
13572         (set_slot_part): Likewise.
13573         (clobber_slot_part): Likewise.
13574         (delete_slot_part): Likewise.
13575         (vt_expand_var_loc_chain): Likewise.
13576         (emit_note_insn_var_location): Likewise.
13577         (vt_finalize): Likewise.
13578
13579 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13580
13581         * dse.c (store_info_t): Remove typedef.
13582         (group_info_t): Likewise.
13583         (const_group_info_t): Likewise.
13584         (deferred_change_t): Likewise.
13585         (get_group_info): Adjust.
13586         (free_store_info): Likewise.
13587         (canon_address): Likewise.
13588         (clear_rhs_from_active_local_stores): Likewise.
13589         (record_store): Likewise.
13590         (replace_read): Likewise.
13591         (check_mem_read_rtx): Likewise.
13592         (scan_insn): Likewise.
13593         (remove_useless_values): Likewise.
13594         (dse_step1): Likewise.
13595         (dse_step2_init): Likewise.
13596         (dse_step2_nospill): Likewise.
13597         (scan_stores_nospill): Likewise.
13598         (scan_reads_nospill): Likewise.
13599         (dse_step3_exit_block_scan): Likewise.
13600         (dse_step3): Likewise.
13601         (dse_step5_nospill): Likewise.
13602         (dse_step6): Likewise.
13603
13604 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13605
13606         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
13607         (alias_set_entry): Remove typedef.
13608         (alias_set_subset_of): Adjust.
13609         (alias_sets_conflict_p): Likewise.
13610         (init_alias_set_entry): Likewise.
13611         (get_alias_set): Likewise.
13612         (new_alias_set): Likewise.
13613         (record_alias_subset): Likewise.
13614
13615 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
13616
13617         * doc/install.texi (Downloading the source): Mark up
13618         contrib/download_prerequisites properly and drop leading "./".
13619
13620 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13621
13622         * config/arc/arc.h: Remove define of STRUCT_VALUE.
13623         * config/lm32/lm32.h: Likewise.
13624         * config/mep/mep.h: Likewise.
13625         * config/visium/visium.h: Likewise.
13626         * system.h: Poison STRUCT_VALUE macro.
13627
13628 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
13629
13630         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
13631         CONSTANT_P operands.
13632
13633 2015-09-11  David S. Miller  <davem@davemloft.net>
13634
13635         * config/sparc/constraints.md: Make "U" constraint a real register
13636         constraint.
13637         * config/sparc/sparc.c (TARGET_LRA_P): Define.
13638         (D_MODES, DF_MODES): Add missing cast.
13639         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
13640         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
13641         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
13642         cost to 8.
13643         * config/sparc/sparc.h (PROMOTE_MODE): Define.
13644         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
13645         provide these insn when flag_pic.
13646
13647 2015-09-11  Jeff Law  <law@redhat.com>
13648
13649         PR tree-optimization/47679
13650         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
13651         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
13652         member with m_.  Update inline member functions as necessary.  Add
13653         toplevel comment.
13654         * tree-ssa-scopedtables.c: Update const_and_copies's member
13655         functions to use m_ prefix to access the stack.
13656
13657 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13658
13659         * graphite-optimize-isl.c (disable_tiling): Remove.
13660         (get_schedule_for_band): Do not use disable_tiling.
13661         (get_prevector_map): Delete function.
13662         (enable_polly_vector): Remove.
13663         (get_schedule_for_band_list): Remove dead code.
13664
13665 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13666
13667         * graphite-optimize-isl.c (get_tile_map): Refactor.
13668         (get_schedule_for_band): Same.
13669         (getScheduleForBand): Same.
13670         (get_prevector_map): Same.
13671         (get_schedule_for_band_list): Same.
13672         (get_schedule_map): Same.
13673         (get_single_map): Same.
13674         (apply_schedule_map_to_scop): Same.
13675         (optimize_isl): Same.
13676
13677 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13678
13679         PR target/63304
13680         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
13681         (movtf): Delete.
13682         * config/aarch64/iterators.md (GPF_TF_F16): New.
13683         (GPF_F16): Delete.
13684
13685 2015-09-10  Nathan Sidwell  <nathan@acm.org>
13686
13687         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
13688         (nvptx_reorg): Adjust comments.
13689
13690 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
13691
13692         PR bootstrap/67363
13693         * configure.ac: Check if setenv and unsetenv are declared.
13694         * configure: Rebuild.
13695         * config.in: Rebuild.
13696         * system.h: Declare setenv and unsetenv if not declared.
13697
13698 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13699
13700         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
13701         commentary to simplify permute mask adjustment equation.
13702         (special_handling_values): Add SH_VPERM.
13703         (const_load_sequence_p): New function.
13704         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
13705         the mask loaded from the constant pool.
13706         (adjust_vperm): New function.
13707         (handle_special_swappables): Call adjust_vperm.
13708         (dump_swap_insn_table): Handle SH_VPERM.
13709
13710 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13711
13712         * shrink-wrap.c (requires_stack_frame_p): Remove static.
13713         * shrink-wrap.h (requires_stack_frame_p): Put back.
13714
13715 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
13716
13717         * reload1.c (elimination_costs_in_insn): Locally turn
13718         -Wmaybe-uninitialized into a warning.
13719
13720 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
13721
13722         * shrink-wrap.c (requires_stack_frame_p): Make static.
13723         (prepare_shrink_wrap): Likewise.
13724         (dup_block_and_redirect): Likewise.
13725         * shrink-wrap.h: Remove declarations of those functions.
13726
13727 2015-09-10  Mark Wielaard  <mjw@redhat.com>
13728
13729         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
13730
13731 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
13732
13733         PR target/67506
13734         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
13735         missing simplify_gen_subreg.
13736
13737 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13738
13739         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
13740         the vector element is bigger than 64 bit.
13741
13742 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13743
13744         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
13745         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
13746
13747 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13748
13749         * config/s390/s390.c: Add V1TImode to constant pool modes.
13750
13751 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13752
13753         PR target/67439
13754         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
13755         predicate.  Set predicable_short_it attr to "no".
13756
13757 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
13758
13759         PR rtl-optimization/67421
13760         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
13761         left wide shift tranformation.
13762
13763 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
13764
13765         * common/config/arc/arc-common.c: Remove references to A5.
13766         * config/arc/arc-opts.h: Likewise.
13767         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
13768         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
13769         * config/arc/t-arc-newlib: Likewise.
13770
13771 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
13772
13773         * config/arc/arc.md (length): Fix attribute length for conditional
13774         executed instructions with long immediate.
13775
13776 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13777
13778         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
13779         type for second alternative.
13780
13781 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
13782
13783         * doc/invoke.texi (Downloading GCC): Mention
13784         contrib/download_prerequisites script.
13785
13786 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
13787
13788         PR c++/67523
13789         * gimplify.c (gimplify_omp_for): If inner stmt is not found
13790         for combined loop, assert seen_error () and return GS_ERROR.
13791
13792         PR middle-end/67521
13793         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
13794         if decl is already in outer->variables.
13795
13796         PR middle-end/67517
13797         * gimplify.c (gimplify_scan_omp_clauses): Instead of
13798         asserting that decl is not specified in octx->variables,
13799         break out of the loop if it is.
13800
13801         PR c++/67514
13802         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
13803         iterator is not explicitly determined, but is defined inside
13804         of the combined workshare region, handle it like if it has
13805         DECL_EXPR in OMP_FOR_PRE_BODY.
13806
13807 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13808
13809         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
13810         (*cmp<mode>): Add assembler spacing.
13811         (setcc_int<mode>, set_cc_float<mode>): Likewise.
13812         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
13813         level.
13814         (write_func_decl_from_insn): Refactor argument loops & comma emission.
13815         (nvptx_expand_call): Likewise.
13816         (nvptx_output_call_insn): Likewise.
13817         (nvptx_reorg_subreg): Add spacing.
13818
13819 2015-09-09  Marek Polacek  <polacek@redhat.com>
13820
13821         PR middle-end/67512
13822         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
13823         for comparisons.
13824
13825 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
13826
13827         PR c++/53184
13828         * doc/invoke.texi ([Wsubobject-linkage]): Document.
13829
13830 2015-09-09  Tom de Vries  <tom@codesourcery.com>
13831
13832         * params-list.h: Add missing copyright notice.
13833
13834 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13835
13836         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
13837         sel_truesi, not andsi.
13838
13839 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13840
13841         * config/arm/arm.md (*subsi3_compare0): Rename to...
13842         (subsi3_compare0): ... This.
13843         (modsi3): New define_expand.
13844         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
13845         when operand is power of 2.
13846
13847 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13848
13849         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
13850         (*neg<mode>2_compare0): Rename to...
13851         (neg<mode>2_compare0): ... This.
13852         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
13853         Move check for speed inside the if-then-elses.  Reflect
13854         CSNEG sequence in MOD by power of 2 case.
13855
13856 2015-09-09  Alan Modra  <amodra@gmail.com>
13857
13858         PR target/67378
13859         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
13860         reload replacement for PRE_MODIFY address reg.
13861
13862 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
13863
13864         PR tree-optimization/53852
13865         * config.in: Regenerate.
13866         * configure: Regenerate.
13867         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
13868         * graphite-optimize-isl.c (optimize_isl): Stop computation when
13869         PARAM_MAX_ISL_OPERATIONS is reached.
13870         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
13871         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
13872         result equal to isl_stat_ok as the status now can be isl_error_quota.
13873         (subtract_commutative_associative_deps): Same.
13874         (compute_deps): Same.
13875
13876 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
13877             Sebastian Pop  <s.pop@samsung.com>
13878
13879         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
13880         Return the parameter if it was saved in corresponding
13881         parameter_rename_map of the region.
13882         (copy_def): Copy def from sese region to the newly created region.
13883         (copy_internal_parameters): Copy all the internal parameters defined
13884         within a region to the newly created region.
13885         (graphite_regenerate_ast_isl): Copy parameters to the new region before
13886         translating isl to gimple.
13887         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
13888         the loop-nest does not have any data-references.
13889         (build_graphite_scops): Create a scop only when there is at least one
13890         loop inside it.
13891         (contains_only_close_phi_nodes): Deleted.
13892         (print_graphite_scop_statistics): Deleted
13893         (print_graphite_statistics): Deleted
13894         (limit_scops): Deleted.
13895         (build_scops): Removed call to limit_scops.
13896         * sese.c (new_sese): Construct.
13897         (free_sese): Destruct.
13898         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
13899         added.
13900         (set_rename): Pass sese region so that parameters inside the region can
13901         be added to its parameter_rename_map.
13902         (rename_uses): Pass sese region.
13903         (graphite_copy_stmts_from_block): Do not copy parameters that have been
13904         generated in the header of the scop. For each SSA_NAME in the
13905         parameter_rename_map rename its usage.
13906         (invariant_in_sese_p_rec): Return false if tree t is defined outside
13907         sese region.
13908         (scalar_evolution_in_region): If the tree t is invariant just return t.
13909         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
13910         struct sese to keep track of all the parameters which need renaming.
13911         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
13912         any data-refs.
13913         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
13914
13915 2015-09-08  Tom de Vries  <tom@codesourcery.com>
13916
13917         * Makefile.in (generated_files): Add params.list.
13918         (params.list, s-params.list): Add rule.
13919         * params.h (enum compiler_param): Include params-list.h.  Move define
13920         DEFPARAM, include params.def and undef DEFPARAM ...
13921         * params-list.h: ... here.  New file.
13922
13923 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
13924
13925         * pretty-print.h (printer_fn): Fix typo in comment.
13926
13927 2015-09-07  Jeff Law  <law@redhat.com>
13928
13929         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
13930
13931 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13932
13933         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
13934         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
13935         (arm_neon_fp16_hw): New.
13936
13937 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13938
13939         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
13940         UNITS_PER_WORD >= 4.
13941
13942 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13943
13944         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
13945         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
13946         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
13947         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
13948         (aarch64_float_extend_lo_v2df): Rename to...
13949         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
13950
13951         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
13952         (float_extend_lo): Add v4sf.
13953
13954         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
13955         * config/aarch64/iterators.md (VQ_HSF): New iterator.
13956         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
13957         (Vwide): New mode_attr.
13958
13959 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13960
13961         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
13962         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
13963         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
13964         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
13965         V4HF and V8HF variants to iterator.
13966
13967         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
13968
13969         * config/aarch64/iterators.md (VDQF_F16): New.
13970         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
13971
13972 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13973
13974         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
13975         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13976         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
13977         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
13978         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
13979         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13980         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
13981         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
13982         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
13983         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
13984         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
13985         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13986         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
13987         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
13988         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
13989         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
13990         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
13991         vld1q_dup_f16): New.
13992
13993 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13994
13995         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
13996         Reparameterize to...
13997         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
13998         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
13999         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
14000
14001         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
14002         v8hf variant.
14003         (float_truncate_lo_): Use BUILTIN_VDF iterator.
14004
14005         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
14006
14007         * config/aarch64/iterators.md (VDF, Vdtype): New.
14008         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
14009
14010 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14011
14012         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
14013         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
14014         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
14015         Add __builtin_aarch64_simd_hf.
14016         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
14017         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
14018         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
14019         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
14020         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
14021         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
14022         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
14023         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
14024         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
14025
14026         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
14027         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
14028         (VDC, Vdbl): Add V4HF.
14029
14030 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14031
14032         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
14033         V4HFmode and V8HFmode.
14034         (aarch64_split_simd_move): Add case for V8HFmode.
14035         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
14036         (aarch64_simd_builtin_std_type): Handle HFmode.
14037         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
14038
14039         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
14040         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
14041         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
14042
14043         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
14044         Float16x8_t.
14045
14046         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
14047         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
14048         New typedefs.
14049         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
14050         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
14051         vst1q_lane_f16): New.
14052         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
14053         (VALLDI_F16, VALL_F16): New.
14054         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
14055         Add cases for V4HF and V8HF.
14056         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
14057
14058 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14059
14060         * config/arm/arm-builtins.c (VAR11, VAR12): New.
14061         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
14062         vld4_dup): Add v4hf variant.
14063         (vget_high, vget_low): Add v8hf variant.
14064         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
14065         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
14066         v4hf and v8hf variants.
14067
14068         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
14069         (VDX): Add V4HF.
14070         (V_DOUBLE): Add case for V4HF.
14071         (VQX): Add V8HF.
14072         (V_HALF): Add case for V8HF.
14073         (VDQX): Add V4HF, V8HF.
14074         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
14075         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
14076
14077         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
14078         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
14079         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
14080         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
14081         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
14082         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
14083         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
14084         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
14085         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
14086
14087         (neon_vcreate, neon_vreinterpretv8qi<mode>,
14088         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14089         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
14090         Change VDX to VD_RE.
14091
14092         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
14093         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
14094         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
14095
14096         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
14097         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
14098         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
14099         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
14100         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
14101         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
14102         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
14103         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
14104         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
14105
14106 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14107
14108         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
14109         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
14110         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
14111         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
14112         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14113         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
14114         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
14115         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
14116         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
14117         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
14118         New.
14119
14120 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14121
14122         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
14123
14124         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
14125
14126         * config/arm/arm-builtins.c (v8hf_UP): New.
14127         (arm_init_simd_builtin_types): Initialise Float16x8_t.
14128
14129         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
14130
14131         * config/arm/arm_neon.h (float16x8_t): New typedef.
14132
14133 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14134
14135         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
14136         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
14137         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
14138         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
14139         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14140         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
14141         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
14142         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
14143         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14144         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
14145
14146 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
14147
14148         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
14149         non-alphanumeric characters in the symbol name.
14150
14151 2015-09-07  Marek Polacek  <polacek@redhat.com>
14152
14153         PR inline-asm/67448
14154         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
14155         a memory input.
14156
14157 2015-09-07  Marek Polacek  <polacek@redhat.com>
14158
14159         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
14160
14161 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
14162
14163         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
14164         not warn.
14165
14166 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
14167
14168         PR middle-end/67452
14169         * tree-ssa-live.c: Include cfgloop.h.
14170         (remove_unused_locals): Clear loop->simduid if simduid is about
14171         to be removed from cfun->local_decls.
14172
14173 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14174
14175         PR target/65210
14176         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
14177         attribute as well.
14178
14179 2015-09-04  Tom de Vries  <tom@codesourcery.com>
14180
14181         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
14182
14183 2015-09-04  Jeff Law  <law@redhat.com>
14184
14185         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
14186         unnecessary constructor.  It's now trivial and implemented inside...
14187         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
14188         constructor.  Add comments to various methods.  Remove unused
14189         private fields.
14190         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
14191         * tree-vrp.c (identify_jump_threads): Likewise.
14192         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
14193         indentation issues.
14194         (thread_across_edge): Similarly.
14195         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
14196         arguments in constructor call.
14197
14198 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
14199
14200         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
14201         temp path contains a '-'.
14202
14203 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14204             Petr Murzin  <petr.murzin@intel.com>
14205             Kirill Yukhin  <kirill.yukhin@intel.com>
14206
14207         * config/i386/i386-builtin-types.def
14208         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
14209         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
14210         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
14211         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
14212         * config/i386/i386.c
14213         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
14214         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14215         IX86_BUILTIN_SCATTERALTDIV16SI.
14216         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
14217         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
14218         __builtin_ia32_scatteraltdiv8si.
14219         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
14220         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14221         IX86_BUILTIN_SCATTERALTDIV16SI.
14222         (ix86_vectorize_builtin_scatter): New.
14223         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
14224         ix86_vectorize_builtin_scatter.
14225
14226 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14227             Petr Murzin  <petr.murzin@intel.com>
14228             Kirill Yukhin  <kirill.yukhin@intel.com>
14229
14230         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
14231         * doc/tm.texi: Regenerate.
14232         * target.def: Add scatter builtin.
14233         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
14234         for loads/stores in case of gather/scatter accordingly.
14235         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14236         STMT_VINFO_GATHER_P(S).
14237         (vect_check_gather): Rename to ...
14238         (vect_check_gather_scatter): this.
14239         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
14240         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
14241         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14242         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
14243         variable and new checkings for it accordingly.
14244         * tree-vect-stmts.c
14245         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14246         STMT_VINFO_GATHER_P(S).
14247         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14248         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
14249
14250 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14251
14252         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
14253         define_insn.
14254         (mulv16qi3): New define_expand.
14255
14256 2015-09-03  Martin Sebor  <msebor@redhat.com>
14257
14258         PR c/66516
14259         * doc/extend.texi (Other Builtins): Document when the address
14260         of a built-in function can be taken.
14261
14262 2015-09-03  Richard Biener  <rguenther@suse.de>
14263
14264         * dwarf2out.c (flush_limbo_die_list): Split out from ...
14265         (dwarf2out_early_finish): ... here.
14266         (dwarf2out_finish): Do not call dwarf2out_early_finish but
14267         flush_limbo_die_list.  Assert we have no deferred asm names.
14268
14269 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14270
14271         * optabs.c (expand_binop): Don't create a broadcast vector with a
14272         source element wider than the inner mode.
14273
14274 2015-09-03  Richard Biener  <rguenther@suse.de>
14275
14276         * varasm.c (output_constant): Use fold_convert instead of
14277         wide_int_to_tree.
14278
14279 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14280
14281         PR tree-optimization/65637
14282         * omp-low.c (expand_omp_for_static_chunk): Handle case that
14283         fin_bb has 2 predecessors.
14284
14285 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14286
14287         PR tree-optimization/65637
14288         * omp-low.c (find_phi_with_arg_on_edge): New function.
14289         (expand_omp_for_static_chunk): Fix inner loop phi.
14290
14291 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14292
14293         PR tree-optimization/65637
14294         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
14295         that head is NULL.
14296
14297 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14298
14299         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
14300
14301 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14302
14303         * doc/invoke.texi (parloops-chunk-size): Add item.
14304         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
14305         * tree-parloops.c: Include params.h.
14306         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
14307         param parloops-chunk-size is used.
14308
14309 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14310
14311         PR middle-end/67351
14312         * fold-const.c (fold_binary_loc) : Move
14313         Transform (x >> c) << c into x & (-1<<c) or
14314         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
14315         types using simplify and match.
14316         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
14317         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
14318
14319 2015-09-03  Richard Biener  <rguenther@suse.de>
14320
14321         PR ipa/66705
14322         * tree-ssa-structalias.c (ctor_for_analysis): New function.
14323         (create_variable_info_for_1): Use ctor_for_analysis instead
14324         of get_constructor.
14325         (create_variable_info_for): Likewise.
14326
14327 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
14328
14329         PR ipa/67280
14330         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
14331         in new callgraph edge.
14332
14333 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
14334
14335         PR target/59810
14336         PR target/63652
14337         PR target/63653
14338         * config/aarch64/aarch64-simd.md
14339         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
14340         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
14341         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
14342         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
14343
14344 2015-09-02  Alan Modra  <amodra@gmail.com>
14345
14346         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
14347         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
14348         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
14349
14350 2015-09-02  Alan Modra  <amodra@gmail.com>
14351
14352         PR target/67417
14353         * config/rs6000/predicates.md (current_file_function_operand): Don't
14354         return true for weak symbols.
14355         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
14356
14357 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
14358             Andrew Bennett  <andrew.bennett@imgtec.com>
14359
14360         * config/mips/mips-opts.h (mips_cb_setting): New enum.
14361         * config/mips/mips-protos.h: Add definitions for
14362         mips_output_jump and mips_output_equal_conditional_branch
14363         * config/mips/mips.c (MIPS_JR): Change to support the
14364         JIC instruction.
14365         (mips_emit_compare): Add support for the MIPS R6 conditional
14366         compact branches.
14367         (mips_process_sync_loop): Likewise.
14368         (mips_output_order_conditional_branch): Likewise.
14369         (mips16_build_call_stub): Change MIPS_CALL to
14370         mips_output_jump.
14371         (mips_print_operand_punctuation): Update 's' case to only
14372         apply to micromips r2.
14373         (mips_adjust_insn_length): Add support for forbidden slot
14374         hazards.
14375         (mips_avoid_hazard): Likewise.
14376         (mips_reorg_process_insns): Likewise.
14377         (mips_output_jump): New function.
14378         (mips_output_equal_conditional_branch): Likewise.
14379         (mips_output_conditional_branch): Use jrc/bc if compact
14380         branch support is enabled.  Ensure the forbidden slots
14381         between the two branch instructions is filled with a nop.
14382         (mips_option_override): Add support to process the compact
14383         branch option and set the correct defaults.  Prevent
14384         non-explict relocs being using for MIPS R6.
14385         (mips_trampoline_init): Add compact branch support.
14386         (mips_mult_zero_zero_cost): Allow zero initialisation of
14387         accumulators with TARGET_DSP.
14388         * config/mips/mips.h (TARGET_CB_NEVER): New define.
14389         (TARGET_CB_MAYBE): New define.
14390         (TARGET_CB_ALWAYS): New define.
14391         (ISA_HAS_DELAY_SLOTS): New define.
14392         (ISA_HAS_COMPACT_BRANCHES): New define.
14393         (ISA_HAS_JRC): New define.
14394         (MIPS_BRANCH_C): New define.
14395         (MIPS_CALL): Removed.
14396         (MICROMIPS_J): Removed.
14397         * config/mips/mips.md (compact_form): New attr.
14398         (hazard): Add support for forbidden slots.
14399         (define_delay): Add support for compact branches.
14400         (*branch_order<mode>): Likewise.
14401         (*branch_order<mode>_inverted): Likewise.
14402         (*branch_equality<mode>): Likewise.
14403         (*branch_equality<mode>_inverted): Likewise.
14404         (*jump_absolute): Likewise.
14405         (*jump_pic): Likewise.
14406         (indirect_jump): Use mips_output_jump to produce assembly output.
14407         (tablejump_<mode>"): Likewise.
14408         (*<optab>"): Likewise.
14409         (<optab>_internal): Likewise.
14410         (sibcall_internal): Likewise.
14411         (sibcall_value_internal): Likewise.
14412         (sibcall_value_multiple_internal): Likewise.
14413         (call_internal): Likewise.
14414         (call_split): Likewise.
14415         (call_internal_direct): Likewise.
14416         (call_direct_split): Likewise.
14417         (call_value_internal): Likewise.
14418         (call_value_split): Likewise.
14419         (call_value_internal_direct): Likewise.
14420         (call_value_direct_split): Likewise.
14421         (call_value_multiple_internal): Likewise.
14422         (call_value_multiple_split): Likewise.
14423         (mips_get_fcsr_mips16_<mode>): Likewise.
14424         (mips_set_fcsr_mips16_<mode>): Likewise.
14425         (tls_get_tp_mips16_<mode>): Likewise.
14426         * config/mips/mips.opt: Add -mcompact-branches option.
14427         * config/mips/predicates.md (order_operator): Ensure the
14428         conditional compact branches are only used if the ISA them.
14429         * doc/invoke.texi: Document -mcompact-branches option.
14430
14431 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
14432
14433         PR target/61578
14434         * lra-lives.c (process_bb_lives): Process move pseudos with the
14435         same value for copies and preferences
14436         * lra-constraints.c (match_reload): Create match reload pseudo
14437         with the same value from single dying input pseudo.
14438
14439 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
14440
14441         PR target/67405
14442         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
14443
14444 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
14445
14446         * trans-mem.c: Add contributed-by.
14447         * trans-mem.h: Same.
14448
14449 2015-09-01  Richard Biener  <rguenther@suse.de>
14450
14451         * expr.c (expand_expr_real_1): For expanding TERed defs
14452         set the current location to that of the def if not UNKNOWN.
14453
14454 2015-09-01  David Sherwood  <david.sherwood@arm.com>
14455
14456         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
14457
14458 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14459
14460         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
14461         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
14462         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
14463         Include rtl-iter.h.
14464         (noce_simple_bbs): New function.
14465         (noce_try_move): Bail if basic blocks are not simple.
14466         (noce_try_store_flag): Likewise.
14467         (noce_try_store_flag_constants): Likewise.
14468         (noce_try_addcc): Likewise.
14469         (noce_try_store_flag_mask): Likewise.
14470         (noce_try_cmove): Likewise.
14471         (noce_try_minmax): Likewise.
14472         (noce_try_abs): Likewise.
14473         (noce_try_sign_mask): Likewise.
14474         (noce_try_bitop): Likewise.
14475         (bbs_ok_for_cmove_arith): New function.
14476         (noce_emit_all_but_last): Likewise.
14477         (noce_emit_insn): Likewise.
14478         (noce_emit_bb): Likewise.
14479         (noce_try_cmove_arith): Handle non-simple basic blocks.
14480         (insn_valid_noce_process_p): New function.
14481         (contains_mem_rtx_p): Likewise.
14482         (bb_valid_for_noce_process_p): Likewise.
14483         (noce_process_if_block): Allow non-simple basic blocks
14484         where appropriate.
14485
14486 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
14487
14488         * tree-ssa-dom.c (record_equivalences_from_phis,
14489         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
14490         (lookup_avail_expr): Likewise, and remove comment and unused temp.
14491
14492 2015-09-01  Nick Clifton  <nickc@redhat.com>
14493
14494         * config/msp430/msp430.opt (mcpu): Fix typo.
14495
14496 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14497
14498         * config/aarch64/aarch64.c (aarch64_set_current_function):
14499         Re-layout any vector parameters have non-simd layout.
14500         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
14501         Delete.
14502         (aarch64_simd_expand_args): Delete call to the above.
14503
14504 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
14505
14506         * doc/invoke.texi (asan-stack): Add space before option.
14507
14508 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14509
14510         * tree.h (zerop): New function.
14511         * tree.c (zerop): Likewise.
14512         (element_precision): Handle expressions.
14513         * match.pd (define_predicates): Add zerop.
14514         (x <= +Inf): Fix comment.
14515         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
14516         * fold-const.c (fold_binary_loc): ... here. Remove.
14517
14518 2015-08-31  Richard Biener  <rguenther@suse.de>
14519
14520         PR middle-end/67381
14521         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
14522
14523 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14524
14525         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
14526         (CEXPI): New operator list.
14527         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
14528         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
14529         Converted from ...
14530         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
14531
14532 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14533
14534         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
14535         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
14536         parameter.
14537         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
14538         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
14539         (rewrite_into_loop_closed_ssa): ... here.
14540         (replace_uses_in_dominated_bbs): Remove function.
14541         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
14542         rewrite_into_loop_closed_ssa_1.
14543
14544 2015-08-31  Michael Matz  <matz@suse.de>
14545
14546         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
14547         enter entry and exit blocks for reverse post order.
14548
14549 2015-08-31  Richard Biener  <rguenther@suse.de>
14550
14551         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
14552         (lto_location_cache::current_sysp): Likewise.
14553         (output_block::current_sysp): Likewise.
14554         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
14555         (lto_location_cache::apply_location_cache): Properly record
14556         system header locations.
14557         (lto_location_cache::input_location): Input whether a file
14558         is a system header.
14559         * lto-streamer-out.c (lto_output_location): Stream whether a file
14560         is a system header.
14561
14562 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14563
14564         PR bootstrap/67363
14565         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
14566
14567 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14568
14569         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
14570         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
14571         Improve function header comments.
14572
14573 2015-08-30  Michael Collison  <michael.collison@linaro.org>
14574
14575         PR other/67320
14576         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
14577         standard names
14578
14579 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14580
14581         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
14582         special_handling bitfield.
14583         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
14584         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
14585         that represents a general xxpermdi.
14586         (insn_is_swappable_p): Add handling for vec_concat of two
14587         doublewords, which maps to a specific xxpermdi.
14588         (adjust_xxpermdi): New function.
14589         (adjust_concat): Likewise.
14590         (handle_special_swappables): Call adjust_xxpermdi and
14591         adjust_concat.
14592         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
14593
14594 2015-08-30  Rich Felker <dalias@libc.org>
14595
14596         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
14597         case instead of sh[123456ble]-*-*.
14598
14599 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
14600
14601         * ira.c (print_unform_and_important_classes,
14602         print_translated_classes): Remove reg_class_names static array.
14603         (print_unform_and_important_classes): Rename to ...
14604         (print_uniform_and_important_classes): ... this.
14605         (ira_debug_allocno_classes): Update accordingly.
14606
14607 2015-08-29  Tom de Vries  <tom@codesourcery.com>
14608
14609         PR tree-optimization/46193
14610         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
14611         clause.
14612
14613 2015-08-28  Jeff Law  <law@redhat.com>
14614
14615         PR lto/66752
14616         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
14617         unable to find X NE 0 in the tables, return X as the simplified
14618         condition.
14619         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
14620         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
14621         to VISISTED_BBS.
14622         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
14623         after removing the control flow statement and unnecessary edges.
14624
14625 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
14626
14627         Revert:
14628         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14629
14630         PR tree-optimization/67283
14631         * tree-sra.c (type_consists_of_records_p): Rename to...
14632         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14633
14634         (completely_scalarize_record): Rename to...
14635         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
14636         code to:
14637         (scalarize_elem): New.
14638
14639 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
14640
14641         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
14642         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
14643         (aarch64_symbol_type): Likewise.
14644         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14645         Likewise.
14646         (aarch64_expand_mov_immediate): Likewise.
14647         (aarch64_print_operand): Likewise.
14648         (aarch64_classify_tls_symbol): Likewise.
14649
14650 2015-08-28  Richard Biener  <rguenther@suse.de>
14651
14652         * cgraphunit.c (symbol_table::compile): Move early debug generation
14653         and finish...
14654         (symbol_table::finalize_compilation_unit): ... back here and
14655         add a !seen_error () guard.
14656
14657 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14658
14659         * toplev.c (process_options): Do not use flag_loop_block,
14660         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
14661         flag_loop_optimize_isl.
14662
14663 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14664
14665         * Makefile.in (OBJS): Remove graphite-blocking.o and
14666         graphite-interchange.o.
14667         * common.opt (floop-strip-mine, floop-interchange, floop-block):
14668         Alias of floop-nest-optimize.
14669         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
14670         Document as alias of -floop-nest-optimize.
14671         * graphite-blocking.c: Remove.
14672         * graphite-interchange.c: Remove.
14673         * graphite-optimize-isl.c: Include dumpfile.h.
14674         (getScheduleForBand): Add dump for tiled loops.  Use
14675         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
14676         * graphite-poly.c (scop_max_loop_depth): Remove.
14677         (print_scattering_function_1): Remove.
14678         (print_scattering_function): Remove.
14679         (print_scattering_functions): Remove.
14680         (debug_scattering_function): Remove.
14681         (debug_scattering_functions): Remove.
14682         (apply_poly_transforms): Remove use of flag_loop_block,
14683         flag_loop_strip_mine, and flag_loop_interchange.
14684         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
14685         PBB_ORIGINAL.
14686         (print_pdr_access_layout): Remove.
14687         (print_pdr): Print ISL representation.
14688         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
14689         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
14690         (free_scop): Same.
14691         (openscop_print_pbb_domain): Remove.
14692         (print_pbb): Remove call to print_scattering_function.
14693         (openscop_print_scop_context): Remove.
14694         (print_scop_context): Do not print matrices anymore.
14695         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
14696         SCOP_TRANSFORMED_SCHEDULE.
14697         (print_isl_set): Add printing of a new line.
14698         (print_isl_map): Same.
14699         (print_isl_aff): Same.
14700         (print_isl_constraint): Same.
14701         (loop_to_lst): Remove.
14702         (scop_to_lst): Remove.
14703         (lst_indent_to): Remove.
14704         (print_lst): Remove.
14705         (debug_lst): Remove.
14706         (dot_lst_1): Remove.
14707         (dot_lst): Remove.
14708         (reverse_loop_at_level): Remove.
14709         (reverse_loop_for_pbbs): Remove.
14710         * graphite-poly.h (pdr_dim_iter_domain): Remove.
14711         (pdr_nb_params): Remove.
14712         (pdr_alias_set_dim): Remove.
14713         (pdr_subscript_dim): Remove.
14714         (pdr_iterator_dim): Remove.
14715         (pdr_parameter_dim): Remove.
14716         (same_pdr_p): Remove.
14717         (struct poly_scattering): Remove.
14718         (struct poly_bb): Remove _original, _transformed, _saved.
14719         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
14720         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
14721         (PBB_NB_LOCAL_VARIABLES): Remove.
14722         (PBB_NB_SCATTERING_TRANSFORM): Remove.
14723         (schedule_to_scattering): Remove.
14724         (number_of_write_pdrs): Remove.
14725         (pbb_dim_iter_domain): Remove.
14726         (pbb_nb_params): Remove.
14727         (pbb_nb_scattering_orig): Remove.
14728         (pbb_nb_scattering_transform): Remove.
14729         (pbb_nb_dynamic_scattering_transform): Remove.
14730         (pbb_nb_local_vars): Remove.
14731         (pbb_iterator_dim): Remove.
14732         (pbb_parameter_dim): Remove.
14733         (psco_scattering_dim): Remove.
14734         (psct_scattering_dim): Remove.
14735         (psct_local_var_dim): Remove.
14736         (psco_iterator_dim): Remove.
14737         (psct_iterator_dim): Remove.
14738         (psco_parameter_dim): Remove.
14739         (psct_parameter_dim): Remove.
14740         (psct_dynamic_dim): Remove.
14741         (psct_static_dim): Remove.
14742         (psct_add_local_variable): Remove.
14743         (new_lst_loop): Remove.
14744         (new_lst_stmt): Remove.
14745         (free_lst): Remove.
14746         (copy_lst): Remove.
14747         (lst_add_loop_under_loop): Remove.
14748         (lst_depth): Remove.
14749         (lst_dewey_number): Remove.
14750         (lst_dewey_number_at_depth): Remove.
14751         (lst_pred): Remove.
14752         (lst_succ): Remove.
14753         (lst_find_pbb): Remove.
14754         (find_lst_loop): Remove.
14755         (lst_find_first_pbb): Remove.
14756         (lst_empty_p): Remove.
14757         (lst_find_last_pbb): Remove.
14758         (lst_contains_p): Remove.
14759         (lst_contains_pbb): Remove.
14760         (lst_create_nest): Remove.
14761         (lst_remove_from_sequence): Remove.
14762         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
14763         (lst_niter_for_loop): Remove.
14764         (pbb_update_scattering): Remove.
14765         (lst_update_scattering_under): Remove.
14766         (lst_update_scattering): Remove.
14767         (lst_insert_in_sequence): Remove.
14768         (lst_replace): Remove.
14769         (lst_substitute_3): Remove.
14770         (lst_distribute_lst): Remove.
14771         (lst_remove_all_before_including_pbb): Remove.
14772         (lst_remove_all_before_excluding_pbb): Remove.
14773         (struct scop): Remove original_schedule, transformed_schedule, and
14774         saved_schedule.
14775         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
14776         (SCOP_SAVED_SCHEDULE): Remove.
14777         (poly_scattering_new): Remove.
14778         (poly_scattering_free): Remove.
14779         (poly_scattering_copy): Remove.
14780         (store_scattering_pbb): Remove.
14781         (store_lst_schedule): Remove.
14782         (restore_lst_schedule): Remove.
14783         (store_scattering): Remove.
14784         (restore_scattering_pbb): Remove.
14785         (restore_scattering): Remove.
14786         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
14787         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
14788         compute the scattering polyhedron dimension from the dimension of
14789         pbb->domain.
14790         (build_scop_scattering): Update call to
14791         build_pbb_scattering_polyhedrons.
14792         (build_poly_scop): Remove call to scop_to_lst.
14793         * graphite.c (graphite_transform_loops): Add call to print_scop.
14794         (gate_graphite_transforms): Remove use of flag_loop_block,
14795         flag_loop_interchange, and flag_loop_strip_mine.
14796
14797 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14798
14799         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
14800         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
14801         -floop-nest-optimize.
14802         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
14803         (generate_luj_sepclass): Remove.
14804         (generate_luj_options): Remove.
14805         (set_options): Remove opt_luj.
14806         (scop_to_isl_ast): Remove opt_luj.
14807         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
14808         flag_loop_unroll_jam.
14809         (getPrevectorMap_full): Remove.
14810         (getScheduleForBandList): Remove map_sepcl.
14811         (getScheduleMap): Same.
14812         (apply_schedule_map_to_scop): Remove sepcl.
14813         (optimize_isl): Same.
14814         * graphite-poly.c (apply_poly_transforms): Remove check for
14815         flag_loop_unroll_jam.
14816         (new_poly_bb): Remove map_sepclass.
14817         * graphite-poly.h (struct poly_bb): Same.
14818         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
14819         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
14820         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
14821         * toplev.c (process_options): Remove flag_loop_unroll_jam.
14822
14823 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
14824
14825         PR target/67317
14826         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
14827         (addqi3_cc): Ditto.
14828         (UNSPEC_ADD_CARRY): Remove.
14829         (addqi3_cconly_overflow): New expander.
14830         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
14831         Adjust for changed add<mode>3_carry.
14832         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
14833         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
14834         (<plusminus_insn><mode>3_carry): Remove expander.
14835         (*<plusminus_insn><mode>3_carry): Split insn pattern to
14836         add<mode>3_carry and sub<mode>3_carry.
14837         (plusminus_carry_mnemonic): Remove code attribute.
14838         (add<mode>3_carry): Canonicalize insn pattern.
14839         (*addsi3_carry_zext): Ditto.
14840         (sub<mode>3_carry): Ditto.
14841         (*subsi3_carry_zext): Ditto.
14842         (adcx<mode>3): Remove insn pattern.
14843         (addcarry<mode>): New insn pattern.
14844         (subborrow<mode>): Ditto.
14845         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
14846         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
14847         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
14848         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
14849         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
14850         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
14851         Rewrite expander to not clobber carry flag chains.
14852
14853 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
14854
14855         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
14856         instead of a rotate.
14857
14858 2015-08-27  Marek Polacek  <polacek@redhat.com>
14859
14860         PR middle-end/67005
14861         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
14862         an entry into an irreducible region.
14863
14864 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14865
14866         * configure: Regenerate.
14867
14868 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14869
14870         PR tree-optimization/67283
14871         * tree-sra.c (type_consists_of_records_p): Rename to...
14872         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14873
14874         (completely_scalarize_record): Rename to...
14875         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
14876         (scalarize_elem): New.
14877
14878 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14879
14880         * tree-sra.c (completely_scalarize_var): Rename to...
14881         (create_total_scalarization_access): ... Here. Drop call to
14882         completely_scalarize_record.
14883
14884         (analyze_all_variable_accesses): Replace completely_scalarize_var
14885         with create_total_scalarization_access and completely_scalarize_record.
14886
14887 2015-08-27  Alan Modra  <amodra@gmail.com>
14888
14889         PR target/67356
14890         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
14891         for operand 1.
14892
14893 2015-08-27  Richard Biener  <rguenther@suse.de>
14894
14895         * passes.c (rest_of_decl_compilation): Guard early_global_decl
14896         call with !seen_error ().
14897         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
14898         early debug generation and finish...
14899         (symbol_table::compile): ... here to put it after a !seen_error ()
14900         guard.
14901
14902 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14903
14904         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
14905         Solaris 12+.
14906
14907 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14908             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14909
14910         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
14911         (*cb<optab><mode>1): Likewise.
14912         (*tb<optab><mode>1): Likewise.
14913         (*cb<optab><mode>1): Likewise.
14914         * config/aarch64/iterators.md (inv_cb): New code attribute.
14915         (inv_tb): Likewise.
14916         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
14917         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
14918
14919 2015-08-27  Richard Biener  <rguenther@suse.de>
14920
14921         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
14922
14923 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14924
14925         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
14926         trap to fix ICE.
14927
14928 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
14929
14930         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
14931         Add declaration.
14932
14933         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
14934         comment.
14935         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
14936         floating point in VSX registers.
14937         (rs6000_output_move_128bit): Always print out the set insn if we
14938         can't generate an appropriate 128-bit move.
14939         (rs6000_generate_compare): Add support for IEEE 128-bit floating
14940         point in VSX registers comparisons.
14941         (rs6000_expand_float128_convert): Likewise.
14942
14943         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
14944         predicate for only GPR hard registers.
14945
14946         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
14947         modes to iterators. Add new iterators for moving 128-bit values in
14948         scalar FPR registers and VSX registers.
14949         (FMOVE128): Likewise.
14950         (FMOVE128_FPR): Likewise.
14951         (FMOVE128_GPR): Likewise.
14952         (FMOVE128_VSX): Likewise.
14953         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
14954         in VSX registers.
14955         (IFKF): Likewise.
14956         (IBM128): Likewise.
14957         (TFIFKF): Likewise.
14958         (RELOAD): Add IEEE 128-bit floating point modes.
14959         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
14960         floating point in VSX registers modes.
14961         (signbit<mode>2, IBM128 iterator): Likewise.
14962         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
14963         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14964         (negtf2): Likewise.
14965         (neg<mode>2, TFIFKF iterator): Likewise.
14966         (negtf2_internal): Likewise.
14967         (abstf2): Likewise.
14968         (abs<mode>2, TFIFKF iterator): Likewise.
14969         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
14970         VSX insn support for negate, absolute value, and negative absolute
14971         value.
14972         (ieee_128bit_vsx_neg<mode>2): Likewise.
14973         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
14974         (ieee_128bit_vsx_abs<mode>2): Likewise.
14975         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
14976         (ieee_128bit_vsx_nabs<mode>2): Likewise.
14977         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
14978         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
14979         floating point in VSX registers.
14980         (unpack<mode>_dm): Likewise.
14981         (unpack<mode>_nodm): Likewise.
14982         (pack<mode>): Likewise.
14983         (unpackv1ti): Likewise.
14984         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
14985         (packv1ti): Likewise.
14986         (pack<mode>, FMOVE128_VSX iterator): Likewise.
14987         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
14988         registers.
14989         (extenddftf2_internal): Likewise.
14990         (trunctfdf2): Likewise.
14991         (trunctfdf2_internal2): Likewise.
14992         (fix_trunc_helper): Likewise.
14993         (fix_trunctfdi2"): Likewise.
14994         (floatditf2): Likewise.
14995         (floatuns<mode>tf2): Likewise.
14996         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
14997         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
14998         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
14999         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
15000         (float<SDI:mode><IFKF:mode>2): Likewise.
15001         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
15002
15003 2015-08-26  Renlin Li  <renlin.li@arm.com>
15004
15005         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
15006
15007 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15008             Jiong Wang  <jiong.wang@arm.com>
15009
15010         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
15011         (tlsie_tiny_<mode>): New define_insn.
15012         (tlsie_tiny_sidi): Likewise.
15013         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15014         SYMBOL_TINY_TLSIE.
15015         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
15016         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15017         SYMBOL_TINY_TLSIE.
15018         (aarch64_expand_mov_immediate): Likewise.
15019         (aarch64_print_operand): Likewise.
15020         (arch64_classify_tls_symbol): Likewise.
15021
15022 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15023
15024         * config/arm/arm-arches.def: Replace single value flags with
15025         an initializer built from ARM_FSET_MAKE_CPU1.
15026         * config/arm/arm-cores.def: Likewise.
15027         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
15028         derivation from the ARM_CORE macro definition, use the given value
15029         instead.
15030         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
15031         ARM_ARCH macro definition, use the given value instead.
15032
15033 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15034
15035         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
15036         feature set.
15037         (struct builtin_description): Replace field mask with field
15038         features.
15039         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
15040         (IWMMXT2_BUILTIN): Likewise.
15041         (IWMMXT2_BUILTIN2): Likewise.
15042         (FP_BUILTIN): Likewise.
15043         (CRC32_BUILTIN): Likewise.
15044         (CRYPTO_BUILTIN): Likewise.
15045         (iwmmx_mbuiltin): Likewise.
15046         (iwmmx2_mbuiltin): Likewise.
15047         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
15048         struct builtin_description.
15049
15050 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15051
15052         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
15053         (struct builtin_description): Change type of mask to unsigned
15054         long.
15055         * config/arm/arm-protos.h (insn_flags): Declare as type
15056         arm_feature_set.
15057         (tune_flags): Likewise.
15058         * config/arm/arm.c (feature_count): New.
15059         (insn_flags): Define as type arm_feature_set.
15060         (tune_flags): Likewise.
15061         (struct processors): Define field flags as type arm_feature_set.
15062         (all_cores): Update for change to struct processors.
15063         (all_architectures): Likewise.
15064         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
15065         macros.
15066         (arm_option_override_internal): Likewise.
15067         (arm_option_override): Likewise.
15068
15069 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15070             Jiong Wang  <jiong.wang@arm.com>
15071
15072         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
15073         tls size for tiny, small, large memory model.
15074         (aarch64_load_symref_appropriately): Support new symbol types.
15075         (aarch64_expand_mov_immediate): Likewise.
15076         (aarch64_print_operand): Likewise.
15077         (aarch64_classify_tls_symbol): Likewise.
15078         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
15079         (aarch64_symbol_type): Likewise.
15080         * config/aarch64/aarch64.md (tlsle): Deleted.
15081         (tlsle12_<mode>): New define_insn.
15082         (tlsle24_<mode>): Likewise.
15083         (tlsle32_<mode>): Likewise.
15084         (tlsle48_<mode>): Likewise.
15085         * doc/sourcebuild.texi (AArch64-specific attributes): Document
15086         "aarch64_tlsle32".
15087
15088 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15089
15090         * config/arm/arm-protos.h (FL_NONE): New.
15091         (FL_ANY): New.
15092         (arm_feature_set): New.
15093         (ARM_FSET_MAKE): New.
15094         (ARM_FSET_MAKE_CPU1): New.
15095         (ARM_FSET_MAKE_CPU2): New.
15096         (ARM_FSET_CPU1): New.
15097         (ARM_FSET_CPU2): New.
15098         (ARM_FSET_EMPTY): New.
15099         (ARM_FSET_ANY): New.
15100         (ARM_FSET_HAS_CPU1): New.
15101         (ARM_FSET_HAS_CPU2): New.
15102         (ARM_FSET_HAS_CPU): New.
15103         (ARM_FSET_ADD_CPU1): New.
15104         (ARM_FSET_ADD_CPU2): New.
15105         (ARM_FSET_DEL_CPU1): New.
15106         (ARM_FSET_DEL_CPU2): New.
15107         (ARM_FSET_UNION): New.
15108         (ARM_FSET_INTER): New.
15109         (ARM_FSET_XOR): New.
15110         (ARM_FSET_EXCLUDE): New.
15111         (AFM_FSET_IS_EMPTY): New.
15112         (ARM_FSET_CPU_SUBSET): New.
15113
15114 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15115
15116         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15117         SYMBOL_TLSLE to SYMBOL_TLSLE24.
15118         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15119         Likewise.
15120         (aarch64_expand_mov_immediate): Likewise.
15121         (aarch64_print_operand): Likewise.
15122         (aarch64_classify_symbol): Likewise.
15123
15124 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15125
15126         * config/aarch64/aarch64.opt (mtls-size): New entry.
15127         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
15128         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
15129         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
15130
15131 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15132
15133         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
15134         ARM_CORE entry.  Fix some white-space.
15135         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
15136         ARM_CORE definition.
15137
15138 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15139
15140         * fold-const.c (fold_binary_loc) : Move Optimize
15141         root(x)*root(y) as root(x*y) to match.pd.
15142         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
15143         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
15144         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
15145         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
15146         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
15147         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
15148         (mult (exps:s @0) (exps:s @1)) : New simplifier.
15149         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
15150         (rdiv @0 (exps:s @1)) : New simplifier.
15151
15152 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
15153
15154         * gcc.c (driver::finalize): Only assign to extra_specs if
15155         [EXTRA_SPECS].
15156
15157 2015-08-25  Marek Polacek  <polacek@redhat.com>
15158
15159         PR middle-end/67330
15160         * varasm.c (declare_weak): Return after giving an error.
15161
15162 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
15163
15164         * gcc-main.c (main): Add params to driver ctor.
15165         * gcc.c (class env_manager): New.
15166         (env): New global.
15167         (env_manager::init): New.
15168         (env_manager::get): New.
15169         (env_manager::xput): New.
15170         (env_manager::restore): New.
15171         Poison getenv and putenv.
15172         (DEFAULT_TARGET_SYSTEM_ROOT): New.
15173         (target_system_root): Update initialization to use
15174         DEFAULT_TARGET_SYSTEM_ROOT.
15175         (struct spec_list): Add field "default_ptr".
15176         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
15177         (init_spec): Likewise.
15178         (set_spec): Clear field "default_ptr".
15179         (read_specs): Free "spec" and "buffer".
15180         (xputenv): Reimplement in terms of env_manager.
15181         (process_command): Replace ::getenv calls with calls to the
15182         env_manager singleton.
15183         (process_brace_body): Free string in three places.
15184         (driver::driver): New.
15185         (driver::~driver): New.
15186         (used_arg): Convert from a function to...
15187         (class used_arg_t): ...this class, and...
15188         (used_arg): ...this new global instance.
15189         (used_arg_t::finalize): New function.
15190         (getenv_spec_function): Add "const" to local "value".  Replace
15191         ::getenv call with call to the env_manager singleton.
15192         (path_prefix_reset): New function.
15193         (driver::finalize): New function.
15194         * gcc.h (driver::driver): New.
15195         (driver::~driver): New.
15196         (driver::finalize): New.
15197
15198 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15199
15200         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
15201         target doesn't have one.
15202
15203 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15204
15205         PR target/67346
15206         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
15207
15208 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15209
15210         PR target/67344
15211         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
15212         a define_insn, remove second alternative.
15213
15214 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
15215             Joseph Myers  <joseph@codesourcery.com>
15216
15217         * gcc.c (struct switchstr): Expand comment.
15218
15219 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15220
15221         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
15222         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
15223
15224 2015-08-25  Richard Biener  <rguenther@suse.de>
15225
15226         PR middle-end/67306
15227         * genmatch.c (expr::gen_transform): Verify the result of
15228         builtin_decl_implicit.
15229         (dt_simplify::gen_1): Likewise.
15230
15231 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15232
15233         * config/arm/constraints.md: Also list Cs and US ARM-specific
15234         constraints as used.
15235
15236 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15237
15238         PR target/66609
15239         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
15240         UNSPEC_PCREL.
15241         (nonpic_symbol_mentioned_p): Likewise.
15242         (sh_delegitimize_address): Likewise.
15243         (sh_function_ok_for_sibcall): Take into account weak symbols.
15244         (sh_expand_sym_label2reg): New.
15245         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
15246         * config/sh/sh.md (UNSPEC_PCREL): New enum.
15247         (call_pcrel): Use sh_expand_sym_label2reg.
15248         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
15249         (symPCREL_label2reg) New expand.
15250
15251 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15252
15253         * graphite-poly.c: Change type of region from void* to sese.
15254         * graphite-poly.h (struct scop): Changing the type of scop::region
15255         from void* to sese. Change accessor macro accordingly.
15256         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
15257
15258 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15259
15260         * graphite-scop-detection.c (stmt_simple_for_scop_p):
15261         Constrain only on INTEGER_TYPE.
15262
15263 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15264
15265         PR target/67211
15266         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
15267         -mefficient-unaligned-vsx on ISA 2.7.
15268
15269         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
15270         option to a masked option.
15271
15272         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
15273         logic for -mefficient-unaligned-vsx so that it is set via an arch
15274         ISA option, instead of being set if -mtune=power8 is set. Move
15275         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
15276         near other default option handling.
15277
15278 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15279
15280         * genflags.c (gen_macro): Delete.
15281         (gen_proto): Don't create GEN.*CALL.* macros.
15282         * gensupport.h (get_file_location): Declare.
15283         * gensupport.c (rtx_locs): New variable.
15284         (read_md_rtx): Record rtx locations.
15285         (get_file_location): New function.
15286         * target-insns.def (call, call_pop, call_value, call_value_pop)
15287         (sibcall, sibcall_value): New patterns.
15288         * gentarget-def.c (parse_argument): New function.
15289         (def_target_insn): Use it.  Handle optional operands.  Raise an
15290         error if an .md pattern has the wrong number of operands for the
15291         pattern name.  Remove the names of unused operands from the prototype.
15292         * builtins.c (expand_builtin_apply): Use targetm functions
15293         instead of HAVE_call_value and GEN_CALL_VALUE.
15294         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
15295         and sibcall_value_pop.
15296         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
15297         of GEN_CALL.
15298         * config/alpha/alpha.md (untyped_call): Likewise.
15299         * config/iq2000/iq2000.md (untyped_call): Likewise.
15300         * config/m68k/m68k.md (untyped_call): Likewise.
15301         * config/mips/mips.md (untyped_call): Likewise.
15302         * config/pa/pa.md (untyped_call): Likewise.
15303         * config/rs6000/rs6000.md (untyped_call): Likewise.
15304         * config/sparc/sparc.md (untyped_call): Likewise.
15305         * config/tilegx/tilegx.md (untyped_call): Likewise.
15306         * config/tilepro/tilepro.md (untyped_call): Likewise.
15307         * config/visium/visium.md (untyped_call): Likewise.
15308         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
15309         gen_call_value instead of GEN_CALL_VALUE.
15310         * config/arm/arm.md (untyped_call): Likewise.
15311         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
15312         GEN_CALL.
15313
15314 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15315
15316         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
15317         (have_cbranchcc4): New variable.
15318         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
15319         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
15320         (if_convert): Initialize have_cbranchcc4.
15321
15322 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15323
15324         * builtins.c (expand_cmpstrn): Rename to...
15325         (expand_cmpstrn_or_cmpmem): ...this.
15326         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
15327         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
15328         Remove mode argument.
15329         (expand_builtin): Update accordingly.
15330
15331 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15332
15333         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
15334         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
15335         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
15336         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
15337         Add predicates for operands 0 and 3.
15338         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
15339         operand.
15340         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
15341         immediate_operand to nonmemory_operand.
15342
15343 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15344
15345         * df-scan.c (df_insn_info_init_fields): New function, split out
15346         from...
15347         (df_insn_create_insn_record): ...here.
15348         (df_insn_info_free_fields): New function, split out from...
15349         (df_insn_info_delete): ...here.
15350         (df_insn_rescan): Use the new functions instead of freeing and
15351         reallocating the df_insn_info.
15352
15353 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15354
15355         * doc/install.texi (Binaries): Remove links no longer valid.
15356
15357 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15358
15359         * config/nvptx/mkoffload.c (process): Replace
15360         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
15361
15362 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
15363
15364         PR target/67329
15365         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
15366
15367 2015-08-24  Renlin Li  <renlin.li@arm.com>
15368
15369         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
15370         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
15371         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
15372         * config/arm/constraints.md ("j"): Add check for high code.
15373
15374 2015-08-24  Tom de Vries  <tom@codesourcery.com>
15375
15376         PR tree-optimization/65468
15377         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
15378         chunk_size is one.
15379
15380 2015-08-24  Nathan Sidwell  <nathan@acm.org>
15381
15382         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
15383         change to nvptx_type_from_mode call. Use arg_promotion for both
15384         split and non-split args.
15385
15386 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15387
15388         * target-insns.def (movstr): New pattern.
15389         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
15390         (expand_movstr): Use targetm rather than HAVE_movstr/
15391         CODE_FOR_movstr.
15392
15393 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15394
15395         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
15396         cast syntax.
15397
15398 2015-08-24  Andrew Pinski  <apinski@cavium.com>
15399
15400         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
15401         AARCH64_EXTRA_TUNING_OPTION.
15402         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
15403         New enum.
15404         (aarch64_extra_tuning_flags): Base the shifted value on the index
15405         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
15406         * config/aarch64/aarch64.c: Remove the last argument to
15407         AARCH64_EXTRA_TUNING_OPTION.
15408
15409 2015-08-23  Nathan Sidwell  <nathan@acm.org>
15410
15411         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
15412         decls.
15413         (nvptx_declare_function_name): Insert formatting tabs for
15414         consistency.
15415
15416 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15417
15418         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
15419         parm_decl, rather than generating a dummy default def in cfun.
15420         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
15421         ssa_name from cfun and child_fn do not share a stmt as def stmt.
15422         (move_stmt_op): Handle PARM_DECl.
15423         (gather_ssa_name_hash_map_from): New function.
15424         (move_sese_region_to_fn): Add default defs for function params, and add
15425         them to vars_map.  Release copied ssa names.
15426         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
15427
15428 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15429
15430         * doc/sourcebuild.texi: Rename vect_no_int_max with
15431         vect_no_int_min_max.  Update description.
15432
15433 2015-08-22  Andrew Pinski  <apinski@cavium.com>
15434
15435          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
15436         * config/aarch64/aarch64-protos.h
15437         (aarch64_fusion_pairs_index): New enum.
15438         (aarch64_fusion_pairs): Base the shifted value on the index instead
15439         Rewrite AARCH64_FUSE_ALL to be based on the end index.
15440         of the argument to AARCH64_FUSION_PAIR.
15441         * config/aarch64/aarch64.c: Remove the last argument to
15442         AARCH64_FUSION_PAIR.
15443
15444 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
15445
15446         * dominance.c (new_zero_array): Define.
15447         (dom_info): Redefine as class with proper encapsulation.
15448         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
15449         Add new members.
15450         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
15451         allocations/deallocations.  Pass function as parameter (instead of
15452         using cfun).
15453         (dom_info::get_idom): Define accessor method.
15454         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
15455         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
15456         (calculate_dominance_info): Adjust to use dom_info class.
15457         (verify_dominators): Likewise.
15458
15459 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
15460
15461         * print-rtl.c (print_rtx): Check the correct range for
15462         flag_dump_unnumbered_links to behave as documented.
15463
15464         PR rtl-optimization/67227
15465         PR rtl-optimization/64164
15466         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
15467         (nonoverlapping_memrefs_p): Test offsets and sizes when given
15468         identical gimple_reg exprs.
15469
15470 2015-08-21  Nathan Sidwell  <nathan@acm.org>
15471
15472         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
15473         expansion.
15474         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
15475         crtl->stack_alignment_needed to determine alignment.
15476         (nvptx_get_drap_rtx): New.
15477         (TARGET_GET_DRAP_RTX): Override.
15478         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
15479
15480 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15481
15482         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
15483
15484 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15485
15486         * configure.ac: Remove uwin* cases.
15487         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
15488         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
15489         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
15490         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
15491         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
15492         i[34567]86-*-uwin*, powerpc-*-beos*.
15493
15494 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
15495
15496         * gencodes.c (gencodes): Print the comma for the preceding
15497         enum value rather than the current one.  Use aliased enum values
15498         rather than #defines for compiled-out patterns.
15499         (main): Update accordingly.  Replace LAST_INSN_CODE with
15500         NUM_INSN_CODES.
15501         * lra.c (insn_code_data): Update accordingly.
15502         (finish_insn_code_data_once, get_static_insn_data): Likewise.
15503         * recog.h (target_recog): Likewise.
15504         (preprocess_insn_constraints): Change parameter to unsigned int.
15505         * recog.c (preprocess_insn_constraints): Likewise.
15506         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
15507         * tree-vect-stmts.c (vectorizable_operation): Simplify.
15508
15509 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
15510
15511         PR rtl-optimization/61657
15512         * loop-iv.c (iv_number_of_iterations): Declare up and down as
15513         unsigned.  Remove superflous uint64_t cast.
15514
15515 2014-08-21  Felix Yang  <felix.yang@huawei.com>
15516             Jiji Jiang  <jiangjiji@huawei.com>
15517
15518         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
15519         argument and get builtin function code directly from CALL.
15520         (gimple_stringop_fixed_value): Modified accordingly.
15521         (gimple_stringops_transform, gimple_stringops_values_to_profile):
15522         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
15523
15524 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15525
15526         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
15527
15528 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15529
15530         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
15531         to match.pd.
15532         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
15533         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
15534         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
15535         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
15536         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
15537         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
15538         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
15539         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
15540         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
15541         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
15542
15543         * match.pd (SIN ) : New Operator.
15544         (TAN) : New Operator.
15545         (mult (SQRT@1 @0) @1) : New simplifier.
15546         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
15547         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15548         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15549         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
15550         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
15551         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
15552         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
15553         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
15554         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
15555         (rdiv @0 (POW:s @1 @2)) : New simplifier.
15556
15557 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
15558
15559         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
15560         loop if EXPR is simplified to const value.
15561
15562 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
15563
15564         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
15565         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
15566
15567 2015-08-21  Richard Biener  <rguenther@suse.de>
15568
15569         PR middle-end/67285
15570         * gimple-fold.c (replace_stmt_with_simplification): Assert
15571         seq is empty when replacing a call with itself but different
15572         arguments.
15573         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
15574         a call require that it is const.
15575
15576 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15577
15578         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
15579         * builtins.c (get_object_alignment_2): Adjust.
15580         * varasm.c (align_variable): Likewise.
15581         (get_variable_align): Likewise.
15582         (build_constant_desc): Likewise.
15583         (force_const_mem): Likewise.
15584         * doc/tm.texi.in: Likewise.
15585         * doc/tm.texi: Regenerate.
15586
15587 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15588
15589         * genconfig.c (main): Always define HAVE_cc0.
15590         * recog.c (rest_of_handle_peephole2): Adjust.
15591
15592 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15593
15594         * reorg.c (relax_delay_slots): Don't use #if to check value of
15595         HAVE_cc0.
15596
15597 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15598
15599         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
15600         * targhooks.c (default_have_conditional_execution): Adjust.
15601
15602 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15603
15604         * rtl.h (rtvec_all_equal_p): Declare.
15605         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
15606         * rtl.c (rtvec_all_equal_p): New function.
15607         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
15608         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
15609         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
15610         * config/arm/arm.c (neon_vdup_constant): Likewise.
15611         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
15612         * config/tilegx/constraints.md (W, Y): Likewise.
15613         * config/tilepro/constraints.md (W, Y): Likewise.
15614         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
15615         (classify_immediate): Use unwrap_const_vec_duplicate.
15616         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
15617         (reg_or_v2s8bit_operand): Likewise.
15618         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
15619         (reg_or_v4s8bit_operand): Likewise.
15620
15621 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15622
15623         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
15624         (vec_shasigma_be): New #define.
15625         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
15626         (VPMSUMH): Likewise.
15627         (VPMSUMW): Likewise.
15628         (VPMSUMD): Likewise.
15629         (VPMSUM): New BU_P8V_OVERLOAD_2.
15630         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
15631         entries for VEC_MADD and VEC_VPMSUM.
15632
15633 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
15634
15635         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
15636         Multiply argument avr_n_flash by 64 to match unit of "KiB".
15637         (avr_pgm_check_var_decl): Same.
15638
15639 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
15640
15641         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
15642         initialization of HFmode scalar type (float16_t) to...
15643         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
15644         code.
15645
15646         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
15647
15648         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
15649         having an -mfp16-format.
15650
15651 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15652
15653         * config/i386/predicates.md (vector_all_ones_operand): Use
15654         CONSTM1_RTX to simplify definition.
15655
15656 2015-08-20  Richard Biener  <rguenther@suse.de>
15657
15658         * toplev.c (compile_file): Remove loop calling late_global_decl
15659         on all symbols.
15660         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
15661         on decls we assembled.
15662
15663 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
15664
15665         * common/config/aarch64/aarch64-common.c
15666         (AARCH64_CPU_NAME_LENGTH): Delete.
15667         (aarch64_option_extension): New.
15668         (all_extensions): Likewise.
15669         (processor_name_to_arch): Likewise.
15670         (arch_to_arch_name): Likewise.
15671         (all_cores): New.
15672         (all_architectures): Likewise.
15673         (aarch64_get_extension_string_for_isa_flags): Likewise.
15674         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
15675         architecture names.
15676         * config/aarch64/aarch64-protos.h
15677         (aarch64_get_extension_string_for_isa_flags): New.
15678         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
15679         (aarch64_option_print): Get the string to print from
15680         aarch64_get_extension_string_for_isa_flags.
15681         (aarch64_declare_function_name): Likewise.
15682         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
15683         (MCPU_TO_MARCH_SPEC): This.
15684         (ASM_CPU_SPEC): Use it.
15685         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
15686         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
15687         (EXTRA_SPEC_FUNCTIONS): Use it.
15688
15689 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
15690
15691         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
15692         expansion when !ISA_HAS_LWL_LWR.
15693         (mips_block_move_straight): Update the size of elements copied to
15694         account for alignment when !ISA_HAS_LWL_LWR.
15695         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
15696
15697 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15698
15699         * expr.c (expand_expr_real_2): Check gimple statement during
15700         LSHIFT_EXPR expand.
15701
15702 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
15703
15704         * common.opt (fstack-protector): Initialize to -1.
15705         (fstack-protector-all): Likewise.
15706         (fstack-protector-strong): Likewise.
15707         (fstack-protector-explicit): Likewise.
15708         * configure.ac: Add --enable-default-ssp.
15709         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
15710         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
15711         -1.
15712         * doc/install.texi: Document --enable-default-ssp.
15713         * config.in: Regenerated.
15714         * configure: Likewise.
15715
15716 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
15717
15718         PR rtl-optimization/64164
15719         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
15720         (parm_in_stack_slot_p): ... this.  Disregard mode, what
15721         matters is whether the parm will live in a pseudo or a stack
15722         slot.
15723         (expand_one_ssa_partition): Deal with params without a default
15724         def.  Disregard mode.
15725         * cfgexpand.h: Renamed function declaration.
15726         * tree-ssa-coalesce.c: Adjust.
15727         * function.c (split_complex_args): Allocate stack slot for
15728         unassigned parms before splitting.
15729         (parm_in_unassigned_mem_p): New.  Use it instead of
15730         parm_maybe_byref_p throughout this file.
15731         (assign_parm_setup_block): Use it.  Accept pseudos in the
15732         expand-assigned rtl.
15733         (assign_parm_setup_reg): Drop BLKmode requirement.
15734         (assign_parm_setup_stack): Allocate and fill in the address of
15735         unassigned MEM parms.
15736
15737 2015-08-19  David Sherwood  <david.sherwood@arm.com>
15738
15739         * genmodes.c (emit_mode_unit_size_inline): New function.
15740         (emit_mode_unit_precision_inline): New function.
15741         (emit_insn_modes_h): Emit new #define.  Emit new functions.
15742         (emit_mode_unit_size): New function.
15743         (emit_mode_unit_precision): New function.
15744         (emit_mode_adjustments): Add mode_unit_size adjustments.
15745         (emit_insn_modes_c): Emit new arrays.
15746         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
15747         use new inline methods.
15748
15749 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15750
15751         * config/aarch64/aarch64.c (bit_count): Delete prototype
15752         and definition.
15753         (aarch64_print_operand): Use popcount_hwi instead of the above.
15754
15755 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15756
15757         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
15758         comment.
15759
15760 2015-08-19  Marek Polacek  <polacek@redhat.com>
15761
15762         PR middle-end/67133
15763         * gimple-ssa-isolate-paths.c
15764         (insert_trap_and_remove_trailing_statements): Rename to ...
15765         (insert_trap): ... this.  Don't remove trailing statements; split
15766         block instead.
15767         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
15768
15769 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
15770
15771         PR other/67042
15772         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
15773         conditionalize the whole on __GNUC__.  Add fallback code
15774         depending neither on undefined nor implementation-defined behaviour.
15775
15776 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15777
15778         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
15779         whitespaces with tab.
15780
15781 2015-08-19  Florian Weimer  <fweimer@redhat.com>
15782
15783         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
15784         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
15785         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
15786         Move Name_Ids instantiation to the Prj.Proc package, to avoid
15787         trampolines.
15788
15789 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15790
15791         * config/arm/arm.c (bounds_check): Use %wd print format
15792         for HOST_WIDE_INT arguments.
15793
15794 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
15795
15796         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
15797         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
15798         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
15799         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
15800         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
15801         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
15802         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
15803         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
15804         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
15805         typedefs.
15806
15807 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
15808
15809         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
15810         function.c, graphite-scop-detection.c, haifa-sched.c,
15811         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
15812         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
15813         varasm.c: Remove typedefs of structs.
15814
15815 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
15816
15817         * config/rs6000/altivec.h (vec_adde): New define.
15818         (vec_addec): Likewise.
15819         (vec_double): Likewise.
15820         (vec_bperm): Likewise.
15821         (vec_gb): Likewise.
15822         * config/rs6000/rs6000-builtin.def (ADDE): New
15823         BU_ALTIVEC_OVERLOAD_3.
15824         (ADDEC): Likewise.
15825         (DOUBLE): New BU_VSX_OVERLOAD_1.
15826         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
15827         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
15828         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
15829         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
15830         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
15831         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
15832         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
15833         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
15834         and P8V_BUILTIN_VEC_VBPERMQ.
15835
15836 2015-08-18  Jason Merrill  <jason@redhat.com>
15837
15838         * print-tree.c (print_node): Handle TREE_BINFO.
15839
15840 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15841
15842         PR middle-end/36757
15843         * builtins.c (expand_builtin_signbit): Add asserts to make sure
15844         we can expand BUILT_IN_SIGNBIT inline.
15845         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
15846         * doc/extend.texi: Document the type-generic __builtin_signbit.
15847
15848 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
15849
15850         PR rtl-optimization/67218
15851         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
15852         (simplify_unary_operation_1): Use it.
15853
15854 2015-08-18  Marek Polacek  <polacek@redhat.com>
15855
15856         PR middle-end/67222
15857         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
15858         if the call isn't valid.
15859         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
15860         gimple_call_builtin_p.
15861         (call_may_clobber_ref_p_1): Likewise.
15862         (stmt_kills_ref_p): Likewise.
15863
15864 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
15865
15866         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
15867         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
15868         (mips_hard_regno_scratch_ok): Likewise.
15869         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
15870         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
15871
15872 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
15873
15874         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
15875         (determine_value_range): Call refine_value_range_using_guard for
15876         each loop initial condition to improve value range.
15877
15878 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
15879
15880         * config/i386/i386.c: Remove include of fibheap.h.
15881
15882 2015-08-17  Richard Biener  <rguenther@suse.de>
15883
15884         PR tree-optimization/67221
15885         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
15886         (sccvn_dom_walker::before_dom_children): Mark backedges of
15887         non-executable blocks as not executable.
15888
15889 2015-08-17  David Sherwood  <david.sherwood@arm.com>
15890
15891         * config/arm/arm.c (neon_element_bits): Replace call to
15892         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
15893         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
15894         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
15895         (neon_vdup_lane<mode>): Likewise.
15896         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
15897         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
15898         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
15899         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15900         * config/spu/spu.c (arith_immediate_p): Likewise.
15901         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
15902         * expr.c (expand_expr_real_2): Likewise.
15903         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
15904         * simplify-rtx.c (simplify_immed_subreg): Likewise.
15905         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
15906         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
15907         New variable.
15908         * fold-const.c (fold_binary_loc): Replace call to
15909         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
15910         GET_MODE_UNIT_PRECISION (m).
15911
15912 2015-08-17  Mike Stump  <mikestump@comcast.net>
15913
15914         * config/arm/arm.c (arm_block_move_unaligned_straight):
15915         Emit normal move instead of unaligned load when source or destination
15916         are appropriately aligned.
15917
15918 2015-08-17  Richard Biener  <rguenther@suse.de>
15919             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15920
15921         PR middle-end/16107
15922         * match.pd (div (coss (op @0) : New simplifier.
15923
15924 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
15925
15926         PR rtl-optimization/64164
15927         PR bootstrap/66978
15928         PR middle-end/66983
15929         PR rtl-optimization/67000
15930         PR middle-end/67034
15931         PR middle-end/67035
15932         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
15933         * tree-ssa-copyrename.c: Removed.
15934         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
15935         -ftree-coalesce-vars.
15936         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
15937         * common.opt (ftree-copyrename): Ignore.
15938         (ftree-coalesce-inlined-vars): Likewise.
15939         * doc/invoke.texi: Remove the ignored options above.
15940         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
15941         * tree-ssa-coalesce.h: ... here.
15942         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
15943         headers required by it.
15944         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
15945         across variables when flag_tree_coalesce_vars.  Check register
15946         use and promoted modes to allow coalescing.  Do not coalesce
15947         maybe-byref parms with SSA_NAMEs of other variables, or
15948         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
15949         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
15950         with its member functions to tree-ssa-coalesce.c.
15951         (var_map_base_init): Likewise.  Renamed to
15952         compute_samebase_partition_bases.
15953         (partition_view_normal): Drop want_bases parameter.
15954         (partition_view_bitmap): Likewise.
15955         * tree-ssa-live.h: Adjust declarations.
15956         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
15957         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
15958         default defs at the entry point.
15959         (dump_part_var_map): New.
15960         (compute_optimized_partition_bases): New, called by...
15961         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
15962         of compute_samebase_partition_bases.  Adjust.
15963         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
15964         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
15965         (ssa_default_def_partition): New.
15966         (get_rtl_for_parm_ssa_default_def): New.
15967         (align_local_variable, add_stack_var): Support anonymous SSA
15968         names.
15969         (defer_stack_allocation): Likewise.  Declare earlier.
15970         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
15971         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
15972         Do no record deferred-allocation marker in
15973         SA.partition_to_pseudo.
15974         (expand_stack_vars): Adjust check for the marker in it.
15975         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
15976         redundant MEM attr setting.
15977         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
15978         from...
15979         (expand_one_stack_var): ... this.  New wrapper to check and
15980         skip already expanded SSA partitions.
15981         (record_alignment_for_reg_var): New, factored out of...
15982         (expand_one_var): ... this.
15983         (expand_one_ssa_partition): New.
15984         (adjust_one_expanded_partition_var): New.
15985         (expand_one_register_var): Check and skip already expanded SSA
15986         partitions.
15987         (expand_used_vars): Don't create DECLs for anonymous SSA
15988         names.  Expand all SSA partitions, then adjust all SSA names.
15989         (pass::execute): Replace the loops that set
15990         SA.partition_to_pseudo from partition leaders and cleared
15991         DECL_RTL for multi-location variables, and that which used to
15992         rename vars and set attrs, with one that clears DECL_RTL and
15993         checks that PARMs and RESULTs default_defs match DECL_RTL.
15994         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
15995         * emit-rtl.c: Include stor-layout.h.
15996         (set_reg_attrs_for_parm): Handle NULL decl.
15997         (set_reg_attrs_for_decl_rtl): Take mode from expression if
15998         it's not a DECL.
15999         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
16000         rather than its possibly-NULL DECL.
16001         * explow.c (promote_ssa_mode): New.
16002         * explow.h (promote_ssa_mode): Declare.
16003         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16004         (read_complex_part): Export.
16005         * expr.h (read_complex_part): Declare.
16006         * cfgexpand.h (parm_maybe_byref_p): Declare.
16007         * function.c: Include cfgexpand.h.
16008         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16009         (use_register_for_parm_decl): Wrapper for the above to
16010         special-case the result_ptr.
16011         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16012         (split_complex_args): Take assign_parm_data_all argument.
16013         Pass it to rtl_for_parm.  Set up rtl and context for split
16014         args.  Reset complex parm before fetching its default decl
16015         rtl.
16016         (assign_parms_unsplit_complex): Use the default-def complex
16017         parm rtl if it matches the components.
16018         (assign_parms_augmented_arg_list): Adjust.
16019         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16020         multiple locations.  Recognize split complex args.
16021         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16022         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16023         (assign_parm_setup_block): Prefer SSA-assigned location, and
16024         fill in its address if the memory location of a maybe-byref
16025         parm was not assigned by cfgexpand.
16026         (assign_parm_setup_reg): Likewise.  Adjust its mode as
16027         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
16028         sure passed_pointer parms don't need conversion.  Copy address
16029         or value as needed.
16030         (assign_parm_setup_stack): Prefer SSA-assigned location.
16031         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16032         rtl before testing for pointer bounds.  Special-case result_ptr.
16033         (expand_function_start): Maybe reset DECL_RTL of result.
16034         Prefer SSA-assigned location for result and static chain.
16035         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
16036         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
16037         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16038         anonymous SSA names.  Use promote_ssa_mode.
16039         (get_temp_reg): Likewise.
16040         (remove_ssa_form): Adjust.
16041         * stor-layout.c (layout_decl): Don't set mem attributes of
16042         non-MEMs.
16043         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16044         and get its reg_usage for reg invalidation.
16045         (compute_bb_dataflow): Pass it insn.
16046         (emit_notes_in_bb): Likewise.
16047
16048 2015-08-14  Marek Polacek  <polacek@redhat.com>
16049
16050         * tree-core.h (tree_base): Fix typo.
16051
16052 2015-08-14  Marek Polacek  <polacek@redhat.com>
16053
16054         PR middle-end/67133
16055         * gimple.c (infer_nonnull_range_by_attribute): Check that the
16056         nonnull argument position is not outside function arguments.
16057
16058 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
16059
16060         PR target/67143
16061         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
16062         'lconst_atomic' with 'const_atomic'.
16063         (atomic_fetch_<optab><mode>): Likewise.
16064         (atomic_<optab>_fetch<mode>): Likewise.
16065         * config/aarch64/iterators.md (lconst-atomic): Move below
16066         'const_atomic'.
16067         (const_atomic): New.
16068
16069 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
16070             Bernd Schmidt  <bernds@codesourcery.com>
16071
16072         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
16073         debug options.
16074         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
16075         (DWARF2_DEBUGGING_INFO): Don't define.
16076         * debug.h (dwarf2_lineno_debug_hooks): Declare.
16077         * toplev.c (process_options): Add a case for it.
16078         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
16079         (dwarf2out_init): Skip most initializations if
16080         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
16081         case.
16082         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
16083         DWARF2_LINENO_DEBUGGING_INFO.
16084         * opts.c (set_debug_level): Likewise.
16085
16086 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
16087
16088         * config/arm/types.md (is_neon_type): Add missing types.
16089
16090 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
16091
16092         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
16093         for skylake.
16094         * config/i386/i386.c (PTA_SKYLAKE): New macros.
16095         (processor_alias_table): Add skylake description.
16096         (enum processor_model): Add skylake processor.
16097         (arch_names_table): Add skylake record.
16098         * doc/invoke.texi: Add skylake item.
16099
16100 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
16101
16102         * ira-int.h: Include recog.h.
16103         * ira-build.c: Don't include recog.h.
16104         * ira-color.c: Likewise.
16105         * ira-conflicts.c: Likewise.
16106         * ira-costs.c: Likewise.
16107         * ira-emit.c: Likewise.
16108         * ira-lives.c: Likewise.
16109         * ira.c: Likewise.
16110         * sched-deps.c: Likewise.
16111         * sel-sched.c: Likewise.
16112         * target-globals.c: Likewise.
16113
16114 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
16115
16116         PR bootstrap/55035
16117         * reload1.c (elimination_costs_in_insn): Make it obvious to the
16118         compiler that the n_dups and n_operands loop bounds are invariant.
16119
16120 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16121
16122         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
16123         expressions in A and B.
16124
16125 2015-08-13  Richard Biener  <rguenther@suse.de>
16126
16127         * tree.c (nonnull_arg_p): Move from ...
16128         * tree-vrp.c (nonnull_arg_p): ... here.
16129         * tree.h (nonnull_arg_p): Declare.
16130         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
16131         here, register ptr != 0 for nonnull_arg_p pointer arguments.
16132         Properly initialize static chain and by-reference result pointer.
16133         (run_scc_vn): Adjust.
16134
16135 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16136
16137         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
16138         TUNE_I6400.
16139
16140 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16141
16142         * config/aarch64/aarch64-protos.h
16143         (aarch64_gen_atomic_cas): Declare.
16144         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
16145         Choose appropriate instruction pattern for the target.
16146         (aarch64_gen_atomic_cas): New.
16147         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
16148         (atomic_compare_and_swap<mode>_1): Rename to
16149         aarch64_compare_and_swap<mode>.  Fix some indentation.
16150         (aarch64_compare_and_swap<mode>_lse): New.
16151         (aarch64_atomic_cas<mode>): New.
16152
16153 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16154
16155         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
16156         (TARGET_LSE): New.
16157
16158 2015-08-13  Richard Biener  <rguenther@suse.de>
16159
16160         PR tree-optimization/67191
16161         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
16162         assert we value-numbered last stmts operand because it can validly
16163         trigger for unreachable code.
16164
16165 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16166
16167         PR rtl-optimization/67103
16168         * ifcvt.c (noce_try_store_flag_constants): Move
16169         x = (-(test != 0) & (b - a)) + a transformation to...
16170         (noce_try_cmove): ... Here.  Try it if normal conditional
16171         move fails.
16172
16173 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16174
16175         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
16176         pseudo-processors.
16177         * config/mips/mips.md (processor): Remove w32 and w64.
16178
16179 2015-08-13  Richard Biener  <rguenther@suse.de>
16180
16181         PR tree-optimization/66502
16182         PR tree-optimization/67167
16183         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
16184         backedge arguments.
16185         (vn_phi_lookup): Adjust.
16186         (vn_phi_insert): Likewise.
16187         (visit_phi): Prefer to value-number to another PHI node
16188         over value-numbering to a PHI argument.
16189         (init_scc_vn): Mark DFS back edges.
16190
16191 2015-08-13  Richard Biener  <rguenther@suse.de>
16192
16193         * gimple.h (gcall::code_): New constant static member.
16194         (gcond::code_): Likewise.
16195         * gimple.c (gcall::code_): Define.
16196         (gcond::code_): Likewise.
16197         (is_a_helper <const gcond *>): Add.
16198         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
16199         and forward to a new gcall overload with less checking and a
16200         cheaper way to access the operand.
16201         (gimple_call_lhs_ptr): Likewise.
16202         (gimple_call_set_lhs): Likewise.
16203         (gimple_call_internal_p): Likewise.
16204         (gimple_call_with_bounds_p): Likewise.
16205         (gimple_call_set_with_bounds): Likewise.
16206         (gimple_call_internal_fn): Likewise.
16207         (gimple_call_set_ctrl_altering): Likewise.
16208         (gimple_call_ctrl_altering_p): Likewise.
16209         (gimple_call_fntype): Likewise.
16210         (gimple_call_fn): Likewise.
16211         (gimple_call_fn_ptr): Likewise.
16212         (gimple_call_set_fndecl): Likewise.
16213         (gimple_call_fndecl): Likewise.
16214         (gimple_call_chain): Likewise.
16215         (gimple_call_num_args): Likewise.
16216         (gimple_call_arg): Likewise.
16217         (gimple_call_arg_ptr): Likewise.
16218         (gimple_call_set_arg): Likewise.
16219         (gimple_call_noreturn_p): Likewise.
16220         (gimple_cond_code): Likewise.
16221         (gimple_cond_lhs): Likewise.
16222         (gimple_cond_rhs): Likewise.
16223         (gimple_has_lhs): Reduce checking.
16224
16225 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16226
16227         PR middle-end/25529
16228         * match.pd (div (mult @0 @1) @1) : New simplifier.
16229
16230 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
16231
16232         PR target/67071
16233         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
16234         predicate to allow construction of vector constants using the
16235         VSLDOI vector shift instruction.
16236
16237         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
16238         declaration.
16239
16240         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
16241         the number of bytes to be shifted left and filled in with either
16242         all zero or all one bits.
16243         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
16244         methods exist.
16245         (output_vec_const_move): On power8, generate XXLORC to generate
16246         a vector constant with all 1's. Do a split if we need to use a
16247         VSLDOI instruction.
16248
16249         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
16250         properly test for the MSB.
16251
16252         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
16253         vector constants that can be created with VSLDOI.
16254
16255 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16256
16257         revert:
16258         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16259         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16260         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16261         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16262         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16263         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16264         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16265         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16266         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16267
16268 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
16269
16270         * config/xtensa/constraints.md (define_constraint "Y"): New
16271         constraint.
16272         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
16273         * config/xtensa/linux.h (ASM_SPEC): Likewise.
16274         * config/xtensa/predicates.md (move_operand): Match constants
16275         and symbols in the presence of TARGET_AUTO_LITPOOLS.
16276         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
16277         immediate references to TLS data.
16278         (xtensa_emit_move_sequence): Don't force constants to memory in
16279         the presence of TARGET_AUTO_LITPOOLS.
16280         (print_operand): Add 'y' format, same as default, but capable of
16281         printing SF mode constants as well.
16282         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
16283         (movsf_internal): Add movi pattern that loads literal.
16284         (movsf, movdf): Don't force constants to memory in the presence
16285         of TARGET_AUTO_LITPOOLS.
16286         (movdf_internal): Add 'Y' constraint.
16287         * config/xtensa/xtensa.opt (mauto-litpools): New option.
16288         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
16289
16290 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16291
16292         * config/arm/arm-fpus.def: Replace booleans with feature flags.
16293         Update comment.
16294         * config/arm/arm.c (ARM_FPU): Update macro.
16295         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
16296         (TARGET_FP16): Likewise.
16297         (TARGET_CRYPTO): Likewise.
16298         (TARGET_NEON): Likewise.
16299         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
16300         field features.
16301
16302 2015-08-12  Tom de Vries  <tom@codesourcery.com>
16303
16304         PR other/67092
16305         PR other/67098
16306         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
16307         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
16308         accordingly.  Mention default for --with-stage1-ldflags.
16309
16310 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16311
16312         * config/arm/arm.h (arm_fpu_feature_set): New.
16313         (ARM_FPU_FSET_HAS): New.
16314         (FPU_FL_NONE): New.
16315         (FPU_FL_NEON): New.
16316         (FPU_FL_FP16): New.
16317         (FPU_FL_CRYPTO): New.
16318
16319 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16320
16321         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
16322         after -mcmodel=large -fPIC sorry.
16323
16324 2015-08-12  Richard Biener  <rguenther@suse.de>
16325
16326         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
16327         comparison operand order and commutative ternary op operand order.
16328         (sccvn_dom_walker::cond_stack): New state to track temporary
16329         expressions.
16330         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
16331         no longer valid.
16332         (sccvn_dom_walker::record_cond): Add a single temporary conditional
16333         expression.
16334         (sccvn_dom_walker::record_conds): Add a temporary conditional
16335         expressions and all related expressions also true/false.
16336         (sccvn_dom_walker::before_dom_children): Record temporary
16337         expressions based on the controlling condition of a single
16338         predecessor.  When trying to simplify a conditional statement
16339         lookup expressions we might have inserted earlier.
16340
16341 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
16342
16343         PR target/67127
16344         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
16345         to ARM core registers.
16346
16347 2015-08-12  Nathan Sidwell  <nathan@acm.org>
16348
16349         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
16350         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
16351
16352 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
16353
16354         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
16355         line with comments.
16356         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
16357
16358 2015-08-12  Richard Biener  <rguenther@suse.de>
16359
16360         * gimple.h (remove_pointer): New trait.
16361         (GIMPLE_CHECK2): New inline template function.
16362         (gassign::code_): New constant static member.
16363         (is_a_helper<const gassign *>): Add.
16364         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
16365         and forward to a new gassign overload with less checking and a
16366         cheaper way to access the operand.
16367         (gimple_assign_lhs_ptr): Likewise.
16368         (gimple_assign_set_lhs): Likewise.
16369         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
16370         Likewise.
16371         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
16372         Likewise.
16373         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
16374         Likewise.
16375         (gimple_assign_rhs_code): Likewise.
16376         * gimple.c (gassign::code_): Define.
16377
16378 2015-08-12  Richard Biener  <rguenther@suse.de>
16379
16380         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16381         Eliminate edges marked as not executable by SCCVN.
16382         * tree-ssa-sccvn.c: Include gimple-iterator.h.
16383         (cond_dom_walker): Rename to sccvn_dom_walker.
16384         (sccvn_dom_walker::before_dom_children): Value-number defs
16385         of all stmts.
16386         (run_scc_vn): Remove loop value-numbering all SSA names.
16387         Drop not visited SSA names to varying.
16388
16389 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16390
16391         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16392         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16393         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16394         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16395         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16396         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16397         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16398         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16399         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16400
16401 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
16402
16403         PR target/66954
16404         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
16405         to enum feature_priority and feature_list.
16406         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
16407         and isa_names_table.
16408
16409 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16410
16411         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
16412         vect_induction_def.
16413
16414 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16415
16416         PR c/66098
16417         PR c/66711
16418         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
16419         account when deciding what was the command-line status.
16420
16421 2015-08-11  Nathan Sidwell  <nathan@acm.org>
16422
16423         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
16424
16425         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
16426         we're not the only contributor to target phi.
16427
16428 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
16429
16430         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
16431         FIXED_REG0.
16432
16433 2015-08-11  Tom de Vries  <tom@codesourcery.com>
16434
16435         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
16436
16437 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
16438
16439         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
16440         with CPU_SLM.
16441         * config/i386/i386.md (cpu): Remove knl.
16442
16443 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16444
16445         PR libgomp/65742
16446         PR middle-end/66332
16447         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
16448         open-coded sequence.
16449         * omp-low.c (oacc_process_reduction_data): Remove handline of
16450         GOMP_DEVICE_HOST_NONSHM.
16451
16452         * lto-streamer-in.c (lto_input_mode_table): Adjust to
16453         GET_MODE_INNER changes.
16454
16455 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16456             Ilya Verbin  <ilya.verbin@intel.com>
16457
16458         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
16459
16460 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16461
16462         * doc/options.texi (EnabledBy): Document that the argument must be
16463         a Common option.
16464         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
16465         Not enabled by -Wall.
16466         * optc-gen.awk: Give nicer error messages. Detect if the argument
16467         of EnabledBy is not a Common option.
16468         * common.opt (Wnull-dereference): Not enabled by -Wall.
16469         * opt-functions.awk (lang_enabled_by): Nicer error messages.
16470
16471 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16472
16473         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
16474         model == 0x4f as Broadwell.
16475
16476 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
16477
16478         PR rtl-optimization/67028
16479         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
16480         Add test to see if a const_int fits in the new mode.
16481
16482 2015-08-07  DJ Delorie  <dj@redhat.com>
16483
16484         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
16485
16486 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
16487
16488         PR rtl-optimization/67029
16489         * ira-color.c: Include "recog.h" before including "ira-int.h".
16490         * target-globals.c: Likewise.
16491         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
16492         adds an alternative_mask argument and use it instead of
16493         preferred_alternatives.
16494         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
16495         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
16496         * sched-deps.c: Include "ira-int.h" after including "ira.h".
16497         (sched_analyze_insn): Update call to
16498         ira_implicitly_set_insn_hard_regs.
16499         * sel-sched.c: Include "ira-int.h" after including "ira.h".
16500         (implicit_clobber_conflict_p): Update call to
16501         ira_implicitly_set_insn_hard_regs.
16502
16503 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16504
16505         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
16506
16507 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16508
16509         PR target/67002
16510         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
16511         currently_expanding_to_rtl is set.
16512
16513 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
16514
16515         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
16516         * configure: Regenerate.
16517
16518 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16519             Jiong Wang  <jiong.wang@arm.com>
16520
16521         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
16522         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
16523         (REG_CLASS_NAMES): Likewise.
16524         (REG_CLASS_CONTENTS): Likewise.
16525         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
16526         (aarch64_register_move_cost): Likewise.
16527         (aarch64_load_symref_appropriately): Invoke the new added pattern if
16528         possible.
16529         * config/aarch64/constraints.md (Uc0): New constraint.
16530
16531 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16532
16533         * config/aarch64/constraints.md (Usf): Add the test of
16534         aarch64_is_noplt_call_p.
16535
16536 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16537
16538         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
16539         declaration.
16540         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
16541         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
16542         (call_symbol): Likewise.
16543
16544 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
16545
16546         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
16547         for vectorizing multiplication patterns.
16548         * tree-vectorizer.h: Adjust the number of patterns.
16549
16550 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16551
16552         * config/i386/sse.md (*vec_concatv2df): Declare added
16553         alternatives as sselog type.
16554
16555 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16556
16557         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
16558         all GPRs.
16559
16560 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16561
16562         * config/s390/s390.c (s390_expand_tbegin): Expand either
16563         tbegin_1_z13 or tbegin_1 depending on VX flag.
16564         * config/s390/s390.md ("tbegin_1_z13"): New expander.
16565
16566 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16567
16568         * config/s390/s390.opt: Clarify description for -mzvector
16569         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
16570         -mzvector.
16571
16572 2015-08-06  Richard Biener  <rguenther@suse.de>
16573
16574         * gimple.h (gimple_call_set_fn): Access op member directly.
16575         (gimple_call_chain_ptr): Likewise.
16576         (gimple_call_set_chain): Likewise.
16577         (gimple_cond_lhs_ptr): Likewise.
16578         (gimple_cond_set_lhs): Likewise.
16579         (gimple_cond_rhs_ptr): Likewise.
16580         (gimple_cond_set_rhs): Likewise.
16581         (gimple_cond_true_label): Likewise.
16582         (gimple_cond_set_true_label): Likewise.
16583         (gimple_cond_set_false_label): Likewise.
16584         (gimple_cond_false_label): Likewise.
16585         (gimple_label_label): Likewise.
16586         (gimple_label_set_label): Likewise.
16587         (gimple_goto_set_dest): Likewise.
16588         (gimple_asm_input_op): Likewise.
16589         (gimple_asm_input_op_ptr): Likewise.
16590         (gimple_asm_set_input_op): Likewise.
16591         (gimple_asm_output_op): Likewise.
16592         (gimple_asm_output_op_ptr): Likewise.
16593         (gimple_asm_set_output_op): Likewise.
16594         (gimple_asm_clobber_op): Likewise.
16595         (gimple_asm_set_clobber_op): Likewise.
16596         (gimple_asm_label_op): Likewise.
16597         (gimple_asm_set_label_op): Likewise.
16598         (gimple_switch_index): Likewise.
16599         (gimple_switch_index_ptr): Likewise.
16600         (gimple_return_retval_ptr): Likewise.
16601         (gimple_return_retval): Likewise.
16602         (gimple_return_set_retval): Likewise.
16603         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
16604         (gimple_switch_label): Likewise.
16605         (gimple_switch_set_label): Likewise.
16606
16607 2015-08-06  Richard Biener  <rguenther@suse.de>
16608
16609         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
16610         bool comparison canonicalization and restrict to integers.
16611
16612 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
16613
16614         * coretypes.h (enum symbol_visibility): Relocate here.
16615         * flag-types.h (enum symbol_visibility): Remove.
16616         * tree-core.h (enum symbol_visibility): Remove.
16617
16618 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
16619
16620         PR target/66870
16621         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
16622         for no_split_stack function attribute along with
16623         flag_split_stack.
16624         (rs6000_expand_split_stack_prologue): Likewise.
16625
16626 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16627             Jeff Law  <law@redhat.com>
16628
16629         PR c/16351
16630         * doc/invoke.texi (Wnull-dereference): New.
16631         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
16632         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
16633         Warn for potential NULL dereferences.
16634         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
16635         * ubsan.c (instrument_nonnull_arg): Call
16636         infer_nonnull_range_by_attribute.
16637         (instrument_nonnull_return): Likewise.
16638         * common.opt (Wnull-dereference); New.
16639         * gimple.c (infer_nonnull_range): Remove bool arguments.
16640         (infer_nonnull_range_by_dereference): New.
16641         (infer_nonnull_range_by_attribute): New.
16642         * gimple.h: Update declarations.
16643
16644 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16645
16646         * gensupport.c (sequence_num): Replace with...
16647         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
16648         ...these new variables.
16649         (init_rtx_reader_args_cb): Update accordingly.
16650         (get_num_code_insns): Likewise.
16651         (read_md_rtx): Rework to use a while loop and get_c_test.
16652         Use the new counters.  Remove redundant DEFINE_SUBST case.
16653         * genoutput.c (gen_split): Delete.
16654         (main): Don't call it.
16655
16656 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16657
16658         * gensupport.h (get_c_test): Declare.
16659         * gensupport.c (get_c_test): New function.
16660         * genconditions.c (main): Use it.
16661         * genrecog.c (validate_pattern): Likewise.
16662         (match_pattern_1): Likewise.  Remove c_test argument.
16663         (match_pattern): Update accordingly and remove c_test argument.
16664         (main): Update accordingly.
16665
16666 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16667
16668         * gensupport.h (get_num_insn_codes): Declare.
16669         * gensupport.c (get_num_insn_codes): New function.
16670         * genattrtab.c (optimize_attrs): Rename max_insn_code to
16671         num_insn_codes.
16672         (main): Likewise.  Use get_num_insn_codes.
16673         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
16674
16675 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16676
16677         PR middle-end/66311
16678         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
16679         is zero- rather than sign-extended.
16680
16681 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16682
16683         * target-insns.def (can_extend): Delete.
16684
16685 2015-08-05  Richard Biener  <rguenther@suse.de>
16686
16687         PR tree-optimization/67121
16688         * tree-if-conv.c (combine_blocks): Clear range-info produced
16689         by stmts no longer executed conditionally.
16690
16691 2015-08-05  Nick Clifton  <nickc@redhat.com>
16692
16693         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
16694         to allow identical far pointers to remain.
16695
16696 2015-08-05  Richard Biener  <rguenther@suse.de>
16697
16698         PR middle-end/67120
16699         * match.pd: Compare address bases with == if they are decls
16700         or SSA names, not operand_equal_p.  Otherwise fail.
16701
16702 2015-08-05  Richard Biener  <rguenther@suse.de>
16703
16704         PR tree-optimization/67055
16705         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
16706         NULL gimple_block.
16707
16708         * g++.dg/torture/pr67055.C: New testcase.
16709
16710 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16711
16712         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
16713         noavx512vl.
16714         (define_attr "enabled"): Handle avx521vl and noavx512vl.
16715         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
16716         AVX-512 alternative out of SSE.
16717         (define_insn "*vec_concatv2df"): Ditto.
16718
16719 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16720
16721         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
16722         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
16723         CODE_FOR_avx_ptestv4di.
16724         * config/i386/sse.md (define_mode_iterator V_AVX): New.
16725         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
16726         (define_insn "avx_ptest256"): Merge this ...
16727         (define_insn "sse4_1_ptest"): And this ...
16728         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
16729
16730 2015-08-05  Richard Biener  <rguenther@suse.de>
16731
16732         PR tree-optimization/67109
16733         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
16734         against too big groups.  Print whether this is a load or store
16735         group.  Rename from ...
16736         (vect_analyze_group_access): ... this which is now a wrapper
16737         dissolving an invalid group.
16738         (vect_analyze_data_ref_accesses): Print whether this is a load
16739         or store group.
16740
16741 2015-08-05  Richard Biener  <rguenther@suse.de>
16742
16743         PR middle-end/67107
16744         * match.pd: Guard const_binop result checking against NULL_TREE
16745         result.
16746
16747 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
16748
16749         * cse.c (cse_insn): Restoring old behaviour for src_eqv
16750          when dest and value in the REG_EQUAL are same and dest
16751          is STRICT_LOW_PART.
16752
16753 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
16754
16755         * config/moxie/moxie.h (PRINT_OPERAND,
16756           PRINT_OPERAND_ADDRESS): Remove macros.
16757         * config/moxie/moxie-protos.h (moxie_print_operand,
16758           moxie_print_operand_address): Remove declaration.
16759         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
16760           TARGET_PRINT_OPERAND_ADDRESS): Define.
16761           (moxie_print_operand, moxie_print_operand_address): Make static.
16762
16763 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16764
16765         PR target/66731
16766         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
16767         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
16768
16769 2015-08-04  Richard Biener  <rguenther@suse.de>
16770
16771         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
16772         generated code.
16773         (dt_operand::gen_gimple_expr): Adjust.
16774
16775 2015-08-04  Richard Biener  <rguenther@suse.de>
16776
16777         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
16778         bool compares on RHS.
16779         * match.pd: Add X ==/!= !X is false/true pattern.
16780
16781 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
16782
16783         * config/aarch64/aarch64.c: Change inner loop statement cost
16784         to be consistent with other targets.
16785
16786 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
16787
16788         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
16789         targets.
16790
16791 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
16792
16793         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
16794         (machine_function): Remove pseudos field.
16795
16796 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16797
16798         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16799         Exit early and use target_option_current_node if processing current
16800         pragma.
16801
16802 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16803
16804         * doc/extend.texi (AArch64 Function Attributes): New node.
16805         (AArch64 Pragmas): Likewise.
16806
16807 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16808
16809         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16810         Initialize simd builtins if TARGET_SIMD.
16811         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16812         Make sure that the builtins are initialized only once no matter how
16813         many times the function is called.
16814         (aarch64_init_builtins): Unconditionally initialize crc builtins.
16815         (aarch64_relayout_simd_param): New function.
16816         (aarch64_simd_expand_args): Use above during argument expansion.
16817         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
16818         simd builtins if TARGET_SIMD.
16819         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
16820         prototype.
16821         (aarch64_relayout_simd_types): Likewise.
16822
16823 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16824
16825         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
16826         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
16827         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
16828         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16829         static keyword.
16830         (aarch64_reset_previous_fndecl): New function.
16831         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
16832         the string.
16833         * config/aarch64/aarch64-c.c: New file.
16834         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
16835         Push and pop options at beginning and end.  Remove ifdef
16836         __ARM_FEATURE_CRC32.
16837         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
16838         Add pragma +nothing+simd and +nothing+crypto where appropriate.
16839         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
16840         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
16841         Define prototype.
16842         (aarch64_register_pragmas): Likewise.
16843         (aarch64_reset_previous_fndecl): Likewise.
16844         (aarch64_process_target_attr): Likewise.
16845         (aarch64_override_options_internal): Likewise.
16846
16847 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16848
16849         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
16850         New function.
16851         (aarch64_can_inline_p): Likewise.
16852         (TARGET_CAN_INLINE_P): Define.
16853
16854 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16855
16856         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16857         Remove static.  Handle OPT_mgeneral_regs_only,
16858         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
16859         OPT_momit_leaf_frame_pointer.
16860         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
16861         (aarch64_attr_opt_type): New enum.
16862         (aarch64_attribute_info): New struct.
16863         (aarch64_handle_attr_arch): New function.
16864         (aarch64_handle_attr_cpu): Likewise.
16865         (aarch64_handle_attr_tune): Likewise.
16866         (aarch64_handle_attr_isa_flags): Likewise.
16867         (aarch64_attributes): New table.
16868         (aarch64_process_one_target_attr): New function.
16869         (num_occurences_in_str): Likewise.
16870         (aarch64_process_target_attr): Likewise.
16871         (aarch64_option_valid_attribute_p): Likewise.
16872         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
16873         * config/aarch64/aarch64-protos.h: Include input.h
16874         (aarch64_handle_option): Declare prototype.
16875
16876 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16877
16878         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
16879         * config/aarch64/aarch64.c: Include target-globals.h
16880         (aarch64_previous_fndecl): New variable.
16881         (aarch64_set_current_function): New function.
16882         (TARGET_SET_CURRENT_FUNCTION): Define.
16883
16884 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16885
16886         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
16887         (explicit_arch): Likewise.
16888         (x_aarch64_isa_flags): Likewise.
16889         (mgeneral-regs-only): Mark as Save.
16890         (mfix-cortex-a53-835769): Likewise.
16891         (mcmodel=): Likewise.
16892         (mstrict-align): Likewise.
16893         (momit-leaf-frame-pointer): Likewise.
16894         (mtls-dialect): Likewise.
16895         (master=): Likewise.
16896         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
16897         (aarch64_isa_flags): Remove extern declaration.
16898         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
16899         to indicate success or failure.
16900         (aarch64_validate_march): Likewise.
16901         (aarch64_validate_mtune): Likewise.
16902         (aarch64_isa_flags): Delete.
16903         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
16904         instead of aarch64_isa_flags.
16905         (aarch64_get_tune_cpu): New function.
16906         (aarch64_get_arch): Likewise.
16907         (aarch64_override_options): Use above and set up explicit_tune_core
16908         and explicit_arch.
16909         (aarch64_print_extension): Move earlier in file.  Add isa_flags
16910         argument and use that instead of the global aarch64_isa_flags.
16911         (aarch64_option_save): New function.
16912         (aarch64_option_restore): Likewise.
16913         (aarch64_option_print): Likewise.
16914         (aarch64_declare_function_name): Likewise.
16915         (aarch64_start_file): Delete.
16916         (TARGET_ASM_FILE_START): Do not define.
16917         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
16918         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
16919         Declare prototype.
16920
16921 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16922
16923         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
16924         flag_omit_leaf_frame_pointer to 2.
16925
16926 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16927
16928         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
16929         define to 0 or 1.
16930         (TARGET_FIX_ERR_A53_835769): New macro.
16931         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16932         handling of opts->x_aarch64_fix_a53_err835769.
16933         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
16934         than aarch64_fix_a53_err835769.
16935         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
16936         * config/aarch64/aarch64-linux.h: Likewise.
16937
16938 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
16939
16940         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
16941         ix86_expand_int_movcc as boolean.
16942
16943 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16944
16945         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
16946         (aarch64_cpu_string): Likewise.
16947         (aarch64_tune_string): Likewise.
16948         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
16949         (aarch64_parse_extension): Return aarch64_parse_opt_result.
16950         Add extra argument to put result into.
16951         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
16952         (aarch64_parse_cpu): Add arguments to put results into. Return
16953         aarch64_parse_opt_result.
16954         (aarch64_parse_tune): Likewise.
16955         (aarch64_override_options_after_change_1): New function.
16956         (aarch64_override_options_internal): New function.
16957         (aarch64_validate_mcpu): Likewise.
16958         (aarch64_validate_march): Likewise.
16959         (aarch64_validate_mtune): Likewise.
16960         (aarch64_override_options): Update to reflect above changes.
16961         Move some logic into aarch64_override_options_internal.
16962         Initialize target_option_default_node and target_option_current_node.
16963         (aarch64_override_options_after_change): Move logic into
16964         aarch64_override_options_after_change_1 and call it with global_options.
16965         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
16966         flag values from that.
16967
16968 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16969
16970         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16971         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
16972         * config/aarch64/aarch64.c (struct processor): Add arch field.
16973         (all_architectures): Handle above, move above all_cores.
16974         (all_cores): Handle above.
16975         (aarch64_parse_arch): Handle above changes.
16976         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
16977         above.  Update comments.
16978         (armv8.1-a): Likewise.
16979         * config/aarch64/aarch64-cores.def: Update according to above.
16980         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
16981         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
16982         aarch64_arch_driver_info.
16983
16984 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16985
16986         * config/aarch64/aarch64.c (struct processor): Add ident field.
16987         Rename core sched_core.
16988         (all_cores): Handle above changes.
16989         (all_architectures): Likewise.
16990         (aarch64_parse_arch): Likewise.
16991         (aarch64_override_options): Likewise.
16992
16993 2015-08-04  Richard Biener  <rguenther@suse.de>
16994
16995         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
16996         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
16997         comparisons embedded in [VEC_]COND_EXPRs.
16998
16999 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
17000
17001         * tree-if-conv.c: Fix various typos in comments.
17002         * tree-vect-stmts.c: Likewise.
17003
17004 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17005
17006         PR tree-optimization/67043
17007         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
17008         preheader after hoisting invariant in it.
17009         (find_defs): Force recomputation of all luids.
17010
17011 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
17012
17013         * config/rs6000/htm.md (tabort.): Restrict the source operand to
17014         using a base register.
17015
17016 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
17017
17018         * main.c (main): Pass in NULL for toplev's external_timer.
17019         * timevar.c: Include coretypes.h.
17020         (class timer::named_items): New.
17021         (timer::named_items::named_items): New.
17022         (timer::named_items::~named_items): New.
17023         (timer::named_items::push): New.
17024         (timer::named_items::pop): New.
17025         (timer::named_items::print): New.
17026         (timer::timer): Initialize field "m_jit_client_items".
17027         (timer::~timer): New.
17028         (timer::push): Move bulk of implementation to...
17029         (timer::push_internal): ...here.  New function.
17030         (timer::pop): Move bulk of implementation to...
17031         (timer::pop_internal): ...here.  New function.
17032         (timer::push_client_item): New.
17033         (timer::pop_client_item): New.
17034         (timer::print_row): New function, taken from timer::print.
17035         (timer::print): Print "GCC items" header if we also have client
17036         items.  Move row-printing to timer::print_row.  Print any client
17037         items.
17038         (timer::get_topmost_item_name): New method.
17039         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
17040         (TV_JIT_CLIENT_CODE): New.
17041         * timevar.h (timer::push_client_item): New declaration.
17042         (timer::pop_client_item): New declaration.
17043         (timer::get_topmost_item_name): New method.
17044         (timer::push_internal): New declaration.
17045         (timer::pop_internal): New declaration.
17046         (timer::print_row): New declaration.
17047         (timer::named_items): New declaration.
17048         (timer::m_jit_client_items): New field.
17049         (timer): Add friend class named_items.
17050         (auto_timevar::auto_timevar): Add timer param.
17051         (auto_timevar::~auto_timevar): Use field "m_timer".
17052         (auto_timevar::m_timer): New field.
17053         * toplev.c (initialize_rtl): Add g_timer as param when
17054         constructing auto_timevar instance.
17055         (toplev::toplev): Add "external_timer" param, and use it to
17056         initialize the "g_timer" global if non-NULL.
17057         (toplev::~toplev): If this created "g_timer", delete it.
17058         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
17059         with "external_timer" timer *.
17060
17061 2015-08-03  Alexander Basov <coohpt@gmail.com>
17062
17063         PR middle-end/64744
17064         PR middle-end/48470
17065         PR middle-end/43404
17066         * cfgexpand.c (expand_one_var): Add check if stack is going to
17067         be used in naked function.
17068         * expr.c (expand_expr_addr_expr_1): Remove excess checking
17069         whether expression should not reside in MEM.
17070         * function.c (use_register_for_decl): Do not use registers for
17071         non-register things (volatile, float, BLKMode) in naked functions.
17072
17073 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
17074
17075         PR target/67060
17076         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
17077         Adjust splits to match new pattern.
17078
17079 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
17080
17081         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
17082         (VEC_M): Likewise.
17083         (VEC_N): Likewise.
17084         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
17085         point in VSX registers.
17086
17087         * config/rs6000/constraints.md (wb constraint): Document unused
17088         w<x> constraint.
17089         (we constraint): Likewise.
17090         (wo constraint): Likewise.
17091         (wp constraint): New constraint for IEEE 128-bit floating point in
17092         VSX registers.
17093         (wq constraint): Likewise.
17094
17095         * config/rs6000/predicates.md (easy_fp_constant): Add support for
17096         IEEE 128-bit floating point in VSX registers.
17097         (easy_scalar_constant): Likewise.
17098
17099         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
17100         constraints (wp, wq) for IEEE 128-bit floating point in VSX
17101         registers.
17102         (rs6000_init_hard_regno_mode_ok): Likewise.
17103
17104         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
17105         floating point in VSX registers.
17106         (VSX_L): Likewise.
17107         (VSX_M): Likewise.
17108         (VSX_M2): Likewise.
17109         (VSm): Likewise.
17110         (VSs): Likewise.
17111         (VSr): Likewise.
17112         (VSa): Likewise.
17113         (VSv): Likewise.
17114         (vsx_le_permute_<mode>): Add support to properly swap bytes for
17115         IEEE 128-bit floating point in VSX registers on little endian.
17116         (vsx_le_undo_permute_<mode>): Likewise.
17117         (vsx_le_perm_load_<mode>): Likewise.
17118         (vsx_le_perm_store_<mode>): Likewise.
17119         (splitters for IEEE 128-bit fp moves): Likewise.
17120
17121         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
17122         wq constraints.
17123
17124         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
17125         floating point in VSX registers.
17126         (VM2): Likewise.
17127
17128         * doc/md.text (Machine Constraints): Document wp and wq
17129         constraints on PowerPC.
17130
17131 2015-08-03  Jeff Law  <law@redhat.com>
17132
17133         PR middle-end/66314
17134         PR gcov-profile/66899
17135         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
17136         iterate over the jump threading paths when an element in the
17137         jump threading paths array is eliminated.
17138
17139 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
17140
17141         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
17142
17143 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
17144
17145         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
17146         is_use_properly_guarded the variable def_preds.  Free its
17147         contents before returning.
17148         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
17149         (is_use_properly_guarded): Replace local variable def_preds with
17150         a parameter.  Adjust accordingly.  Only update *def_preds if it's
17151         the empty vector.
17152
17153 2015-08-03  Richard Biener  <rguenther@suse.de>
17154
17155         * genmatch.c (simplify::for_subst_vec): New member.
17156         (binary_ok): New helper for for lowering.
17157         (lower_for): Delay substituting operators into result expressions
17158         if we can merge the results eventually again.
17159         (capture_info::walk_result): Adjust for user_id appearing as
17160         result expression operator.
17161         (expr::gen_transform): Likewise.
17162         (dt_simplify::gen_1): Likewise.
17163         (dt_simplify::gen): Pass not substituted operators to tail
17164         functions or initialize local variable with it.
17165         (decision_tree::gen): Adjust function signature.
17166         * match.pd: Fix tests against global code and add default
17167         cases to switch stmts.
17168
17169 2015-08-03  Richard Biener  <rguenther@suse.de>
17170
17171         * genmatch.c (dt_simplify::gen): Create captures array
17172         with an initializer.
17173
17174 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17175
17176         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
17177         the host compiler is affected by placement new aliasing bug.
17178         * configure: Regenerate.
17179         * Makefile.in (ALIASING_FLAGS): New variable.
17180         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
17181
17182 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17183
17184         PR target/66731
17185         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
17186         (negmulsf3_vfp): Likewise.
17187         (muldf3negdf_vfp): Disable for -frounding-math.
17188         (mulsf3negsf_vfp): Likewise.
17189         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
17190         fix MULT cost with -frounding-math.
17191
17192 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17193
17194         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
17195         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
17196         explicit.  Prefer to add the flag whenever possible.
17197         (noce_process_if_block): Try noce_try_store_flag_constants before
17198         noce_try_cmove.
17199
17200 2015-08-03  Richard Biener  <rguenther@suse.de>
17201
17202         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
17203         New hash-map to record equivalent transforms.
17204         (dt_node::analyze): Populate the equivalent transforms hash-map.
17205         (dt_simplify::info): Add reference to hash-map entry.
17206         (dt_simplify::gen): If we have split out a function for the
17207         transform, generate a call to it.
17208         (sinfo_hashmap_traits::hash): New function.
17209         (compare_op): New helper function for ...
17210         (sinfo_hashmap_traits::equal_keys): ... this new function.
17211         (decision_tree::gen): Split out common equivalent transforms
17212         into functions.
17213
17214 2015-08-03  Richard Biener  <rguenther@suse.de>
17215
17216         * gimple-fold.c (fold_gimple_assign): Remove folding of
17217         the comparison in COND_EXPRs.
17218
17219 2015-08-03  Richard Biener  <rguenther@suse.de>
17220
17221         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
17222         on the rhs of assignments first simplify the embedded
17223         GENERIC condition.
17224
17225 2015-08-03  Richard Biener  <rguenther@suse.de>
17226
17227         PR tree-optimization/66917
17228         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
17229         field.
17230         (DR_VECT_AUX): New macro.
17231         (set_dr_misalignment): Adjust.
17232         (dr_misalignment): Likewise.
17233         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17234         Compute whether the base is at least element aligned.
17235         * tree-vect-stmts.c (ensure_base_align): Adjust.
17236         (vectorizable_store): If the base is not element aligned
17237         preserve alignment of the original access if misalignment is unknown.
17238         (vectorizable_load): Likewise.
17239
17240 2015-08-02  Martin Sebor  <msebor@redhat.com>
17241
17242         * c-family/c.opt (-Wframe-address): New warning option.
17243         * doc/invoke.texi (Wframe-address): Document it.
17244         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
17245         Clarify possible effects of calling the functions with non-zero
17246         arguments and mention -Wframe-address.
17247         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
17248
17249 2015-08-01  Michael Collison  <michael.collison@linaro.org
17250             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17251
17252         * config/arm/arm.md (*arm_smin_cmp): New pattern.
17253         (*arm_umin_cmp): Likewise.
17254
17255 2015-08-01  Caroline Tice  <cmtice@google.com>
17256
17257         PR 66521
17258         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
17259         global variables.
17260         (vtbl_find_mangled_name):  New function.
17261         (vtbl_register_mangled_name):  New function.
17262         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
17263         mangled name in mangled name vectors.
17264         (find_or_create_vtbl_map_node):  Ditto.
17265         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
17266         update recursion_depth on function entry; pass it to every recursive
17267         call; automatically exit if depth > 25 (give up looking at that point).
17268         (verify_bb_vtables):  Initialize recursion_depth and pass it to
17269         var_is_used_for_virtual_call_p.
17270         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
17271         global variable decls.
17272         (vtbl_register_mangled_name): New extern function decl.
17273
17274 2015-08-01  Tom de Vries  <tom@codesourcery.com>
17275
17276         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
17277         function.
17278         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
17279         Declare.
17280         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
17281         operation_no_trapping_overflow.  Allow non-overflow operations.
17282         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
17283         operations.
17284
17285 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
17286
17287         PR target/67049
17288         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
17289
17290 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17291
17292         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
17293         Enable for TARGET_32BIT.
17294         (*if_move_neg): Likewise.
17295
17296 2015-07-31  Nick Clifton  <nickc@redhat.com>
17297
17298         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
17299         Returns true for __model__.
17300         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17301
17302 2015-07-31  Alan Modra  <amodra@gmail.com>
17303
17304         PR target/66870
17305         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
17306         (rs6000_emit_prologue): Set it.
17307         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
17308
17309 2015-07-31  Richard Biener  <rguenther@suse.de>
17310
17311         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
17312         -> X == (C1 ^ C2) which is already implemented in match.pd.
17313         Remove redundant dispatching to fold_relational_const.
17314         Move unordered self and NaN compares ...
17315         * match.pd: ... as patterns here.  Remove some stray captures
17316         and add a comment.
17317
17318 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
17319
17320         * config/i386/i386.c
17321         (bdesc_special_args): Convert mask type from signed to unsigned for
17322         masked builtins.
17323         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
17324         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
17325         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
17326         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
17327         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
17328         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
17329         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
17330         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
17331         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
17332         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
17333         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
17334         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
17335         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
17336         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
17337         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
17338         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
17339         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
17340         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
17341         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
17342         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
17343         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
17344         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
17345         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
17346         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
17347         * config/i386/i386-builtin-types.def
17348         (V16QI_FTYPE_V16SI): Remove.
17349         (V8DF_FTYPE_V8SI): Ditto.
17350         (V8HI_FTYPE_V8DI): Ditto.
17351         (V8SI_FTYPE_V8DI): Ditto.
17352         (V8SF_FTYPE_V8DF): Ditto.
17353         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
17354         (V16HI_FTYPE_V16SI): Ditto.
17355         (V16SF_FTYPE_V16HI): Ditto.
17356         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
17357         (V16SF_FTYPE_V16SI): Ditto.
17358         (V4DI_FTYPE_V4DI): Ditto.
17359         (V16SI_FTYPE_V16SF): Ditto.
17360         (V16SF_FTYPE_FLOAT): Ditto.
17361         (V8DF_FTYPE_DOUBLE): Ditto.
17362         (V8DI_FTYPE_INT64): Ditto.
17363         (V8DI_FTYPE_V4DI): Ditto.
17364         (V16QI_FTYPE_V8DI): Ditto.
17365         (UINT_FTYPE_V4SF): Ditto.
17366         (UINT64_FTYPE_V4SF): Ditto.
17367         (UINT_FTYPE_V2DF): Ditto.
17368         (UINT64_FTYPE_V2DF): Ditto.
17369         (V16SI_FTYPE_V16SI): Ditto.
17370         (V8DI_FTYPE_V8DI): Ditto.
17371         (V16SI_FTYPE_PV4SI): Ditto.
17372         (V16SF_FTYPE_PV4SF): Ditto.
17373         (V8DI_FTYPE_PV2DI): Ditto.
17374         (V8DF_FTYPE_PV2DF): Ditto.
17375         (V4DI_FTYPE_PV2DI): Ditto.
17376         (V4DF_FTYPE_PV2DF): Ditto.
17377         (V16SI_FTYPE_PV2SI): Ditto.
17378         (V16SF_FTYPE_PV2SF): Ditto.
17379         (V8DI_FTYPE_PV4DI): Ditto.
17380         (V8DF_FTYPE_PV4DF): Ditto.
17381         (V8SF_FTYPE_FLOAT): Ditto.
17382         (V4SF_FTYPE_FLOAT): Ditto.
17383         (V4DF_FTYPE_DOUBLE): Ditto.
17384         (V8SF_FTYPE_PV4SF): Ditto.
17385         (V8SI_FTYPE_PV4SI): Ditto.
17386         (V4SI_FTYPE_PV2SI): Ditto.
17387         (V8SF_FTYPE_PV2SF): Ditto.
17388         (V8SI_FTYPE_PV2SI): Ditto.
17389         (V16SF_FTYPE_PV8SF): Ditto.
17390         (V16SI_FTYPE_PV8SI): Ditto.
17391         (V8DI_FTYPE_V8SF): Ditto.
17392         (V4DI_FTYPE_V4SF): Ditto.
17393         (V2DI_FTYPE_V4SF): Ditto.
17394         (V64QI_FTYPE_QI): Ditto.
17395         (V32HI_FTYPE_HI): Ditto.
17396         (V8UHI_FTYPE_V8UHI): Ditto.
17397         (V16UHI_FTYPE_V16UHI): Ditto.
17398         (V32UHI_FTYPE_V32UHI): Ditto.
17399         (V2UDI_FTYPE_V2UDI): Ditto.
17400         (V4UDI_FTYPE_V4UDI): Ditto.
17401         (V8UDI_FTYPE_V8UDI): Ditto.
17402         (V4USI_FTYPE_V4USI): Ditto.
17403         (V8USI_FTYPE_V8USI): Ditto.
17404         (V16USI_FTYPE_V16USI): Ditto.
17405         (V2DF_FTYPE_V2DF_UINT64): Ditto.
17406         (V2DI_FTYPE_V2DF_V2DF): Ditto.
17407         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
17408         (V8DF_FTYPE_V8DF_V8DI): Ditto.
17409         (V4SF_FTYPE_V4SF_UINT64): Ditto.
17410         (V4SI_FTYPE_V4SF_V4SF): Ditto.
17411         (V16SF_FTYPE_V16SF_V16SI): Ditto.
17412         (V64QI_FTYPE_V32HI_V32HI): Ditto.
17413         (V32HI_FTYPE_V16SI_V16SI): Ditto.
17414         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
17415         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
17416         (V32HI_FTYPE_V64QI_V64QI): Ditto.
17417         (V32HI_FTYPE_V32HI_V32HI): Ditto.
17418         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
17419         (V16SI_FTYPE_V16SI_V4SI): Ditto.
17420         (V16SI_FTYPE_V16SI_V16SI): Ditto.
17421         (V16SI_FTYPE_V32HI_V32HI): Ditto.
17422         (V16SI_FTYPE_V16SI_SI): Ditto.
17423         (V8DI_FTYPE_V8DI_V8DI): Ditto.
17424         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
17425         (V8DI_FTYPE_V16SI_V16SI): Ditto.
17426         (V8DI_FTYPE_V8DI_V2DI): Ditto.
17427         (QI_FTYPE_QI): Ditto.
17428         (SI_FTYPE_SI): Ditto.
17429         (DI_FTYPE_DI): Ditto.
17430         (QI_FTYPE_QI_QI): Ditto.
17431         (QI_FTYPE_QI_INT): Ditto.
17432         (HI_FTYPE_HI_INT): Ditto.
17433         (SI_FTYPE_SI_INT): Ditto.
17434         (DI_FTYPE_DI_INT): Ditto.
17435         (HI_FTYPE_V16QI_V16QI): Ditto.
17436         (SI_FTYPE_V32QI_V32QI): Ditto.
17437         (DI_FTYPE_V64QI_V64QI): Ditto.
17438         (QI_FTYPE_V8HI_V8HI): Ditto.
17439         (HI_FTYPE_V16HI_V16HI): Ditto.
17440         (SI_FTYPE_V32HI_V32HI): Ditto.
17441         (QI_FTYPE_V4SI_V4SI): Ditto.
17442         (QI_FTYPE_V8SI_V8SI): Ditto.
17443         (QI_FTYPE_V2DI_V2DI): Ditto.
17444         (QI_FTYPE_V4DI_V4DI): Ditto.
17445         (QI_FTYPE_V8DI_V8DI): Ditto.
17446         (HI_FTYPE_V16SI_V16SI): Ditto.
17447         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
17448         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
17449         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
17450         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
17451         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
17452         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
17453         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
17454         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
17455         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
17456         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
17457         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
17458         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
17459         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
17460         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
17461         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
17462         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
17463         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
17464         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
17465         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
17466         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
17467         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
17468         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
17469         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
17470         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
17471         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
17472         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
17473         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
17474         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
17475         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
17476         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
17477         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
17478         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
17479         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
17480         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
17481         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
17482         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
17483         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
17484         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
17485         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
17486         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
17487         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
17488         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
17489         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
17490         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
17491         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
17492         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
17493         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
17494         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
17495         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
17496         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
17497         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
17498         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
17499         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
17500         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
17501         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
17502         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
17503         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
17504         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
17505         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
17506         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
17507         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
17508         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
17509         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
17510         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
17511         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
17512         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
17513         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
17514         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
17515         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
17516         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
17517         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
17518         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
17519         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
17520         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
17521         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
17522         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
17523         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
17524         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
17525         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
17526         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
17527         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
17528         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
17529         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
17530         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
17531         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
17532         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
17533         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
17534         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
17535         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
17536         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
17537         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
17538         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
17539         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
17540         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
17541         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
17542         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
17543         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
17544         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
17545         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
17546         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
17547         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
17548         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
17549         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
17550         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
17551         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
17552         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
17553         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
17554         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
17555         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
17556         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
17557         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
17558         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
17559         (HI_FTYPE_HI): Ditto.
17560         (HI_FTYPE_V16QI): Ditto.
17561         (SI_FTYPE_V32QI): Ditto.
17562         (DI_FTYPE_V64QI): Ditto.
17563         (QI_FTYPE_V8HI): Ditto.
17564         (HI_FTYPE_V16HI): Ditto.
17565         (SI_FTYPE_V32HI): Ditto.
17566         (QI_FTYPE_V4SI): Ditto.
17567         (QI_FTYPE_V8SI): Ditto.
17568         (HI_FTYPE_V16SI): Ditto.
17569         (QI_FTYPE_V2DI): Ditto.
17570         (QI_FTYPE_V4DI): Ditto.
17571         (QI_FTYPE_V8DI): Ditto.
17572         (V16QI_FTYPE_HI): Ditto.
17573         (V32QI_FTYPE_SI): Ditto.
17574         (V64QI_FTYPE_DI): Ditto.
17575         (V8HI_FTYPE_QI): Ditto.
17576         (V16HI_FTYPE_HI): Ditto.
17577         (V32HI_FTYPE_SI): Ditto.
17578         (V4SI_FTYPE_QI): Ditto.
17579         (V4SI_FTYPE_HI): Ditto.
17580         (V8SI_FTYPE_QI): Ditto.
17581         (V8SI_FTYPE_HI): Ditto.
17582         (V2DI_FTYPE_QI): Ditto.
17583         (V4DI_FTYPE_QI): Ditto.
17584         (HI_FTYPE_HI_HI): Ditto.
17585         (SI_FTYPE_SI_SI): Ditto.
17586         (DI_FTYPE_DI_DI): Ditto.
17587         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
17588         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
17589         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
17590         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
17591         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
17592         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
17593         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
17594         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
17595         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
17596         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
17597         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
17598         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
17599         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
17600         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
17601         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
17602         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
17603         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
17604         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
17605         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
17606         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
17607         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
17608         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
17609         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
17610         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
17611         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
17612         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
17613         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
17614         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
17615         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
17616         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
17617         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
17618         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
17619         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
17620         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
17621         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
17622         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
17623         (V16SI_FTYPE_HI): Ditto.
17624         (V8DI_FTYPE_QI): Ditto.
17625         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
17626         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
17627         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
17628         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
17629         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
17630         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
17631         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
17632         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
17633         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
17634         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
17635         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
17636         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
17637         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
17638         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
17639         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
17640         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
17641         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
17642         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
17643         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
17644         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
17645         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
17646         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
17647         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
17648         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
17649         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
17650         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
17651         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
17652         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
17653         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
17654         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
17655         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
17656         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
17657         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
17658         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
17659         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
17660         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
17661         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
17662         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
17663         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
17664         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
17665         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
17666         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
17667         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
17668         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
17669         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
17670         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
17671         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
17672         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
17673         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
17674         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
17675         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
17676         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
17677         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
17678         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
17679         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
17680         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
17681         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
17682         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
17683         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
17684         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
17685         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
17686         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
17687         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
17688         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
17689         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
17690         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
17691         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
17692         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
17693         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
17694         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
17695         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
17696         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
17697         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
17698         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
17699         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
17700         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
17701         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
17702         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
17703         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
17704         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
17705         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
17706         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
17707         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
17708         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
17709         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
17710         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
17711         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
17712         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
17713         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
17714         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
17715         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
17716         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
17717         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
17718         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
17719         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
17720         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
17721         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
17722         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
17723         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
17724         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
17725         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
17726         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
17727         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
17728         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
17729         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
17730         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
17731         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
17732         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
17733         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
17734         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
17735         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
17736         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
17737         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
17738         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
17739         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
17740         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
17741         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
17742         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
17743         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
17744         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
17745         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
17746         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
17747         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
17748         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
17749         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
17750         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
17751         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
17752         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
17753         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
17754         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
17755         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
17756         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
17757         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
17758         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
17759         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
17760         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
17761         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
17762         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
17763         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
17764         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
17765         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
17766         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
17767         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
17768         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
17769         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
17770         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
17771         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
17772         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
17773         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
17774         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
17775         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
17776         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
17777         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
17778         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
17779         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
17780         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
17781         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
17782         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
17783         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
17784         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
17785         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
17786         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
17787         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
17788         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
17789         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
17790         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
17791         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
17792         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
17793         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
17794         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
17795         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
17796         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
17797         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
17798         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
17799         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
17800         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
17801         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
17802         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
17803         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
17804         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
17805         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
17806         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
17807         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
17808         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
17809         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
17810         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
17811         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
17812         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
17813         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
17814         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
17815         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
17816         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
17817         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
17818         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
17819         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
17820         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
17821         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
17822         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
17823         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
17824         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
17825         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
17826         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
17827         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
17828         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
17829         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
17830         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
17831         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
17832         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
17833         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
17834         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
17835         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
17836         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
17837         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
17838         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
17839         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
17840         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
17841         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
17842         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
17843         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
17844         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
17845         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
17846         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
17847         (QI_FTYPE_V8DF_INT_QI): Ditto.
17848         (QI_FTYPE_V4DF_INT_QI): Ditto.
17849         (QI_FTYPE_V2DF_INT_QI): Ditto.
17850         (HI_FTYPE_V16SF_INT_HI): Ditto.
17851         (QI_FTYPE_V8SF_INT_QI): Ditto.
17852         (QI_FTYPE_V4SF_INT_QI): Ditto.
17853         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
17854
17855 2015-07-31  Richard Biener  <rguenther@suse.de>
17856
17857         * gimple-fold.c (fold_gimple_assign): Remove folding of
17858         GIMPLE_BINARY_RHS.
17859
17860 2015-07-31  Tom de Vries  <tom@codesourcery.com>
17861
17862         PR tree-optimization/66846
17863         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
17864         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
17865         (expand_omp_target) [ENABLE_CHECKING]: Same.
17866         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
17867         cfun if !LOOPS_NEED_FIXUP.
17868         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
17869         that omp_for already has its own loop struct.
17870         * tree-parloops.c (create_phi_for_local_result)
17871         (create_call_for_reduction): Handle simple latch bb.
17872         (create_parallel_loop): Add simple latch bb to preserve
17873         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
17874         (gen_parallel_loop): Remove call to cancel_loop_tree.
17875         (parallelize_loops): Skip loops that are inner loops of parallelized
17876         loops.
17877         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
17878         verify_loop_structure.
17879
17880 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17881
17882         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
17883         * config/v850/v850.md (RV_REGNUM): New constants.
17884         * config/v850/v850.c (v850_libcall_value): New functions.
17885         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
17886         (TARGET_LIBCALL_VALUE): Define.
17887
17888 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17889
17890         * rtl.h (lowpart_subreg): Move in file.
17891         * loop-iv.c (lowpart_subreg): Move to...
17892         * simplify-rtx.c (lowpart_subreg): ...here.
17893           (simplify_binary_operation_1): Use lowpart_subreg instead of
17894           simplify_gen_subreg.
17895         * expr.c (expand_expr_real_2): Ditto.
17896         * emit-rtl.c (gen_lowpart_common): Ditto.
17897         * combine.c (gen_lowpart_for_combine): Ditto.
17898         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
17899           expand_debug_source_expr): Ditto.
17900
17901 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
17902
17903         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
17904         (expand_builtin_atomic_clear): Remove support for atomic_clear
17905         pattern.
17906
17907 2015-07-30  Richard Biener  <rguenther@suse.de>
17908
17909         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
17910         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
17911         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
17912         redundant operand canonicalization.
17913
17914 2015-07-30  David Sherwood  <david.sherwood@arm.com>
17915
17916         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
17917         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
17918         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
17919         * config/arm/arm.c (neon_valid_immediate): Likewise.
17920         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
17921         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
17922         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
17923         (expand_vec_perm_vpshufb2_vpermq): Likewise.
17924         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
17925         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
17926         * config/i386/sse.md
17927         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
17928         (*ssse3_palignr<mode>_perm): Likewise.
17929         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
17930         * config/spu/spu.c (arith_immediate_p): Likewise.
17931         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17932         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
17933
17934 2015-07-30  Richard Biener  <rguenther@suse.de>
17935
17936         * genmatch.c (decision_tree::gen_gimple): Merge with ...
17937         (decision_tree::gen_generic): ... this into ...
17938         (decision_tree::gen): ... this.
17939         (main): Adjust callers.
17940
17941 2015-07-30  Richard Biener  <rguenther@suse.de>
17942
17943         * genmatch.c (verbose): New global.
17944         (warning_at): Add overload with source_location.
17945         (capture_info::capture_info): Add bool whether generating gimple
17946         or generic.  Add gimple member.
17947         (capture_info::cinfo): Add capture member.
17948         (capture_info::walk_match): Record capture.  Warn on
17949         non-captured leafs.
17950         (capture_info::walk_c_expr): Add more fragments captures cannot
17951         escape through.  Warn on escaped captures.
17952         (dt_simplify::gen_1): Warn on operands we force to have no
17953         side-effects.
17954         (main): Initialize verbose.
17955         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
17956
17957 2015-07-30  Richard Biener  <rguenther@suse.de>
17958
17959         PR middle-end/67053
17960         * match.pd: Allow both operands to independently have conversion
17961         when simplifying compares of addresses.
17962
17963 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
17964
17965         PR target/66217
17966         PR target/67045
17967         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
17968         around those cases that need one.
17969
17970 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
17971
17972         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
17973
17974 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17975
17976         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
17977         New.  Copied from config/i386/gnu-user.h.
17978         (ASM_COMMENT_START): Likewise.
17979         (DBX_REGISTER_NUMBER): Likewise.
17980
17981 2015-07-29  Richard Biener  <rguenther@suse.de>
17982
17983         * gimple-fold.c (fold_gimple_cond): Remove.
17984         (fold_stmt_1): Do not call it.
17985
17986 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
17987
17988         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
17989         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
17990
17991         * config/aarch64/aarch64-modes.def: Add HFmode.
17992
17993         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17994         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
17995
17996         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
17997         aarch64_promoted_type): New.
17998
17999         (aarch64_float_const_representable_p): Disable HFmode.
18000         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
18001         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
18002         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
18003
18004         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
18005         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
18006
18007         * config/aarch64/iterators.md (GPF_F16): New.
18008
18009 2015-07-29  Richard Biener  <rguenther@suse.de>
18010
18011         * match.pd: Merge address comparison patterns and make them
18012         handle some more cases.
18013
18014 2015-07-29  Richard Biener  <rguenther@suse.de>
18015
18016         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
18017         (parser::parse_capture): Add bool argument on whether to reject
18018         unknown captures.
18019         (parser::parse_expr): Adjust.
18020         (parser::parse_op): Likewise.
18021         (parser::parse_pattern): Likewise.
18022
18023 2015-07-29  Richard Biener  <rguenther@suse.de>
18024
18025         * gimple-fold.c (has_use_on_stmt): New function.
18026         (replace_stmt_with_simplification): Use it to allow
18027         abnormals originally referenced in the stmt.
18028         (fold_stmt_1): Canonicalize operand order.
18029
18030 2015-07-28  David Sherwood  <david.sherwood@arm.com>
18031
18032         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
18033         GET_MODE_INNER unconditionally.
18034         * config/spu/spu.c (arith_immediate_p): Likewise.
18035         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
18036         * expmed.c (synth_mult): Remove check for VOIDmode result from
18037         GET_MODE_INNER.
18038         (expand_mult_const): Likewise.
18039         * fold-const.c (fold_binary_loc): Replace call to element_precision
18040         with call to GET_MODE_PRECISION.
18041         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
18042         m->name.
18043         (emit_mode_inner): Likewise.
18044         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
18045         result check.
18046         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
18047         (GET_MODE_UNIT_PRECISION): Likewise.
18048         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
18049         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18050         * stor-layout.c (bitwise_type_for_mode): Update assert.
18051         (element_precision): Remove.
18052
18053 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18054
18055         * target-insns.def (reload_load_address): New targetm instruction
18056         pattern.
18057         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
18058
18059 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18060
18061         * target-insns.def (atomic_test_and_set): New targetm instruction
18062         pattern.
18063         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
18064         HAVE_*/gen_* interface.
18065
18066 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18067
18068         * target-insns.def (can_extend, ptr_extend): New targetm instruction
18069         patterns.
18070         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
18071         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18072         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
18073         * rtlanal.c (nonzero_bits1): Likewise.
18074         (num_sign_bit_copies1): Likewise.
18075
18076 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18077
18078         * target-insns.def (eh_return): New targetm instruction pattern.
18079         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
18080         interface.
18081         * function.c (thread_prologue_and_epilogue_insns): Remove
18082         preprocessor condition.
18083
18084 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18085
18086         * target-insns.def (indirect_jump): New targetm instruction pattern.
18087         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
18088         interface.
18089
18090 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18091
18092         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
18093         instead of nonimmediate_operand.  Remove C condiition.
18094
18095 2015-07-28  Richard Biener  <rguenther@suse.de>
18096
18097         * match.pd: Add more simplification of address comparisons.
18098
18099 2015-07-28  Richard Biener  <rguenther@suse.de>
18100
18101         * match.pd: Re-order two cases in comparison with max/min
18102         value simplification to make it apply for bools.
18103
18104 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18105
18106         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
18107         Handle simple SIGN_EXTEND or ZERO_EXTEND.
18108         (aarch64_rtx_costs): Properly strip extend or extract before
18109         passing down to rtx costs again.
18110
18111 2015-07-28  Nick Clifton  <nickc@redhat.com>
18112
18113         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
18114         Optimizes the case where -mes0 is active and a constant symbolic
18115         address is used.
18116         * config/rl78/rl78-protos.h: Prototype the new function.
18117         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
18118
18119 2015-07-28  Tom de Vries  <tom@codesourcery.com>
18120
18121         * tree-parloops.c (reduc_stmt_res): New function.
18122         (initialize_reductions, add_field_for_reduction)
18123         (create_phi_for_local_result, create_loads_for_reductions)
18124         (create_stores_for_reduction, build_new_reduction): Handle case that
18125         reduc_stmt is a phi.
18126         (gather_scalar_reductions): Allow double_reduc reductions.
18127
18128 2015-07-28  Richard Biener  <rguenther@suse.de>
18129
18130         * fold-const.c (fold_comparison): Remove equality folding
18131         of decl addresses ...
18132         * match.pd: ... here and merge with existing pattern.
18133
18134 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18135
18136         PR tree-optimization/66828
18137         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
18138         from int64_t to uint64_t.
18139
18140 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18141
18142         * opts-common.c (read_cmdline_option): List DriverOnly enum values
18143         as valid only in the error message of the driver, not in the
18144         messages of the language compilers.
18145
18146 2015-07-27  Tom de Vries  <tom@codesourcery.com>
18147
18148         * tree-parloops.c (gather_scalar_reductions): Simplify function
18149         structure.
18150
18151 2015-07-27  Marek Polacek  <polacek@redhat.com>
18152
18153         * ipa-devirt.c (types_same_for_odr): Fix typo.
18154
18155 2015-07-27  Jason Merrill  <jason@redhat.com>
18156
18157         PR debug/66468
18158         * dwarf2out.c (gen_inlined_subroutine_die): Check
18159         cgraph_function_possibly_inlined_p.
18160
18161 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18162
18163         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
18164         Place integer variant first.
18165         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
18166
18167 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18168
18169         PR/63870
18170         * config/arm/arm-builtins.c (enum arm_builtins):
18171         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
18172         (ARM_BUILTIN_NEON_BASE): Rename macro to....
18173         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
18174         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
18175         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
18176
18177 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18178
18179         PR/63870
18180         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
18181         Add qualifier_lane_index.
18182         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
18183         (arm_getlane_qualifiers): Use qualifier_lane_index.
18184         (arm_lanemac_qualifiers): Rename to...
18185         (arm_mac_n_qualifiers): ...this.
18186         (LANEMAC_QUALIFIERS): Rename to...
18187         (MAC_N_QUALIFIERS): ...this.
18188         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
18189         (arm_setlane_qualifiers): Use qualifier_lane_index.
18190         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
18191         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
18192         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
18193         (arm_expand_neon_builtin): Handle qualifier_lane_index.
18194
18195         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
18196         * config/arm/arm.c (bounds_check): Likewise, improve error message.
18197         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
18198         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
18199         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
18200         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
18201         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
18202         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
18203         qualifiers to TERNOP_IMM.
18204         (vdup_lane): Change qualifiers to GETLANE.
18205         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
18206         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
18207         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
18208         vqdmlsl_n): Change qualifiers to MAC_N.
18209
18210         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
18211         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
18212         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
18213         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
18214         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
18215         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
18216         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
18217         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
18218         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
18219         Remove call to neon_lane_bounds.
18220
18221 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18222
18223         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
18224         Place integer variant first.
18225
18226 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
18227
18228         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
18229         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
18230         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
18231         for armv6kz targets.
18232         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
18233         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
18234         (FL_FOR_ARCH6ZK): Remove.
18235         (FL_FOR_ARCH6KZ): New.
18236         (arm_arch6zk): New declaration.
18237         * config/arm/arm-tables.opt: Regenerate.
18238         * config/arm/arm.c (arm_arch6kz): New.
18239         (arm_option_override): Set arm_arch6kz.
18240         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
18241         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
18242         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
18243
18244 2015-07-27  Marek Polacek  <polacek@redhat.com>
18245
18246         PR c++/66555
18247         PR c/54979
18248         * doc/invoke.texi: Document -Wtautological-compare.
18249
18250 2015-07-27  Richard Biener  <rguenther@suse.de>
18251
18252         * genmatch.c (decision_tree::gen_gimple): Split out large
18253         subtrees into separate functions.
18254         (decision_tree::gen_generic): Likewise.
18255
18256 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
18257
18258         * config/alpha/alpha.c: Use SUBREG_P predicate.
18259         * config/alpha/predicates.md: Ditto.
18260
18261 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18262
18263         * config.host (s390*-*-*): Include driver-native.c only when
18264         building with s390* as host *and* target.
18265
18266 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
18267
18268         PR target/66930
18269         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
18270         T bit register modified_between_p check.
18271
18272 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18273
18274         * config/i386/i386.c: Use SUBREG_P predicate.
18275         * config/i386/i386.md: Ditto.
18276         * config/i386/sse.md: Ditto.
18277         * config/i386/predicates.md: Ditto.
18278
18279 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18280
18281         PR target/67004
18282         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
18283         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
18284
18285 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18286
18287         * Makefile.in: Remove use of TREEBROWSER.
18288         * config.in: Regenerated.
18289         * configure: Regenerated.
18290         * configure.ac: Remove definition of TREEBROWSER.
18291         * tree-browser.c: Removed.
18292         * tree-browser.def: Removed.
18293
18294 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18295
18296         * graphite-scop-detection.c: Include gimple-pretty-print.h.
18297         (stmt_simple_for_scop_p): Print when a stmt is not handled in
18298         Graphite.
18299         (scopdet_basic_block_info): Print when a loop or bb cannot be
18300         represented in Graphite.
18301
18302 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18303
18304         PR target/66648
18305         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
18306         execution guard when min_size is less than size_needed.
18307
18308 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18309
18310         * doc/install.texi: Document supported versions of ISL.
18311
18312 2015-07-25  Jeff Law  <law@redhat.com>
18313
18314         Revert:
18315         PR lto/66752
18316         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18317         unable to find X NE 0 in the tables, return X as the simplified
18318         condition.
18319         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18320         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18321         to VISISTED_BBS.  */
18322         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18323         after removing the control flow statement and unnecessary edges.
18324
18325 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
18326
18327         Revert:
18328         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18329
18330         PR rtl-optimization/64164
18331         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18332         * tree-ssa-copyrename.c: Removed.
18333         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18334         -ftree-coalesce-vars.
18335         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18336         * common.opt (ftree-copyrename): Ignore.
18337         (ftree-coalesce-inlined-vars): Likewise.
18338         * doc/invoke.texi: Remove the ignored options above.
18339         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18340         * tree-ssa-coalesce.h: ... here.
18341         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18342         headers required by it.
18343         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18344         across variables when flag_tree_coalesce_vars.  Check register
18345         use and promoted modes to allow coalescing.  Moved to
18346         tree-ssa-coalesce.c.
18347         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18348         with its member functions to tree-ssa-coalesce.c.
18349         (var_map_base_init): Likewise.  Renamed to
18350         compute_samebase_partition_bases.
18351         (partition_view_normal): Drop want_bases parameter.
18352         (partition_view_bitmap): Likewise.
18353         * tree-ssa-live.h: Adjust declarations.
18354         * tree-ssa-coalesce.c: Include explow.h.
18355         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18356         default defs at the entry point.
18357         (dump_part_var_map): New.
18358         (compute_optimized_partition_bases): New, called by...
18359         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18360         of compute_samebase_partition_bases.  Adjust.
18361         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18362         * cfgexpand.c (leader_merge): New.
18363         (get_rtl_for_parm_ssa_default_def): New.
18364         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18365         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18366         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18367         redundant MEM attr setting.
18368         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18369         from...
18370         (expand_one_stack_var): ... this.  New wrapper to check and
18371         skip already expanded SSA partitions.
18372         (record_alignment_for_reg_var): New, factored out of...
18373         (expand_one_var): ... this.
18374         (expand_one_ssa_partition): New.
18375         (adjust_one_expanded_partition_var): New.
18376         (expand_one_register_var): Check and skip already expanded SSA
18377         partitions.
18378         (expand_used_vars): Don't create DECLs for anonymous SSA
18379         names.  Expand all SSA partitions, then adjust all SSA names.
18380         (pass::execute): Replace the loops that set
18381         SA.partition_to_pseudo from partition leaders and cleared
18382         DECL_RTL for multi-location variables, and that which used to
18383         rename vars and set attrs, with one that clears DECL_RTL and
18384         checks that PARMs and RESULTs default_defs match DECL_RTL.
18385         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18386         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18387         * explow.c (promote_ssa_mode): New.
18388         * explow.h (promote_ssa_mode): Declare.
18389         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18390         * function.c: Include cfgexpand.h.
18391         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18392         (use_register_for_parm_decl): Wrapper for the above to
18393         special-case the result_ptr.
18394         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18395         (split_complex_args): Take assign_parm_data_all argument.
18396         Pass it to rtl_for_parm.  Set up rtl and context for split
18397         args.
18398         (assign_parms_augmented_arg_list): Adjust.
18399         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18400         multiple locations.  Recognize split complex args.
18401         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18402         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18403         (assign_parm_setup_block): Prefer SSA-assigned location.
18404         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18405         if stack_parm is NULL.
18406         (assign_parm_setup_stack): Prefer SSA-assigned location.
18407         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18408         rtl before testing for pointer bounds.  Special-case result_ptr.
18409         (expand_function_start): Maybe reset DECL_RTL of result.
18410         Prefer SSA-assigned location for result and static chain.
18411         Factor out DECL_RESULT and SET_DECL_RTL.
18412         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18413         anonymous SSA names.  Use promote_ssa_mode.
18414         (get_temp_reg): Likewise.
18415         (remove_ssa_form): Adjust.
18416         * stor-layout.c (layout_decl): Don't set mem attributes of
18417         non-MEMs.
18418         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18419         and get its reg_usage for reg invalidation.
18420         (compute_bb_dataflow): Pass it insn.
18421         (emit_notes_in_bb): Likewise.
18422
18423 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18424
18425         * config/i386/i386.c (ix86_va_start): Remove
18426         unneeded !TARGET_64BIT check.
18427         (ix86_gimplify_va_arg): Ditto.
18428
18429 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18430
18431         * graphite-sese-to-poly.c (build_poly_scop): Always call
18432         rewrite_commutative_reductions_out_of_ssa.
18433
18434 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18435
18436         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
18437         flag_associative_math to FLOAT_TYPE_P.  Honour
18438         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
18439
18440 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18441
18442         PR c++/64079
18443         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
18444         and "%qD" in warning_at instead of "%q+D" in warning.
18445
18446 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18447
18448         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
18449         (ix86_function_abi): Cleanup.
18450
18451 2015-07-24  Michael Darling  <darlingm@gmail.com>
18452
18453         PR other/66259
18454         * acinclude.m4: Reflects renaming of configure.in to configure.ac
18455         * configure: Likewise
18456         * configure.ac: Likewise
18457         * doc/install.texi: Likewise
18458         * doc/tm.texi: Likewise
18459         * doc/tm.texi.in: Likewise
18460
18461 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18462
18463         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
18464         manually swapping values.
18465         * cse.c (fold_rtx): Likewise.
18466         * lra-eliminations.c (form_sum): Likewise.
18467
18468 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18469
18470         PR target/64003
18471         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
18472         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
18473         (*jcc_1, *jcc_2, jump, simple_return_internal)
18474         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
18475         Set length_nobnd attribute instead of length attribute.
18476         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
18477         (length_nobnd): Remove attribute.
18478         (length): Remove length_nobnd processing.
18479
18480 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
18481
18482         * gimplify.c (omp_default_clause): New function.  Reorganize flow
18483         for clarity. Broken out of ...
18484         (omp_notice_variable): ... here.
18485
18486 2015-07-24  Gary Funck  <gary@intrepid.com>
18487
18488         PR middle-end/66984
18489         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
18490         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
18491
18492 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18493
18494         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
18495         exit-first loop transform.
18496
18497 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
18498
18499         PR 66714
18500         * tree-cfg.c (struct replace_decls_d): New struct.
18501         (replace_block_vars_by_duplicates_1): New function.
18502         (replace_block_vars_by_duplicates): Use it to replace the decls
18503         in the value exprs by duplicates.
18504
18505 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18506
18507         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
18508         -shared, -symbolic, -rdynamic.
18509
18510 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18511
18512         PR target/65711
18513         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
18514         -dynamic-linker within %{!static %{!shared, and -rdynamic within
18515         %{!static.
18516
18517 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
18518
18519         PR ipa/66566
18520         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
18521         edge summary is available.
18522
18523 2015-07-24  Richard Biener  <rguenther@suse.de>
18524
18525         * genmatch.c (struct dt_node): Add statistic fields.
18526         (dt_node::analyze): New method.
18527         (decision_tree::gen_gimple): Call analyze on the root node
18528         and print statistics to stderr.
18529         (decision_tree::gen_generic): Likewise.
18530
18531 2015-07-24  Richard Biener  <rguenther@suse.de>
18532
18533         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
18534         against the highest or lowest possible integer ...
18535         * match.pd: ... as patterns here.
18536
18537 2015-07-24  Richard Biener  <rguenther@suse.de>
18538
18539         * genmatch.c (struct capture_info): Add same_as field.
18540         (capture_info::capture_info): Initialize same_as.
18541         (capture_info::walk_match): Compute same_as.
18542         (capture_info::walk_result): Compute stuff for the leader.
18543         (capture_info::walk_c_expr): Likewise.
18544         (dt_simplify::gen_1): Only look at leaders when deciding
18545         to force no side-effects or emit side-effects of omitted operands.
18546
18547 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18548
18549         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
18550         reg note to the GPR -> FPR save instructions.
18551
18552 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18553
18554         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
18555         cheaper.
18556         (s390_expand_insv): Don't generate risbg pattern for constant zero
18557         sources.
18558         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
18559         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
18560         splitters.
18561
18562 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18563
18564         * config/s390/s390.c (s390_reorg): Clean up handling of processors
18565         with
18566         -mtune=
18567         (s390_issue_rate): Likewise.
18568         (s390_sched_reorder): Likewise.
18569         (s390_sched_variable_issue): Likewise.
18570         (s390_loop_unroll_adjust): Likewise.
18571         (s390_option_override):  Likewise.
18572
18573 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18574
18575         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
18576         processor capabilities with -march=native.
18577         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
18578         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
18579         (S390_TARGET_BITS_STRING): Macro to simplify specs.
18580
18581 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18582
18583         * config/s390/s390.c (s390_issue_rate): Handle
18584         PROCESSOR_2094_Z9_EC.
18585         (s390_option_override): Likewise.
18586         (s390_adjust_priority): Likewise.
18587
18588 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18589
18590         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
18591         when cross compiling.
18592
18593 2015-07-24  Richard Biener  <rguenther@suse.de>
18594
18595         * fold-const.c (maybe_canonicalize_comparison_1): Move
18596         A code CST canonicalization ...
18597         * match.pd: ... to a pattern here.
18598
18599 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
18600
18601         Revert:
18602         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18603         PR target/63521
18604         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18605         (HONOR_REG_ALLOC_ORDER): Define.
18606
18607 2015-07-24  Richard Biener  <rguenther@suse.de>
18608
18609         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
18610         * fold-const.c (fold_comparison): Move parameter does not
18611         alias &local simplification ...
18612         * match.pd: ... as a pattern here.
18613
18614 2015-07-24  Richard Biener  <rguenther@suse.de>
18615
18616         * gimple-fold.c (replace_stmt_with_simplification): Special-case
18617         valueizing call operands.
18618         * gimple-match-head.c (maybe_push_res_to_seq): Take
18619         number of call arguments from ops array.
18620         (do_valueize): New function.
18621         (gimple_simplify): Return true if valueization changed
18622         any operand even if the result didn't simplify further.
18623
18624 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18625
18626         PR middle-end/25530
18627         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
18628
18629 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18630
18631         PR middle-end/25529
18632         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
18633
18634 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18635
18636         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
18637         instruction.
18638
18639 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18640
18641         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
18642         clean up.
18643
18644 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
18645
18646         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
18647         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
18648         targets here.
18649         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
18650         ms_va_list_type_node initialization.
18651
18652 2015-07-23  Jeff Law  <law@redhat.com>
18653
18654         PR lto/66752
18655         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18656         unable to find X NE 0 in the tables, return X as the simplified
18657         condition.
18658         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18659         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18660         to VISISTED_BBS.  */
18661         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18662         after removing the control flow statement and unnecessary edges.
18663
18664 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18665
18666         * tree-pass.h (get_current_pass_name): Removed.
18667
18668 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18669
18670         PR rtl-optimization/64164
18671         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18672         * tree-ssa-copyrename.c: Removed.
18673         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18674         -ftree-coalesce-vars.
18675         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18676         * common.opt (ftree-copyrename): Ignore.
18677         (ftree-coalesce-inlined-vars): Likewise.
18678         * doc/invoke.texi: Remove the ignored options above.
18679         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18680         * tree-ssa-coalesce.h: ... here.
18681         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18682         headers required by it.
18683         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18684         across variables when flag_tree_coalesce_vars.  Check register
18685         use and promoted modes to allow coalescing.  Moved to
18686         tree-ssa-coalesce.c.
18687         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18688         with its member functions to tree-ssa-coalesce.c.
18689         (var_map_base_init): Likewise.  Renamed to
18690         compute_samebase_partition_bases.
18691         (partition_view_normal): Drop want_bases parameter.
18692         (partition_view_bitmap): Likewise.
18693         * tree-ssa-live.h: Adjust declarations.
18694         * tree-ssa-coalesce.c: Include explow.h.
18695         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18696         default defs at the entry point.
18697         (dump_part_var_map): New.
18698         (compute_optimized_partition_bases): New, called by...
18699         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18700         of compute_samebase_partition_bases.  Adjust.
18701         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18702         * cfgexpand.c (leader_merge): New.
18703         (get_rtl_for_parm_ssa_default_def): New.
18704         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18705         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18706         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18707         redundant MEM attr setting.
18708         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18709         from...
18710         (expand_one_stack_var): ... this.  New wrapper to check and
18711         skip already expanded SSA partitions.
18712         (record_alignment_for_reg_var): New, factored out of...
18713         (expand_one_var): ... this.
18714         (expand_one_ssa_partition): New.
18715         (adjust_one_expanded_partition_var): New.
18716         (expand_one_register_var): Check and skip already expanded SSA
18717         partitions.
18718         (expand_used_vars): Don't create DECLs for anonymous SSA
18719         names.  Expand all SSA partitions, then adjust all SSA names.
18720         (pass::execute): Replace the loops that set
18721         SA.partition_to_pseudo from partition leaders and cleared
18722         DECL_RTL for multi-location variables, and that which used to
18723         rename vars and set attrs, with one that clears DECL_RTL and
18724         checks that PARMs and RESULTs default_defs match DECL_RTL.
18725         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18726         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18727         * explow.c (promote_ssa_mode): New.
18728         * explow.h (promote_ssa_mode): Declare.
18729         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18730         * function.c: Include cfgexpand.h.
18731         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18732         (use_register_for_parm_decl): Wrapper for the above to
18733         special-case the result_ptr.
18734         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18735         (split_complex_args): Take assign_parm_data_all argument.
18736         Pass it to rtl_for_parm.  Set up rtl and context for split
18737         args.
18738         (assign_parms_augmented_arg_list): Adjust.
18739         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18740         multiple locations.  Recognize split complex args.
18741         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18742         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18743         (assign_parm_setup_block): Prefer SSA-assigned location.
18744         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18745         if stack_parm is NULL.
18746         (assign_parm_setup_stack): Prefer SSA-assigned location.
18747         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18748         rtl before testing for pointer bounds.  Special-case result_ptr.
18749         (expand_function_start): Maybe reset DECL_RTL of result.
18750         Prefer SSA-assigned location for result and static chain.
18751         Factor out DECL_RESULT and SET_DECL_RTL.
18752         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18753         anonymous SSA names.  Use promote_ssa_mode.
18754         (get_temp_reg): Likewise.
18755         (remove_ssa_form): Adjust.
18756         * stor-layout.c (layout_decl): Don't set mem attributes of
18757         non-MEMs.
18758         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18759         and get its reg_usage for reg invalidation.
18760         (compute_bb_dataflow): Pass it insn.
18761         (emit_notes_in_bb): Likewise.
18762
18763 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18764
18765         PR target/66217
18766         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
18767         prototype.
18768         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
18769         (rs6000_emit_2insn_and): Handle dot forms.
18770         * config/rs6000/rs6000.md (and<mode>3): Adjust.
18771         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
18772         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
18773
18774 2015-07-23  Richard Biener  <rguenther@suse.de>
18775
18776         * generic-match-head.c: Include cgraph.h.
18777         * gimple-match-head.c: Likewise.
18778         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
18779         SSA names.
18780         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
18781         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
18782         pattern.
18783
18784 2015-07-23  Richard Biener  <rguenther@suse.de>
18785
18786         * gimple-fold.c (fold_gimple_cond): Do not require folding
18787         results to pass valid_gimple_rhs_p.
18788         * tree-cfg.h (fold_cond_expr_cond): Remove.
18789         * tree-cfg.c (fold_cond_expr_cond): Likewise.
18790         (make_edges): Do not call it.
18791         * tree-inline.c (tree_function_versioning): Likewise.
18792
18793 2015-07-23  Tom de Vries  <tom@codesourcery.com>
18794
18795         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
18796         vect_force_simple_reduction.
18797         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
18798         (vect_is_simple_reduction_1): Add and handle
18799         need_wrapping_integral_overflow parameter.
18800         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
18801         need_wrapping_integral_overflow parameter.
18802         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
18803         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
18804         decl.
18805
18806 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
18807
18808         PR tree-optimization/66926,66951
18809         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
18810         INNER_LOOP and fix up condition for renaming virtual operands.
18811
18812 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18813
18814         * combine.c (try_combine): Use std::swap instead of manually
18815         swapping.
18816
18817 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
18818
18819         * config/mips/i6400.md: New file.
18820         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
18821         (mips64r6): Likewise.
18822         (i6400): Define.
18823         * config/mips/mips-tables.opt: Regenerate.
18824         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
18825         (mips_issue_rate): Add support for i6400.
18826         (mips_multipass_dfa_lookahead): Likewise.
18827         * config/mips/mips.h (TUNE_I6400): Define.
18828         * config/mips/mips.md: Include i6400.md.
18829         (processor): Add i6400.
18830         * doc/invoke.texi (-march=@var{arch}): Add i6400.
18831
18832 2015-07-23  Richard Biener  <rguenther@suse.de>
18833
18834         PR middle-end/66916
18835         * match.pd: Guard widen and sign-change comparison simplification
18836         with single_use.
18837
18838 2015-07-23  Richard Biener  <rguenther@suse.de>
18839
18840         PR tree-optimization/66945
18841         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
18842         ::before_dom_children): Force the propagators idea of
18843         non-executable edges to materialize, not what the folder
18844         chooses.
18845
18846 2015-07-23  Richard Biener  <rguenther@suse.de>
18847
18848         * gimple.h (gimple_cond_make_false): Use 0 != 0.
18849         (gimple_cond_make_true): Use 1 != 0.
18850
18851 2015-07-22  DJ Delorie  <dj@redhat.com>
18852
18853         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
18854         slashes.
18855
18856         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
18857         (ashrhi3): Likewise.
18858         (lshrhi3): Likewise.
18859         (movhi): Take advantage of zero-extend to load small constants.
18860         (movpsi): Likewise.
18861         (and<mode>3): Likewise.
18862         (zero_extendqihi2): Likewise.
18863         (zero_extendqisi2): New.
18864         * config/msp430/constraints.md (N,O): New.
18865         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
18866
18867 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
18868
18869         PR target/66954
18870         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
18871         to enum feature_priority and feature_list.
18872         (fold_builtin_cpu): Add F_AES to enum processor_features
18873         and isa_names_table.
18874
18875 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
18876
18877         PR driver/66737
18878         * config/i386/linux-common.h (MPX_SPEC): Use linker option
18879         for 64bit target only.
18880
18881 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18882
18883         * config/nvptx/nvptx.c: Expand some comments.
18884
18885 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
18886
18887         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
18888         (cortex_a53_advsimd): ...This.
18889
18890 2015-07-22  Richard Biener  <rguenther@suse.de>
18891
18892         * genmatch.c (expr::gen_transform): Clarify error message
18893         and display location.
18894
18895 2015-07-22  Richard Biener  <rguenther@suse.de>
18896
18897         * genmatch.c (struct operand): Add location member.
18898         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
18899         constructors.
18900         (struct simplify): Remove match_location and result_location
18901         members.
18902         (elsehwere): Adjust.
18903
18904 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
18905
18906         * config/mips/m5100.md: New file.
18907         * config/mips/mips-cpus.def (m5100, m5101): Define.
18908         * config/mips/mips-tables.opt: Regenerate.
18909         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
18910         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
18911         -march=m5101 to -mips32r5.
18912         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
18913         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
18914         !-msoft-float.
18915         * config/mips/mips.md: Include m5100.md.
18916         (processor): Add m5100.
18917         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
18918
18919 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
18920
18921         * config/mips/mips-cpus.def (interaptiv): Define.
18922         * config/mips/mips-tables.opt: Regenerate.
18923         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
18924         -mips32r2.
18925         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
18926         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
18927
18928 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18929
18930         PR target/63521
18931         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18932         (HONOR_REG_ALLOC_ORDER): Define.
18933
18934 2015-07-22  Richard Biener  <rguenther@suse.de>
18935
18936         PR tree-optimization/66952
18937         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
18938         blocks we end up executing unconditionally reset all SSA
18939         info such as range and alignment.
18940         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
18941         * tree-ssanames.c (reset_flow_sensitive_info): New function.
18942
18943 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18944
18945         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
18946         typo in attribute.
18947
18948 2015-07-22  Richard Biener  <rguenther@suse.de>
18949
18950         * genmatch.c (parser::parse_result): Properly handle
18951         match with result operands and conditions.
18952
18953 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18954
18955         PR target/63870
18956         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18957         Add qualifier_struct_load_store_lane_index.
18958         (aarch64_types_loadstruct_lane_qualifiers): Use
18959         qualifier_struct_load_store_lane_index for lane index argument for
18960         last argument.
18961         (aarch64_types_storestruct_lane_qualifiers): Ditto.
18962         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18963         (aarch64_simd_expand_args): Add new argument describing mode of
18964         builtin. Check lane bounds for arguments with
18965         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18966         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
18967         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18968         (aarch64_simd_expand_builtin): Handle arguments with
18969         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
18970         aarch64_simd_expand_args.
18971         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
18972         vst[234]_lane with BUILTIN_VALLDIF.
18973         * config/aarch64/aarch64-simd.md:
18974         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
18975         endianness reversal on lane index.
18976         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
18977         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
18978         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
18979         (vec_store_lanesci_lane<mode>): Ditto.
18980         (vec_store_lanesxi_lane<mode>): Ditto.
18981         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
18982         reversal of lane index.
18983         (aarch64_ld3_lane<mode>): Ditto.
18984         (aarch64_ld4_lane<mode>): Ditto.
18985         (aarch64_st2_lane<mode>): Ditto.
18986         (aarch64_st3_lane<mode>): Ditto.
18987         (aarch64_st4_lane<mode>): Ditto.
18988         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
18989         to qmode. Add new mode parameter. Update uses.
18990         (__LD3_LANE_FUNC): Ditto.
18991         (__LD4_LANE_FUNC): Ditto.
18992         (__ST2_LANE_FUNC): Ditto.
18993         (__ST3_LANE_FUNC): Ditto.
18994         (__ST4_LANE_FUNC): Ditto.
18995
18996 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
18997
18998         * doc/invoke.texi (Language Independent Options): Rename node to
18999         Diagnostic Message Formatting Options.
19000
19001 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
19002
19003         PR ipa/66424.
19004         * lra-remat.c (operand_to_remat): Prevent using insns with input
19005         subregs processed separately by IRA.
19006
19007 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
19008
19009         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
19010         straight loops.
19011         (single_imm_use): Check for iterator node.
19012         (num_imm_uses): Likewise.
19013         * tree-ssa-operands.c (has_zero_uses_1): Delete.
19014         (single_imm_use_1): Check for iterator node.
19015
19016 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
19017             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19018
19019         * configure.ac: Add check for new options in isl-0.15.
19020         * config.in, configure: Rebuilt.
19021         * graphite-blocking.c: Include <isl/constraint.h>
19022         * graphite-interchange.c,  graphite-poly.c: Likewise.
19023         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
19024         * graphite.c: Likewise.
19025         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
19026         <isl/union_set.h>.
19027         * graphite-dependences.c: Include <isl/constraint.h>.
19028         (max_number_of_out_dimensions): Returns isl_stat.
19029         (extend_schedule_1): Likewise
19030         (extend_schedule): Corresponding changes.
19031         * graphite-optimize-isl.c: Include <isl/constraint.h> and
19032         <isl/union_set.h>.
19033         (getSingleMap): Change return type of isl_stat.
19034         (optimize_isl): Conditionally use
19035         isl_options_set_schedule_serialize_sccs.
19036         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
19037         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
19038
19039 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
19040
19041         PR target/66956
19042         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
19043         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
19044
19045 2015-07-21  Richard Biener  <rguenther@suse.de>
19046
19047         PR tree-optimization/66948
19048         * genmatch.c (capture_info::walk_match): Also recurse to
19049         captures.  Properly compute expr state from captures of
19050         captures.
19051         * match.pd: Add single-use guards to
19052         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
19053
19054 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
19055
19056         * config/nvptx/mkoffload.c (process): Add static destructor call.
19057
19058 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19059
19060         PR middle-end/66915
19061         * match.pd (A - B -> A + (-B)): Don't allow folding
19062         when type if a fixed-point type.
19063
19064 2015-07-20  DJ Delorie  <dj@redhat.com>
19065
19066         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
19067         (iorqi3_real): Likewise for set1.
19068
19069 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
19070
19071         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
19072         for !TARGET_64BIT.
19073
19074 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
19075
19076         * graphite-isl-ast-to-gimple.c:
19077         Refactor so that each function can access 'region'. This will help
19078         maintain a parameter rename_map within a region.
19079
19080 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19081
19082         * config/rs6000/rs6000.md (*lt0_disi): New.
19083
19084 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19085
19086         PR target/66217
19087         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
19088         "available letters" comment.
19089         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
19090         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
19091         and_2rld_operand):  Delete.
19092         (and_operand): Adjust.
19093         (rotate_mask_operator): New.
19094         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
19095         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
19096         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
19097         extract_ME): Delete.
19098         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19099         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
19100         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
19101         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19102         rs6000_emit_2insn_and): New.
19103         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
19104         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
19105         includes_rldic_lshift_p, includes_rldicr_lshift_p,
19106         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
19107         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19108         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
19109         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
19110         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19111         rs6000_emit_2insn_and): New.
19112         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
19113         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
19114         handling.
19115         <NOT>: Don't fall through to next case.
19116         <AND>: Handle the various rotate-and-mask cases directly.
19117         <IOR>: Always cost as one insn.
19118         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
19119         (and<mode>3): Adjust expander for the new patterns.
19120         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
19121         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
19122         (*and<mode>3_imm_dot_shifted): New.
19123         (*and<mode>3_mask): Delete, rewrite as ...
19124         (and<mode>3_mask): ... New.
19125         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
19126         (andsi3_internal0_nomc): Delete.
19127         (*andsi3_internal6): Delete.
19128         (*and<mode>3_2insn): New.
19129         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19130         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19131         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
19132         *insvdi_internal3): Delete.
19133         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
19134         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
19135         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
19136         *ior<mode>_mask): New.
19137         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
19138         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
19139         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
19140         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
19141         Delete.
19142         (ashr<mode>3): Delete expander.
19143         (*ashr<mode>3): Rename to ...
19144         (ashr<mode>3): ... This.
19145         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
19146         (*rotldi3_internal4, *rotldi3_internal5 and split,
19147         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
19148         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
19149         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
19150         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
19151         (splitter for loading a mask): Adjust.
19152         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
19153
19154 2015-07-20  Marek Polacek  <polacek@redhat.com>
19155
19156         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
19157         output_add_clobbers, output_added_clobbers_hard_reg_p,
19158         gen_rtx_scratch): Remove declarations.
19159
19160 2015-07-20  Marek Polacek  <polacek@redhat.com>
19161
19162         PR c++/55095
19163         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
19164
19165 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19166
19167         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
19168         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
19169
19170 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19171
19172         * combine.c (combine_simplify_rtx): Move simplification step
19173         before various transformations/substitutions.
19174
19175 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
19176
19177         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
19178         (struct int_traits): Likewise.
19179
19180 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19181
19182         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
19183         function to vmsdbgout_function_decl.
19184
19185 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19186
19187         PR target/66922
19188         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
19189         from misaligned positions.
19190         (ix86_expand_pinsr): Reject insertions to misaligned positions.
19191
19192 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
19193
19194         PR middle-end/46851
19195         PR middle-end/60340
19196         * Makefile.in: Removed omega.o.
19197         * common.opt: Document flag fcheck-data-deps as deprecated.
19198         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
19199         its associated params: omega-max-vars, omega-max-geqs,
19200         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
19201         omega-max-keys, omega-eliminate-redundant-constraints.
19202         * doc/loop.texi: Remove all the section on Omega.
19203         * graphite-blocking.c: Include missing params.h: it used to be
19204         included through tree-data-ref.h and omega.h.
19205         * graphite-isl-ast-to-gimple.c: Same.
19206         * graphite-optimize-isl.c: Same.
19207         * graphite-sese-to-poly.c: Same.
19208         * graphite.c: Same.
19209         * omega.c: Remove.
19210         * omega.h: Remove.
19211         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
19212         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
19213         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
19214         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
19215         * passes.def: Remove pass_check_data_deps.
19216         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
19217         (dump_conflict_function): Same.
19218         (dump_subscript): Same.
19219         (print_direction_vector): Same.
19220         (print_dir_vectors): Same.
19221         (print_lambda_vector): Same.
19222         (print_dist_vectors): Same.
19223         (dump_data_dependence_relation): Same.
19224         (dump_data_dependence_relations): Same.
19225         (dump_dist_dir_vectors): Same.
19226         (dump_ddrs): Same.
19227         (init_omega_eq_with_af): Removed.
19228         (omega_extract_distance_vectors): Removed.
19229         (omega_setup_subscript): Removed.
19230         (init_omega_for_ddr_1): Removed.
19231         (init_omega_for_ddr): Removed.
19232         (ddr_consistent_p): Removed.
19233         (compute_affine_dependence): Do not use omega to check data
19234         dependences.
19235         (compute_data_dependences_for_bb): Removed.
19236         (analyze_all_data_dependences): Removed.
19237         (tree_check_data_deps): Removed.
19238         * tree-data-ref.h: Do not include omega.h.
19239         (compute_data_dependences_for_bb): Removed.
19240         (tree_check_data_deps): Removed.
19241         * tree-ssa-loop.c (pass_check_data_deps): Removed.
19242         (make_pass_check_data_deps): Removed.
19243         * tree-ssa-phiopt.c: Include params.h.
19244         * tree-vect-data-refs.c: Same.
19245         * tree-vect-slp.c: Same.
19246
19247 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19248
19249         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
19250         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
19251         (mem->fpreg splitters): Ditto.
19252         (general_operand->nonimmediate_operand splitter): Use explicit modes.
19253         Disable DFmode for TARGET_64BIT.
19254
19255 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
19256
19257         PR target/66906
19258         * config/i386/i386.c (ix86_expand_prologue): Replicate static
19259         chain on the stack.
19260
19261 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19262
19263         * config/nvptx/mkoffload.c (process): Constify host data.
19264         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19265         Constify host data.
19266         (generate_host_descr_file): Likewise.
19267
19268 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
19269             Sebastian Pop  <s.pop@samsung.com>
19270
19271         PR middle-end/61929
19272         * graphite-dependences.c (add_pdr_constraints): Renamed
19273         pdr->extent to pdr->subscript_sizes.
19274         * graphite-interchange.c (build_linearized_memory_access): Add
19275         back all gcc_assert's that the "isl_int to isl_val conversion"
19276         patch has removed.  Refactored.
19277         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
19278         * graphite-poly.c (new_poly_dr): Same.
19279         (free_poly_dr): Same.
19280         * graphite-poly.h (struct poly_dr): Same.
19281         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
19282         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
19283         * graphite-scop-detection.h: Fix space.
19284         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
19285         back all gcc_assert's removed by a previous patch.
19286         (wrap): Remove the_isl_ctx global variable that the same patch has
19287         added.
19288         (build_loop_iteration_domains): Same.
19289         (add_param_constraints): Same.
19290         (pdr_add_data_dimensions): Same.  Refactored.
19291         (build_poly_dr): Renamed extent to subscript_sizes.
19292
19293 2015-07-17  Marek Polacek  <polacek@redhat.com>
19294
19295         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
19296         * match.pd: ... here.
19297
19298 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19299
19300         * config/nvptx/mkoffload.c (process): Constify target data.
19301         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19302         Constify target data.
19303         (generate_target_offloadend_file): Likewise.
19304
19305 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
19306
19307         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
19308         to allow renaming of PHI arguments on edges incoming from outer
19309         loop header, add corresponding check before start PHI iterator.
19310         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
19311         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
19312         with true force_vectorize.  Set-up dominator for outer loop too.
19313         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
19314         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
19315         was marked with force_vectorize and has restricted cfg.
19316         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
19317         inner loop.
19318         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
19319         do peeling for outer loops.
19320
19321 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
19322             Matthias Klose  <doko@ubuntu.com>
19323
19324         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
19325         build-sysroot, sysroot from the `Miscenalleous configure options' to
19326         the `Directories' section and strip trailing `/' from with_sysroot.
19327         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
19328         * configure: Regenerated.
19329
19330 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19331
19332         PR target/66824
19333         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
19334         (TARGET_HARD_DF_REGS): Ditto.
19335         (TARGET_HARD_XF_REGS): Ditto.
19336         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
19337         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
19338         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
19339         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
19340         (*movsf_internal): Add alternatives 16 and 17. Enable
19341         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
19342
19343 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19344
19345         PR rtl-optimization/66891
19346         * calls.c (expand_call): Wrap precompute_register_parameters with
19347         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
19348
19349 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
19350
19351         * config/nvptx/mkoffload.c (process): Constify mapping variables.
19352         Define target data struct and initialize it.
19353
19354 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
19355
19356         PR rtl-optimization/66626
19357         * ira.h (emit-rtl.h): Include.
19358         (non_spilled_static_chain_regno_p): New.
19359         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
19360         unless it is non spilled static chain pseudo.
19361         (assign_hard_rego): Spill memory profitable allocno unless it is
19362         non spilled static chain pseudo.
19363         (allocno_spill_priority_compare): Put non spilled static chain
19364         pseudo at the end of sorted array.
19365         (improve_allocation): Do nothing if we have static chain and
19366         non-local goto.
19367         (allocno__priority_compare_func): Put non spilled static chain
19368         pseudo at the beginning of sorted array.
19369         (move_spill_restore): Ignore non spilled static chain pseudo.
19370         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
19371         to non spilled static chain pseudo.
19372         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
19373         pseudo at the beginning of sorted array.
19374         (spill_for): Spill non spilled static chain pseudo last.
19375         * lra-constraints.c (lra_constraints): Remove static chain pseudo
19376         check for equivalence.
19377
19378 2015-07-16  Martin Liska  <mliska@suse.cz>
19379
19380         PR ipa/66896.
19381         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
19382         dst_ctx if it does not exist.
19383
19384 2015-07-16  Martin Liska  <mliska@suse.cz>
19385
19386         * hash-set.h (remove): New function.
19387         (iterator): New iteration class for hash_set.
19388
19389 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19390
19391         * genattrtab.c (make_canonical): Add a file_location parameter.
19392         Use fatal_at rather than fatal.
19393         (get_attr_value): Likewise.  Update call to make_canonical.
19394         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
19395         (make_internal_attr): Update calls accordingly.
19396
19397 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19398
19399         * read-md.h (message_with_line, error_with_line): Delete.
19400         * read-md.c (message_with_line, error_with_line): Delete.
19401         * gensupport.h: Include read-md.h.
19402         (md_rtx_info): New structure.
19403         (read_md_rtx): Use it.  Return a bool success value.
19404         * gensupport.c (read_md_rtx): Likewise.
19405         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
19406         (main): Update after interface changes.
19407         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
19408         (main): Update after interface changes.
19409         * genattrtab.c (insn_code_number): Delete.
19410         (optimize_attrs): Add a max_insn_code parameter and use it instead
19411         of insn_code_number.
19412         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
19413         Use *_at rather than *_with_line functions.
19414         (gen_insn): Likewise.
19415         (gen_delay): Likewise.
19416         (gen_insn_reserv): Likewise.
19417         (gen_bypass): Take an md_rtx_info rather than an rtx.
19418         (main): Update after interface changes.  Use a local max_insn_code
19419         variable instead of insn_code_number.
19420         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
19421         an rtx.  Use fatal_at rather than fatal.
19422         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
19423         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
19424         (gen_absence_set, gen_final_absence_set, gen_automaton)
19425         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
19426         (main): Update after interface changes.
19427         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
19428         and code number.
19429         (main): Update after interface changes.
19430         * genconditions.c (main): Use new read_md_rtx interface.
19431         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
19432         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
19433         (main): Update after interface changes.
19434         * genemit.c (insn_code_number, insn_index_number): Delete.
19435         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19436         Use fatal_at rather than fatal.
19437         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
19438         rather than fatal.
19439         (gen_split): Likewise.
19440         (main): Update after interface changes.
19441         * genextract.c (line_no): Delete.
19442         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19443         Update call to walk_rtx.
19444         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
19445         rather than message_with_line.
19446         (walk_rtx): Add an md_rtx_info argument.  Update call to
19447         VEC_safe_set_locstr.
19448         (main): Update after interface changes.
19449         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
19450         and lineno.  Use error_at rather than separate message_with_line
19451         calls and have_error assignments.
19452         (main): Update after interface changes.
19453         * genmddump.c (main): Use new read_md_rtx interface.
19454         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
19455         (main): Update after interface changes.
19456         * genoutput.c (next_code_number): Delete.
19457         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19458         (gen_peephole, gen_expand, gen_split): Likewise.
19459         (note_constraint): Likewise.  Use *_at rather than *_with_line
19460         functions.
19461         (main): Update after interface changes.
19462         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
19463         rtx and lineno.
19464         (main): Update after interface changes.
19465         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
19466         than an rtx and lineno.
19467         (process_define_constraint): Likewise.
19468         (process_define_register_constraint): Likewise.
19469         (main): Update after interface changes.
19470         * genrecog.c (next_insn_code, pattern_lineno): Delete.
19471         (validate_pattern): Replace top-level rtx with an md_rtx_info.
19472         Use *_at rather than *_with_line functions.
19473         (match_pattern_2): Likewise.
19474         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
19475         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
19476         Use *_at rather than *_with_line functions.
19477         * gentarget-def.c (add_insn): New function.
19478         (main): Use it.  Use new read_md_rtx interface.
19479
19480 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19481
19482         * gensupport.h (compute_test_codes): Take a file_location rather
19483         than a line number.
19484         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
19485         rather than *_with_line functions.
19486         (process_define_predicate): Update call to compute_test_codes.
19487         * genpreds.c (validate_exp): Take a file_location rather than a
19488         line number.  Use *_at functions rather than *_with_line functions.
19489         (process_define_predicate): Update call to validate_exp.
19490         (constraint_data): Replace lineno field with a file_location.
19491         (add_constraint): Take a file_location rather than a line number.
19492         Use *_at functions rather than *_with_line functions.  Fix error
19493         message for address constraints.  Update after changes to
19494         validate_exp, constraint_data and compute_test_codes.
19495         (process_define_constraint): Update accordingly.
19496         (process_define_register_constraint): Likewise.
19497
19498 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19499
19500         * genoutput.c (data): Use a file_location to record the source
19501         position.
19502         (nothing): Delete.
19503         (idata, idata_end): Remove initialization.
19504         (constraint_data): Replace lineno with a file_location.
19505         (output_insn_data): Update after changes to data.
19506         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
19507         (scan_operands): Likewise, using *_at rather than *_with_line
19508         functions.
19509         (process_template): Likewise.
19510         (validate_insn_alternatives): Likewise.
19511         (validate_insn_operands): Likewise.
19512         (validate_optab_operands): Likewise.
19513         (init_insn_for_nothing): Initialize idata and idata_end.
19514         (note_constraint): Update after changes to constraint_data,
19515         using at rather than with_line functions.
19516         (mdep_constraint_len): Take a file_location rather than a
19517         line number.  Use at rather than with_line functions.
19518
19519 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19520
19521         * read-md.h (fatal_at): Declare.
19522         * read-md.c (fatal_at): New function.
19523         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
19524         to record the source position.
19525         (check_attr_test): Take a file_location instead of a line number.
19526         Use fatal_at instead of fatal.
19527         (check_attr_value): Update after above changes, using "at"
19528         rather than "with_line" reporting functions.
19529         (convert_set_attr_alternative): Likewise.
19530         (gen_attr): Likewise.
19531         (check_defs): Likewise.  Don't assign to read_md_filename.
19532         (gen_insn): Update initialization after above changes.
19533         (gen_delay): Likewise.
19534         (write_insn_cases): Print the filename for a define_peephole.
19535         (gen_insn_reserv): Take a line number as argument and update
19536         the call to check_attr_test.
19537         (main): Pass a line number to gen_insn_reserv.
19538
19539 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19540
19541         * read-md.h (file_location): New structure.
19542         (directive_handler_t): Take a file_location rather than a line number.
19543         (message_at, error_at): Declare.
19544         (read_skip_construct): Delete.
19545         * read-md.c (message_with_line_1): Replace with...
19546         (message_at_1): ...this new function.
19547         (message_at, error_at): New functions.
19548         (message_with_line, error_with_line): Update to use message_at_1.
19549         (handle_enum): Take a file_location rather than a line number
19550         and use error_at for error reporting.
19551         (handle_include): Likewise.
19552         (read_skip_construct): Likewise.  Make static.
19553         (handle_file): Update after above changes.  Pass a file_location
19554         rather than a line number to handle_directive.
19555         * gensupport.c (queue_elem): Replace separate filename and lineno
19556         with a file_location.
19557         (queue_pattern): Replace filename and lineno arguments with a
19558         file_location.  Update after change to queue_elem.
19559         (process_define_predicate): Replace lineno argument with a
19560         file_location and use error_at for error reporting.  Update
19561         after above changes.
19562         (process_rtx): Likewise.
19563         (subst_pattern_match): Likewise.
19564         (get_alternatives_number): Likewise.
19565         (alter_predicate_for_insn): Likewise.
19566         (rtx_handle_directive): Likewise.
19567         (is_predicable): Update after above changes, using error_at rather
19568         than error_with_line.
19569         (has_subst_attribute): Likewise.
19570         (identify_predicable_attribute): Likewise.
19571         (alter_attrs_for_subst_insn): Likewise.
19572         (process_one_cond_exec): Likewise.
19573         (process_substs_on_one_elem): Likewise.
19574         (process_define_subst): Likewise.
19575         (check_define_attr_duplicates): Likewise.
19576         (read_md_rtx): Update after change to queue_elem.
19577
19578 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19579
19580         * genoutput.c (next_index_number): Delete.
19581         (data): Remove index_number.
19582         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
19583         (main): Remove manipulation of next_index_number.
19584
19585 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19586
19587         * genattrtab.c (check_attr_value): Remove handling of null attrs.
19588         (make_canonical): Likewise.
19589
19590 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
19591
19592         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
19593         instead of adjust_address_nv.
19594         (restore_stack_nonlocal): Likewise.
19595         (nonlocal_goto): Likewise.
19596
19597 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19598
19599         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
19600         not have a corresponding loop header phi.
19601
19602 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19603
19604         * tree-parloops.c (create_loads_for_reductions): Handle case that
19605         reduction is unused.
19606
19607 2015-07-16  Richard Biener  <rguenther@suse.de>
19608
19609         PR tree-optimization/66894
19610         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
19611         about deriving NE_EXPR from truncated values.
19612
19613 2015-07-16  Martin Liska  <mliska@suse.cz>
19614
19615         * alloc-pool.h
19616         (object_allocator): Add new class.
19617         (pool_allocator::initialize): Use the underlying class.
19618         (pool_allocator::allocate): Likewise.
19619         (pool_allocator::remove): Likewise.
19620         (operator new): A new generic allocator.
19621         * asan.c (struct asan_mem_ref): Remove unused members.
19622         (asan_mem_ref_new): Replace new operator with
19623         object_allocator::allocate.
19624         (free_mem_ref_resources): Change deallocation.
19625         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
19626         with object_allocator.
19627         * config/sh/sh.c (add_constant): Replace new operator with
19628         object_allocator::allocate.
19629         (sh_reorg): Change call to a release method.
19630         * cselib.c (struct elt_list): Remove unused members.
19631         (new_elt_list): Replace new operator with
19632         object_allocator::allocate.
19633         (new_elt_loc_list): Likewise.
19634         (new_cselib_val): Likewise.
19635         (unchain_one_elt_list): Change delete operator with remove method.
19636         (unchain_one_elt_loc_list): Likewise.
19637         (unchain_one_value): Likewise.
19638         (cselib_finish): Release newly added static allocators.
19639         * cselib.h (struct cselib_val): Remove unused members.
19640         (struct elt_loc_list): Likewise.
19641         * df-problems.c (df_chain_alloc): Replace pool_allocator with
19642         object_allocator.
19643         * df-scan.c (struct df_scan_problem_data): Likewise.
19644         (df_scan_alloc): Likewise.
19645         * df.h (struct dataflow): Likewise.
19646         * dse.c (struct read_info_type): Likewise.
19647         (struct insn_info_type): Likewise.
19648         (struct dse_bb_info_type): Likewise.
19649         (struct group_info): Likewise.
19650         (struct deferred_change): Likewise.
19651         (get_group_info): Likewise.
19652         (delete_dead_store_insn): Likewise.
19653         (free_read_records): Likewise.
19654         (replace_read): Likewise.
19655         (check_mem_read_rtx): Likewise.
19656         (scan_insn): Likewise.
19657         (dse_step1): Likewise.
19658         (dse_step7): Likewise.
19659         * et-forest.c (struct et_occ): Remove unused members.
19660         (et_new_occ): Use allocate instead of new operator.
19661         (et_new_tree): Likewise.
19662         (et_free_tree): Call release method explicitly.
19663         (et_free_tree_force): Likewise.
19664         (et_free_pools): Likewise.
19665         (et_split): Use remove instead of delete operator.
19666         * et-forest.h (struct et_node): Remove unused members.
19667         * ipa-cp.c: Change pool_allocator to object_allocator.
19668         * ipa-inline-analysis.c: Likewise.
19669         * ipa-profile.c: Likewise.
19670         * ipa-prop.c: Likewise.
19671         * ipa-prop.h: Likewise.
19672         * ira-build.c (initiate_cost_vectors): Cast return value.
19673         (ira_allocate_cost_vector): Likewise.
19674         * ira-color.c (struct update_cost_record): Remove unused members.
19675         * lra-int.h (struct lra_live_range): Likewise.
19676         (struct lra_copy): Likewise.
19677         (struct lra_insn_reg): Likewise.
19678         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
19679         * lra.c (new_insn_reg): Replace new operator with allocate method.
19680         (free_insn_regs): Same for operator delete.
19681         (finish_insn_regs): Release new static allocator.
19682         (finish_insn_recog_data): Likewise.
19683         (lra_free_copies): Replace delete operator with remove method.
19684         (lra_create_copy): Replace operator new with allocate method.
19685         (invalidate_insn_data_regno_info): Same for remove method.
19686         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
19687         (free_debug_insn_changes): Replace delete operator with remove method.
19688         (replace_oldest_value_reg): Replace operator new with allocate method.
19689         (pass_cprop_hardreg::execute): Release new static variable.
19690         * sched-deps.c (sched_deps_init): Change pool_allocator to
19691         object_allocator.
19692         * sel-sched-ir.c: Likewise.
19693         * sel-sched-ir.h: Likewise.
19694         * stmt.c (expand_case): Likewise.
19695         (expand_sjlj_dispatch_table): Likewise.
19696         * tree-sra.c (struct access): Remove unused members.
19697         (struct assign_link): Likewise.
19698         (sra_deinitialize): Release newly added static pools.
19699         (create_access_1):Replace operator new with allocate method.
19700         (build_accesses_from_assign): Likewise.
19701         (create_artificial_child_access): Likewise.
19702         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
19703         pool_allocator to object_allocator.
19704         * tree-ssa-pre.c: Likewise.
19705         * tree-ssa-reassoc.c: Likewise.
19706         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
19707         * tree-ssa-strlen.c: Likewise.
19708         * tree-ssa-structalias.c: Likewise.
19709         * var-tracking.c (onepart_pool_allocate): New function.
19710         (unshare_variable): Use the newly added function.
19711         (variable_merge_over_cur): Likewise.
19712         (variable_from_dropped): Likewise.
19713         (variable_was_changed): Likewise.
19714         (set_slot_part): Likewise.
19715         (emit_notes_for_differences_1): Likewise.
19716         (vt_finalize): Release newly added static pools.
19717
19718 2015-07-16  Martin Jambor  <mjambor@suse.cz>
19719
19720         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
19721         all uses.  Fix two typos in its general comment.
19722         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
19723
19724 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
19725
19726         * config/i386/linux-common.h (LINK_MPX): New.
19727         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
19728         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
19729         indicating '-z bndplt' support by linker.
19730         * configure: Regenerate.
19731         * config.in: Regenerate.
19732
19733 2015-07-16  Richard Biener  <rguenther@suse.de>
19734
19735         * fold-const.c (fold_widened_comparison): Remove.
19736         (fold_sign_changed_comparison): Likewise.
19737         (fold_comparison): Move widened and sign-changed comparison
19738         simplification ...
19739         * match.pd: ... to patterns here.
19740         * generic-match-head.c: Include target.h.
19741         * gimple-match-head.c: Likewise.
19742
19743 2015-07-16  Richard Biener  <rguenther@suse.de>
19744
19745         * tree-ssa-dom.c (dom_valueize): New function.
19746         (record_temporary_equivalences): Also record equivalences
19747         for dominating stmts that have uses of equivalences we are
19748         about to record.
19749
19750 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
19751
19752         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
19753         add_autoinc_candidates.
19754         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
19755         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
19756         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
19757         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
19758         Call new function.
19759         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
19760         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
19761         Remove parameter struct iv*.  Call add_autoinc_candidates here.
19762         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
19763         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
19764         Call new function.
19765         (find_iv_candidates): Call new functions.
19766
19767 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
19768
19769         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
19770         uninitialized-variable warning.
19771
19772 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
19773
19774         PR target/65249
19775         * config/sh/sh.md (movdi): Split simple reg move to two movsi
19776         when the destination is R0.
19777
19778 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
19779
19780         PR target/66866
19781         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
19782         * config/i386/i386.c (ix86_expand_pextr): New function.
19783         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
19784         for non-lowpart subregs.
19785         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
19786         (insv<mode>): Use SWI248 mode iterator.
19787         (insv<mode>_1): Ditto.
19788
19789 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19790             Sebastian Pop  <s.pop@samsung.com>
19791
19792         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
19793         iterator to use_stmt.
19794
19795 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19796             Sebastian Pop <s.pop@samsung.com>
19797
19798         * graphite-scop-detection.c (build_scops_1): Discard scops for
19799         which entry==exit.
19800
19801 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19802             Sebastian Pop <s.pop@samsung.com>
19803
19804         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
19805         case of a return statement in scop.
19806
19807 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19808             Sebastian Pop <s.pop@samsung.com>
19809
19810         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
19811         INTEGER_TYPE parameters.
19812         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
19813         VECTOR_CST in scan_tree_for_params.
19814         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
19815
19816 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19817
19818         * gimple-pretty-print.h: Don't include pretty-print.h.
19819         * tree-streamer.h: Don't include lto-streamer.h.
19820         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
19821         * gimple-streamer-in.c: Remove redundant includes.
19822         * gimple-streamer-out.c: Likewise.
19823         * ipa-devirt.c: Likewise.
19824         * ipa-icf.c: Likewise.
19825         * ipa-inline-analysis.c: Likewise.
19826         * ipa-polymorphic-call.c: Likewise.
19827         * ipa-profile.c: Likewise.
19828         * ipa-prop.c: Likewise.
19829         * ipa-pure-const.c: Likewise.
19830         * lto-cgraph.c: Likewise.
19831         * lto-streamer-in.c: Likewise.
19832         * lto-streamer-out.c: Likewise.
19833         * lto-streamer.c: Likewise.
19834         * tree-streamer-in.c: Likewise.
19835         * tree-streamer-out.c: Likewise.
19836         * tree-streamer.c: Likewise.
19837
19838 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19839
19840         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
19841         include input.h.
19842         * opts.c: Remove multiline #include comment.
19843
19844 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
19845
19846         * config/nvptx/mkoffload.c (process): Add C++ protection to
19847         emitted code.
19848
19849 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19850
19851         PR target/66854
19852         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
19853         null before IEEE 128-bit floating point support patch.
19854
19855 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19856
19857         * simplify-rtx.c (simplify_ternary_operation): Add simplification
19858         for (!c) != {0,...,0} ? a : b for vector modes.
19859
19860 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
19861             Martin Jambor  <mjambor@suse.cz>
19862
19863         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
19864         struct func_body_info* instead of struct ipa_node_params*, expecting
19865         fbi->info to be filled in.  Replace throughout.  Adjust call to
19866         ipa_load_from_parm_agg.
19867         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
19868         instead of struct ipa_node_params*.  Adjust calls to other functions
19869         so that they pass either fbi or fbi->info.
19870         (set_switch_stmt_execution_predicate): Likewise.
19871         (will_be_nonconstant_predicate): Likewise.
19872         (compute_bb_predicates): Likewise.
19873         (estimate_function_body_sizes): Move asserts earlier.  Fill in
19874         struct func_body_info, replace parms_info with fbi.info.  Adjust
19875         calls to functions that now accept struct func_body_info.
19876         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
19877         (struct func_body_info): Likewise.
19878         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
19879         remove static.  Adjust callers.
19880         (ipa_load_from_parm_agg): Remove.
19881         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
19882         (func_body_info): Likewise.
19883         (ipa_load_from_parm_agg): Adjust prototype.
19884
19885 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19886
19887         * gensupport.c (rtx_handle_directive): Adjust.
19888         * read-rtl.c (apply_iterators): Take vector to add rtxs to
19889         instead of expr list rtx.
19890         (add_define_attr_for_define_subst): Likewise.
19891         (add_define_subst_attr): Likewise.
19892         (read_subst_mapping): Likewise.
19893         (read_rtx): Likewise.
19894         * rtl.h (read_rtx): Adjust.
19895
19896 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19897
19898         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
19899
19900 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19901
19902         PR target/58066
19903         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
19904         (*tls_local_dynamic_base_64_<mode>): Ditto.
19905         (*tls_local_dynamic_base_64_largepic): Ditto.
19906         (tls_global_dynamic_64_<mode>): Update expander pattern.
19907         (tls_local_dynamic_base_64_<mode>): Ditto.
19908
19909 2015-07-15  Richard Biener  <rguenther@suse.de>
19910
19911         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
19912         and bool_var == 1 -> bool_var simplifications ...
19913         * match.pd: ... to patterns here.  Factor out negate_expr_p
19914         cases from the A - B -> A + (-B) patterns as negate_expr_p
19915         predicate and add a -(A + B) -> (-B) - A pattern.
19916
19917 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19918
19919         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
19920
19921 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
19922             Robert Suchanek  <robert.suchanek@imgtec.com>
19923
19924         * config/mips/mips.c (mips_int_mask): New enum.
19925         (mips_shadow_set): Likewise.
19926         (int_mask): New variable.
19927         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
19928         (machine_function): Add int_mask and use_shadow_register_set.
19929         (mips_attribute_table): Add attribute handlers for interrupt and
19930         use_shadow_register_set.
19931         (mips_interrupt_mask): New static function.
19932         (mips_handle_interrupt_attr): Likewise.
19933         (mips_handle_use_shadow_register_set_attr): Likewise.
19934         (mips_use_shadow_register_set): Change return type to enum
19935         mips_shadow_set.  Add argument handling for use_shadow_register_set
19936         attribute.
19937         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
19938         compare with mips_shadow_set enum.
19939         (mips_compute_frame_info): Add interrupt mask and
19940         use_shadow_register_set to per-function information structure.
19941         Add a stack slot for EPC unconditionally.
19942         (mips_expand_prologue): Compare use_shadow_register_set value
19943         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
19944         masked interrupt register but in EIC mode use K0 and save Cause in K0.
19945         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
19946         copying the stack pointer from the shadow register set.
19947         * config/mips/mips.h (SR_IM0): New define.
19948         * config/mips/mips.md (mips_rdpgpr): Rename to...
19949         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
19950         * doc/extend.texi (Declaring Attributes of Functions): Document
19951         optional arguments for interrupt and use_shadow_register_set
19952         attributes.
19953
19954 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19955
19956         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
19957         interrupt attribute.
19958         (mips_expand_prologue): Disable the floating point unit in an ISR.
19959         * config/mips/mips.h (SR_COP1): New define.
19960
19961 2015-07-15  Richard Biener  <rguenther@suse.de>
19962
19963         * genmatch.c (parser::peek, parser::peek_ident): Add argument
19964         to tell how many tokens to peek ahead (default 1).
19965         (parser::eat_token, parser::eat_ident): Return token consumed.
19966         (parser::parse_result): Parse new switch statement.
19967         * match.pd: Use case statements where appropriate.
19968
19969 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19970
19971         PR rtl-optimization/58066
19972         * calls.c (expand_call): Precompute register parameters before stack
19973         alignment is performed.
19974
19975 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19976
19977         PR rtl-optimization/66838
19978         * postreload.c (reload_cse_move2add): Also process
19979         CALL_INSN_FUNCTION_USAGE when resetting information of
19980         call-clobbered registers.
19981
19982 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19983             Cesar Philippidis  <cesar@codesourcery.com>
19984             Chung-Lin Tang  <cltang@codesourcery.com>
19985
19986         * config/nios2/constraints.md (U, v): New constraints.
19987         * config/nios2/predicates.md (rdprs_dcache_operand): New.
19988         (ldstex_memory_operand): New.
19989         * config/nios2/sync.md: New file.
19990         * config/nios2/nios2.md (unspecv): Add new builtin function
19991         UNSPECV codes.
19992         (rdprs, flushd, flushda, wrpie, eni): New patterns.
19993         (top-level): Include sync.md.
19994         * config/nios2/nios2.c (N2_FTYPES): Add function types for
19995         new builtins.
19996         (N2_BUILTINS): Add arch field setting, add new builtins.
19997         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
19998         for arch field.
19999         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
20000         Also handle ldex/stex/ldsex/stsex builtins.
20001         (nios2_expand_rdprs_builtin): New function.
20002         (nios2_expand_cache_builtin): New function.
20003         (nios2_expand_wrpie_builtin): New function.
20004         (nios2_expand_eni_builtin): New function.
20005         (nios2_expand_builtin): Add arch field handling and new builtin
20006         cases.
20007         * doc/extend.texi (Altera Nios II Built-in Functions): Document
20008         new builtins.
20009         * doc/md.texi (Machine Constraints): Document U and v constraints.
20010
20011 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20012             Cesar Philippidis  <cesar@codesourcery.com>
20013             Chung-Lin Tang  <cltang@codesourcery.com>
20014
20015         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
20016         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
20017         callee_save_reg_size and uses_anonymous_args fields.
20018         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
20019         (nios2_create_cfa_notes): New function.
20020         (nios2_adjust_stack): New function for adjusting stack.
20021         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
20022         Use nios2_adjust_stack.
20023         (nios2_expand_epilogue): Likewise.
20024         (nios2_expand_return): New function.
20025         (nios2_can_use_return_insn): Update for CDX pop.n usage.
20026         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
20027         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
20028         * config/nios2/nios2.md (return): Use nios2_expand_return.
20029
20030 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20031             Cesar Philippidis  <cesar@codesourcery.com>
20032             Chung-Lin Tang  <cltang@codesourcery.com>
20033
20034         * config/nios2/predicates.md (pop_operation): New.
20035         (ldwm_operation, stwm_operation): New.
20036         (nios2_hard_register_operand): New.
20037         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
20038         (ldstwm_operation_p): Declare.
20039         (gen_ldstwm_peep): Declare.
20040         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
20041         (base_reg_adjustment_p): New.
20042         (pop_operation_p): New.
20043         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
20044         (nios2_ldstwm_regset_p): New.
20045         (ldstwm_operation_p): New.
20046         (gen_ldst): New.
20047         (nios2_ldst_parallel): New.
20048         (struct ldswm_operand): Declare.
20049         (compare_ldstwm_operands): New.
20050         (can_use_cdx_ldstw): New.
20051         (gen_ldstwm_peep): New.
20052         * config/nios2/nios2-ldstwm.sml: New.
20053         * config/nios2/nios2.md: Include ldstwm.md.
20054         * config/nios2/ldstwm.md: Generated.
20055
20056 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20057             Cesar Philippidis  <cesar@codesourcery.com>
20058             Chung-Lin Tang  <cltang@codesourcery.com>
20059
20060         * config/nios2/nios2.h (LABEL_ALIGN): Define.
20061         (REG_ALLOC_ORDER): Define.
20062         (ADJUST_REG_ALLOC_ORDER): Define.
20063         (HONOR_REG_ALLOC_ORDER): Define.
20064         (CDX_REG_P): Define.
20065         (ANDCLEAR_INT): Define.
20066         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
20067         (nios2_label_align): Declare.
20068         (nios2_cdx_narrow_form_p): Declare.
20069         (nios2_adjust_reg_alloc_order): Declare.
20070         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
20071         operation.
20072         (nios2_large_unspec_reloc_p): New function, split from...
20073         (nios2_legitimate_pic_operand_p): ...here.
20074         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
20075         (nios2_print_operand_punct_valid_p): New.
20076         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
20077         (split_mem_address): New.
20078         (split_alu_insn): New.
20079         (cdxreg): New.
20080         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
20081         (enum nios2_add_insn_kind): New.
20082         (nios2_add_insn_names, nios2_add_insn_narrow): New.
20083         (nios2_add_insn_classify): New.
20084         (nios2_add_insn_asm): New.
20085         (nios2_cdx_narrow_form_p): New.
20086         (label_align, min_labelno, max_labelno): New.
20087         (nios2_reorg): New.
20088         (nios2_label_align): New.
20089         (nios2_adjust_reg_alloc_order): New.
20090         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20091         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20092         * config/nios2/constraints.md (P): New constraint.
20093         * config/nios2/predicates.md (const_and_operand): New.
20094         (and_operand): New.
20095         (stack_memory_operand): New.
20096         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
20097         (length): Update to use nios2_cdx_narrow_form_p().
20098         (type): Add new insn type values.
20099         (control, alu, st, ld, shift): Update insn reservations with
20100         new insn type values.
20101         (*high, *lo_sum): Define new insn patterns for constant generation.
20102         (movqi_internal, movhi_internal, movsi_internal): Reduce
20103         alternatives, update asm template to handle CDX variants, update
20104         type attributes.
20105         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
20106         template, update type attributes.
20107         (extendhisi2, extendqi<mode>2): Likewise.
20108         (addsi3): Change to use function for asm string.
20109         (subsi3): Add CDX notation to asm template, update type attributes.
20110         (negsi3, one_cmplsi3): Likewise.
20111         (andsi3): New pattern, specialized from logical patterns.
20112         (<code>si3): Remove and case, combine alternatives, update asm
20113         template.
20114         (<shift_op>si3): Add CDX notation, update type attributes.
20115         (rotrsi3): Update type attribute.
20116         (*merge, extzv, insv): New insn patterns.
20117         (return): Change to define_expand.
20118         (simple_return): Add CDX notation, update type attributes.
20119         (indirect_jump): Add CDX notation.
20120         (jump): Update asm cases, update length attribute expression.
20121         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
20122         (nios2_cbranch): Update asm cases and length attribute expression
20123         to handle CDX variants.
20124         (nios2_cmp<code>): Update asm template.
20125         (nop): Add CDX notation, update type attributes.
20126         (trap): Add CDX notation.
20127         (ctrapsi4): Update asm cases and length attribute expression to
20128         handle CDX variant.
20129         * doc/md.texi (Machine Constraints): Document P constraint.
20130
20131 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20132             Cesar Philippidis  <cesar@codesourcery.com>
20133             Chung-Lin Tang  <cltang@codesourcery.com>
20134
20135         * config/nios2/nios2.h (SMALL_INT12): New macro.
20136         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
20137         (nios2_valid_addr_expr_p): Use it.
20138         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
20139         with implicit "io" instructions on R2.
20140         * config/nios2/constraints.md (w): New constraint.
20141         * config/nios2/predicates.md (ldstio_memory_operand): New.
20142         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
20143         operand predicate and constraint.
20144         (ld<bh>io_signed, st<bhw>io>): Likewise.
20145         * doc/md.texi (Machine Constraints): Document w constraint.
20146
20147 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20148             Cesar Philippidis  <cesar@codesourcery.com>
20149             Chung-Lin Tang  <cltang@codesourcery.com>
20150
20151         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
20152         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
20153         Nios II architecture level.
20154         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
20155         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
20156         (OPTION_DEFAULT_SPECS): Define.
20157         (ASM_SPEC): Add -march= spec strings.
20158         * config/nios2/nios2.c (nios2_option_override): Check for
20159         conflicts involving new options.
20160         * config.gcc (nios2*-*-*): Support --with-arch=.
20161         * doc/invoke.texi (Option Summary, Nios II Options): Document
20162         -march=, -mbmx, and -mcdx.
20163
20164 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
20165
20166         PR rtl-optimization/66626
20167         * lra-constraints.c (lra_constraints): Prevent equivalence
20168         substitution for static chain pseudo in functions with nonlocal
20169         goto.
20170
20171 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20172
20173         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
20174         (nios2_emit_stack_limit_check): Add size parameter.  Handle
20175         -fstack-limit-symbol as well as -fstack-limit-register.
20176         (nios2_expand_prologue): Emit only a single stack limit check,
20177         even if multiple stack adjustments are required.
20178         (nios2_option_override): Diagnose unsupported combination of -fpic
20179         and -stack-limit-symbol.
20180
20181 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
20182
20183         * Makefile.in (top_srcdir): New.
20184         * configure.ac: Use AM_ZLIB.
20185         * configure: Regeneated.
20186
20187 2015-07-14  Matthias Klose  <doko@ubuntu.com>
20188
20189         PR target/66840
20190         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
20191
20192 2015-07-14  Richard Biener  <rguenther@suse.de>
20193
20194         PR tree-optimization/66863
20195         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
20196         what we record for conversion use stmt lhs inequalities.
20197
20198 2015-07-14  Richard Biener  <rguenther@suse.de>
20199
20200         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
20201         (decision_tree::gen_gimple): Likewise.
20202
20203 2015-07-14  Tom de Vries  <tom@codesourcery.com>
20204
20205         * gcc.c (greater_than_spec_func): Declare forward.
20206         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
20207         -ftree-parallelize-loops={0,1}.
20208         (static_spec_functions): Add greater_than_spec_func function with name
20209         "gt".
20210         (greater_than_spec_func): New function.
20211
20212 2015-07-14  Richard Biener  <rguenther@suse.de>
20213
20214         * tree-ssa-dom.c (record_temporary_equivalences): Merge
20215         wideing type conversion case from record_equivalences_from_incoming_edge
20216         and use record_equality to record equivalences.
20217         (record_equivalences_from_incoming_edge): Call
20218         record_temporary_equivalences.
20219
20220 2015-07-14  Richard Biener  <rguenther@suse.de>
20221
20222         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
20223         (struct if_expr): New.
20224         (struct with_expr): Likewise.
20225         (is_a_helper): Add helpers for if_expr and with_expr.
20226         (struct simplify): Add simplify_kind enum and member.  Remove
20227         ifexpr_vec member.
20228         (simplify::simplify): Adjust.
20229         (lower_commutative): Adjust.
20230         (lower_opt_convert): Likewise.
20231         (lower_cond): Likewise.
20232         (replace_id): Handle with_expr and if_expr.
20233         (lower_for): Adjust.
20234         (dt_simplify::gen_1): New recursive worker, split out from ...
20235         (dt_simplify::gen): ... here.  Deal with if and with expansion
20236         recursively.
20237         (capture_info::capture_info): Take context argument
20238         (capture_info::walk_result): Only analyze specific result.
20239         (parser::parse_result): New function.
20240         (parser::parse_simplify): Adjust to parse ifs with then end
20241         else case.
20242         (parser::parse_if): Simplify.
20243         (parser::parse_pattern): Pass down simplify kind.
20244         * match.pd: Convert if structure to new syntax.
20245
20246 2015-07-13  Marek Polacek  <polacek@redhat.com>
20247
20248         * rtl.c (rtx_equal_p_cb): Fix typo.
20249
20250 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
20251
20252         * omega.h: Don't include config.h, don't include params.h again if
20253         omega.h has already been included.
20254         * graphite-poly.h: Include sese.h.
20255         * graphite.c: Don't include sese.h, remove needless includes and
20256         minimize includes outside #ifdef HAVE_isl block.
20257         * graphite-blocking.c: Don't include sese.h, remove needless includes,
20258         and wrap entire file in #ifdef HAVE_isl
20259         * graphite-dependences.c: Likewise.
20260         * graphite-interchange.c: Likewise.
20261         * graphite-isl-ast-to-gimple.c: Likewise.
20262         * graphite-optimize-isl.c: Likewise.
20263         * graphite-poly.c: Likewise.
20264         * graphite-scop-detection.c: Likewise.
20265         * graphite-sese-to-poly.c: Likewise.
20266
20267 2015-07-13  Tom de Vries  <tom@codesourcery.com>
20268
20269         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
20270
20271 2015-07-13  Renlin Li  <renlin.li@arm.com>
20272
20273         PR rtl/66556
20274         * simplify-rtx.c (simplify_const_relational_operation): Add
20275         side_effects_p checks.
20276
20277 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
20278
20279         * bitmap.h: Fix double word typos.
20280         * builtins.c: Same.
20281         * calls.c: Same.
20282         * cfgloopmanip.c: Same.
20283         * cgraph.c: Same.
20284         * cgraph.h: Same.
20285         * cgraphclones.c: Same.
20286         * combine.c: Same.
20287         * config/aarch64/aarch64-protos.h: Same.
20288         * config/aarch64/aarch64.c: Same.
20289         * config/aarch64/aarch64.md: Same.
20290         * config/arm/arm.md: Same.
20291         * config/arm/arm1020e.md: Same.
20292         * config/arm/arm1026ejs.md: Same.
20293         * config/arm/arm926ejs.md: Same.
20294         * config/arm/fa526.md: Same.
20295         * config/arm/fa606te.md: Same.
20296         * config/arm/fa626te.md: Same.
20297         * config/arm/fa726te.md: Same.
20298         * config/arm/fmp626.md: Same.
20299         * config/darwin.c: Same.
20300         * config/epiphany/epiphany.c: Same.
20301         * config/frv/frv.c: Same.
20302         * config/ft32/ft32.c: Same.
20303         * config/gnu-user.h: Same.
20304         * config/h8300/constraints.md: Same.
20305         * config/i386/i386.c: Same.
20306         * config/i386/i386.md: Same.
20307         * config/iq2000/iq2000.md: Same.
20308         * config/mips/mips.c: Same.
20309         * config/mmix/mmix.md: Same.
20310         * config/moxie/moxie.c: Same.
20311         * config/nds32/nds32.md: Same.
20312         * config/pa/pa.h: Same.
20313         * config/rs6000/aix.h: Same.
20314         * config/rs6000/rs6000.h: Same.
20315         * config/sh/sh.c: Same.
20316         * config/tilegx/tilegx.md: Same.
20317         * config/tilepro/gen-mul-tables.cc: Same.
20318         * cse.c: Same.
20319         * dbxout.c: Same.
20320         * doc/invoke.texi: Same.
20321         * dse.c: Same.
20322         * dwarf2out.c: Same.
20323         * final.c: Same.
20324         * gcc.c: Same.
20325         * genmatch.c: Same.
20326         * gimplify.c: Same.
20327         * hash-table.h: Same.
20328         * internal-fn.c: Same.
20329         * ipa-cp.c: Same.
20330         * ipa-devirt.c: Same.
20331         * ipa-icf.c: Same.
20332         * ipa-icf.h: Same.
20333         * ipa-profile.c: Same.
20334         * ipa-prop.c: Same.
20335         * ipa-prop.h: Same.
20336         * ira.c: Same.
20337         * omp-low.c: Same.
20338         * reg-stack.c: Same.
20339         * regcprop.c: Same.
20340         * reorg.c: Same.
20341         * rtl.h: Same.
20342         * sbitmap.h: Same.
20343         * tree-eh.c: Same.
20344         * tree-inline.c: Same.
20345         * tree-sra.c: Same.
20346         * tree-ssa-dom.c: Same.
20347         * tree-ssa-loop-ivopts.c: Same.
20348         * tree-ssa-structalias.c: Same.
20349         * tree-ssa-tail-merge.c: Same.
20350         * tree-ssa-ter.c: Same.
20351         * tree-ssa-threadupdate.c: Same.
20352         * tree-ssa-uninit.c: Same.
20353         * tree-ssanames.c: Same.
20354         * tree-vect-loop-manip.c: Same.
20355         * tree-vrp.c: Same.
20356         * tree.c: Same.
20357         * valtrack.c: Same.
20358         * vec.h: Same.
20359
20360 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20361
20362         PR middle-end/66726
20363         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
20364         tree_ssa_phiopt_worker): Call it.
20365
20366 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20367
20368         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
20369         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
20370         REG_EQUAL note.
20371
20372 2015-07-11  Marek Polacek  <polacek@redhat.com>
20373
20374         PR middle-end/66353
20375         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
20376         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
20377         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
20378         rather than bb_has_abnormal_call_pred.
20379         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
20380         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
20381         rather than bb_has_abnormal_call_pred.
20382
20383 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
20384
20385         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20386         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
20387         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20388         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
20389         v850_legitimate_address_p): New functions.
20390         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
20391
20392 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
20393
20394         PR target/66819
20395         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
20396         indirect sibcall with register arguments if register available
20397         for argument passing.
20398         (init_cumulative_args): Set cfun->machine->arg_reg_available
20399         to (cum->nregs > 0) or to true if function has a variable
20400         argument list.
20401         (function_arg_advance_32): Set cfun->machine->arg_reg_available
20402         to false if cum->nregs <= 0.
20403         * config/i386/i386.h (machine_function): Add arg_reg_available.
20404
20405 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20406
20407         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
20408         and gen_higpart instead of gen_rtx_SUBREG.
20409         * config/i386/i386.md
20410         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
20411         (read-modify peephole2): Use gen_lowpart instead of
20412         gen_rtx_SUBREG for operand 5.
20413
20414 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20415
20416         * config/tilepro/gen-mul-tables.cc (main): Change include list for
20417         generated files.
20418         * config/tilepro/mul-tables.c: Regenerate.
20419         * config/tilegx/mul-tables.c: Regenerate.
20420
20421 2015-07-10  Richard Biener  <rguenther@suse.de>
20422
20423         * fold-const.c (distribute_bit_expr): Remove.
20424         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
20425         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
20426         to A & (B | C) and simplifying A << C1 << C2 to ...
20427         * match.pd: ... patterns here.
20428
20429 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
20430
20431         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
20432         Mark mem as READONLY and NOTRAP for PIC symbol.
20433
20434 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20435
20436         * gimple-predict.h: New file.
20437         (gimple_predict_predictor, gimple_predict_set_predictor,
20438         gimple_predict_outcome, gimple_predict_set_outcome,
20439         gimple_build_predict): Relocate here.
20440         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
20441         gimple_predict_outcome, gimple_predict_set_outcome): Move to
20442         gimple-predict.h.
20443         * gimple.c (gimple_build_predict): Move to gimple-predict.h
20444         * basic-block.h: Don't include cfghooks.h.
20445         * backend.h: Don't include predict.h.
20446         * cfghooks.h: Include predict.h.
20447         * gimple-pretty-print.c: Include gimple-predict.h.
20448         * gimplify.c: Likwise.
20449         * predict.c: Adjust includes.
20450         * tree-inline.c: Likewise.
20451         * asan.c: Likewise.
20452         * auto-inc-dec.c: Likewise.
20453         * auto-profile.c: Likewise.
20454         * bb-reorder.c: Likewise.
20455         * builtins.c: Likewise.
20456         * caller-save.c: Likewise.
20457         * calls.c: Likewise.
20458         * cfganal.c: Likewise.
20459         * cfgbuild.c: Likewise.
20460         * cfg.c: Likewise.
20461         * cfgcleanup.c: Likewise.
20462         * cfgexpand.c: Likewise.
20463         * cfghooks.c: Likewise.
20464         * cfgloopanal.c: Likewise.
20465         * cfgloop.c: Likewise.
20466         * cfgloopmanip.c: Likewise.
20467         * cfgrtl.c: Likewise.
20468         * cgraph.c: Likewise.
20469         * cgraphunit.c: Likewise.
20470         * combine.c: Likewise.
20471         * cprop.c: Likewise.
20472         * cse.c: Likewise.
20473         * dce.c: Likewise.
20474         * dojump.c: Likewise.
20475         * dse.c: Likewise.
20476         * except.c: Likewise.
20477         * expmed.c: Likewise.
20478         * expr.c: Likewise.
20479         * final.c: Likewise.
20480         * fold-const.c: Likewise.
20481         * function.c: Likewise.
20482         * fwprop.c: Likewise.
20483         * gcc-plugin.h: Likewise.
20484         * gcse.c: Likewise.
20485         * genattrtab.c: Likewise.
20486         * genemit.c: Likewise.
20487         * gengtype.c: Likewise.
20488         * genopinit.c: Likewise.
20489         * genoutput.c: Likewise.
20490         * genpreds.c: Likewise.
20491         * genrecog.c: Likewise.
20492         * gimple-fold.c: Likewise.
20493         * gimple-iterator.c: Likewise.
20494         * gimple-ssa-isolate-paths.c: Likewise.
20495         * gimple-ssa-strength-reduction.c: Likewise.
20496         * graph.c: Likewise.
20497         * graphite-blocking.c: Likewise.
20498         * graphite.c: Likewise.
20499         * graphite-dependences.c: Likewise.
20500         * graphite-interchange.c: Likewise.
20501         * graphite-isl-ast-to-gimple.c: Likewise.
20502         * graphite-optimize-isl.c: Likewise.
20503         * graphite-poly.c: Likewise.
20504         * graphite-scop-detection.c: Likewise.
20505         * graphite-sese-to-poly.c: Likewise.
20506         * haifa-sched.c: Likewise.
20507         * ifcvt.c: Likewise.
20508         * internal-fn.c: Likewise.
20509         * ipa-cp.c: Likewise.
20510         * ipa-profile.c: Likewise.
20511         * ipa-split.c: Likewise.
20512         * ipa-utils.c: Likewise.
20513         * ira-build.c: Likewise.
20514         * ira-color.c: Likewise.
20515         * ira-conflicts.c: Likewise.
20516         * ira-costs.c: Likewise.
20517         * ira-emit.c: Likewise.
20518         * ira-lives.c: Likewise.
20519         * jump.c: Likewise.
20520         * loop-doloop.c: Likewise.
20521         * loop-init.c: Likewise.
20522         * loop-invariant.c: Likewise.
20523         * loop-unroll.c: Likewise.
20524         * lower-subreg.c: Likewise.
20525         * lra-assigns.c: Likewise.
20526         * lra.c: Likewise.
20527         * lra-coalesce.c: Likewise.
20528         * lra-constraints.c: Likewise.
20529         * lra-lives.c: Likewise.
20530         * lto-cgraph.c: Likewise.
20531         * lto-streamer-in.c: Likewise.
20532         * mode-switching.c: Likewise.
20533         * modulo-sched.c: Likewise.
20534         * omp-low.c: Likewise.
20535         * optabs.c: Likewise.
20536         * passes.c: Likewise.
20537         * postreload.c: Likewise.
20538         * postreload-gcse.c: Likewise.
20539         * profile.c: Likewise.
20540         * recog.c: Likewise.
20541         * regstat.c: Likewise.
20542         * reload1.c: Likewise.
20543         * reorg.c: Likewise.
20544         * rtlanal.c: Likewise.
20545         * sched-ebb.c: Likewise.
20546         * sel-sched-ir.c: Likewise.
20547         * sese.c: Likewise.
20548         * shrink-wrap.c: Likewise.
20549         * simplify-rtx.c: Likewise.
20550         * stmt.c: Likewise.
20551         * store-motion.c: Likewise.
20552         * tracer.c: Likewise.
20553         * trans-mem.c: Likewise.
20554         * tree-call-cdce.c: Likewise.
20555         * tree-cfg.c: Likewise.
20556         * tree-cfgcleanup.c: Likewise.
20557         * tree-chkp.c: Likewise.
20558         * tree-complex.c: Likewise.
20559         * tree-eh.c: Likewise.
20560         * tree-if-conv.c: Likewise.
20561         * tree-loop-distribution.c: Likewise.
20562         * tree-outof-ssa.c: Likewise.
20563         * tree-parloops.c: Likewise.
20564         * tree-predcom.c: Likewise.
20565         * tree-pretty-print.c: Likewise.
20566         * tree-profile.c: Likewise.
20567         * tree-sra.c: Likewise.
20568         * tree-ssa.c: Likewise.
20569         * tree-ssa-coalesce.c: Likewise.
20570         * tree-ssa-dce.c: Likewise.
20571         * tree-ssa-dom.c: Likewise.
20572         * tree-ssa-forwprop.c: Likewise.
20573         * tree-ssa-ifcombine.c: Likewise.
20574         * tree-ssa-loop-ch.c: Likewise.
20575         * tree-ssa-loop-im.c: Likewise.
20576         * tree-ssa-loop-ivcanon.c: Likewise.
20577         * tree-ssa-loop-ivopts.c: Likewise.
20578         * tree-ssa-loop-manip.c: Likewise.
20579         * tree-ssa-loop-prefetch.c: Likewise.
20580         * tree-ssa-loop-unswitch.c: Likewise.
20581         * tree-ssa-math-opts.c: Likewise.
20582         * tree-ssa-phiopt.c: Likewise.
20583         * tree-ssa-pre.c: Likewise.
20584         * tree-ssa-reassoc.c: Likewise.
20585         * tree-ssa-sink.c: Likewise.
20586         * tree-ssa-tail-merge.c: Likewise.
20587         * tree-ssa-threadedge.c: Likewise.
20588         * tree-ssa-threadupdate.c: Likewise.
20589         * tree-switch-conversion.c: Likewise.
20590         * tree-tailcall.c: Likewise.
20591         * tree-vect-data-refs.c: Likewise.
20592         * tree-vect-loop.c: Likewise.
20593         * tree-vect-loop-manip.c: Likewise.
20594         * tree-vectorizer.c: Likewise.
20595         * tree-vrp.c: Likewise.
20596         * ubsan.c: Likewise.
20597         * value-prof.c: Likewise.
20598         * varasm.c: Likewise.
20599         * var-tracking.c: Likewise.
20600         * config/aarch64/aarch64-builtins.c: Likewise.
20601         * config/aarch64/aarch64.c: Likewise.
20602         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20603         * config/alpha/alpha.c: Likewise.
20604         * config/arc/arc.c: Likewise.
20605         * config/arm/arm.c: Likewise.
20606         * config/avr/avr.c: Likewise.
20607         * config/bfin/bfin.c: Likewise.
20608         * config/c6x/c6x.c: Likewise.
20609         * config/cr16/cr16.c: Likewise.
20610         * config/cris/cris.c: Likewise.
20611         * config/darwin.c: Likewise.
20612         * config/darwin-c.c: Likewise.
20613         * config/epiphany/epiphany.c: Likewise.
20614         * config/epiphany/mode-switch-use.c: Likewise.
20615         * config/epiphany/resolve-sw-modes.c: Likewise.
20616         * config/fr30/fr30.c: Likewise.
20617         * config/frv/frv.c: Likewise.
20618         * config/ft32/ft32.c: Likewise.
20619         * config/h8300/h8300.c: Likewise.
20620         * config/i386/i386.c: Likewise.
20621         * config/i386/winnt.c: Likewise.
20622         * config/ia64/ia64.c: Likewise.
20623         * config/iq2000/iq2000.c: Likewise.
20624         * config/lm32/lm32.c: Likewise.
20625         * config/m32c/m32c.c: Likewise.
20626         * config/m32r/m32r.c: Likewise.
20627         * config/m68k/m68k.c: Likewise.
20628         * config/mcore/mcore.c: Likewise.
20629         * config/mep/mep.c: Likewise.
20630         * config/microblaze/microblaze.c: Likewise.
20631         * config/mips/mips.c: Likewise.
20632         * config/mmix/mmix.c: Likewise.
20633         * config/mn10300/mn10300.c: Likewise.
20634         * config/moxie/moxie.c: Likewise.
20635         * config/msp430/msp430.c: Likewise.
20636         * config/nds32/nds32.c: Likewise.
20637         * config/nds32/nds32-cost.c: Likewise.
20638         * config/nds32/nds32-fp-as-gp.c: Likewise.
20639         * config/nds32/nds32-intrinsic.c: Likewise.
20640         * config/nds32/nds32-isr.c: Likewise.
20641         * config/nds32/nds32-md-auxiliary.c: Likewise.
20642         * config/nds32/nds32-memory-manipulation.c: Likewise.
20643         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20644         * config/nds32/nds32-predicates.c: Likewise.
20645         * config/nios2/nios2.c: Likewise.
20646         * config/nvptx/nvptx.c: Likewise.
20647         * config/pa/pa.c: Likewise.
20648         * config/pdp11/pdp11.c: Likewise.
20649         * config/rl78/rl78.c: Likewise.
20650         * config/rs6000/rs6000.c: Likewise.
20651         * config/rx/rx.c: Likewise.
20652         * config/s390/s390.c: Likewise.
20653         * config/sh/sh.c: Likewise.
20654         * config/sh/sh-mem.cc: Likewise.
20655         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20656         * config/sh/sh_treg_combine.cc: Likewise.
20657         * config/sparc/sparc.c: Likewise.
20658         * config/spu/spu.c: Likewise.
20659         * config/stormy16/stormy16.c: Likewise.
20660         * config/tilegx/tilegx.c: Likewise.
20661         * config/tilepro/tilepro.c: Likewise.
20662         * config/v850/v850.c: Likewise.
20663         * config/vax/vax.c: Likewise.
20664         * config/visium/visium.c: Likewise.
20665         * config/xtensa/xtensa.c: Likewise.
20666
20667 2015-07-10  Richard Biener  <rguenther@suse.de>
20668
20669         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
20670         (decision_tree::gen_gimple): Likewise.
20671         (decision_tree::gen_generic): Likewise.
20672
20673 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20674
20675         PR target/66813
20676         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
20677         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
20678
20679 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
20680
20681         PR middle-end/66820
20682         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
20683         or ORT_TASK contexts.
20684         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
20685         is non-zero.
20686
20687 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20688
20689         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
20690         above function.
20691
20692 2015-07-10  Tom de Vries  <tom@codesourcery.com>
20693
20694         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
20695         insert nit + 1 bound.
20696
20697 2015-07-10  Richard Biener  <rguenther@suse.de>
20698
20699         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
20700         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
20701         (if_convertible_loop_p_1): For this always compute bb predicates.
20702         (if_convertible_loop_p): And free them.
20703
20704 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20705
20706         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
20707         in dump message.
20708
20709 2015-07-10  Richard Biener  <rguenther@suse.de>
20710
20711         PR tree-optimization/66823
20712         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
20713         inverted predicate.
20714
20715 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
20716
20717         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
20718         to handle mips[32|64]r3 and mips[32|64]r5.
20719
20720 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
20721
20722         PR middle-end/66633
20723         * tree-nested.c (get_static_chain): Or in a flag into
20724         info->static_chain_added.
20725         (get_frame_field, get_nonlocal_debug_decl): Likewise.
20726         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
20727         2015-07-01 changes.
20728         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
20729         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
20730         add it to clauses.
20731
20732         PR tree-optimization/66718
20733         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
20734         field.
20735         (vect_simd_lane_linear): New function.
20736         (vectorizable_simd_clone_call): Support using linear arguments for
20737         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
20738
20739 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20740
20741         PR target/66821
20742         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
20743
20744 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
20745
20746         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
20747         Use machine mode, not enum machine_mode in the prototype.
20748
20749         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
20750         classify 128-bit floating point support.
20751         (FLOAT128_IBM_P): Likewise.
20752         (FLOAT128_VECTOR_P): Likewise.
20753         (FLOAT128_2REG_P): Likewise.
20754         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
20755         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
20756         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
20757         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
20758
20759         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
20760         tests against TFmode/TDmode, since those modes do not use VSX
20761         addresses.
20762         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
20763         support.
20764         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
20765         tests against TFmode, etc.
20766         (invalid_e500_subreg): Add tests against IFmode/KFmode.
20767         (reg_offset_addressing_ok_p): Likewise.
20768         (rs6000_legitimate_offset_address_p): Likewise.
20769         (rs6000_legitimize_address): Likewise.
20770         (rs6000_legitimize_reload_address): Likewise.
20771         (rs6000_legitimate_address_p): Clean up tests against TFmode and
20772         TDmode to use the new helper macros, which will include IFmode and
20773         KFmode.
20774         (rs6000_emit_move): Likewise.
20775         (rs6000_darwin64_record_arg_recurse): Likewise.
20776         (print_operand): Likewise.
20777         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
20778         that uses a single vector register as a vector and not as a
20779         floating point register in terms of the calling sequence.
20780         (rs6000_discover_homogeneous_aggregate): Likewise.
20781         (rs6000_return_in_memory): Likewise.
20782         (init_cumulative_args): Likewise.
20783         (rs6000_function_arg_boundary): Likewise.
20784         (rs6000_function_arg_advance_1): Likewise.
20785         (rs6000_function_arg): Likewise.
20786         (rs6000_pass_by_reference): Likewise.
20787         (rs6000_gimplify_va_arg): Likewise.
20788         (rs6000_secondary_reload_memory): Use machine_mode not enum
20789         machine mode.
20790         (rs6000_split_multireg_move): Use new helper macros.
20791         (spe_func_has_64bit_regs_p): Likewise.
20792         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
20793         (output_toc): Use new helper macros.
20794         (rs6000_register_move_cost): Likewise.
20795         (rs6000_function_value): Add IEEE 128-bit floating point calling
20796         sequence support.
20797         (rs6000_libcall_value): Likewise.
20798         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
20799         floating point support.
20800         (rs6000_vector_mode_supported_p): Likewise.
20801
20802 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
20803
20804         PR rtl-optimization/66782
20805         * lra-int.h (struct lra_insn_recog_data): Add comment about
20806         clobbered hard regs for arg_hard_regs.
20807         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
20808         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
20809         Add condition for processing used hard regs.
20810         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
20811         Process clobbered hard regs.
20812
20813 2015-07-09  Michael Matz  <matz@suse.de>
20814
20815         * genmatch.c (fprintf_indent): New function.
20816         (operand::gen_transform): Add indent parameter.
20817         (expr::gen_transform, c_expr::gen_transform,
20818         capture::gen_transform): Ditto and use fprintf_indent.
20819         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
20820         (dt_operand::gen, dt_operand::gen_predicate,
20821         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
20822         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
20823         (decision_tree::gen_gimple): Adjust calls and indent generated
20824         code.
20825         (decision_tree::gen_generic): Ditto.
20826         (write_predicate): Ditto.
20827
20828 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20829
20830         PR target/66814
20831         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
20832         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
20833         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
20834         {GENERAL,SSE,MMX}_REG_P where appropriate.
20835
20836 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20837
20838         * lto-streamer.h: Don't include target.h and alloc-pool.h.
20839         * builtins.c: Adjust includes.
20840         * gimple.c: Likewise.
20841         * ipa-icf.c: Likewise.
20842         * lto-opts.c: Likewise.
20843         * ipa-reference.c: Likewise.
20844         * lto-section-out.c: Likewise.
20845         * lto-streamer-in.c: Likewise.
20846         * lto-streamer-out.c: Likewise.
20847         * opts-global.c: Likewise.
20848         * symtab.c: Likewise.
20849         * tree-chkp.c: Likewise.
20850         * tree-ssa-live.c: Likewise.
20851         * tree-streamer-in.c: Likewise.
20852         * tree-streamer-out.c: Likewise.
20853         * config/darwin.c: Likewise.
20854         * config/i386/winnt.c: Likewise.
20855
20856 2015-07-09  Richard Biener  <rguenther@suse.de>
20857
20858         * genmatch.c (struct expr): Add force_single_use flag.
20859         (expr::expr): Add copy constructor.
20860         (capture_info::walk_match): Gather force_single_use captures.
20861         (expr::gen_transform): Use possibly NULLified sequence.
20862         (dt_simplify::gen): Apply single-use restrictions by NULLifying
20863         seq if any constrained expr is not single-use.
20864         (parser::parse_expr): Refactor to allow multiple flags.  Handle
20865         's' flag to force an expression have a single-use if the pattern
20866         simplifies to more than one statement.
20867         * match.pd: Convert most single_use conditionals to :s flags.
20868
20869 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20870
20871         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
20872         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
20873         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
20874
20875 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20876
20877         * flags.h: Don't include flag-types.h or options.h.
20878         * opts-common.c: Adjust includes.
20879         * opts-global.c: Likewise.
20880         * common/config/epiphany/epiphany-common.c: Likewise.
20881
20882 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20883
20884         PR target/66818
20885         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
20886         for IA MCU.
20887
20888 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20889
20890         PR target/66817
20891         * config/i386/i386.c (ix86_return_in_memory): Return true
20892         if int_size_in_bytes returns negative for IA MCU.
20893
20894 2015-07-09  Marek Polacek  <polacek@redhat.com>
20895
20896         PR tree-optimization/66718
20897         * Makefile.in (OBJS): Add gimple-laddress.o.
20898         * passes.def: Schedule pass_laddress.
20899         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
20900         * tree-pass.h (make_pass_laddress): Declare.
20901         * gimple-laddress.c: New file.
20902
20903 2015-07-09  Richard Biener  <rguenther@suse.de>
20904
20905         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
20906
20907 2015-07-09  Richard Biener  <rguenther@suse.de>
20908
20909         PR tree-optimization/66807
20910         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
20911
20912 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
20913
20914         * function.c (stack_protect_epilogue): Use if rather than switch for
20915         check targetm.have_stack_protect_test.
20916
20917 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20918
20919         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
20920         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
20921         * config/arc/arc.h: Likewise.
20922         * config/arm/arm.h: Likewise.
20923         * config/bfin/bfin.h: Likewise.
20924         * config/epiphany/epiphany.h: Likewise.
20925         * config/frv/frv.h: Likewise.
20926         * config/ia64/ia64.h: Likewise.
20927         * config/iq2000/iq2000.h: Likewise.
20928         * config/lm32/lm32.h: Likewise.
20929         * config/m32r/m32r.h: Likewise.
20930         * config/mcore/mcore.h: Likewise.
20931         * config/mep/mep.h: Likewise.
20932         * config/microblaze/microblaze.h: Likewise.
20933         * config/mips/mips.h: Likewise.
20934         * config/mmix/mmix.h: Likewise.
20935         * config/mn10300/mn10300.h: Likewise.
20936         * config/nds32/nds32.h: Likewise.
20937         * config/nios2/nios2.h: Likewise.
20938         * config/pa/pa.h: Likewise.
20939         * config/rl78/rl78.h: Likewise.
20940         * config/sh/sh.h: Likewise.
20941         * config/sparc/sparc.h: Likewise.
20942         * config/stormy16/stormy16.h: Likewise.
20943         * config/tilegx/tilegx.h: Likewise.
20944         * config/tilepro/tilepro.h: Likewise.
20945         * config/v850/v850.h: Likewise.
20946         * config/xtensa/xtensa.h: Likewise.
20947         * doc/tm.texi: Regenerate.
20948         * doc/tm.texi.in: Adjust.
20949         * combine.c (simplify_set): Likewise.
20950         (simplify_comparison): Likewise.
20951         * expr.c (store_constructor): Likewise.
20952         * internal-fn.c (expand_arith_overflow): Likewise.
20953         * reload.c (push_reload): Likewise.
20954         (find_reloads): Likewise.
20955         (find_reloads_subreg_address): Likewise.
20956         * reload1.c (eliminate_regs_1): Likewise.
20957         * rtlanal.c (nonzero_bits1): Likewise.
20958         (num_sign_bit_copies1): Likewise.
20959         * simplify-rtx.c (simplify_truncation): Likewise.
20960
20961 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20962
20963         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
20964         of AUTO_INC_DEC with the preprocessor.
20965         * combine.c (combine_instructions): Likewise.
20966         (can_combine_p): Likewise.
20967         (try_combine): Likewise.
20968         * emit-rtl.c (try_split): Likewise.
20969         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20970         * lower-subreg.c (resolve_simple_move): Likewise.
20971         * lra.c (update_inc_notes): Likewise.
20972         * recog.c (asm_operand_ok): Likewise.
20973         (constrain_operands): Likewise.
20974         * regrename.c (scan_rtx_address): Likewise.
20975         * reload.c (update_auto_inc_notes): Likewise.
20976         (reg_inc_found_and_valid_p): Likewise.
20977         * reload1.c (reload): Likewise.
20978         (emit_input_reload_insns): Likewise.
20979         (delete_output_reload): Likewise.
20980         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20981         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20982
20983 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20984
20985         * rtl.h: Always define AUTO_INC_DEC.
20986         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
20987         * combine.c (combine_instructions): Likewise.
20988         (can_combine_p): Likewise.
20989         (try_combine): Likewise.
20990         * emit-rtl.c (try_split): Likewise.
20991         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20992         * lower-subreg.c (resolve_simple_move): Likewise.
20993         * lra.c (update_inc_notes): Likewise.
20994         * recog.c (asm_operand_ok): Likewise.
20995         (constrain_operands): Likewise.
20996         * regrename.c (scan_rtx_address): Likewise.
20997         * reload.c (update_auto_inc_notes): Likewise.
20998         (find_equiv_reg): Likewise.
20999         * reload1.c (reload): Likewise.
21000         (reload_as_needed): Likewise.
21001         (choose_reload_regs): Likewise.
21002         (emit_input_reload_insns): Likewise.
21003         (delete_output_reload): Likewise.
21004         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21005         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21006
21007 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21008
21009         * combine.c (can_combine_def_p): Don't check the value of
21010         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
21011         (combinable_i3pat): Likewise.
21012         (mark_used_regs_combine): Likewise.
21013         * regrename.c (rename_chains): Likewise.
21014         * reload.c (find_reloads_address): Likewise.
21015         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21016
21017 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21018
21019         * combine.c (update_rsp_from_reg_equal): Don't check if
21020         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
21021         (reg_nonzero_bits_for_combine): Likewise.
21022         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
21023         1.
21024         * config/frv/frv.h: Likewise.
21025         * config/lm32/lm32.h: Likewise.
21026         * config/mep/mep.h: Likewise.
21027         * config/mips/mips.h: Likewise.
21028         * config/rs6000/rs6000.h: Likewise.
21029         * config/sh/sh.h: Likewise.
21030         * config/tilegx/tilegx.h (enum reg_class): Likewise.
21031         * config/tilepro/tilepro.h: Likewise.
21032         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
21033         * doc/tm.texi: Regenerate.
21034         * doc/tm.texi.in: Adjust.
21035         * rtlanal.c (nonzero_bits1): Likewise.
21036
21037 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21038
21039         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
21040         with the preprocessor.
21041         (combine_instructions): Likewise.
21042         (try_combine): Likewise.
21043         (subst): Likewise.
21044         (distribute_notes): Likewise.
21045
21046 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21047
21048         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
21049         defined.
21050         (simplify_set): Likewise.
21051         * cse.c (cse_insn): Likewise.
21052         * fold-const.c (fold_single_bit_test): Likewise.
21053         (fold_unary_loc): Likewise.
21054         * postreload.c (reload_cse_simplify_set): Likewise.
21055         (reload_cse_simplify_operands): Likewise.
21056
21057 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
21058
21059         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
21060         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
21061
21062 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21063
21064         PR target/66746
21065         * config/i386/x86intrin.h: Include <adxintrin.h> even if
21066         __iamcu__ is defined.
21067
21068 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21069
21070         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
21071
21072 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
21073
21074         PR target/66523
21075         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
21076         names from preservation.
21077
21078 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21079
21080         PR target/66806
21081         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
21082         change for IAMCU.
21083         (function_arg_advance_32): Don't pass vectors in registers for
21084         IAMCU.
21085         (function_arg_32): Likewise.
21086         (ix86_return_in_memory): Don't return vectors in registers for
21087         IAMCU.
21088
21089 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
21090
21091         PR middle-end/66334
21092         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
21093         hard regno live at the start of BB with incoming abnormal edges.
21094         * lra-lives.c (process_bb_lives): Ditto.
21095
21096 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
21097
21098         PR libgomp/65099
21099         * config/nvptx/mkoffload.c (main): Create an offload image only in
21100         64-bit configurations.
21101
21102 2015-07-08  Martin Liska  <mliska@suse.cz>
21103
21104         PR bootstrap/66744
21105         * tree-sra.c (create_access_1): Call ctor without brackets.
21106         (create_artificial_child_access): Likewise.
21107
21108 2015-07-08  Richard Biener  <rguenther@suse.de>
21109
21110         PR tree-optimization/66793
21111         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
21112         Properly split the block after stmts ending it.
21113
21114 2015-07-08  Richard Biener  <rguenther@suse.de>
21115
21116         PR tree-optimization/66794
21117         * passes.c (execute_function_todo): Assert that post-dominators
21118         are not computed.
21119         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
21120         Free post-dominators.
21121
21122 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21123
21124         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
21125         with early exit.
21126
21127 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21128
21129         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
21130         more than or equal 8 and less than 32 when optimizing for size.
21131
21132 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21133
21134         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
21135         COSTS_N_INSNS (1) and increment it appropriately throughout the
21136         function.
21137
21138 2015-07-08  Richard Biener  <rguenther@suse.de>
21139
21140         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
21141
21142 2015-07-08  Alan Modra  <amodra@gmail.com>
21143
21144         * target.def (rtx_costs): Remove "code" param, add "mode".
21145         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
21146         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
21147         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
21148         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
21149         call.  Track mode when given in rtx.
21150         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
21151         (default_address_cost): Pass Pmode to rtx_cost.
21152         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
21153         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
21154         with NULL set.
21155         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
21156         (notreg_cost): Add mode param.  Use it.
21157         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
21158         mode param and pass to set_src_cost.  Update all calls.
21159         (hash_scan_set): Formatting.
21160         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
21161         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
21162         * hooks.h: Ditto.
21163         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
21164         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
21165         emit_store_flag): Update set_src_cost and rtx_cost calls.
21166         * auto-inc-dec.c (attempt_change): Likewise.
21167         * calls.c (precompute_register_parameters): Likewise.
21168         * combine.c (expand_compound_operation, make_extraction,
21169         force_to_mode, distribute_and_simplify_rtx): Likewise.
21170         * dojump.c (prefer_and_bit_test): Likewise.
21171         * dse.c (find_shift_sequence): Likewise.
21172         * expr.c (compress_float_constant): Likewise.
21173         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
21174         * ifcvt.c (noce_try_sign_mask): Likewise.
21175         * loop-doloop.c (doloop_optimize): Likewise.
21176         * loop-invariant.c (create_new_invariant): Likewise.
21177         * lower-subreg.c (shift_cost, compute_costs): Likewise.
21178         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
21179         lshift_cheap_p): Likewise.
21180         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21181         try_replace_in_use, reload_cse_move2add): Likewise.
21182         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
21183         Likewise.
21184         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
21185         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21186         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
21187         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
21188         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
21189         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
21190         to rtx_cost calls.
21191         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
21192         * config/arc/arc.c (arc_rtx_costs): Likewise.
21193         * config/arm/arm.c (arm_rtx_costs): Likewise.
21194         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
21195         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
21196         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
21197         * config/cris/cris.c (cris_rtx_costs): Likewise.
21198         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
21199         * config/frv/frv.c (frv_rtx_costs): Likewise.
21200         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
21201         * config/i386/i386.c (ix86_rtx_costs): Likewise.
21202         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
21203         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
21204         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
21205         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
21206         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
21207         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
21208         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
21209         * config/mep/mep.c (mep_rtx_cost): Likewise.
21210         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
21211         * config/mips/mips.c (mips_rtx_costs): Likewise.
21212         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
21213         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
21214         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
21215         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
21216         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
21217         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
21218         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
21219         * config/pa/pa.c (hppa_rtx_costs): Likewise.
21220         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
21221         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
21222         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
21223         * config/s390/s390.c (s390_rtx_costs): Likewise.
21224         * config/sh/sh.c (sh_rtx_costs): Likewise.
21225         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
21226         * config/spu/spu.c (spu_rtx_costs): Likewise.
21227         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
21228         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
21229         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
21230         * config/v850/v850.c (v850_rtx_costs): Likewise.
21231         * config/vax/vax.c (vax_rtx_costs): Likewise.
21232         * config/visium/visium.c (visium_rtx_costs): Likewise.
21233         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
21234         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
21235         "code" param, and pass as outer_code to first rtx_cost call.  Pass
21236         mode to rtx_cost calls.
21237         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
21238         calls.
21239         (aarch64_rtx_costs_wrapper): Update.
21240         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
21241         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
21242         rtx_cost calls.
21243         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
21244         and rtx_cost calls.
21245         (avr_operand_rtx_cost): Similarly.
21246         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
21247         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
21248         * config/mips/mips.c (mips_stack_address_p): Comment typo.
21249         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
21250         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
21251         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
21252         rtx_cost.
21253         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
21254         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
21255         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
21256         * doc/tm.texi: Regenerate.
21257
21258 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
21259
21260         * tree-core.h: Include symtab.h.
21261         * rtl.h: Include hard-reg-set.h but not flags.h.
21262         (HARD_CONST): Remove condition compilation involving HARD_CONST since
21263         hard-reg-set.h is always included.
21264         * regs.h: Don't include hard-reg-set.h or rtl.h.
21265         * cfg.h: Include dominance.h.
21266         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
21267         * backend.h: New.  Aggregate commonly used backend header files.
21268         * gimple-ssa.h: Don't include tree-hasher.h.
21269         * ssa.h: New.  Aggregate commonly used SSA header files.
21270         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
21271         * sel-sched-ir.h: Flatten includes.
21272         * lra-int.h: Flatten completely.
21273         * sel-sched-dump.h: Flatten includes.
21274         * ira-int.h: Flatten includes.
21275         * gimple-streamer.h: Remove all includes.
21276         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
21277         * resource.h: Flatten hard-reg-set.h and df.h.
21278         * sched-int.h: Flatten insn-arrt.h and df.h.
21279         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
21280         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
21281         * genattrtab.c (write_header): Adjust generated includes.
21282         * genautomata.c (main): Likewise.
21283         * genconditions.c (write-header): Likewise.
21284         * genemit.c (main): Likewise.
21285         * gengtype.c (open_base_files): Likewise.
21286         * genopinit.c (main): Likewise.
21287         * genoutput.c (output_prologue): Likewise.
21288         * genpeep.c (main): Likewise.
21289         * genpreds.c (write_insn_preds_c): Likewise.
21290         * genrecog.c (write_header): Likewise.
21291         * alias.c: Adjust includes.
21292         * asan.c: Likewise.
21293         * attribs.c: Likewise.
21294         * auto-inc-dec.c: Likewise.
21295         * auto-profile.c: Likewise.
21296         * bb-reorder.c: Likewise.
21297         * bt-load.c: Likewise.
21298         * builtins.c: Likewise.
21299         * caller-save.c: Likewise.
21300         * calls.c: Likewise.
21301         * ccmp.c: Likewise.
21302         * cfg.c: Likewise.
21303         * cfganal.c: Likewise.
21304         * cfgbuild.c: Likewise.
21305         * cfgcleanup.c: Likewise.
21306         * cfgexpand.c: Likewise.
21307         * cfghooks.c: Likewise.
21308         * cfgloop.c: Likewise.
21309         * cfgloopanal.c: Likewise.
21310         * cfgloopmanip.c: Likewise.
21311         * cfgrtl.c: Likewise.
21312         * cgraph.c: Likewise.
21313         * cgraphbuild.c: Likewise.
21314         * cgraphclones.c: Likewise.
21315         * cgraphunit.c: Likewise.
21316         * cilk-common.c: Likewise.
21317         * combine-stack-adj.c: Likewise.
21318         * combine.c: Likewise.
21319         * compare-elim.c: Likewise.
21320         * convert.c: Likewise.
21321         * coverage.c: Likewise.
21322         * cppbuiltin.c: Likewise.
21323         * cprop.c: Likewise.
21324         * cse.c: Likewise.
21325         * cselib.c: Likewise.
21326         * data-streamer-in.c: Likewise.
21327         * data-streamer-out.c: Likewise.
21328         * data-streamer.c: Likewise.
21329         * dbxout.c: Likewise.
21330         * dce.c: Likewise.
21331         * ddg.c: Likewise.
21332         * debug.c: Likewise.
21333         * df-core.c: Likewise.
21334         * df-problems.c: Likewise.
21335         * df-scan.c: Likewise.
21336         * dfp.c: Likewise.
21337         * dojump.c: Likewise.
21338         * dominance.c: Likewise.
21339         * domwalk.c: Likewise.
21340         * double-int.c: Likewise.
21341         * dse.c: Likewise.
21342         * dumpfile.c: Likewise.
21343         * dwarf2asm.c: Likewise.
21344         * dwarf2cfi.c: Likewise.
21345         * dwarf2out.c: Likewise.
21346         * emit-rtl.c: Likewise.
21347         * et-forest.c: Likewise.
21348         * except.c: Likewise.
21349         * explow.c: Likewise.
21350         * expmed.c: Likewise.
21351         * expr.c: Likewise.
21352         * final.c: Likewise.
21353         * fixed-value.c: Likewise.
21354         * fold-const.c: Likewise.
21355         * function.c: Likewise.
21356         * fwprop.c: Likewise.
21357         * gcc-plugin.h: Likewise.
21358         * gcse-common.c: Likewise.
21359         * gcse.c: Likewise.
21360         * generic-match-head.c: Likewise.
21361         * ggc-page.c: Likewise.
21362         * gimple-builder.c: Likewise.
21363         * gimple-expr.c: Likewise.
21364         * gimple-fold.c: Likewise.
21365         * gimple-iterator.c: Likewise.
21366         * gimple-low.c: Likewise.
21367         * gimple-match-head.c: Likewise.
21368         * gimple-pretty-print.c: Likewise.
21369         * gimple-ssa-isolate-paths.c: Likewise.
21370         * gimple-ssa-strength-reduction.c: Likewise.
21371         * gimple-streamer-in.c: Likewise.
21372         * gimple-streamer-out.c: Likewise.
21373         * gimple-walk.c: Likewise.
21374         * gimple.c: Likewise.
21375         * gimplify-me.c: Likewise.
21376         * gimplify.c: Likewise.
21377         * godump.c: Likewise.
21378         * graph.c: Likewise.
21379         * graphite-blocking.c: Likewise.
21380         * graphite-dependences.c: Likewise.
21381         * graphite-interchange.c: Likewise.
21382         * graphite-isl-ast-to-gimple.c: Likewise.
21383         * graphite-optimize-isl.c: Likewise.
21384         * graphite-poly.c: Likewise.
21385         * graphite-scop-detection.c: Likewise.
21386         * graphite-sese-to-poly.c: Likewise.
21387         * graphite.c: Likewise.
21388         * haifa-sched.c: Likewise.
21389         * hw-doloop.c: Likewise.
21390         * ifcvt.c: Likewise.
21391         * init-regs.c: Likewise.
21392         * internal-fn.c: Likewise.
21393         * ipa-chkp.c: Likewise.
21394         * ipa-comdats.c: Likewise.
21395         * ipa-cp.c: Likewise.
21396         * ipa-devirt.c: Likewise.
21397         * ipa-icf-gimple.c: Likewise.
21398         * ipa-icf.c: Likewise.
21399         * ipa-inline-analysis.c: Likewise.
21400         * ipa-inline-transform.c: Likewise.
21401         * ipa-inline.c: Likewise.
21402         * ipa-polymorphic-call.c: Likewise.
21403         * ipa-profile.c: Likewise.
21404         * ipa-prop.c: Likewise.
21405         * ipa-pure-const.c: Likewise.
21406         * ipa-ref.c: Likewise.
21407         * ipa-reference.c: Likewise.
21408         * ipa-split.c: Likewise.
21409         * ipa-utils.c: Likewise.
21410         * ipa-visibility.c: Likewise.
21411         * ipa.c: Likewise.
21412         * ira-build.c: Likewise.
21413         * ira-color.c: Likewise.
21414         * ira-conflicts.c: Likewise.
21415         * ira-costs.c: Likewise.
21416         * ira-emit.c: Likewise.
21417         * ira-lives.c: Likewise.
21418         * ira.c: Likewise.
21419         * jump.c: Likewise.
21420         * langhooks.c: Likewise.
21421         * lcm.c: Likewise.
21422         * loop-doloop.c: Likewise.
21423         * loop-init.c: Likewise.
21424         * loop-invariant.c: Likewise.
21425         * loop-iv.c: Likewise.
21426         * loop-unroll.c: Likewise.
21427         * lower-subreg.c: Likewise.
21428         * lra-assigns.c: Likewise.
21429         * lra-coalesce.c: Likewise.
21430         * lra-constraints.c: Likewise.
21431         * lra-eliminations.c: Likewise.
21432         * lra-lives.c: Likewise.
21433         * lra-remat.c: Likewise.
21434         * lra-spills.c: Likewise.
21435         * lra.c: Likewise.
21436         * lto-cgraph.c: Likewise.
21437         * lto-compress.c: Likewise.
21438         * lto-opts.c: Likewise.
21439         * lto-section-in.c: Likewise.
21440         * lto-section-out.c: Likewise.
21441         * lto-streamer-in.c: Likewise.
21442         * lto-streamer-out.c: Likewise.
21443         * lto-streamer.c: Likewise.
21444         * mcf.c: Likewise.
21445         * mode-switching.c: Likewise.
21446         * modulo-sched.c: Likewise.
21447         * omega.c: Likewise.
21448         * omp-low.c: Likewise.
21449         * optabs.c: Likewise.
21450         * opts-global.c: Likewise.
21451         * passes.c: Likewise.
21452         * plugin.c: Likewise.
21453         * postreload-gcse.c: Likewise.
21454         * postreload.c: Likewise.
21455         * predict.c: Likewise.
21456         * print-rtl.c: Likewise.
21457         * print-tree.c: Likewise.
21458         * profile.c: Likewise.
21459         * real.c: Likewise.
21460         * realmpfr.c: Likewise.
21461         * recog.c: Likewise.
21462         * ree.c: Likewise.
21463         * reg-stack.c: Likewise.
21464         * regcprop.c: Likewise.
21465         * reginfo.c: Likewise.
21466         * regrename.c: Likewise.
21467         * regstat.c: Likewise.
21468         * reload.c: Likewise.
21469         * reload1.c: Likewise.
21470         * reorg.c: Likewise.
21471         * resource.c: Likewise.
21472         * rtl-chkp.c: Likewise.
21473         * rtlanal.c: Likewise.
21474         * rtlhooks.c: Likewise.
21475         * sanopt.c: Likewise.
21476         * sched-deps.c: Likewise.
21477         * sched-ebb.c: Likewise.
21478         * sched-rgn.c: Likewise.
21479         * sched-vis.c: Likewise.
21480         * sdbout.c: Likewise.
21481         * sel-sched-dump.c: Likewise.
21482         * sel-sched-ir.c: Likewise.
21483         * sel-sched.c: Likewise.
21484         * sese.c: Likewise.
21485         * shrink-wrap.c: Likewise.
21486         * simplify-rtx.c: Likewise.
21487         * stack-ptr-mod.c: Likewise.
21488         * stmt.c: Likewise.
21489         * stor-layout.c: Likewise.
21490         * store-motion.c: Likewise.
21491         * stringpool.c: Likewise.
21492         * symtab.c: Likewise.
21493         * target-globals.c: Likewise.
21494         * targhooks.c: Likewise.
21495         * toplev.c: Likewise.
21496         * tracer.c: Likewise.
21497         * trans-mem.c: Likewise.
21498         * tree-affine.c: Likewise.
21499         * tree-browser.c: Likewise.
21500         * tree-call-cdce.c: Likewise.
21501         * tree-cfg.c: Likewise.
21502         * tree-cfgcleanup.c: Likewise.
21503         * tree-chkp-opt.c: Likewise.
21504         * tree-chkp.c: Likewise.
21505         * tree-chrec.c: Likewise.
21506         * tree-complex.c: Likewise.
21507         * tree-data-ref.c: Likewise.
21508         * tree-dfa.c: Likewise.
21509         * tree-diagnostic.c: Likewise.
21510         * tree-dump.c: Likewise.
21511         * tree-eh.c: Likewise.
21512         * tree-emutls.c: Likewise.
21513         * tree-if-conv.c: Likewise.
21514         * tree-inline.c: Likewise.
21515         * tree-into-ssa.c: Likewise.
21516         * tree-iterator.c: Likewise.
21517         * tree-loop-distribution.c: Likewise.
21518         * tree-nested.c: Likewise.
21519         * tree-nrv.c: Likewise.
21520         * tree-object-size.c: Likewise.
21521         * tree-outof-ssa.c: Likewise.
21522         * tree-parloops.c: Likewise.
21523         * tree-phinodes.c: Likewise.
21524         * tree-predcom.c: Likewise.
21525         * tree-pretty-print.c: Likewise.
21526         * tree-profile.c: Likewise.
21527         * tree-scalar-evolution.c: Likewise.
21528         * tree-sra.c: Likewise.
21529         * tree-ssa-address.c: Likewise.
21530         * tree-ssa-alias.c: Likewise.
21531         * tree-ssa-ccp.c: Likewise.
21532         * tree-ssa-coalesce.c: Likewise.
21533         * tree-ssa-copy.c: Likewise.
21534         * tree-ssa-copyrename.c: Likewise.
21535         * tree-ssa-dce.c: Likewise.
21536         * tree-ssa-dom.c: Likewise.
21537         * tree-ssa-dse.c: Likewise.
21538         * tree-ssa-forwprop.c: Likewise.
21539         * tree-ssa-ifcombine.c: Likewise.
21540         * tree-ssa-live.c: Likewise.
21541         * tree-ssa-loop-ch.c: Likewise.
21542         * tree-ssa-loop-im.c: Likewise.
21543         * tree-ssa-loop-ivcanon.c: Likewise.
21544         * tree-ssa-loop-ivopts.c: Likewise.
21545         * tree-ssa-loop-manip.c: Likewise.
21546         * tree-ssa-loop-niter.c: Likewise.
21547         * tree-ssa-loop-prefetch.c: Likewise.
21548         * tree-ssa-loop-unswitch.c: Likewise.
21549         * tree-ssa-loop.c: Likewise.
21550         * tree-ssa-math-opts.c: Likewise.
21551         * tree-ssa-operands.c: Likewise.
21552         * tree-ssa-phiopt.c: Likewise.
21553         * tree-ssa-phiprop.c: Likewise.
21554         * tree-ssa-pre.c: Likewise.
21555         * tree-ssa-propagate.c: Likewise.
21556         * tree-ssa-reassoc.c: Likewise.
21557         * tree-ssa-sccvn.c: Likewise.
21558         * tree-ssa-scopedtables.c: Likewise.
21559         * tree-ssa-sink.c: Likewise.
21560         * tree-ssa-strlen.c: Likewise.
21561         * tree-ssa-structalias.c: Likewise.
21562         * tree-ssa-tail-merge.c: Likewise.
21563         * tree-ssa-ter.c: Likewise.
21564         * tree-ssa-threadedge.c: Likewise.
21565         * tree-ssa-threadupdate.c: Likewise.
21566         * tree-ssa-uncprop.c: Likewise.
21567         * tree-ssa-uninit.c: Likewise.
21568         * tree-ssa.c: Likewise.
21569         * tree-ssanames.c: Likewise.
21570         * tree-stdarg.c: Likewise.
21571         * tree-streamer-in.c: Likewise.
21572         * tree-streamer-out.c: Likewise.
21573         * tree-streamer.c: Likewise.
21574         * tree-switch-conversion.c: Likewise.
21575         * tree-tailcall.c: Likewise.
21576         * tree-vect-data-refs.c: Likewise.
21577         * tree-vect-generic.c: Likewise.
21578         * tree-vect-loop-manip.c: Likewise.
21579         * tree-vect-loop.c: Likewise.
21580         * tree-vect-patterns.c: Likewise.
21581         * tree-vect-slp.c: Likewise.
21582         * tree-vect-stmts.c: Likewise.
21583         * tree-vectorizer.c: Likewise.
21584         * tree-vrp.c: Likewise.
21585         * tree.c: Likewise.
21586         * tsan.c: Likewise.
21587         * ubsan.c: Likewise.
21588         * valtrack.c: Likewise.
21589         * value-prof.c: Likewise.
21590         * var-tracking.c: Likewise.
21591         * varasm.c: Likewise.
21592         * varpool.c: Likewise.
21593         * vmsdbgout.c: Likewise.
21594         * vtable-verify.c: Likewise.
21595         * web.c: Likewise.
21596         * wide-int.cc: Likewise.
21597         * xcoffout.c: Likewise.
21598         * config/aarch64/aarch64-builtins.c: Likewise.
21599         * config/aarch64/aarch64.c: Likewise.
21600         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21601         * config/alpha/alpha.c: Likewise.
21602         * config/arc/arc.c: Likewise.
21603         * config/arm/aarch-common.c: Likewise.
21604         * config/arm/arm-builtins.c: Likewise.
21605         * config/arm/arm-c.c: Likewise.
21606         * config/arm/arm.c: Likewise.
21607         * config/avr/avr-c.c: Likewise.
21608         * config/avr/avr-log.c: Likewise.
21609         * config/avr/avr.c: Likewise.
21610         * config/bfin/bfin.c: Likewise.
21611         * config/c6x/c6x.c: Likewise.
21612         * config/cr16/cr16.c: Likewise.
21613         * config/cris/cris.c: Likewise.
21614         * config/darwin-c.c: Likewise.
21615         * config/darwin.c: Likewise.
21616         * config/epiphany/epiphany.c: Likewise.
21617         * config/epiphany/mode-switch-use.c: Likewise.
21618         * config/epiphany/resolve-sw-modes.c: Likewise.
21619         * config/fr30/fr30.c: Likewise.
21620         * config/frv/frv.c: Likewise.
21621         * config/ft32/ft32.c: Likewise.
21622         * config/h8300/h8300.c: Likewise.
21623         * config/i386/i386-c.c: Likewise.
21624         * config/i386/i386.c: Likewise.
21625         * config/i386/msformat-c.c: Likewise.
21626         * config/i386/winnt-cxx.c: Likewise.
21627         * config/i386/winnt-stubs.c: Likewise.
21628         * config/i386/winnt.c: Likewise.
21629         * config/ia64/ia64-c.c: Likewise.
21630         * config/ia64/ia64.c: Likewise.
21631         * config/iq2000/iq2000.c: Likewise.
21632         * config/lm32/lm32.c: Likewise.
21633         * config/m32c/m32c-pragma.c: Likewise.
21634         * config/m32c/m32c.c: Likewise.
21635         * config/m32r/m32r.c: Likewise.
21636         * config/m68k/m68k.c: Likewise.
21637         * config/mcore/mcore.c: Likewise.
21638         * config/mep/mep-pragma.c: Likewise.
21639         * config/mep/mep.c: Likewise.
21640         * config/microblaze/microblaze-c.c: Likewise.
21641         * config/microblaze/microblaze.c: Likewise.
21642         * config/mips/mips.c: Likewise.
21643         * config/mmix/mmix.c: Likewise.
21644         * config/mn10300/mn10300.c: Likewise.
21645         * config/moxie/moxie.c: Likewise.
21646         * config/msp430/msp430-c.c: Likewise.
21647         * config/msp430/msp430.c: Likewise.
21648         * config/nds32/nds32-cost.c: Likewise.
21649         * config/nds32/nds32-fp-as-gp.c: Likewise.
21650         * config/nds32/nds32-intrinsic.c: Likewise.
21651         * config/nds32/nds32-isr.c: Likewise.
21652         * config/nds32/nds32-md-auxiliary.c: Likewise.
21653         * config/nds32/nds32-memory-manipulation.c: Likewise.
21654         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21655         * config/nds32/nds32-predicates.c: Likewise.
21656         * config/nds32/nds32.c: Likewise.
21657         * config/nios2/nios2.c: Likewise.
21658         * config/nvptx/nvptx.c: Likewise.
21659         * config/pa/pa.c: Likewise.
21660         * config/pdp11/pdp11.c: Likewise.
21661         * config/rl78/rl78-c.c: Likewise.
21662         * config/rl78/rl78.c: Likewise.
21663         * config/rs6000/rs6000-c.c: Likewise.
21664         * config/rs6000/rs6000.c: Likewise.
21665         * config/rx/rx.c: Likewise.
21666         * config/s390/s390-c.c: Likewise.
21667         * config/s390/s390.c: Likewise.
21668         * config/sh/sh-c.c: Likewise.
21669         * config/sh/sh-mem.cc: Likewise.
21670         * config/sh/sh.c: Likewise.
21671         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21672         * config/sh/sh_treg_combine.cc: Likewise.
21673         * config/sol2-c.c: Likewise.
21674         * config/sol2-cxx.c: Likewise.
21675         * config/sol2-stubs.c: Likewise.
21676         * config/sol2.c: Likewise.
21677         * config/sparc/sparc-c.c: Likewise.
21678         * config/sparc/sparc.c: Likewise.
21679         * config/spu/spu-c.c: Likewise.
21680         * config/spu/spu.c: Likewise.
21681         * config/stormy16/stormy16.c: Likewise.
21682         * config/tilegx/mul-tables.c: Likewise.
21683         * config/tilegx/tilegx-c.c: Likewise.
21684         * config/tilegx/tilegx.c: Likewise.
21685         * config/tilepro/mul-tables.c: Likewise.
21686         * config/tilepro/tilepro-c.c: Likewise.
21687         * config/tilepro/tilepro.c: Likewise.
21688         * config/v850/v850-c.c: Likewise.
21689         * config/v850/v850.c: Likewise.
21690         * config/vax/vax.c: Likewise.
21691         * config/visium/visium.c: Likewise.
21692         * config/vms/vms-c.c: Likewise.
21693         * config/vms/vms.c: Likewise.
21694         * config/vxworks.c: Likewise.
21695         * config/xtensa/xtensa.c: Likewise.
21696
21697 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
21698
21699         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
21700         Remove operand constraints.  Change operand 2 predicate to
21701         nonmemory operand.  Limit const_int values to mode bitsize.  Only
21702         allow const_int values less than 32 when optimizing for size.
21703         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
21704         Remove operand constraints.
21705         (*bt<mode>): Use SImode for const_int values less than 32.
21706         (regmode): Remove mode attribute.
21707
21708 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
21709
21710         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21711         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
21712           moxie_legitimate_address_p): New functions.
21713           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
21714
21715 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21716
21717         PR tree-optimization/66642
21718         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
21719         header comment.  Rename split_edge variable to edge_at_split.  Split
21720         exit edge to create new loop exit bb.  Insert loop exit phis in new
21721         loop exit bb.
21722
21723 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21724
21725         * tree-cfg.c (get_virtual_phi): New function.
21726         * tree-cfg.h (get_virtual_phi): Declare.
21727         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
21728         (rewrite_virtuals_into_loop_closed_ssa): New function.
21729         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
21730         Declare.
21731         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
21732         (transform_to_exit_first_loop_alt): Use
21733         rewrite_virtuals_into_loop_closed_ssa.
21734
21735 2015-07-07  Richard Biener  <rguenther@suse.de>
21736
21737         * fold-const.c (fold_binary_loc): Move
21738         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
21739         * match.pd: ... here.
21740         Add (X * C1) % C2 -> 0 simplification pattern derived from
21741         extract_muldiv_1.
21742
21743 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
21744
21745         PR target/66780
21746         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
21747         change for target/65249.
21748
21749 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
21750
21751         * symtab.c (address_matters_1): Fix typo in comment above.
21752         (can_increase_alignment_p): Likewise.
21753
21754 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21755
21756         * function.c (free_after_compilation): Clear PROP_cfg in
21757         f->curr_properties.
21758
21759 2015-07-07  Richard Biener  <rguenther@suse.de>
21760
21761         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
21762         add which use to.
21763         (add_control_edge): Remove excessive vertical space in dumping.
21764         (process_ssa_edge_worklist): Simulate at most one statement and
21765         return whether we did.  Do not simulate PHIs if they are in a
21766         BB not yet simulated.
21767         (ssa_propagate): Adjust to always drain the BB worklist whenever
21768         a BB is available there, likewise the VARYING edges list before
21769         the interesting edge list.
21770
21771 2015-07-07  Christian Bruel  <christian.bruel@st.com>
21772
21773         PR target/52144
21774         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
21775
21776 2015-07-07  Richard Biener  <rguenther@suse.de>
21777
21778         PR middle-end/66739
21779         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
21780         A - B.
21781
21782 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21783
21784         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
21785         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
21786         Copy operand 0 to a temporary if !ext_register_operand.  Remove
21787         ancient extract_bit_field workaround.
21788         (insv<mode>_1): Rename from mov<mode>_insv_1.
21789         (*insvqi): Rename from *movqi_insv_2.
21790         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
21791         for renamed insvsi_1.
21792         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
21793
21794 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
21795
21796         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
21797         call to nvptx_reorg_subreg.
21798
21799 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
21800
21801         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
21802         * graphite-dependencies.c, graphite-interchange.c,
21803         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
21804         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
21805         Likewise.
21806
21807 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
21808
21809         * match.pd: Remove element_mode inside HONOR_*.
21810         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
21811         (~X | X -> -1, ~X ^ X -> -1): Merge.
21812         * tree.c (build_each_one_cst): New function.
21813         * tree.h (build_each_one_cst): Likewise.
21814
21815 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21816
21817         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21818         PROCESSOR_IAMCU.
21819
21820 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
21821
21822         * config.gcc <mips*-*-*>: Add fused-madd.opt.
21823         * config/mips/mips.opt (mfused-madd): Remove.
21824         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
21825         * config/mips/mips.h (TARGET_MIPS8000): New.
21826         (ISA_HAS_FP_MADD4_MSUB4): Remove.
21827         (ISA_HAS_FP_MADDF_MSUBF): Remove.
21828         (ISA_HAS_FP_MADD3_MSUB3): Remove.
21829         (ISA_HAS_NMADD4_NMSUB4): Remove.
21830         (ISA_HAS_NMADD3_NMSUB3): Remove.
21831         (ISA_HAS_FUSED_MADD4): New.
21832         (ISA_HAS_UNFUSED_MADD4): New.
21833         (ISA_HAS_FUSED_MADDF): New.
21834         (ISA_HAS_FUSED_MADD3): New.
21835         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
21836         (*fma<mode>4_madd3) New.
21837         (*fma<mode>4_madd4) New.
21838         (*fma<mode>4_maddf) New.
21839         (fms<mode>4) New.
21840         (*fms<mode>4_msub3) New.
21841         (*fms<mode>4_msub4) New.
21842         (fnma<mode>4) New.
21843         (*fnma<mode>4_nmadd3) New.
21844         (*fnma<mode>4_nmadd4) New.
21845         (fnms<mode>4) New.
21846         (*fnms<mode>4_nmsub3) New.
21847         (*fnms<mode>4_nmsub4) New.
21848         (*madd4<mode>) Modify to be unfused only.
21849         (*msub4<mode>) Modify to be unfused only.
21850         (*nmadd4<mode>) Modify to be unfused only.
21851         (*nmsub4<mode>) Modify to be unfused only.
21852         (*madd3<mode>) Remove.
21853         (*msub3<mode>) Remove.
21854         (*nmadd3<mode>) Remove.
21855         (*nmsub3<mode>) Remove.
21856         (*nmadd3<mode>_fastmath) Remove.
21857         (*nmsub3<mode>_fastmath) Remove.
21858         (*nmadd4<mode>_fastmath) Update condition.
21859         (*nmsub4<mode>_fastmath) Update condition.
21860
21861 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21862
21863         PR target/65956
21864         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
21865         alignment attribute, exploring one level down for records and arrays.
21866
21867 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21868
21869         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
21870         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
21871         Copy operand 1 to a temporary if !ext_register_operand.  Remove
21872         ancient extract_bit_field workaround.
21873         (*extv<mode>): Rename from *mov<mode>_extv_1.
21874         (*extvqi): Rename from *movqi_extv_1.
21875         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
21876         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
21877         to a temporary if !ext_register_operand.  Remove ancient
21878         extract_bit_field workaround.
21879         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
21880         (*extzvqi): Rename from *movqi_extzv_2.
21881         (*testqi_ext_3): Remove modes from const_int_operand predicated
21882         operands.  Add "n" constraint.
21883         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
21884         operand.  Add "J" constraint.
21885         (*btsq, *btrq, *btcq peephole2s): Remove mode from
21886         const_0_to_63 predicated operand.
21887         (regmode): New insn attribute.
21888         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
21889         to nonmemory_operand.  Use regmode insn attribute.
21890         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
21891         (*jcc_bt<mode>_mask): Remove mode from operand 3.
21892         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
21893         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
21894         operands.  Use "N" constraint instead of "n".
21895
21896 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21897
21898         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
21899
21900 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21901
21902         PR target/66749
21903         * config/i386/i386.c (iamcu_cost): New.
21904         (m_IAMCU): Likewise.
21905         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
21906         (processor_target_table): Add an entry for "iamcu".
21907         (processor_alias_table): Likewise.
21908         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
21909         (ix86_adjust_cost): Likewise.
21910         (ia32_multipass_dfa_lookahead): Likewise.
21911         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
21912         * config/i386/x86-tune.def: Updated for m_IAMCU.
21913
21914 2015-07-06  Richard Biener  <rguenther@suse.de>
21915
21916         PR tree-optimization/66772
21917         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
21918         values are available in the PHI node BB when there are
21919         still unexecutable edges.
21920
21921 2015-07-06  Richard Biener  <rguenther@suse.de>
21922
21923         PR tree-optimization/66767
21924         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
21925         Make sure to build the alignment test on a SSA name without
21926         final alignment info valid only if the alignment test
21927         evaluates to true.
21928
21929 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
21930
21931         PR target/66620
21932         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
21933         loop start when inserting LSETUP.
21934
21935 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21936
21937         PR target/53383
21938         * config/i386/i386.c (ix86_option_override_internal): Allow
21939         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
21940
21941 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21942
21943         * read-md.c (decimal_string): Rename to ...
21944         (md_decimal_string): ... this.
21945         (handle_enum): Reflect this.
21946
21947 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21948
21949         PR target/66731
21950         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
21951
21952 2015-07-06  Richard Biener  <rguenther@suse.de>
21953
21954         PR middle-end/66759
21955         * match.pd: Add missing constraint of y to REAL_CST in
21956         REAL_CST - x CMP y to y - CST CMP x simplification.
21957
21958 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
21959
21960         PR tree-optimization/66757
21961         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
21962
21963 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
21964             Sandra Loosemore <sandra@codesourcery.com>
21965
21966         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
21967         Delete extern declaration.
21968         (gprel_constant_p): Add extern declaration.
21969         * config/nios2/constraints.md ("S"): Use gprel_constant_p
21970         instead of nios2_symbol_ref_in_small_data_p.
21971         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
21972         (nios2_symbol_ref_in_small_data_p): Make static.
21973         (gprel_constant_p): Make non-static.
21974
21975 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
21976
21977         * doc/fragments.texi (Target Fragment): Convert debian.org
21978         link to use https.
21979         * doc/install.texi (Configuration): Ditto.
21980
21981 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
21982
21983         PR tree-optimization/66718
21984         * tree-vect-stmts.c (vectorizable_call): Replace uses of
21985         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
21986
21987         PR tree-optimization/66718
21988         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
21989         vectorizable_load, vectorizable_condition): Move vectype,
21990         nunits, ncopies computation after checking what kind of statement
21991         stmt is.
21992
21993 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21994
21995         * target-insns.def (extv, extzv, insv): New targetm instruction
21996         patterns.
21997         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
21998         interface.
21999         * recog.c (simplify_while_replacing): Likewise.
22000
22001 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22002
22003         * target-insns.def (doloop_begin, doloop_end): New targetm
22004         instruction patterns.
22005         * loop-init.c: Include target.h.
22006         (pass_loop2::gate): Use the new targetm patterns instead of
22007         HAVE_*/gen_* interface.
22008         (pass_rtl_doloop::gate): Likewise.
22009         (pass_rtl_doloop::execute): Remove preprocessor condition.
22010         * hw-doloop.c: Build unconditionally.
22011         * loop-doloop.c: Likewise.
22012         (doloop_optimize): Use the new targetm patterns instead of
22013         HAVE_*/gen_* interface.
22014         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
22015         * modulo-sched.c (doloop_register_get): Likewise.
22016
22017 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22018
22019         * target-insns.def (clear_cache): New targetm instruction pattern.
22020         * builtins.c (expand_builtin___clear_cache): Use it instead of
22021         HAVE_*/gen_* interface.
22022
22023 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22024
22025         * target-insns.def (allocate_stack, check_stack, probe_stack)
22026         (probe_stack_address, split_stack_prologue, split_stack_space_check):
22027         New targetm instruction patterns.
22028         * explow.c (allocate_dynamic_stack_space): Use them instead of
22029         HAVE_*/gen_* interface.
22030         (emit_stack_probe): Likewise.
22031         (probe_stack_range): Likewise.
22032         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22033
22034 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22035
22036         * target-insns.def (stack_protect_set, stack_protect_test): New
22037         targetm instruction patterns.
22038         * cfgexpand.c (stack_protect_prologue): Use them instead of
22039         HAVE_*/gen_* interface.
22040         * function.c (stack_protect_epilogue): Likewise.
22041
22042 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22043
22044         * expr.h (gen_move_insn_uncast): Delete.
22045         * expr.c (gen_move_insn_uncast): Delete.
22046
22047 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22048
22049         * target-insns.def (restore_stack_block, restore_stack_function)
22050         (restore_stack_nonlocal, save_stack_block, save_stack_function)
22051         (save_stack_nonlocal): New targetm instruction patterns.
22052         * builtins.c (expand_builtin_apply): Use them instead of
22053         HAVE_*/gen_* interface.
22054         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
22055
22056 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22057
22058         * target-insns.def (trap): New targetm instruction pattern.
22059         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
22060         interface.
22061         * explow.c (allocate_dynamic_stack_space): Likewise.
22062         * ifcvt.c (find_if_header): Likewise.
22063
22064 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22065
22066         * target-insns.def (prefetch): New targetm instruction pattern.
22067         * tree-ssa-loop-prefetch.c: Include targeth.
22068         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
22069         of HAVE_*/gen_* interface.
22070         * builtins.c (expand_builtin_prefetch): Likewise.
22071         * toplev.c (process_options): Likewise.
22072
22073 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22074
22075         * target-insns.def (untyped_call, untyped_return): New targetm
22076         instruction patterns.
22077         * builtins.c (expand_builtin_apply): Use them instead of
22078         HAVE_*/gen_* interface.
22079         (result_vector): Define unconditionally.
22080
22081 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22082
22083         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
22084         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
22085         (nonlocal_goto_receiver): New targetm instruction patterns.
22086         * builtins.c (expand_builtin_setjmp_setup): Use them instead
22087         of HAVE_*/gen_* interface.
22088         (expand_builtin_setjmp_receiver): Likewise.
22089         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
22090         * except.c (expand_dw2_landing_pad_for_region): Likewise.
22091
22092 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22093
22094         * target.def: Add code_for_* hooks.
22095         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
22096         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
22097         * target-insns.def (casesi, tablejump): New targetm instruction
22098         patterns.
22099         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
22100         (do_tablejump): Likewise.
22101         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
22102         (expand_sjlj_dispatch_table): Likewise.
22103         * targhooks.c (default_case_values_threshold): Likewise.
22104
22105 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
22106
22107         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
22108         Use rtx_insn * instead of rtx.
22109         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
22110         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
22111         (nios2_call_tls_get_addr): Likewise.
22112         (nios2_emit_expensive_div): Likewise.
22113         (nios2_emit_move_sequence): Change return type to bool.
22114         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
22115         Change return type to bool.
22116
22117 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22118
22119         PR target/66747
22120         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
22121
22122 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
22123
22124         PR target/66114
22125         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
22126         of register_operand.  Remove constraint.
22127
22128 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
22129
22130         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
22131         the first argument.
22132
22133 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
22134
22135         * attribs.c (decl_attributes): Guard inform with the return value
22136         of the preceding warning.
22137
22138 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22139
22140         * doc/invoke.texi (moverride): Move to correct section.
22141
22142 2015-07-03  Richard Biener  <rguenther@suse.de>
22143
22144         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
22145         Copy from tree.c
22146         (dt_operand::gen_gimple_expr): After valueizing operands
22147         re-canonicalize operand order for commutative tree codes.
22148
22149 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
22150
22151         PR target/66746.
22152         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
22153         is defined.
22154         (__crc32w): Likewise.
22155         (__crc32d): Likewise.
22156         (__rdpmc): Likewise.
22157         (__rdtscp): Likewise.
22158         (_rdpmc): Likewise.
22159         (_rdtscp): Likewise.
22160         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
22161         is defined.
22162
22163 2015-07-03  Richard Biener  <rguenther@suse.de>
22164
22165         * fold-const.c (fold_mathfn_compare): Remove.
22166         (fold_inf_compare): Likewise.
22167         (fold_comparison): Move floating point comparison simplifications...
22168         * match.pd: ... to patterns here.  Introduce simple_comparisons
22169         operator list and use it for patterns formerly in fold_comparison.
22170
22171 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22172
22173         PR tree-optimization/66119
22174         * toplev.c (process_options): Don't set up default values for
22175         the sra_max_scalarization_size_{speed,size} parameters.
22176         * tree-sra (analyze_all_variable_accesses): If no values
22177         have been set for the sra_max_scalarization_size_{speed,size}
22178         parameters, call get_move_ratio to get target defaults.
22179
22180 2015-07-03  Richard Biener  <rguenther@suse.de>
22181
22182         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
22183         * match.pd: ... here.
22184
22185 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
22186
22187         PR target/37072
22188         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
22189         is not actually the default on FreeBSD.
22190
22191 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22192
22193         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
22194         definition.
22195         (CMPGE_8HI): Likewise.
22196         (CMPGE_4SI): Likewise.
22197         (CMPGE_2DI): Likewise.
22198         (CMPGE_U16QI): Likewise.
22199         (CMPGE_U8HI): Likewise.
22200         (CMPGE_U4SI): Likewise.
22201         (CMPGE_U2DI): Likewise.
22202         (CMPLE_16QI): Likewise.
22203         (CMPLE_8HI): Likewise.
22204         (CMPLE_4SI): Likewise.
22205         (CMPLE_2DI): Likewise.
22206         (CMPLE_U16QI): Likewise.
22207         (CMPLE_U8HI): Likewise.
22208         (CMPLE_U4SI): Likewise.
22209         (CMPLE_U2DI): Likewise.
22210         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22211         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
22212         ALTIVEC_BUILTIN_VEC_CMPLE.
22213         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
22214         floating-point vector modes.
22215         (vector_nlt<mode>): New define_expand.
22216         (vector_nltu<mode>): Likewise.
22217         (vector_ngt<mode>): Likewise.
22218         (vector_ngtu<mode>): Likewise.
22219
22220 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
22221
22222         PR rtl-optimization/66706
22223         * combine.c (make_compound_operation): If an AND of SUBREG of
22224         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
22225
22226 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
22227
22228         * tree-pass.h (make_pass_ch_vect): New.
22229         * passes.def: Add pass_ch_vect just before pass_if_conversion.
22230
22231         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
22232         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
22233         make_pass_ch_vect): New.
22234         (pass_ch): Extend ch_base.
22235
22236         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
22237         (ch_base::copy_headers): ...here.
22238
22239 2015-07-02  Richard Biener  <rguenther@suse.de>
22240
22241         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
22242         * fold-const.c (get_pointer_modulus_and_residue): Remove.
22243         (fold_binary_loc): Implement (T)ptr & CST in terms of
22244         get_pointer_alignment_1.
22245         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
22246         Make sure to build the alignment test on a SSA name without
22247         final alignment info valid only after the prologue.
22248
22249 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
22250
22251         * config/cris/cris.md ("epilogue"): Remove condition.
22252         ("prologue"): Ditto.
22253
22254 2015-07-02  Richard Biener  <rguenther@suse.de>
22255
22256         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
22257         parameter to record a condition that is false.
22258         (record_conditions): When recording an extra NE_EXPR that is
22259         true also record a EQ_EXPR that is false.
22260
22261 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
22262
22263         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
22264         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
22265         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
22266         (set_iv, find_interesting_uses_address, add_candidate_1): New
22267         argument to alloc_iv.
22268         (find_interesting_uses_op, find_interesting_uses_cond): Don't
22269         duplicate struct iv.
22270         (free_loop_data): Don't free struct iv explicitly.
22271         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
22272
22273 2015-07-01  DJ Delorie  <dj@redhat.com>
22274
22275         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
22276         (LIB_SPEC): Add.
22277         (SUPPORTS_DISCRIMINATOR): Define.
22278
22279 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22280
22281         PR bootstrap/66685
22282         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
22283         there are no CALLs in the same pattern.
22284
22285 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22286
22287         PR rtl-optimization/61047
22288         * rtlanal.c (get_initial_register_offset): New function.
22289         (rtx_addr_can_trap_p_1): Check offsets of stack references.
22290
22291 2015-07-01  Richard Biener  <rguenther@suse.de>
22292
22293         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
22294         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
22295         ~X CMP C -> X CMP' ~C to ...
22296         * match.pd: ... patterns here.
22297
22298 2015-07-01  Nick Clifton  <nickc@redhat.com>
22299
22300         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
22301         a 16-bit value into a 20-bit memory slot.
22302
22303 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22304
22305         * doc/sourcebuild.texi (AArch64-specific attributes): Document
22306         "aarch64_tiny", "aarch64_small", "aarch64_large",
22307         "aarch64_little_endian", "aarch64_big_endian".
22308
22309 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22310
22311         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
22312         Document "aarch64_small_fpic".
22313
22314 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22315
22316         * configure.ac: Add check for aarch64 assembler -fpic relocation
22317         modifier support.
22318         * configure: Regenerate.
22319         * config.in: Regenerate.
22320         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
22321         to -fPIC if not support of -fpic relocation modifier in assembler.
22322
22323 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22324
22325         PR bootstrap/66685
22326         * rtl.c (classify_insn): Handle returns in PARALLELs.
22327
22328 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
22329
22330         PR middle-end/66633
22331         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
22332         to true if the function is nested and if not optimizing.
22333         (convert_local_omp_clauses): Initialize need_frame to true if the
22334         function contains nested functions and if not optimizing.
22335
22336 2015-07-01  Richard Biener  <rguenther@suse.de>
22337
22338         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
22339         (X & Y) ^ Y -> ~X & Y transforms to ...
22340         * match.pd: ... here.
22341
22342 2015-07-01  Richard Biener <rguenther@suse.de>
22343
22344         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
22345         of converts to avoid uninteresting noise from the conversion
22346         simplifying patterns.
22347
22348 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
22349
22350         * config/c6x/c6x.c (try_rename_operands): Do not depend on
22351         gcc_assert evaluating its argument for side-effect.
22352
22353 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
22354
22355         PR target/64833
22356         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
22357         flag_pic is set.
22358
22359 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22360
22361         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
22362         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
22363         (hash_scc): Add this_ref_p and ref_p parameters and pass them
22364         to the inner DFS walk.
22365
22366 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22367
22368         * target-insns.def (jump): New targetm instruction pattern.
22369         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
22370         instead of gen_jump.
22371         (fix_up_crossing_landing_pad): Likewise.
22372         (add_labels_and_missing_jumps): Likewise.
22373         (fix_crossing_conditional_branches): Likewise.
22374         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
22375         (force_nonfallthru_and_redirect): Likewise.
22376         * cse.c (cse_insn): Likewise.
22377         * expmed.c (expand_divmod): Likewise.
22378         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
22379         * haifa-sched.c (init_before_recovery): Likewise.
22380         (sched_create_recovery_edges): Likewise.
22381         * ifcvt.c (find_cond_trap): Likewise.
22382         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
22383         (expand_float, expand_fix): Likewise.
22384         * stmt.c (emit_jump): Likewise.
22385
22386 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22387
22388         * defaults.h (HAVE_load_multiple, gen_load_multiple)
22389         (HAVE_store_multiple, gen_store_multiple): Delete.
22390         * target-insns.def (load_multiple, store_multiple): New targetm
22391         instruction patterns.
22392         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
22393         of HAVE_*/gen_* interface.
22394
22395 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22396
22397         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
22398         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
22399         (gen_mem_signal_fence): Delete.
22400         * target-insns.def (mem_signal_fence, mem_thread_fence)
22401         (memory_barrier): New targetm instruction patterns.
22402         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
22403         interface.
22404         (expand_mem_signal_fence): Likewise.
22405
22406 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22407
22408         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
22409         * target-insns.def (epilogue, prologue, sibcall_prologue): New
22410         targetm instruction patterns.
22411         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
22412         interface.
22413         * calls.c (expand_call): Likewise.
22414         * cfgrtl.c (cfg_layout_finalize): Likewise.
22415         * df-scan.c (df_get_entry_block_def_set): Likewise.
22416         (df_get_exit_block_use_set): Likewise.
22417         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
22418         * final.c (final_start_function): Likewise.
22419         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22420         (reposition_prologue_and_epilogue_notes): Likewise.
22421         * reorg.c (find_end_label): Likewise.
22422         * toplev.c (process_options): Likewise.
22423
22424 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
22425
22426         * typed-splay-tree.h: New file.
22427
22428 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
22429
22430         PR debug/66691
22431         * lra-int.h (lra_substitute_pseudo): Add a parameter.
22432         (lra_substitute_pseudo_within_insn): Ditto.
22433         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
22434         of constant.
22435         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
22436         to lra_substitute_pseudo.
22437         * lra-lives.c (process_bb_lives): Add an argument to
22438         lra_substitute_pseudo_within_insn call.
22439         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
22440         argument to lra_substitute_pseudo and
22441         lra_substitute_pseudo_within_insn calls.
22442         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
22443
22444 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22445
22446         * configure: Regenerated.
22447
22448 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22449
22450         * config.gcc: Support i[34567]86-*-elfiamcu target.
22451         * config/i386/iamcu.h: New.
22452         * config/i386/i386.opt: Add -miamcu.
22453         * doc/invoke.texi: Document -miamcu.
22454         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
22455         off x87/MMX/SSE/AVX codegen for -miamcu.
22456         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22457         __iamcu/__iamcu__ for -miamcu.
22458         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
22459         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
22460         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
22461         * config/i386/i386.c (ix86_option_override_internal): Ignore and
22462         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
22463         MCU by default.  Default long double to 64-bit for Intel MCU.
22464         Turn on -freg-struct-return for Intel MCU.  Issue an error when
22465         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
22466         AVX is turned on.
22467         (function_arg_advance_32): Pass value whose size is no larger
22468         than 8 bytes in registers for Intel MCU.
22469         (function_arg_32): Likewise.
22470         (ix86_return_in_memory): Return value whose size is no larger
22471         than 8 bytes in registers for Intel MCU.
22472         (iamcu_alignment): New function.
22473         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
22474         true.
22475         (ix86_local_alignment): Don't increase alignment for Intel MCU.
22476         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
22477         true.
22478
22479 2015-06-30  Marek Polacek  <polacek@redhat.com>
22480
22481         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
22482         both operands of the resulting expression.
22483
22484         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
22485         the final expression with the operand's type and then convert
22486         it to the type of the expression.
22487
22488 2015-06-30  Richard Biener  <rguenther@suse.de>
22489
22490         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
22491         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
22492         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
22493         * match.pd: ... to patterns here.
22494
22495 2015-06-30  Richard Biener  <rguenther@suse.de>
22496
22497         PR tree-optimization/66704
22498         * tree-vect-data-refs.c (vect_setup_realignment): Use
22499         make_ssa_name for non-SSA name source.
22500
22501 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
22502
22503         PR middle-end/66702
22504         * omp-low.c (simd_clone_adjust): Handle addressable linear
22505         or uniform parameters or non-gimple type uniform parameters.
22506
22507 2015-06-30  Richard Biener  <rguenther@suse.de>
22508
22509         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
22510         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
22511         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
22512         * match.pd: ... here.
22513         Add a few cases of A - B -> A + (-B) when B "easily" negates.
22514         Move (x & y) | x -> x and friends before
22515         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
22516
22517 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22518
22519         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
22520         -mfix-ut699 is not specified.
22521         (leon3_load): Rename into...
22522         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
22523         is specified.
22524
22525 2015-06-30  Marek Polacek  <polacek@redhat.com>
22526
22527         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
22528         * match.pd: ... here.
22529
22530 2015-06-30  Richard Biener  <rguenther@suse.de>
22531
22532         * target-insns.def (canonicalize_funcptr_for_compare): Add.
22533         * fold-const.c (build_range_check): Replace uses of
22534         HAVE_canonicalize_funcptr_for_compare.
22535         (fold_widened_comparison): Likewise.
22536         (fold_sign_changed_comparison): Likewise.
22537         * dojump.c: Include "target.h".
22538         (do_compare_and_jump): Replace uses of
22539         HAVE_canonicalize_funcptr_for_compare and
22540         gen_canonicalize_funcptr_for_compare.
22541         * expr.c (do_store_flag): Likewise.
22542
22543 2015-06-30  Tom de Vries  <tom@codesourcery.com>
22544
22545         PR tree-optimization/66652
22546         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22547         max_loop_iterations to determine if nit + 1 overflows.
22548
22549 2015-06-30  Richard Biener  <rguenther@suse.de>
22550
22551         * tree-vrp.c (register_edge_assert_for_2): Also register
22552         asserts for dominating conversion results.
22553
22554 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
22555
22556         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
22557         field in struct iv.
22558
22559 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
22560
22561         PR target/66509
22562         * configure.ac: Fix filds and fildq test for 64-bit.
22563         * configure: Regenerated.
22564
22565 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
22566
22567         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
22568         (nvptx_reorg): Here.  Keep the non-subreg pieces.
22569
22570 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
22571
22572         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
22573         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22574
22575 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
22576
22577         * config/i386/i386.md (*jcc_1): Use %! in asm template.
22578         Set attribute "length_nobnd" instead of "length".
22579         (*jcc_2): Ditto.
22580         (jump): Ditto.
22581         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
22582
22583 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
22584
22585         * config/nios2/nios2.c (nios2_delegitimize_address): Make
22586         assert less restrictive.
22587
22588 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22589
22590         PR fortran/66605
22591         * cgraphunit.c (cgraph_node::finalize_function): Do not call
22592         do_warn_unused_parameter.
22593         * function.c (do_warn_unused_parameter): Move from here.
22594         * function.h (do_warn_unused_parameter): Do not declare.
22595
22596 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22597
22598         PR target/65697
22599         * gcc.target/arm/armv-sync-comp-swap.c: New.
22600         * gcc.target/arm/armv-sync-op-acquire.c: New.
22601         * gcc.target/arm/armv-sync-op-full.c: New.
22602         * gcc.target/arm/armv-sync-op-release.c: New.
22603
22604 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22605
22606         PR target/65697
22607         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
22608         initial acquire barrier with final barrier.
22609
22610 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22611
22612         PR target/65697
22613         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
22614         initial acquire barrier with final barrier.
22615
22616 2015-06-29  Richard Henderson  <rth@redhat.com>
22617
22618         * config/i386/constraints.md (Bf): New constraint.
22619         * config/i386/i386-c.c (ix86_target_macros): Define
22620         __GCC_ASM_FLAG_OUTPUTS__.
22621         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
22622         as flags outputs.
22623         * doc/extend.texi (FlagOutputOperands): Document them.
22624
22625 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
22626
22627         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
22628         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
22629         unspec name.
22630         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
22631         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
22632         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
22633         (aarch64_symbol_context): Ditto.
22634         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
22635         and use new pattern name.
22636         (aarch64_expand_mov_immediate): Ditto.
22637         (aarch64_print_operand): Ditto.
22638         (aarch64_classify_tls_symbol): Ditto.
22639
22640 2015-06-29  Marek Polacek  <polacek@redhat.com>
22641             Marc Glisse  <marc.glisse@inria.fr>
22642
22643         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
22644         * match.pd: ... pattern here.
22645
22646 2015-06-29  Tom de Vries  <tom@codesourcery.com>
22647
22648         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
22649         function structure.
22650
22651 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22652
22653         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
22654         feature description, split out the native option, add a link to
22655         the feature documentation, rearrange and slightly rewrite text.
22656         (Aarch64 options, -mcpu): Likewise.
22657         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
22658         +rdma implies Adv. SIMD.
22659
22660 2015-06-29  Marek Polacek  <polacek@redhat.com>
22661
22662         PR c/66322
22663         * function.c (stack_protect_epilogue): Remove a cast to int.
22664         * doc/invoke.texi: Update -Wswitch-bool description.
22665
22666 2015-06-29  Richard Biener  <rguenther@suse.de>
22667
22668         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
22669         * fold-const.c (fold_binary_loc): Move &A - &B simplification
22670         via ptr_difference_const ...
22671         * match.pd: ... here.
22672         When matching (X ^ Y) == Y also match with swapped operands.
22673
22674 2015-06-29  Richard Biener  <rguenther@suse.de>
22675
22676         * lto-streamer.h (LTO_major_version): Bump to 5.
22677
22678 2015-06-29  Richard Biener  <rguenther@suse.de>
22679
22680         PR tree-optimization/66677
22681         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
22682         STMT_VINFO_VEC_STMT clobbering less strict.
22683
22684 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
22685
22686         PR middle-end/64130
22687         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
22688         division, compute max and min when value ranges for dividend and
22689         divisor are available.
22690
22691 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
22692             Sandra Loosemore <sandra@codesourcery.com>
22693
22694         * regrename.h (regrename_do_replace): Change to return bool.
22695         * regrename.c (rename_chains): Check return value of
22696         regname_do_replace.
22697         (regrename_do_replace): Re-validate the modified insns and
22698         return bool status.
22699         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
22700         Update to match rename_chains changes.
22701         * config/c6x/c6x.c (try_rename_operands): Assert that
22702         regrename_do_replace returns true.
22703
22704 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
22705
22706         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
22707         operand 2 here.  Use copy_addr_to_reg to copy non-index
22708         register operand 2 to a temporary.
22709         (<mode>_stx): Ditto for operand 1.
22710         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
22711         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
22712         (ix86_store_bounds): Ditto.
22713
22714 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
22715
22716         * print-tree.c (print_node) [TREE_VEC]: Print its length.
22717
22718 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
22719
22720         * gimple.c (gimple_call_set_fndecl): Remove.
22721         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
22722         build1_loc directly instead of build_fold_addr_expr_loc.
22723
22724 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22725
22726         * hash-map.h (hash_map::traverse): Use the definition of the
22727         Key typedef rather than the typedef itself.
22728
22729 2015-06-26  Martin Jambor  <mjambor@suse.cz>
22730
22731         PR debug/66301
22732         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
22733         NULL instead of calling dump_enabled_p.
22734
22735 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22736
22737         * config/aarch64/aarch64.opt: (override): New.
22738         * doc/invoke.texi (override): Document.
22739         * config/aarch64/aarch64.c (aarch64_flag_desc): New
22740         (aarch64_fusible_pairs): Likewise.
22741         (aarch64_tuning_flags): Likewise.
22742         (aarch64_tuning_override_function): Likewise.
22743         (aarch64_tuning_override_functions): Likewise.
22744         (aarch64_parse_one_option_token): Likewise.
22745         (aarch64_parse_boolean_options): Likewise.
22746         (aarch64_parse_fuse_string): Likewise.
22747         (aarch64_parse_tune_string): Likewise.
22748         (aarch64_parse_one_override_token): Likewise.
22749         (aarch64_parse_override_string): Likewise.
22750         (aarch64_override_options): Parse the -override string if it
22751         is present.
22752
22753 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22754
22755         * config/aarch64/aarch64-protos.h (tune_params): Remove
22756         const from members.
22757         (aarch64_tune_params): Remove const, change to no longer be
22758         a pointer.
22759         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
22760         change to no longer be a pointer, initialize to generic_tunings.
22761         (aarch64_min_divisions_for_recip_mul): Change dereference of
22762         aarch64_tune_params to member access.
22763         (aarch64_reassociation_width): Likewise.
22764         (aarch64_rtx_mult_cost): Likewise.
22765         (aarch64_address_cost): Likewise.
22766         (aarch64_branch_cost): Likewise.
22767         (aarch64_rtx_costs): Likewise.
22768         (aarch64_register_move_cost): Likewise.
22769         (aarch64_memory_move_cost): Likewise.
22770         (aarch64_sched_issue_rate): Likewise.
22771         (aarch64_builtin_vectorization_cost): Likewise.
22772         (aarch64_override_options): Take a copy of the selected tuning
22773         struct in to aarch64_tune_params, rather than just setting
22774         a pointer, change dereferences of aarch64_tune_params to member
22775         accesses.
22776         (aarch64_override_options_after_change): Change dereferences of
22777         aarch64_tune_params to member access.
22778         (aarch64_macro_fusion_p): Likewise.
22779         (aarch_macro_fusion_pair_p): Likewise.
22780         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
22781
22782 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22783
22784         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
22785         (aarch64_tune_flags): Likewise.
22786         (AARCH64_TUNE_FMA_STEERING): Likewise.
22787         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
22788         to AARCH64_FL_USE_FMA_STEERING_PASS.
22789         (cortex-a57.cortex-a53): Likewise.
22790         (cortex-a72): Use cortexa72_tunings.
22791         (cortex-a72.cortex-a53): Likewise.
22792         (exynos-m1): Likewise.
22793         * config/aarch64/aarch64-protos.h (tune_params): Add
22794         a field: extra_tuning_flags.
22795         * config/aarch64/aarch64-tuning-flags.def: New.
22796         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
22797         (aarch64_extra_tuning_flags): Likewise.
22798         (aarch64_tune_params): Declare here.
22799         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
22800         (cortexa53_tunings): Likewise.
22801         (cortexa57_tunings): Likewise.
22802         (thunderx_tunings): Likewise.
22803         (xgene1_tunings): Likewise.
22804         (cortexa72_tunings): New.
22805         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
22806          (gate): Check against aarch64_tune_params.
22807         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
22808         aarch64-protos.h.
22809
22810 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22811
22812         * config/aarch64/aarch64-fusion-pairs.def: New.
22813         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
22814         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
22815         aarch64_fusion_pairs.
22816         (AARCH64_FUSE_MOV_MOVK): Likewise.
22817         (AARCH64_FUSE_ADRP_ADD): Likewise.
22818         (AARCH64_FUSE_MOVK_MOVK): Likewise.
22819         (AARCH64_FUSE_ADRP_LDR): Likewise.
22820         (AARCH64_FUSE_CMP_BRANCH): Likewise.
22821
22822 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22823
22824         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
22825         SYMBOL_SMALL_GOT_28K.
22826         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
22827         relocation modifiers.
22828         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
22829         (ldr_got_small_28k_<mode>): New.
22830         (ldr_got_small_28k_sidi): New.
22831         * config/aarch64/iterators.md (got_modifier): New mode iterator.
22832         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
22833         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
22834         SYMBOL_SMALL_GOT_28K.
22835         (aarch64_rtx_costs): Add costs for new instruction sequences.
22836         (initialize_aarch64_code_model): Initialize new model.
22837         (aarch64_classify_symbol): Recognize new model and new symbol classification.
22838         (aarch64_asm_preferred_eh_data_format): Support new model.
22839         (aarch64_load_symref_appropriately): Generate new instruction
22840         sequences for -fpic.
22841         (TARGET_USE_PSEUDO_PIC_REG): New definition.
22842         (aarch64_use_pseudo_pic_reg): New function.
22843
22844 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22845
22846         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
22847         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
22848         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
22849         (aarch64_expand_mov_immediate): Ditto.
22850         (aarch64_print_operand): Ditto.
22851         (aarch64_classify_symbol): Ditto.
22852
22853 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
22854
22855         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
22856
22857 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
22858
22859         PR bootstrap/66638
22860         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
22861         assertion failed.  Remove assertion itself.
22862
22863 2015-06-26  Richard Biener  <rguenther@suse.de>
22864
22865         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
22866         and -A CMP CST -> A CMP -CST which is redundant with a pattern
22867         in match.pd.
22868         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
22869         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
22870         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
22871         * match.pd: ... patterns here.
22872
22873 2015-06-26  Marek Polacek  <polacek@redhat.com>
22874
22875         * match.pd ((x | y) & ~(x & y) -> x ^ y,
22876         (x | y) & (~x ^ y) -> x & y): New patterns.
22877
22878 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22879
22880         * rtl.h (emit): Add an optional boolean parameter to control
22881         whether barriers are emitted.
22882         * emit-rtl.c (emit): Likewise.
22883         * gensupport.c (get_emit_function): Return null rather than "emit".
22884         * genemit.c (gen_emit_seq): Handle the null return value.
22885         Don't emit barriers after the final instruction in the sequence.
22886         * gentarget-def.c (main): Don't emit barriers after the instruction.
22887
22888 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22889
22890         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
22891         TARGET_UNIFIED_ASM.
22892
22893 2015-06-26  Richard Biener  <rguenther@suse.de>
22894
22895         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
22896
22897 2015-06-26  Richard Biener  <rguenther@suse.de>
22898
22899         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
22900         irrespective on whether the inner operation has a single use
22901         of both off are constant.
22902
22903 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
22904             Segher Boessenkool  <segher@kernel.crashing.org>
22905
22906         PR target/66412
22907         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
22908         before doing PUT_MODE or PUT_CODE on operands to avoid
22909         in-place RTX modification.
22910
22911 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22912
22913         * gentarget-def.c (def_target_insn): Cast return of strtol to
22914         unsigned int.
22915
22916 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22917
22918         * gimple.h (gimple_call_set_fn): Move inline function.
22919         * gimple.c (gimple_call_set_fn): Relocate here.
22920
22921 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
22922
22923         PR target/65979
22924         PR target/66611
22925         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
22926         the replacement insn will work.
22927
22928 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22929
22930         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
22931         by default.
22932
22933 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22934
22935         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
22936         * cgraph.h: Include ipa-ref.h and plugin-api.h.
22937         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
22938         (symtab_node::address_can_be_compared_p): Move function.
22939         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
22940         definition here.
22941         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
22942         * auto-profile.c: Likewise.
22943         * bb-reorder.c: Likewise.
22944         * builtins.c: Likewise.
22945         * calls.c: Likewise.
22946         * cfgexpand.c: Likewise.
22947         * cgraphbuild.c: Likewise.
22948         * cgraphclones.c: Likewise.
22949         * cgraphunit.c: Likewise.
22950         * combine.c: Likewise.
22951         * coverage.c: Likewise.
22952         * data-streamer-in.c: Likewise.
22953         * data-streamer-out.c: Likewise.
22954         * data-streamer.c: Likewise.
22955         * dbxout.c: Likewise.
22956         * dwarf2out.c: Likewise.
22957         * except.c: Likewise.
22958         * expr.c: Likewise.
22959         * final.c: Likewise.
22960         * fold-const.c: Likewise.
22961         * ggc-page.c: Likewise.
22962         * gimple-fold.c: Likewise.
22963         * gimple-iterator.c: Likewise.
22964         * gimple-pretty-print.c: Likewise.
22965         * gimple-streamer-in.c: Likewise.
22966         * gimple-streamer-out.c: Likewise.
22967         * gimple.c: Likewise.
22968         * gimplify.c: Likewise.
22969         * ipa-chkp.c: Likewise.
22970         * ipa-comdats.c: Likewise.
22971         * ipa-cp.c: Likewise.
22972         * ipa-devirt.c: Likewise.
22973         * ipa-icf-gimple.c: Likewise.
22974         * ipa-icf.c: Likewise.
22975         * ipa-inline-analysis.c: Likewise.
22976         * ipa-inline-transform.c: Likewise.
22977         * ipa-inline.c: Likewise.
22978         * ipa-polymorphic-call.c: Likewise.
22979         * ipa-profile.c: Likewise.
22980         * ipa-prop.c: Likewise.
22981         * ipa-pure-const.c: Likewise.
22982         * ipa-ref.c: Likewise.
22983         * ipa-reference.c: Likewise.
22984         * ipa-split.c: Likewise.
22985         * ipa-utils.c: Likewise.
22986         * ipa-visibility.c: Likewise.
22987         * ipa.c: Likewise.
22988         * langhooks.c: Likewise.
22989         * lto-cgraph.c: Likewise.
22990         * lto-compress.c: Likewise.
22991         * lto-opts.c: Likewise.
22992         * lto-section-in.c: Likewise.
22993         * lto-section-out.c: Likewise.
22994         * lto-streamer-in.c: Likewise.
22995         * lto-streamer-out.c: Likewise.
22996         * lto-streamer.c: Likewise.
22997         * omp-low.c: Likewise.
22998         * opts-global.c: Likewise.
22999         * passes.c: Likewise.
23000         * predict.c: Likewise.
23001         * print-tree.c: Likewise.
23002         * profile.c: Likewise.
23003         * ree.c: Likewise.
23004         * sanopt.c: Likewise.
23005         * stor-layout.c: Likewise.
23006         * symtab.c: Likewise.
23007         * toplev.c: Likewise.
23008         * trans-mem.c: Likewise.
23009         * tree-cfg.c: Likewise.
23010         * tree-chkp.c: Likewise.
23011         * tree-eh.c: Likewise.
23012         * tree-emutls.c: Likewise.
23013         * tree-inline.c: Likewise.
23014         * tree-nested.c: Likewise.
23015         * tree-parloops.c: Likewise.
23016         * tree-pretty-print.c: Likewise.
23017         * tree-profile.c: Likewise.
23018         * tree-sra.c: Likewise.
23019         * tree-ssa-alias.c: Likewise.
23020         * tree-ssa-live.c: Likewise.
23021         * tree-ssa-loop-ivcanon.c: Likewise.
23022         * tree-ssa-loop-ivopts.c: Likewise.
23023         * tree-ssa-pre.c: Likewise.
23024         * tree-ssa-sccvn.c: Likewise.
23025         * tree-ssa-strlen.c: Likewise.
23026         * tree-ssa-structalias.c: Likewise.
23027         * tree-streamer-in.c: Likewise.
23028         * tree-streamer-out.c: Likewise.
23029         * tree-streamer.c: Likewise.
23030         * tree-switch-conversion.c: Likewise.
23031         * tree-tailcall.c: Likewise.
23032         * tree-vect-data-refs.c: Likewise.
23033         * tree-vect-stmts.c: Likewise.
23034         * tree-vectorizer.c: Likewise.
23035         * tree.c: Likewise.
23036         * tsan.c: Likewise.
23037         * ubsan.c: Likewise.
23038         * value-prof.c: Likewise.
23039         * varasm.c: Likewise.
23040         * varpool.c: Likewise.
23041         * config/arm/arm.c: Likewise.
23042         * config/bfin/bfin.c: Likewise.
23043         * config/c6x/c6x.c: Likewise.
23044         * config/cris/cris.c: Likewise.
23045         * config/darwin-c.c: Likewise.
23046         * config/darwin.c: Likewise.
23047         * config/i386/i386.c: Likewise.
23048         * config/i386/winnt.c: Likewise.
23049         * config/microblaze/microblaze.c: Likewise.
23050         * config/mips/mips.c: Likewise.
23051         * config/rs6000/rs6000.c: Likewise.
23052         * config/rx/rx.c: Likewise.
23053         * config/s390/s390.c: Likewise.
23054         * config/tilegx/mul-tables.c: Likewise.
23055
23056 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23057
23058         * config/aarch64/aarch64.c, config/alpha/alpha.c,
23059         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
23060         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
23061         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
23062         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23063         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23064         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23065         config/microblaze/microblaze.c, config/mips/mips.c,
23066         config/mmix/mmix.c, config/mn10300/mn10300.c,
23067         config/moxie/moxie.c, config/msp430/msp430.c,
23068         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23069         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23070         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23071         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23072         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23073         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23074         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
23075         target-def.h include.
23076         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
23077
23078 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23079
23080         * Makefile.in (TARGET_DEF): Add target-insns.def.
23081         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
23082         (build/gentarget-def.o): New rule.
23083         (genprogrtl): Add target-def.
23084         * target-insns.def, gentarget-def.c: New files.
23085         * target.def: Add targetm.have_* and targetm.gen_* hooks,
23086         based on the contents of target-insns.def.
23087         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
23088         (HAVE_return, gen_return): Delete.
23089         * target-def.h: Include insn-target-def.h.
23090         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
23091         instead of direct calls.  Rely on them to do the appropriate assertions.
23092         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
23093         (convert_jumps_to_returns): Use targetm interface instead of
23094         direct calls.
23095         (thread_prologue_and_epilogue_insns): Likewise.
23096         * reorg.c (find_end_label, dbr_schedule): Likewise.
23097         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
23098         * shrink-wrap.c (convert_to_simple_return): Likewise.
23099         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
23100
23101 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23102
23103         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
23104         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23105         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
23106         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
23107         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23108         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23109         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23110         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
23111         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
23112         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23113         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23114         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23115         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23116         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23117         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23118         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
23119         includes to end.
23120
23121 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23122
23123         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
23124         (unbounded_int_hashmap_traits::key_type): Likewise.
23125         * hash-map.h (hash_map): Get the key type from the traits.
23126         * hash-traits.h (default_hash_traits): By default, inherit from the
23127         template parameter.
23128         * alias.c (alias_set_traits): Delete.
23129         (alias_set_entry_d::children): Use alias_set_hash as the first
23130         template parameter.
23131         (record_alias_subset): Update accordingly.
23132         * except.c (tree_hash_traits): Delete.
23133         (type_to_runtime_map): Use tree_hash as the first template parameter.
23134         (init_eh): Update accordingly.
23135         * genmatch.c (capture_id_map_hasher): Delete.
23136         (cid_map_t): Use nofree_string_hash as first template parameter.
23137         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
23138         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
23139         Use symbol_compare_hash as the first template parameter in
23140         subdivide_hash_map.
23141         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
23142         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
23143         template parameter.
23144         * passes.c (pass_registry_hasher): Delete.
23145         (name_to_pass_map): Use nofree_string_hash as the first template
23146         parameter.
23147         (register_pass_name): Update accordingly.
23148         * sanopt.c (sanopt_tree_map_traits): Delete.
23149         (sanopt_tree_triplet_map_traits): Delete.
23150         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
23151         template parameter.
23152         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
23153         the first template parameter.
23154         * sese.c (rename_map_hasher): Delete.
23155         (rename_map_type): Use tree_ssa_name_hash as the first template
23156         parameter.
23157         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
23158         (function_summary::m_map): Use map_hash as the first template
23159         parameter.
23160         (function_summary::release): Update accordingly.
23161         * tree-if-conv.c (phi_args_hash_traits): Delete.
23162         (predicate_scalar_phi): Use tree_operand_hash as the first template
23163         parameter to phi_arg_map.
23164         * tree-inline.h (dependence_hasher): Delete.
23165         (copy_body_data::dependence_map): Use dependence_hash as the first
23166         template parameter.
23167         * tree-inline.c (remap_dependence_clique): Update accordingly.
23168         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
23169         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
23170         parameter.
23171         (addr_stridxptr): Update accordingly.
23172         * value-prof.c (profile_id_traits): Delete.
23173         (cgraph_node_map): Use profile_id_hash as the first template
23174         parameter.
23175         (init_node_map): Update accordingly.
23176         * config/alpha/alpha.c (string_traits): Delete.
23177         (machine_function::links): Use nofree_string_hash as the first
23178         template parameter.
23179         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
23180         * config/m32c/m32c.c (pragma_traits): Delete.
23181         (pragma_htab): Use nofree_string_hash as the first template parameter.
23182         (m32c_note_pragma_address): Update accordingly.
23183         * config/mep/mep.c (pragma_traits): Delete.
23184         (pragma_htab): Use nofree_string_hash as the first template parameter.
23185         (mep_note_pragma_flag): Update accordingly.
23186         * config/mips/mips.c (mips16_flip_traits): Delete.
23187         (mflip_mips16_htab): Use nofree_string_hash as the first template
23188         parameter.
23189         (mflip_mips16_use_mips16_p): Update accordingly.
23190         (local_alias_traits): Delete.
23191         (mips16_local_aliases): Use nofree_string_hash as the first template
23192         parameter.
23193         (mips16_local_alias): Update accordingly.
23194
23195 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23196
23197         * hash-map-traits.h (default_hashmap_traits): Delete.
23198
23199 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23200
23201         * hash-map-traits.h (unbounded_hashmap_traits): New class.
23202         (unbounded_int_hashmap_traits): Likewise.
23203         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
23204
23205 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23206
23207         * ipa-icf.h (symbol_compare_hash): New class.
23208         (symbol_compare_hashmap_traits): Use it.
23209         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
23210         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
23211         (mem_alloc_description::reverse_mem_map_t): Remove redundant
23212         default_hashmap_traits.
23213         * sanopt.c (sanopt_tree_triplet_hash): New class.
23214         (sanopt_tree_triplet_map_traits): Use it.
23215
23216 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23217
23218         * gengtype-parse.c (require_template_declaration): Allow '+' in
23219         template parameters.  Consolidate cases.
23220         * hash-traits.h (int_hash): New class.
23221         * alias.c (alias_set_hash): New structure.
23222         (alias_set_traits): Use it.
23223         * symbol-summary.h (function_summary::map_hash): New class.
23224         (function_summary::summary_hashmap_traits): Use it.
23225         * tree-inline.h (dependence_hash): New class.
23226         (dependence_hasher): Use it.
23227         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
23228         * value-prof.c (profile_id_hash): New class.
23229         (profile_id_traits): Use it.
23230
23231 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23232
23233         * config/mips/mips.c (mips16_flip_traits): Use it.
23234         (local_alias_traits, mips16_local_aliases): Convert from a map of
23235         rtxes to a map of symbol names.
23236         (mips16_local_alias): Update accordingly.
23237
23238 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23239
23240         * hash-traits.h (string_hash, nofree_string_hash): New classes.
23241         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
23242         * passes.c (pass_registry_hasher): Likewise.
23243         * config/alpha/alpha.c (string_traits): Likewise.
23244         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
23245         * config/m32c/m32c.c (pragma_traits): Likewise.
23246         * config/mep/mep.c (pragma_traits): Likewise.
23247
23248 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23249
23250         * tree-hash-traits.h (tree_hash): New class.
23251         * except.c: Include tree-hash-traits.h.
23252         (tree_hash_traits): Use tree_hash.
23253
23254 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23255
23256         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
23257         * sese.c: Include tree-hash-traits.h.
23258         (rename_map_hasher): Use tree_ssa_name_hasher.
23259
23260 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23261
23262         * tree-hash-traits.h (tree_decl_hash): New class.
23263         * tree-ssa-strlen.c: Include tree-hash-traits.h.
23264         (stridxlist_hash_traits): Use tree_decl_hash.
23265
23266 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23267
23268         * tree-hash-traits.h: New file.
23269         (tree_operand_hash): New class.
23270         * sanopt.c: Include tree-hash-traits.h.
23271         (sanopt_tree_map_traits): Use tree_operand_hash.
23272         * tree-if-conv.c: Include tree-hash-traits.h.
23273         (phi_args_hash_traits): Use tree_operand_hash.
23274         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
23275         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
23276
23277 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23278
23279         * hash-map-traits.h: Include hash-traits.h.
23280         (simple_hashmap_traits): New class.
23281         * mem-stats.h (hash_map): Change the default traits to
23282         simple_hashmap_traits<default_hash_traits<Key> >.
23283
23284 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23285
23286         * hash-table.h: Update comments.
23287
23288 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23289
23290         * hash-traits.h (default_hash_traits): New structure.
23291         * hash-set.h (default_hashset_traits): Delete.
23292         (hash_set): Use default_hash_traits<Key> instead of
23293         default_hashset_traits.  Delete hash_entry type and use Key directly.
23294         * ipa-devirt.c (pair_traits): Delete.
23295         (default_hash_traits <type_pair>): Override.
23296         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
23297         (odr_types_equivalent_p, add_type_duplicate): Likewise.
23298
23299 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23300
23301         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
23302
23303 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23304
23305         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
23306         (has_is_empty, is_empty_helper): Delete.
23307         (has_mark_deleted, mark_deleted_helper): Delete.
23308         (has_mark_empty, mark_empty_helper): Delete.
23309         (hash_table::is_deleted): Call the Descriptor unconditionally.
23310         (hash_table::is_empty): Likewise.
23311         (hash_table::mark_deleted): Likewise.
23312         (hash_table::mark_empty): Likewise.
23313
23314 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23315
23316         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
23317         redundant typedefs and members.
23318         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
23319         redundant typedefs.
23320         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
23321         * ipa-devirt.c (odr_name_hasher): Likewise.
23322         (polymorphic_call_target_hasher): Likewise.
23323         * ira-costs.c (cost_classes_hasher): Likewise.
23324         * statistics.c (stats_counter_hasher): Likewise.
23325         * trans-mem.c (log_entry_hasher): Likewise.
23326         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
23327         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
23328         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
23329         * var-tracking.c (variable_hasher): Likewise.
23330         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
23331         Remove redundant typedefs and members.
23332
23333 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23334
23335         * hash-traits.h (ggc_cache_hasher): Rename to...
23336         (ggc_cache_remove): ...this and remove typedefs.
23337         (ggc_cache_ptr_hash): New class.
23338         * hash-table.h: Update commentary.
23339         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
23340         rather than ggc_cache_hasher.
23341         (const_wide_int_hasher, reg_attr_hasher): Likewise.
23342         (const_double_hasher, const_fixed_hasher): Likewise.
23343         * function.c (insn_cache_hasher): Likewise.
23344         * trans-mem.c (tm_wrapper_hasher): Likewise.
23345         * tree.h (tree_decl_map_cache_hasher): Likewise.
23346         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
23347         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
23348         * ubsan.c (tree_type_map_cache_hasher): Likewise.
23349         * varasm.c (tm_clone_hasher): Likewise.
23350         * config/i386/i386.c (dllimport_hasher): Likewise.
23351         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
23352         (tree_hasher): Likewise.
23353
23354 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23355
23356         * hash-traits.h (ggc_hasher): Rename to...
23357         (ggc_remover): ...this and remove typedefs.
23358         (ggc_cache_hasher): Update accordingly.  Add typedefs.
23359         (ggc_ptr_hash): New class.
23360         * hash-table.h: Update comment.
23361         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
23362         ggc_hasher.
23363         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
23364         (tree_descriptor_hasher): Likewise.
23365         * cgraph.c (function_version_hasher): Likewise.
23366         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
23367         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
23368         (dw_loc_list_hasher, addr_hasher): Likewise.
23369         * function.h (used_type_hasher): Likewise.
23370         * function.c (temp_address_hasher): Likewise.
23371         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
23372         * libfuncs.h (libfunc_hasher): Likewise.
23373         * lto-streamer.h (decl_state_hasher): Likewise.
23374         * optabs.c (libfunc_decl_hasher): Likewise.
23375         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
23376         * varasm.c (section_hasher, object_block_hasher): Likewise.
23377         (const_rtx_desc_hasher): Likewise.
23378         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
23379         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
23380
23381 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23382
23383         * hash-traits.h (free_ptr_hash): New class.
23384         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
23385         rather than typed_free_remove.  Remove redudant typedefs.
23386         (external_ref_hasher): Likewise.
23387         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
23388         (ehspec_hasher): Likewise.
23389         * ggc-common.c (saving_hasher): Likewise.
23390         * gimplify.c (gimplify_hasher): Likewise.
23391         * haifa-sched.c (delay_i2_hasher): Likewise.
23392         * loop-invariant.c (invariant_expr_hasher): Likewise.
23393         * loop-iv.c (biv_entry_hasher): Likewise.
23394         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
23395         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
23396         * tree-cfg.c (locus_discrim_hasher): Likewise.
23397         * tree-eh.c (finally_tree_hasher): Likewise.
23398         * tree-into-ssa.c (var_info_hasher): Likewise.
23399         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
23400         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
23401         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
23402         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
23403         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
23404         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
23405         (shared_bitmap_hasher): Likewise.
23406         * tree-ssa-threadupdate.c (redirection_data): Likewise.
23407         * tree-vectorizer.h (peel_info_hasher): Likewise.
23408         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
23409         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
23410
23411 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23412
23413         * hash-table.h: Update comments.
23414         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
23415         (nofree_ptr_hash): New class.
23416         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
23417         than typed_noop_remove.  Remove redudant typedefs.
23418         * attribs.c (attribute_hasher): Likewise.
23419         * cfg.c (bb_copy_hasher): Likewise.
23420         * cselib.c (cselib_hasher): Likewise.
23421         * dse.c (invariant_group_base_hasher): Likewise.
23422         * dwarf2cfi.c (trace_info_hasher): Likewise.
23423         * dwarf2out.c (macinfo_entry_hasher): Likewise.
23424         (comdat_type_hasher, loc_list_hasher): Likewise.
23425         * gcse.c (pre_ldst_expr_hasher): Likewise.
23426         * genmatch.c (id_base): Likewise.
23427         * genrecog.c (test_pattern_hasher): Likewise.
23428         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
23429         * haifa-sched.c (delay_i1_hasher): Likewise.
23430         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
23431         * ipa-icf.h (congruence_class_group_hash): Likewise.
23432         * ipa-profile.c (histogram_hash): Likewise.
23433         * ira-color.c (allocno_hard_regs_hasher): Likewise.
23434         * lto-streamer.h (string_slot_hasher): Likewise.
23435         * lto-streamer.c (tree_entry_hasher): Likewise.
23436         * plugin.c (event_hasher): Likewise.
23437         * postreload-gcse.c (expr_hasher): Likewise.
23438         * store-motion.c (st_expr_hasher): Likewise.
23439         * tree-sra.c (uid_decl_hasher): Likewise.
23440         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
23441         (ssa_name_var_hash): Likewise.
23442         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
23443         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
23444         * tree-ssa-pre.c (pre_expr_d): Likewise.
23445         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
23446         * vtable-verify.h (registration_hasher): Likewise.
23447         * vtable-verify.c (vtbl_map_hasher): Likewise.
23448         * config/arm/arm.c (libcall_hasher): Likewise.
23449         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
23450         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
23451         * config/sol2.c (comdat_entry_hasher): Likewise.
23452         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
23453         (print_fold_checksum, fold_checksum_tree): Likewise.
23454         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
23455         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
23456         (fold_build_call_array_loc): Likewise.
23457         * tree-ssa-ccp.c (gimple_htab): Likewise.
23458         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
23459         rather than pointer_type.
23460
23461 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23462
23463         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
23464         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
23465
23466 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23467
23468         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
23469         (ggc_hasher::ggc_mx): Likewise.
23470         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
23471         that duplicate ggc_hasher ones.
23472
23473 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23474
23475         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
23476         (gt_cleare_cache): Check here for deleted and empty entries.
23477         Replace handle_cache_entry with a call to keep_cache_entry.
23478         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
23479         (ggc_cache_hasher::keep_cache_entry): New function.
23480         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
23481         (tm_wrapper_hasher::keep_cache_entry): New function.
23482         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
23483         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23484         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
23485         (type_cache_hasher::keep_cache_entry): New function.
23486         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
23487         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23488         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
23489         (tree_type_map_cache_hasher::keep_cache_entry): New function.
23490         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
23491         (tm_clone_hasher::keep_cache_entry): New function.
23492         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
23493         (dllimport_hasher::keep_cache_entry): New function.
23494
23495 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23496
23497         * hash-table.h: Include hash-traits.h.
23498         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
23499         (ggc_cache_hasher): Move to...
23500         * hash-traits.h: ...this new file.
23501
23502 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23503
23504         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
23505         struct cl_optimization.
23506         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
23507         * tree.c (make_node_stat): Allocate cl_optimization struct.
23508         (copy_node_stat): Allocate and copy cl_optimization struct.
23509
23510 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23511
23512         * function.h (struct incoming_args): Move struct.
23513         (pass_by_reference, reference_callee_copied): Remove prototypes.
23514         * emit-rtl.h (struct incoming_args): Relocate struct here.
23515         * calls.h (pass_by_reference, reference_callee_copied): Relocate
23516         prototypes here.
23517         * function.c (pass_by_reference, reference_callee_copied): Move.
23518         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
23519         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
23520         * ipa-chkp.c: Include calls.h.
23521
23522 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
23523
23524         * alias.h (alias_set_type): Move typedef.
23525         * coretypes.h (alias_set_type): Relocate typedef here.
23526         * rtl.h: Don't include alias.h.
23527
23528 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23529
23530         * cgraph.h (cgraph_rtl_info): Move to rtl.h
23531         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
23532         and instance.
23533         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
23534         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
23535         doesn't exist.
23536         * calls.c: Include hard-reg-set.h before rtl.h.
23537         * ira.c: Likewise.
23538
23539 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
23540             Vladimir Makarov  <vmakarov@redhat.com>
23541
23542         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
23543         Add assert.
23544
23545 2015-06-25  Richard Biener  <rguenther@suse.de>
23546
23547         * fold-const.c (fold_binary_loc): Move simplification of
23548         (X <<>> C1) & C2 ...
23549         * match.pd: ... here.
23550
23551 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
23552
23553         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
23554
23555 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23556
23557         * match.pd: Add patterns for vec_conds between 1 and 0.
23558
23559 2015-06-25  Richard Biener  <rguenther@suse.de>
23560
23561         * tree-vect-stmts.c (vectorizable_conversion): Do not set
23562         STMT_VINFO_VEC_STMT for SLP.
23563         (vectorizable_store): Likewise.
23564         (vectorizable_load): Likewise.
23565         (vect_transform_stmt): Catch SLP vectorization clobbering
23566         STMT_VINFO_VEC_STMT.
23567
23568 2015-06-25  Richard Biener  <rguenther@suse.de>
23569
23570         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
23571         dumping.
23572         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
23573         cleanup resulting dead code and parameters.
23574         (vect_transform_slp_perm_load): Adjust.
23575
23576 2015-06-25  Nick Clifton  <nickc@redhat.com>
23577
23578         * config/bfin/bfin.c (bfin_expand_prologue): Set
23579         current_function_static_stack_size if flag_stack_usage_info is set.
23580         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
23581         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
23582         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
23583         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
23584
23585 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23586
23587         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
23588         comment that the generated IV is unsigned.
23589
23590 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23591
23592         PR target/29693
23593         * config/arm/arm.c (arm_dbx_register_number): Return
23594         DWARF_FRAME_REGISTERS by default.
23595
23596 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23597
23598         * dominance.c (calculate_dominance_info): Fix verify_dominators call
23599         argument.  Call verify_dominator when reusing dominator info.
23600
23601 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
23602
23603         PR target/66563
23604         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
23605         an additional element of the unspec vector.  Modify indices
23606         of operands.
23607         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
23608         * config/sh/sh.c (prepare_move_operands): Pass incremented
23609         const_int to gen_GOTaddr2picreg.
23610         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
23611
23612 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23613
23614         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
23615         Condition on TARGET_FLOAT.
23616
23617 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23618
23619         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
23620         and (no)crypto.
23621
23622 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23623
23624         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
23625
23626         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
23627         aarch64_err_no_fpadvsimd.
23628
23629         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
23630         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
23631         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
23632         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
23633         Turn error into assert, test TARGET_FLOAT.
23634         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
23635         TARGET_FLOAT.
23636
23637 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
23638
23639         PR debug/66482
23640         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
23641
23642 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
23643
23644         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
23645
23646 2015-06-24  Renlin Li <renlin.li@arm.com>
23647
23648         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
23649         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
23650
23651 2015-06-24  Richard Biener  <rguenther@suse.de>
23652
23653         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
23654         (main): Likewise.
23655         (lower_opt_convert): Support lowering of conditional view_convert.
23656         (parser::parse_operation): Likewise.
23657         (parser::parse_for): Likewise.
23658
23659 2015-06-24  Renlin Li  <renlin.li@arm.com>
23660
23661         * varasm.c (emit_local): Use unsigned int for align variable.
23662
23663 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23664
23665         PR target/63408
23666         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
23667         for negative numbers.
23668
23669 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23670
23671         PR rtl-optimization/66306
23672         * reload.c (find_reloads): Swap the match_dup info for
23673         commutative operands.
23674
23675 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23676
23677         * config/s390/vx-builtins.md
23678         ("vec_scatter_element<mode>_<non_vec_int>")
23679         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
23680         attribute with bhfgq.
23681
23682 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23683
23684         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
23685
23686 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23687
23688         * config/s390/s390-builtin-types.def: Add flag to indicate the
23689         options under which the function type is needed.
23690         * config/s390/s390-builtins.def: Add flag to indicate the options
23691         under which the builtin is enabled.
23692         * config/s390/s390-builtins.h: Add flags parameter to macro
23693         definitions.
23694         (bflags_for_builtin): New function.
23695         (flags_for_builtin): Renamed to ...
23696         (opflags_for_builtin): ... this.
23697         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
23698         flags_for_builtin to bflags_for_builtin and
23699         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
23700         * config/s390/s390.c: Add initialization of bflags_builtin and
23701         opflags_builtin arrays.
23702         Remove code for flags_builtin.
23703         (s390_init_builtins): Only create builtin function types if one of
23704         their flags is active.
23705         Only create builtins if all of their flags are active.
23706         (s390_expand_builtin): Rename flags_for_builtin to
23707         opflags_for_builtin.
23708
23709 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23710
23711         * config/s390/vecintrin.h: Remove internal builtins.
23712
23713 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23714
23715         * config/s390/s390.c (s390_secondary_reload): Fix check for
23716         GENERAL_REGS register class.
23717
23718 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23719
23720         * config/s390/s390.c (s390_support_vector_misalignment): Call
23721         default implementation for !TARGET_VX.
23722
23723 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23724
23725         * config/s390/s390.c (s390_legitimate_constant_p): Add
23726         TARGET_VX check.
23727
23728 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23729
23730         * config/s390/s390.c (s390_vector_abi): New variable definition.
23731         (s390_check_type_for_vector_abi): New function.
23732         (TARGET_ASM_FILE_END): New macro definition.
23733         (s390_asm_file_end): New function.
23734         (s390_function_arg): Call s390_check_type_for_vector_abi.
23735         (s390_gimplify_va_arg): Likewise.
23736         * configure: Regenerate.
23737         * configure.ac: Check for .gnu_attribute Binutils feature.
23738
23739 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
23740
23741         PR target/65803
23742         * config/bfin/bfin.c (hwloop_optimize): Initialize
23743         JUMP_LABEL for newly created jump.
23744
23745 2015-06-23  Tristan Gingold  <gingold@adacore.com>
23746
23747         * collect-utils.c (collect_wait): Unlink the response file here
23748         instead of...
23749         (do_wait): ...here.
23750         (utils_cleanup): ...and here.
23751
23752 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
23753
23754         * df-scan.c: Don't include target-def.h.
23755         * targhooks.c: Likewise.
23756         * config/arm/arm-c.c: Likewise.
23757         * config/i386/i386-c.c: Likewise.
23758         * config/nds32/nds32-cost.c: Likewise.
23759         * config/nds32/nds32-fp-as-gp.c: Likewise.
23760         * config/nds32/nds32-intrinsic.c: Likewise.
23761         * config/nds32/nds32-isr.c: Likewise.
23762         * config/nds32/nds32-md-auxiliary.c: Likewise.
23763         * config/nds32/nds32-memory-manipulation.c: Likewise.
23764         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23765         * config/nds32/nds32-predicates.c: Likewise.
23766
23767 2015-06-23  Richard Biener  <rguenther@suse.de>
23768
23769         PR tree-optimization/66636
23770         * tree-vect-stmts.c (vectorizable_store): Properly compute the
23771         def type for further defs for strided stores.
23772
23773 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
23774
23775         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
23776         conditional selects.
23777         (setcc_int<mode>, setcc_float<mode>): Reformat.
23778
23779 2015-06-23  Marek Polacek  <polacek@redhat.com>
23780
23781         * match.pd ((x + y) - (x | y) -> x & y,
23782         (x + y) - (x & y) -> x | y): New patterns.
23783
23784 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
23785
23786         PR 65711
23787         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
23788         '-dynamic-linker' within %{!shared: ...}.
23789
23790 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
23791
23792         PR target/66560
23793         * config/i386/predicates.md (addsub_vm_operator): New predicate.
23794         (addsub_vs_operator): Ditto.
23795         (addsub_vs_parallel): Ditto.
23796         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
23797         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
23798         Put minus RTX before plus and adjust vec_merge selector.
23799         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
23800         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
23801         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
23802         (addsub vec_merge splitters): New combiner splitters.
23803         (addsub vec_select/vec_concat splitters): Ditto.
23804
23805 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
23806
23807         PR tree-optimization/66449
23808         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
23809         POINTER_PLUS_EXPR for pointers.
23810
23811 2015-06-23  Alan Modra  <amodra@gmail.com>
23812
23813         * rtlanal.c (commutative_operand_precedence): Correct comments.
23814         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
23815         declaration.  Return an int.  Distinguish REG,REG return from
23816         others.
23817         (struct simplify_plus_minus_op_data): Make local to function.
23818         (simplify_plus_minus): Don't set canonicalized if merely sorting
23819         registers.  Avoid packing ops if nothing changes.  White space fixes.
23820
23821 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
23822
23823         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
23824         -fdump-ada-spec is passed but not if -fsyntax-only is.
23825
23826 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
23827
23828         PR bootstrap/63740
23829         * lra-lives.c (process_bb_lives): Check insn copying the same
23830         reload pseudo and don't create a copy for it.
23831
23832 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23833
23834         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
23835         for cond_stmt.
23836
23837 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23838
23839         * builtins.def (DEF_GOMP_BUILTIN): Test
23840         'flag_tree_parallelize_loops > 1' instead of
23841         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
23842
23843 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23844
23845         * dominance.c (calculate_dominance_info): Verify dominators if
23846         early-out.
23847
23848 2015-06-22  Marek Polacek  <polacek@redhat.com>
23849
23850         * match.pd ((x ^ y) ^ (x | y) -> x & y,
23851         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
23852         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
23853         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
23854
23855 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
23856
23857         PR target/65871
23858         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
23859         cost of embedded comparison.
23860
23861 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23862
23863         PR target/65914
23864         * config/rs6000/predicates.md (altivec_register_operand): Permit
23865         virtual stack registers.
23866         (vsx_register_operand): Likewise.
23867         (vfloat_operand): Likewise.
23868         (vint_operand): Likewise.
23869         (vlogical_operand): Likewise.
23870
23871 2015-06-22  Richard Biener  <rguenther@suse.de>
23872
23873         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
23874         and single_scalar_iteration_cost members.
23875         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
23876         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
23877         (vect_get_single_scalar_iteration_cost): Remove.
23878         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
23879         Use LOOP_VINFO_SCALAR_ITERATION_COST.
23880         * tree-vect-loop.c (destroy_loop_vec_info): Free
23881         scalar_cost_vec.
23882         (vect_get_single_scalar_iteration_cost): Compute result into
23883         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
23884         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
23885         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
23886         (vect_estimate_min_profitable_iters): Use them.
23887
23888 2015-06-22  Christian Bruel  <christian.bruel@st.com>
23889
23890         PR target/52144
23891         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
23892         (TARGET_INSERT_ATTRIBUTES): Define.
23893         (thumb_flipper): New var.
23894         * config/arm/arm.opt (-mflip-thumb): New switch.
23895
23896 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23897             Martin Liska  <mliska@suse.cz>
23898
23899         PR ipa/65908
23900         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
23901         construction of arg_types.
23902         (sem_function::sem_function): Likewise.
23903         (sem_function::~sem_function): Remove destruction of arg_types.
23904         (sem_function::compatible_parm_types_p): New function.
23905         (sem_function::equals_wpa): Reorg matching of return values
23906         and parameter types.
23907         (sem_function::equals_private): Reorg mathcing of argument types.
23908         (sem_function::parse_tree_args): Remove.
23909         * ipa-icf.h (init_wpa): Do not call it.
23910         (parse_tree_args): Remove.
23911         (compatible_parm_types_p): Declare.
23912         (result_type): Remove.
23913         (arg_types): Remove.
23914
23915 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23916
23917         PR ipa/66351
23918         * ipa-polymorphic-call.c
23919         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
23920         initializing alias oracle; fix formating; set base_alias_set if it
23921         is known.
23922
23923 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
23924
23925         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
23926         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
23927         (find_inc): Likewise.
23928         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
23929         swapping.
23930         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
23931         * df-scan.c (df_swap_refs): Remove.
23932         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
23933         * dominance.c (link_roots): Use std::swap instead of manually swapping.
23934         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
23935         * fold-const.c (fold_relational_const): Likewise.
23936         * genattrtab.c (simplify_test_exp): Likewise.
23937         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
23938         gimple_simplify): Likewise.
23939         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
23940         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
23941         * ipa-devirt.c (add_type_duplicate): Likewise.
23942         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
23943         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
23944         * lra.c (lra_create_copy): Likewise.
23945         * lto-streamer-out.c (DFS::DFS): Likewise.
23946         * modulo-sched.c (get_sched_window): Likewise.
23947         * omega.c (omega_pretty_print_problem): Likewise.
23948         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
23949         * reload1.c (reloads_unique_chain_p): Likewise.
23950         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
23951         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
23952         use std::swap.
23953         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
23954         manually swapping.
23955         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
23956         predicate_mem_writes): Likewise.
23957         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
23958         * tree-predcom.c (combine_chains): Likewise.
23959         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
23960         refs_may_alias_p_1): Likewise.
23961         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
23962         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23963         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
23964         number_of_iterations_cond): Likewise.
23965         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
23966         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
23967         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
23968         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
23969         * tree-vrp.c (extract_range_from_binary_expr_1,
23970         extract_range_from_unary_expr_1): Likewise.
23971
23972 2015-06-20  Marek Polacek  <polacek@redhat.com>
23973
23974         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
23975
23976 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
23977
23978         PR target/66591
23979         * config/sh/sh.c (prepare_move_operands): Replace subreg
23980         index term with R0 for base and index addressing.
23981
23982 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
23983
23984         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
23985         op1 is an fp zero.
23986         (movsf_aarch64): Change condition from register_operand to
23987         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
23988         load1.  Change type for alternative 7 to store1.
23989         (movdf_aarch64): Likewise.
23990
23991 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
23992
23993         * config/vax/vax.md: Adjust sign/zero extend patterns to
23994         handle SUBREGs in operands[1].
23995
23996 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23997
23998         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
23999         of manually swapping.
24000         (expand_vec_perm_interleave2): Likewise.
24001
24002 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
24003
24004         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
24005         reuse bounds created for abnormal ssa names.
24006
24007 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
24008
24009         * config/nvptx/nvptx.md (allocate_stack): Rename to...
24010         (allocate_stack_<mode>): ... this, and add :P on both
24011         match_operand and unspec.
24012         (allocate_stack): New expander.
24013
24014 2015-06-19  Christian Bruel  <christian.bruel@st.com>
24015
24016         PR target/66541
24017         PR target/52144
24018         * config/arm/arm.c (arm_set_current_function): Handle
24019         explicit default options.
24020
24021 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24022
24023         * config/i386/i386.md (*movsicc_noc_zext): New insn.
24024         (zero-extended cmove with mem peephole2): New pattern.
24025         (cmove with mem peephole2): Merge patterns.
24026
24027 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
24028
24029         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
24030
24031 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
24032
24033         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
24034         * config/mips/mips.md (*madd4<mode>): Ditto.
24035         (*nmadd3<mode>) Ditto.
24036         (*nmadd4<mode>_fastmath): Ditto.
24037         (*nmadd3<mode>_fastmath): Ditto.
24038         (*nmsub4<mode>): Ditto.
24039         (*nmsub3<mode>): Ditto.
24040         (*nmsub4<mode>_fastmath): Ditto.
24041         (*nmsub3<mode>_fastmath): Ditto.
24042
24043 2015-06-18  Michael Matz  <matz@suse.de>
24044
24045         PR middle-end/66253
24046         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
24047         grouped strided stores.
24048         (vectorizable_load): Don't use the DR from first_stmt in
24049         the non-SLP grouped strided case.
24050
24051 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24052
24053         PR target/66569
24054         * function.c (assign_bounds): Add arguments assign_regs,
24055         assign_special, assign_bt.
24056         (assign_parms): For vararg functions handle bounds in BT
24057         and special slots after incoming vararg bounds.
24058
24059 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24060
24061         PR middle-end/66568
24062         * cfgexpand.c (expand_return): Handle missing bounds.
24063         (expand_gimple_stmt_1): Likewise.
24064         * tree-chkp.c (chkp_expand_zero_bounds): New.
24065         * tree-chkp.h (chkp_expand_zero_bounds): New.
24066
24067 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24068
24069         PR middle-end/66567
24070         * ipa-chkp.c (chkp_maybe_create_clone): Require
24071         functions to be instrumentable.
24072         * tree-chkp.c (chkp_replace_function_pointer): Use
24073         chkp_instrumentable_p instead of attribute check.
24074
24075 2015-06-18  Richard Biener  <rguenther@suse.de>
24076
24077         PR tree-optimization/66510
24078         * tree-vect-stmts.c (vectorizable_load): Properly compute the
24079         number of vector loads for SLP permuted loads.
24080         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
24081         check the stride for loop vectorization.
24082         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
24083         vectorization factor.
24084         (vect_analyze_group_access): If the group size is not a power
24085         of two require a epilogue loop.
24086         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
24087         compute and optimizing and alias test pruning after final
24088         vectorization factor computation.
24089         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
24090         vector alignment.
24091         (vect_transform_slp_perm_load): Properly compute the original
24092         number of vector load stmts.
24093
24094 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24095
24096         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
24097         "unlikely character , in @var" warning.
24098
24099 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
24100
24101         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
24102         (ix86_function_arg_advance): Ditto.
24103         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
24104
24105 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24106
24107         * function.h (struct rtl_data): Remove struct and accessor macros.
24108         * emit-rtl.h (struct rtl_data): Relocate to here.
24109         * Makefile.in (GTFILES): Add emit-rtl.h.
24110         * df-core.c: Include emit-rtl.h.
24111         * genattrtab.c: Likewise.
24112         * genconditions.c: Likewise.
24113         * genpreds.c: Likewise.
24114         * genrecog.c: Likewise.
24115         * regcprop.c: Likewise.
24116         * resource.c: Likewise.
24117         * sched-rgn.c: Likewise.
24118         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24119         * config/i386/winnt.c: Likewise.
24120
24121 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
24122
24123         PR middle-end/66429
24124         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
24125         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
24126         and has_force_vectorize_loops flags from cfun into
24127         child_cfun.
24128         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
24129         if simduid is non-NULL.
24130         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
24131         * passes.def (pass_simduid_cleanup): Add new pass after loop
24132         passes.
24133         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
24134         indirection from htab argument's type.
24135         (shrink_simd_arrays): New function.
24136         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
24137         Don't call adjust_simduid_builtins if there are no loops.
24138         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
24139         (pass_simduid_cleanup::execute): New method.
24140         (make_pass_simduid_cleanup): New function.
24141
24142 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
24143
24144         * tree-core.h (tree_target_option): Make opts field a pointer to a
24145         cl_target_option instead of an instance of the struct.
24146         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
24147         the structure.
24148         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
24149         TARGET_OPTION_NODE.
24150         (copy_node_stat): Allocate and copy struct cl_target_option.
24151
24152 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24153
24154         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
24155         Remove conditional exposure of prototypes.
24156         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
24157         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
24158         definitions in tree.h with functions.
24159         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
24160         anon_aggrname_p.
24161         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
24162
24163 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
24164
24165         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
24166         (*cmp<mode>_signed): ... this.
24167         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
24168         (*cmp<mode>_unsigned): ... this.  Remove %b.
24169
24170 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24171
24172         * coretypes.h: Include input.h and as-a.h.
24173         * rtl.h: Include input.h and as-a.h for generator files.
24174         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
24175         * vec.c: Don't include diagnostic-core.h.
24176         * alias.c: Do not include input.h, line-map.h or is-a.h.
24177         * asan.c: Likewise.
24178         * attribs.c: Likewise.
24179         * auto-inc-dec.c: Likewise.
24180         * auto-profile.c: Likewise.
24181         * bb-reorder.c: Likewise.
24182         * bt-load.c: Likewise.
24183         * builtins.c: Likewise.
24184         * caller-save.c: Likewise.
24185         * calls.c: Likewise.
24186         * ccmp.c: Likewise.
24187         * cfg.c: Likewise.
24188         * cfganal.c: Likewise.
24189         * cfgbuild.c: Likewise.
24190         * cfgcleanup.c: Likewise.
24191         * cfgexpand.c: Likewise.
24192         * cfghooks.c: Likewise.
24193         * cfgloop.c: Likewise.
24194         * cfgloop.h: Likewise.
24195         * cfgloopanal.c: Likewise.
24196         * cfgloopmanip.c: Likewise.
24197         * cfgrtl.c: Likewise.
24198         * cgraph.c: Likewise.
24199         * cgraphbuild.c: Likewise.
24200         * cgraphclones.c: Likewise.
24201         * cgraphunit.c: Likewise.
24202         * cilk-common.c: Likewise.
24203         * combine-stack-adj.c: Likewise.
24204         * combine.c: Likewise.
24205         * compare-elim.c: Likewise.
24206         * convert.c: Likewise.
24207         * coverage.c: Likewise.
24208         * cppbuiltin.c: Likewise.
24209         * cprop.c: Likewise.
24210         * cse.c: Likewise.
24211         * cselib.c: Likewise.
24212         * data-streamer-in.c: Likewise.
24213         * data-streamer-out.c: Likewise.
24214         * data-streamer.c: Likewise.
24215         * dbxout.c: Likewise.
24216         * dce.c: Likewise.
24217         * ddg.c: Likewise.
24218         * debug.c: Likewise.
24219         * df-core.c: Likewise.
24220         * df-problems.c: Likewise.
24221         * df-scan.c: Likewise.
24222         * df.h: Likewise.
24223         * dfp.c: Likewise.
24224         * diagnostic-core.h: Likewise.
24225         * diagnostic.c: Likewise.
24226         * dojump.c: Likewise.
24227         * dominance.c: Likewise.
24228         * domwalk.c: Likewise.
24229         * double-int.c: Likewise.
24230         * dse.c: Likewise.
24231         * dumpfile.c: Likewise.
24232         * dumpfile.h: Likewise.
24233         * dwarf2asm.c: Likewise.
24234         * dwarf2cfi.c: Likewise.
24235         * dwarf2out.c: Likewise.
24236         * emit-rtl.c: Likewise.
24237         * et-forest.c: Likewise.
24238         * except.c: Likewise.
24239         * explow.c: Likewise.
24240         * expmed.c: Likewise.
24241         * expr.c: Likewise.
24242         * final.c: Likewise.
24243         * fixed-value.c: Likewise.
24244         * fold-const.c: Likewise.
24245         * function.c: Likewise.
24246         * fwprop.c: Likewise.
24247         * gcc-plugin.h: Likewise.
24248         * gcse.c: Likewise.
24249         * generic-match-head.c: Likewise.
24250         * ggc-page.c: Likewise.
24251         * gimple-builder.c: Likewise.
24252         * gimple-expr.c: Likewise.
24253         * gimple-fold.c: Likewise.
24254         * gimple-iterator.c: Likewise.
24255         * gimple-low.c: Likewise.
24256         * gimple-match-head.c: Likewise.
24257         * gimple-pretty-print.c: Likewise.
24258         * gimple-ssa-isolate-paths.c: Likewise.
24259         * gimple-ssa-strength-reduction.c: Likewise.
24260         * gimple-streamer-in.c: Likewise.
24261         * gimple-streamer-out.c: Likewise.
24262         * gimple-streamer.h: Likewise.
24263         * gimple-walk.c: Likewise.
24264         * gimple.c: Likewise.
24265         * gimplify-me.c: Likewise.
24266         * gimplify.c: Likewise.
24267         * godump.c: Likewise.
24268         * graph.c: Likewise.
24269         * graphite-blocking.c: Likewise.
24270         * graphite-dependences.c: Likewise.
24271         * graphite-interchange.c: Likewise.
24272         * graphite-isl-ast-to-gimple.c: Likewise.
24273         * graphite-optimize-isl.c: Likewise.
24274         * graphite-poly.c: Likewise.
24275         * graphite-scop-detection.c: Likewise.
24276         * graphite-sese-to-poly.c: Likewise.
24277         * graphite.c: Likewise.
24278         * haifa-sched.c: Likewise.
24279         * hw-doloop.c: Likewise.
24280         * ifcvt.c: Likewise.
24281         * init-regs.c: Likewise.
24282         * input.c: Likewise.
24283         * internal-fn.c: Likewise.
24284         * ipa-chkp.c: Likewise.
24285         * ipa-comdats.c: Likewise.
24286         * ipa-cp.c: Likewise.
24287         * ipa-devirt.c: Likewise.
24288         * ipa-icf-gimple.c: Likewise.
24289         * ipa-icf.c: Likewise.
24290         * ipa-inline-analysis.c: Likewise.
24291         * ipa-inline-transform.c: Likewise.
24292         * ipa-inline.c: Likewise.
24293         * ipa-polymorphic-call.c: Likewise.
24294         * ipa-profile.c: Likewise.
24295         * ipa-prop.c: Likewise.
24296         * ipa-pure-const.c: Likewise.
24297         * ipa-ref.c: Likewise.
24298         * ipa-reference.c: Likewise.
24299         * ipa-split.c: Likewise.
24300         * ipa-utils.c: Likewise.
24301         * ipa-visibility.c: Likewise.
24302         * ipa.c: Likewise.
24303         * ira-build.c: Likewise.
24304         * ira-color.c: Likewise.
24305         * ira-conflicts.c: Likewise.
24306         * ira-costs.c: Likewise.
24307         * ira-emit.c: Likewise.
24308         * ira-lives.c: Likewise.
24309         * ira.c: Likewise.
24310         * jump.c: Likewise.
24311         * langhooks.c: Likewise.
24312         * lcm.c: Likewise.
24313         * loop-doloop.c: Likewise.
24314         * loop-init.c: Likewise.
24315         * loop-invariant.c: Likewise.
24316         * loop-iv.c: Likewise.
24317         * loop-unroll.c: Likewise.
24318         * lower-subreg.c: Likewise.
24319         * lra-assigns.c: Likewise.
24320         * lra-coalesce.c: Likewise.
24321         * lra-constraints.c: Likewise.
24322         * lra-eliminations.c: Likewise.
24323         * lra-lives.c: Likewise.
24324         * lra-remat.c: Likewise.
24325         * lra-spills.c: Likewise.
24326         * lra.c: Likewise.
24327         * lto-cgraph.c: Likewise.
24328         * lto-compress.c: Likewise.
24329         * lto-opts.c: Likewise.
24330         * lto-section-in.c: Likewise.
24331         * lto-section-out.c: Likewise.
24332         * lto-streamer-in.c: Likewise.
24333         * lto-streamer-out.c: Likewise.
24334         * lto-streamer.c: Likewise.
24335         * mcf.c: Likewise.
24336         * mode-switching.c: Likewise.
24337         * modulo-sched.c: Likewise.
24338         * omega.c: Likewise.
24339         * omp-low.c: Likewise.
24340         * optabs.c: Likewise.
24341         * opts-global.c: Likewise.
24342         * opts.h: Likewise.
24343         * passes.c: Likewise.
24344         * plugin.c: Likewise.
24345         * postreload-gcse.c: Likewise.
24346         * postreload.c: Likewise.
24347         * predict.c: Likewise.
24348         * pretty-print.h: Likewise.
24349         * print-rtl.c: Likewise.
24350         * print-tree.c: Likewise.
24351         * profile.c: Likewise.
24352         * real.c: Likewise.
24353         * realmpfr.c: Likewise.
24354         * recog.c: Likewise.
24355         * ree.c: Likewise.
24356         * reg-stack.c: Likewise.
24357         * regcprop.c: Likewise.
24358         * reginfo.c: Likewise.
24359         * regrename.c: Likewise.
24360         * regstat.c: Likewise.
24361         * reload.c: Likewise.
24362         * reload1.c: Likewise.
24363         * reorg.c: Likewise.
24364         * resource.c: Likewise.
24365         * rtl-chkp.c: Likewise.
24366         * rtl-error.c: Likewise.
24367         * rtlanal.c: Likewise.
24368         * rtlhooks.c: Likewise.
24369         * sanopt.c: Likewise.
24370         * sched-deps.c: Likewise.
24371         * sched-ebb.c: Likewise.
24372         * sched-rgn.c: Likewise.
24373         * sched-vis.c: Likewise.
24374         * sdbout.c: Likewise.
24375         * sel-sched-dump.c: Likewise.
24376         * sel-sched-ir.c: Likewise.
24377         * sel-sched.c: Likewise.
24378         * sese.c: Likewise.
24379         * shrink-wrap.c: Likewise.
24380         * simplify-rtx.c: Likewise.
24381         * stack-ptr-mod.c: Likewise.
24382         * statistics.c: Likewise.
24383         * stmt.c: Likewise.
24384         * stor-layout.c: Likewise.
24385         * store-motion.c: Likewise.
24386         * streamer-hooks.c: Likewise.
24387         * stringpool.c: Likewise.
24388         * symtab.c: Likewise.
24389         * target-globals.c: Likewise.
24390         * targhooks.c: Likewise.
24391         * toplev.c: Likewise.
24392         * tracer.c: Likewise.
24393         * trans-mem.c: Likewise.
24394         * tree-affine.c: Likewise.
24395         * tree-browser.c: Likewise.
24396         * tree-call-cdce.c: Likewise.
24397         * tree-cfg.c: Likewise.
24398         * tree-cfgcleanup.c: Likewise.
24399         * tree-chkp-opt.c: Likewise.
24400         * tree-chkp.c: Likewise.
24401         * tree-chrec.c: Likewise.
24402         * tree-complex.c: Likewise.
24403         * tree-data-ref.c: Likewise.
24404         * tree-dfa.c: Likewise.
24405         * tree-diagnostic.c: Likewise.
24406         * tree-dump.c: Likewise.
24407         * tree-eh.c: Likewise.
24408         * tree-emutls.c: Likewise.
24409         * tree-if-conv.c: Likewise.
24410         * tree-inline.c: Likewise.
24411         * tree-into-ssa.c: Likewise.
24412         * tree-iterator.c: Likewise.
24413         * tree-loop-distribution.c: Likewise.
24414         * tree-nested.c: Likewise.
24415         * tree-nrv.c: Likewise.
24416         * tree-object-size.c: Likewise.
24417         * tree-outof-ssa.c: Likewise.
24418         * tree-parloops.c: Likewise.
24419         * tree-phinodes.c: Likewise.
24420         * tree-predcom.c: Likewise.
24421         * tree-pretty-print.c: Likewise.
24422         * tree-profile.c: Likewise.
24423         * tree-scalar-evolution.c: Likewise.
24424         * tree-sra.c: Likewise.
24425         * tree-ssa-address.c: Likewise.
24426         * tree-ssa-alias.c: Likewise.
24427         * tree-ssa-ccp.c: Likewise.
24428         * tree-ssa-coalesce.c: Likewise.
24429         * tree-ssa-copy.c: Likewise.
24430         * tree-ssa-copyrename.c: Likewise.
24431         * tree-ssa-dce.c: Likewise.
24432         * tree-ssa-dom.c: Likewise.
24433         * tree-ssa-dse.c: Likewise.
24434         * tree-ssa-forwprop.c: Likewise.
24435         * tree-ssa-ifcombine.c: Likewise.
24436         * tree-ssa-live.c: Likewise.
24437         * tree-ssa-loop-ch.c: Likewise.
24438         * tree-ssa-loop-im.c: Likewise.
24439         * tree-ssa-loop-ivcanon.c: Likewise.
24440         * tree-ssa-loop-ivopts.c: Likewise.
24441         * tree-ssa-loop-manip.c: Likewise.
24442         * tree-ssa-loop-niter.c: Likewise.
24443         * tree-ssa-loop-prefetch.c: Likewise.
24444         * tree-ssa-loop-unswitch.c: Likewise.
24445         * tree-ssa-loop.c: Likewise.
24446         * tree-ssa-math-opts.c: Likewise.
24447         * tree-ssa-operands.c: Likewise.
24448         * tree-ssa-phiopt.c: Likewise.
24449         * tree-ssa-phiprop.c: Likewise.
24450         * tree-ssa-pre.c: Likewise.
24451         * tree-ssa-propagate.c: Likewise.
24452         * tree-ssa-reassoc.c: Likewise.
24453         * tree-ssa-sccvn.c: Likewise.
24454         * tree-ssa-scopedtables.c: Likewise.
24455         * tree-ssa-sink.c: Likewise.
24456         * tree-ssa-strlen.c: Likewise.
24457         * tree-ssa-structalias.c: Likewise.
24458         * tree-ssa-tail-merge.c: Likewise.
24459         * tree-ssa-ter.c: Likewise.
24460         * tree-ssa-threadedge.c: Likewise.
24461         * tree-ssa-threadupdate.c: Likewise.
24462         * tree-ssa-uncprop.c: Likewise.
24463         * tree-ssa-uninit.c: Likewise.
24464         * tree-ssa.c: Likewise.
24465         * tree-ssanames.c: Likewise.
24466         * tree-stdarg.c: Likewise.
24467         * tree-streamer-in.c: Likewise.
24468         * tree-streamer-out.c: Likewise.
24469         * tree-streamer.c: Likewise.
24470         * tree-switch-conversion.c: Likewise.
24471         * tree-tailcall.c: Likewise.
24472         * tree-vect-data-refs.c: Likewise.
24473         * tree-vect-generic.c: Likewise.
24474         * tree-vect-loop-manip.c: Likewise.
24475         * tree-vect-loop.c: Likewise.
24476         * tree-vect-patterns.c: Likewise.
24477         * tree-vect-slp.c: Likewise.
24478         * tree-vect-stmts.c: Likewise.
24479         * tree-vectorizer.c: Likewise.
24480         * tree-vrp.c: Likewise.
24481         * tree.c: Likewise.
24482         * tsan.c: Likewise.
24483         * ubsan.c: Likewise.
24484         * valtrack.c: Likewise.
24485         * value-prof.c: Likewise.
24486         * var-tracking.c: Likewise.
24487         * varasm.c: Likewise.
24488         * varpool.c: Likewise.
24489         * vmsdbgout.c: Likewise.
24490         * vtable-verify.c: Likewise.
24491         * web.c: Likewise.
24492         * wide-int.cc: Likewise.
24493         * xcoffout.c: Likewise.
24494         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
24495         * common/common-targhooks.c: Likewise.
24496         * config/aarch64/aarch64-builtins.c: Likewise.
24497         * config/aarch64/aarch64.c: Likewise.
24498         * config/alpha/alpha.c: Likewise.
24499         * config/arc/arc.c: Likewise.
24500         * config/arm/aarch-common.c: Likewise.
24501         * config/arm/arm-builtins.c: Likewise.
24502         * config/arm/arm-c.c: Likewise.
24503         * config/arm/arm.c: Likewise.
24504         * config/avr/avr-c.c: Likewise.
24505         * config/avr/avr-log.c: Likewise.
24506         * config/avr/avr.c: Likewise.
24507         * config/bfin/bfin.c: Likewise.
24508         * config/c6x/c6x.c: Likewise.
24509         * config/cr16/cr16.c: Likewise.
24510         * config/cris/cris.c: Likewise.
24511         * config/darwin-c.c: Likewise.
24512         * config/darwin.c: Likewise.
24513         * config/default-c.c: Likewise.
24514         * config/epiphany/epiphany.c: Likewise.
24515         * config/epiphany/mode-switch-use.c: Likewise.
24516         * config/epiphany/resolve-sw-modes.c: Likewise.
24517         * config/fr30/fr30.c: Likewise.
24518         * config/frv/frv.c: Likewise.
24519         * config/ft32/ft32.c: Likewise.
24520         * config/glibc-c.c: Likewise.
24521         * config/h8300/h8300.c: Likewise.
24522         * config/i386/i386-c.c: Likewise.
24523         * config/i386/i386.c: Likewise.
24524         * config/i386/msformat-c.c: Likewise.
24525         * config/i386/winnt-cxx.c: Likewise.
24526         * config/i386/winnt-stubs.c: Likewise.
24527         * config/i386/winnt.c: Likewise.
24528         * config/ia64/ia64-c.c: Likewise.
24529         * config/ia64/ia64.c: Likewise.
24530         * config/iq2000/iq2000.c: Likewise.
24531         * config/lm32/lm32.c: Likewise.
24532         * config/m32c/m32c-pragma.c: Likewise.
24533         * config/m32c/m32c.c: Likewise.
24534         * config/m32r/m32r.c: Likewise.
24535         * config/m68k/m68k.c: Likewise.
24536         * config/mcore/mcore.c: Likewise.
24537         * config/mep/mep-pragma.c: Likewise.
24538         * config/mep/mep.c: Likewise.
24539         * config/microblaze/microblaze-c.c: Likewise.
24540         * config/microblaze/microblaze.c: Likewise.
24541         * config/mips/mips.c: Likewise.
24542         * config/mmix/mmix.c: Likewise.
24543         * config/mn10300/mn10300.c: Likewise.
24544         * config/moxie/moxie.c: Likewise.
24545         * config/msp430/msp430-c.c: Likewise.
24546         * config/msp430/msp430.c: Likewise.
24547         * config/nds32/nds32-cost.c: Likewise.
24548         * config/nds32/nds32-fp-as-gp.c: Likewise.
24549         * config/nds32/nds32-intrinsic.c: Likewise.
24550         * config/nds32/nds32-isr.c: Likewise.
24551         * config/nds32/nds32-md-auxiliary.c: Likewise.
24552         * config/nds32/nds32-memory-manipulation.c: Likewise.
24553         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24554         * config/nds32/nds32-predicates.c: Likewise.
24555         * config/nds32/nds32.c: Likewise.
24556         * config/nios2/nios2.c: Likewise.
24557         * config/nvptx/nvptx.c: Likewise.
24558         * config/pa/pa.c: Likewise.
24559         * config/pdp11/pdp11.c: Likewise.
24560         * config/rl78/rl78-c.c: Likewise.
24561         * config/rl78/rl78.c: Likewise.
24562         * config/rs6000/rs6000-c.c: Likewise.
24563         * config/rs6000/rs6000.c: Likewise.
24564         * config/rx/rx.c: Likewise.
24565         * config/s390/s390-c.c: Likewise.
24566         * config/s390/s390.c: Likewise.
24567         * config/sh/sh-c.c: Likewise.
24568         * config/sh/sh-mem.cc: Likewise.
24569         * config/sh/sh.c: Likewise.
24570         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24571         * config/sh/sh_treg_combine.cc: Likewise.
24572         * config/sol2-c.c: Likewise.
24573         * config/sol2-cxx.c: Likewise.
24574         * config/sol2-stubs.c: Likewise.
24575         * config/sol2.c: Likewise.
24576         * config/sparc/sparc-c.c: Likewise.
24577         * config/sparc/sparc.c: Likewise.
24578         * config/spu/spu-c.c: Likewise.
24579         * config/spu/spu.c: Likewise.
24580         * config/stormy16/stormy16.c: Likewise.
24581         * config/tilegx/mul-tables.c: Likewise.
24582         * config/tilegx/tilegx-c.c: Likewise.
24583         * config/tilegx/tilegx.c: Likewise.
24584         * config/tilepro/mul-tables.c: Likewise.
24585         * config/tilepro/tilepro-c.c: Likewise.
24586         * config/tilepro/tilepro.c: Likewise.
24587         * config/v850/v850-c.c: Likewise.
24588         * config/v850/v850.c: Likewise.
24589         * config/vax/vax.c: Likewise.
24590         * config/visium/visium.c: Likewise.
24591         * config/vms/vms-c.c: Likewise.
24592         * config/vms/vms.c: Likewise.
24593         * config/vxworks.c: Likewise.
24594         * config/winnt-c.c: Likewise.
24595         * config/xtensa/xtensa.c: Likewise.
24596
24597 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
24598
24599         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
24600         function.
24601         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
24602
24603 2015-06-17  Richard Biener  <rguenther@suse.de>
24604
24605         PR tree-optimization/66251
24606         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
24607         stmts for SLP strided stores.
24608
24609         Revert
24610         2015-05-22  Richard Biener  <rguenther@suse.de>
24611
24612         PR tree-optimization/66251
24613         * tree-vect-stmts.c (vectorizable_conversion): Properly
24614         set STMT_VINFO_VEC_STMT even for the SLP case.
24615
24616         2015-05-26  Michael Matz  <matz@suse.de>
24617
24618         PR middle-end/66251
24619         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
24620         STMT_VINFO_VEC_STMT, also with SLP.
24621
24622 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
24623
24624         PR target/56766
24625         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
24626         (*avx_addsubv4df3_1s): Ditto.
24627         (*sse3_addsubv2df3_1): Ditto.
24628         (*sse3_addsubv2df3_1s): Ditto.
24629         (*avx_addsubv8sf3_1): Ditto.
24630         (*avx_addsubv8sf3_1s): Ditto.
24631         (*sse3_addsubv4sf3_1): Ditto.
24632         (*sse3_addsubv4sf3_1s): Ditto.
24633
24634 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
24635
24636         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
24637         (SYSROOT_SUFFIX_SPEC): Update.
24638         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
24639         (STARTFILE_PREFIX_SPEC): Update.
24640         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
24641         (MULTILIB_REQUIRED): New.
24642         (MULTILIB_OSDIRNAMES): New.
24643         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
24644         (MULTILIB_REQUIRED): New.
24645         (MULTILIB_OSDIRNAMES): New.
24646
24647 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
24648
24649         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
24650         * config/aarch64/aarch64-options-extensions.def: Update "fP",
24651         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
24652         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
24653         (AARCH64_FL_PAN): New.
24654         (AARCH64_FL_LOR): New.
24655         (AARCH64_FL_RDMA): New.
24656         (AARCH64_FL_FOR_ARCH8_1): New.
24657         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
24658         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
24659
24660 2015-06-16  Martin Liska  <mliska@suse.cz>
24661
24662         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
24663         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
24664         guard.
24665
24666 2015-06-16  Richard Biener  <rguenther@suse.de>
24667
24668         * tree-vect-stmts.c (vectorizable_store): Adjust.
24669         (vectorizable_load): Likewise.
24670         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24671         Simplify.
24672         (vect_create_data_ref_ptr): Likewise.
24673         (bump_vector_ptr): Adjust.
24674
24675 2015-06-16  Richard Biener  <rguenther@suse.de>
24676
24677         * tree-vect-stmts.c (vectorizable_load): Properly start loads
24678         with the first element if this is grouped loads.
24679
24680 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
24681
24682         * config/arm/arm-protos.h (struct tune_params): Rename
24683         log_op_non_sc to log_op_non_short_circuit, and rename enum
24684         values to expand SC to SHORT_CIRCUIT.
24685         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
24686         to LOG_OP_NON_SHORT_CIRCUIT.
24687         (arm_fastmul_tune):Likewise
24688         (arm_strongarm_tune): Likewise.
24689         (arm_xscale_tune): Likewise.
24690         (arm_9e_tune): Likewise.
24691         (arm_marvell_pj4_tune): Likewise.
24692         (arm_v6t2_tune): Likewise.
24693         (arm_cortex_tune): Likewise.
24694         (arm_cortex_a8_tune): Likewise.
24695         (arm_cortex_a7_tune): Likewise.
24696         (arm_cortex_a15_tune): Likewise.
24697         (arm_cortex_a53_tune): Likewise.
24698         (arm_cortex_a57_tune): Likewise.
24699         (arm_xgene1_tune): Likewise.
24700         (arm_cortex_a5_tune): Likewise.
24701         (arm_cortex_a9_tune): Likewise.
24702         (arm_cortex_a12_tune): Likewise.
24703         (arm_v7m_tune): Likewise.
24704         (arm_cortex_m7_tune): Likewise.
24705         (arm_v6m_tune): Likewise.
24706         (arm_fa726te_tune): Likewise.
24707
24708 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
24709
24710         * altivec.md: Delete UNSPEC_VMLADDUHM.
24711         (mulv4si3_p8): New pattern.
24712         (mulv4si3): Use it for POWER8.
24713         (mulv8hi3): Use vmladduhm with zero addend.
24714         (altivec_vmladduhm): Descriptive RTL.
24715
24716 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
24717
24718         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
24719         to use neon_move instead of mov_imm.
24720         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
24721         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
24722
24723         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
24724         aarch64_float_const_zero_rtx_p check before TFmode check.
24725         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
24726         an fp zero.
24727         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
24728         code and attributes to match.  Change condition from register_operand
24729         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
24730         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
24731         to store2.
24732
24733 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
24734
24735         PR debug/66535
24736         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
24737         there is no parent.
24738
24739 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
24740
24741         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
24742         HOST_WIDE_INT parameter.
24743
24744 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
24745
24746         PR ipa/66181
24747         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
24748         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
24749         TYPE_NO_FORCE_BLK.
24750         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
24751
24752 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
24753
24754         * rtl.h (classify_insn): Declare.
24755         * emit-rtl.c (classify_insn): Move to...
24756         * rtl.c: ...here and add generator support.
24757         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
24758         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
24759         * genemit.c (gen_emit_seq): New function.
24760         (gen_expand, gen_split): Use it.
24761
24762 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
24763
24764         * tree.c (make_vector_stat): Fix comment to state that the
24765         function returns a VECTOR_CST.
24766
24767 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
24768
24769         * gensupport.h (add_implicit_parallel): Declare.
24770         * genrecog.c (add_implicit_parallel): Move to...
24771         * gensupport.c (add_implicit_parallel): ...here.
24772         (process_one_cond_exec): Use it.
24773         * genemit.c (gen_insn): Likewise.
24774
24775 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
24776
24777         PR bootstrap/66448
24778         * passes.c (rest_of_decl_compilation): Do not register globals for
24779         early debug if they are declared in built-ins.
24780
24781 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
24782
24783         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
24784
24785 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24786
24787         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
24788         manually swapping.
24789         (noce_try_cmove_arith): Likewise.
24790         (noce_get_alt_condition): Likewise.
24791
24792 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
24793
24794         * common/config/i386/i386-common.c
24795         (OPTION_MASK_ISA_MWAITX_SET): New.
24796         (ix86_handle_option): Handle mwaitx.
24797         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
24798         (x86_64-*-*): Likewise.
24799         * config/i386/mwaitxintrin.h: New header.
24800         * config/i386/cpuid.h (bit_MWAITX):  Define.
24801         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
24802         MWAITX support.
24803         * config/i386/i386.opt (mwaitx): New.
24804         * config/i386/i386-builtin-types.def
24805         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
24806         * config/i386/i386-c.c: Define __MWAITX__ if needed.
24807         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
24808         (PTA_MWAITX): New.
24809         (ix86_option_override_internal): Handle new option.
24810         (processor_alias_table): Added PTA_MWAITX.
24811         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
24812         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
24813         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
24814         IX86_BUILTIN_MONITORX  built-ins.
24815         * config/i386/i386.h (TARGET_MWAITX): New.
24816         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
24817         UNSPEC_MONITORX.
24818         (mwaitx):  New pattern.
24819         (monitorx_<mode>): New pattern.
24820         * config/i386/x86intrin.h: Include mwaitxintrin.h.
24821         * doc/extend.texi: Document monitorx and mwaitx builtins.
24822         * doc/invoke.texi: Document -mmwaitx option.
24823
24824 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
24825
24826         * emit-rtl.c (need_atomic_barrier_p): Mask model with
24827         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
24828
24829 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24830
24831         * dbxout.c (xcoff_debug_hooks): Provide a function for
24832         register_main_translation_unit hook.
24833
24834 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24835
24836         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
24837         variants cases from switch.
24838         (rs6000_post_atomic_barrier): Same.
24839         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
24840         (rs6000_expand_atomic_exchange): Same.
24841         (rs6000_expand_atomic_op): Same.
24842         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
24843         SYNC variants cases from switch.
24844         (atomic_load): Same.
24845         (atomic_store): Same.
24846
24847 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
24848
24849         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
24850         CONST_INT for goto.
24851
24852 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
24853
24854         PR bootstrap/66448
24855         * dwarf2out.c (check_die): Check for common duplicate attributes.
24856         (add_location_or_const_value_attribute): Do not add duplicate
24857         attributes.
24858         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
24859         time around.
24860         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
24861         (gen_type_die_with_usage): Call check_die.
24862         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
24863
24864 2015-06-11  Jason Merrill  <jason@redhat.com>
24865
24866         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
24867         dies.
24868
24869 2015-06-11  Marek Polacek  <polacek@redhat.com>
24870
24871         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
24872
24873 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
24874
24875         PR bootstrap/66252
24876         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
24877         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
24878         (*addx_extend_sp32): Fix pasto.
24879         (*subx_extend): Rename into...
24880         (*subx_extend_sp32): ...this.
24881         (*adddi3_extend_sp32): Add earlyclobber.
24882         (*subdi3_insn_sp32): Likewise.
24883         (*subdi3_extend_sp32): Likewise.
24884         (*and_not_di_sp32): Likewise.
24885         (*or_not_di_sp32): Likewise.
24886         (*xor_not_di_sp32): Likewise.
24887         (*negdi2_sp32): Likewise.
24888         (*one_cmpldi2_sp32): Likewise.
24889
24890 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
24891
24892         * debug.h (struct gcc_debug_hooks): Add a
24893         register_main_translation_unit hook.
24894         * debug.c (do_nothing_debug_hooks): Provide a function for this
24895         new hook.
24896         * dbxout.c (dbx_debug_hooks): Likewise.
24897         * sdbout.c (sdb_debug_hooks): Likewise.
24898         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
24899         * dwarf2out.c (main_translation_unit): New global variable.
24900         (dwarf2out_register_main_translation_unit): New function
24901         implementing the new hook.
24902         (dwarf2_debug_hooks): Assign
24903         dwarf2out_register_main_translation_unit to this new hook.
24904         (dwarf2out_init): Associate any main translation unit to
24905         comp_unit_die ().
24906
24907 2015-06-11  Marek Polacek  <polacek@redhat.com>
24908
24909         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
24910
24911 2015-06-11  Marek Polacek  <polacek@redhat.com>
24912
24913         * match.pd: Use single_use throughout.
24914
24915 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24916
24917         * config/arm/arm.c (arm_option_params_internal): When optimising
24918         for speed set max_insns_skipped when arm_restrict_it.
24919
24920 2015-06-11  Christian Bruel  <christian.bruel@st.com>
24921
24922         PR target/52144
24923         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
24924          macros in ...
24925         (arm_cpu_builtins): New function.
24926         (arm_pragma_target_parse): Call arm_cpu_builtins.
24927         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
24928         (arm_register_target_pragmas): Likewise.
24929         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
24930          Call arm_register_target_pragmas.
24931         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
24932         (arm_pragma_target_parse): Likewise.
24933
24934 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24935
24936         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
24937         of the second operand.
24938
24939 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
24940
24941         PR target/66473
24942         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
24943         to prepare mask operand for AVX512 modes.
24944
24945 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
24946
24947         PR target/66474
24948         * doc/md.texi (Machine Constraints): Document that on the PowerPC
24949         if you use a constraint that targets a VSX register, you must use
24950         %x<n> in the template.
24951
24952 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
24953
24954         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
24955         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
24956         (define_insn "trap"): New definition.
24957
24958 2015-06-10  Richard Biener  <rguenther@suse.de>
24959
24960         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
24961         out from ...
24962         (vect_supported_load_permutation_p): ... here.  Handle
24963         supportable permutations in reductions.
24964         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
24965         for vectorizing strided group loads.
24966
24967 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
24968
24969         PR target/66470
24970         * config/i386/i386.c (ix86_split_long_move): For collisions
24971         involving direct tls segment refs, move the UNSPEC_TP possibly
24972         wrapped in ZERO_EXTEND out of the address for lea, to each of
24973         the memory loads.
24974
24975 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24976
24977         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
24978         dmb sy. Adjust tabs.
24979
24980 2015-06-10  Tom de Vries  <tom@codesourcery.com>
24981
24982         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
24983
24984 2015-06-10  Martin Liska  <mliska@suse.cz>
24985
24986         PR bootstrap/66471
24987         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
24988         all enum values in mem_alloc_origin.
24989         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
24990         name.
24991         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
24992         * bitmap.c (bitmap_register): Likewise.
24993         (dump_bitmap_statistics): Likewise.
24994         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
24995         (ggc_record_overhead): Likewise.
24996         * hash-map.h: Likewise.
24997         * hash-set.h: Likewise.
24998         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
24999         * hash-table.h: Likewise.
25000         * vec.c (vec_prefix::register_overhead): Likewise.
25001         (vec_prefix::release_overhead): Likewise.
25002         (dump_vec_loc_statistics): Likewise.
25003
25004 2015-06-09  Christian Bruel  <christian.bruel@st.com>
25005
25006         PR target/52144
25007         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
25008         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
25009         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
25010         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
25011         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
25012         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
25013         (arm_valid_target_attribute_p): Likewise.
25014         (arm_set_current_function, arm_can_inline_p): Likewise.
25015         (arm_valid_target_attribute_rec): Likewise.
25016         (arm_previous_fndecl): New variable.
25017         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
25018         (TARGET_CAN_INLINE_P): Define.
25019         (arm_asm_trampoline_template): Emit mode.
25020         (arm_file_start): Don't set unified syntax.
25021         (arm_declare_function_name): Set unified syntax and mode.
25022         (arm_option_override): Init target_option_default_node.
25023         and target_option_current_node.
25024         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
25025         (*call_symbol): Likewise.
25026         * doc/extend.texi: Document ARM/Thumb target attribute.
25027         * doc/invoke.texi: Likewise.
25028
25029 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25030
25031         Revert:
25032         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25033         PR rtl-optimization/64164
25034         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25035         * tree-ssa-copyrename.c: Removed.
25036         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25037         -ftree-coalesce-vars.
25038         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25039         * common.opt (ftree-copyrename): Ignore.
25040         (ftree-coalesce-inlined-vars): Likewise.
25041         * doc/invoke.texi: Remove the ignored options above.
25042         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25043         * tree-ssa-coalesce.h: ... here.
25044         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25045         headers required by it.
25046         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25047         across variables when flag_tree_coalesce_vars.  Check register
25048         use and promoted modes to allow coalescing.  Moved to
25049         tree-ssa-coalesce.c.
25050         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25051         with its member functions to tree-ssa-coalesce.c.
25052         (var_map_base_init): Likewise.  Renamed to
25053         compute_samebase_partition_bases.
25054         (partition_view_normal): Drop want_bases parameter.
25055         (partition_view_bitmap): Likewise.
25056         * tree-ssa-live.h: Adjust declarations.
25057         * tree-ssa-coalesce.c: Include explow.h.
25058         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25059         default defs at the entry point.
25060         (dump_part_var_map): New.
25061         (compute_optimized_partition_bases): New, called by...
25062         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25063         of compute_samebase_partition_bases.  Adjust.
25064         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25065         * cfgexpand.c (leader_merge): New.
25066         (get_rtl_for_parm_ssa_default_def): New.
25067         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25068         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25069         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25070         redundant MEM attr setting.
25071         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25072         from...
25073         (expand_one_stack_var): ... this.  New wrapper to check and
25074         skip already expanded SSA partitions.
25075         (record_alignment_for_reg_var): New, factored out of...
25076         (expand_one_var): ... this.
25077         (expand_one_ssa_partition): New.
25078         (adjust_one_expanded_partition_var): New.
25079         (expand_one_register_var): Check and skip already expanded SSA
25080         partitions.
25081         (expand_used_vars): Don't create DECLs for anonymous SSA
25082         names.  Expand all SSA partitions, then adjust all SSA names.
25083         (pass::execute): Replace the loops that set
25084         SA.partition_to_pseudo from partition leaders and cleared
25085         DECL_RTL for multi-location variables, and that which used to
25086         rename vars and set attrs, with one that clears DECL_RTL and
25087         checks that PARMs and RESULTs default_defs match DECL_RTL.
25088         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25089         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25090         * explow.c (promote_ssa_mode): New.
25091         * explow.h (promote_ssa_mode): Declare.
25092         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25093         * function.c: Include cfgexpand.h.
25094         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25095         (use_register_for_parm_decl): Wrapper for the above to
25096         special-case the result_ptr.
25097         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25098         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25099         multiple locations.
25100         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25101         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25102         (assign_parm_setup_block): Prefer SSA-assigned location.
25103         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25104         if stack_parm is NULL.
25105         (assign_parm_setup_stack): Prefer SSA-assigned location.
25106         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25107         rtl before testing for pointer bounds.  Special-case result_ptr.
25108         (expand_function_start): Maybe reset DECL_RTL of result.
25109         Prefer SSA-assigned location for result and static chain.
25110         Factor out DECL_RESULT and SET_DECL_RTL.
25111         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25112         anonymous SSA names.  Use promote_ssa_mode.
25113         (get_temp_reg): Likewise.
25114         (remove_ssa_form): Adjust.
25115         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25116         and get its reg_usage for reg invalidation.
25117         (compute_bb_dataflow): Pass it insn.
25118         (emit_notes_in_bb): Likewise.
25119         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25120         fail assert on conversion between unsigned types.
25121
25122 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25123
25124         PR tree-optimization/65460
25125         * omp-low.c (expand_omp_target): Set parallelized_function on
25126         cgraph_node for child_fn.
25127
25128 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25129
25130         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
25131         parallelized_function before add_new_function.
25132
25133 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
25134
25135         * gcc-plugin.h: Move decls to plugin.h and include it.
25136         * plugin.h: Relocate decls from gcc-plugin.h
25137         * ggc-page.c: Include required header files.
25138         * passes.c: Likewise.
25139         * cgraphunit.c: Likewise.
25140
25141 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25142
25143         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
25144
25145 2015-06-09  Jason Merrill  <jason@redhat.com>
25146
25147         PR bootstrap/66448
25148         * toplev.c (check_global_declaration): Don't warn about a clone.
25149
25150 2015-06-09  Marek Polacek  <polacek@redhat.com>
25151
25152         PR tree-optimization/66299
25153         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
25154         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
25155         patterns.
25156
25157 2015-06-09  Richard Biener  <rguenther@suse.de>
25158
25159         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
25160         (vect_analyze_slp_instance): Instead do not falsely drop
25161         load permutations.
25162
25163 2015-06-09  Richard Biener  <rguenther@suse.de>
25164
25165         PR middle-end/66423
25166         * match.pd: Handle A % (unsigned)(1 << B).
25167
25168 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
25169
25170         * varasm.c (output_object_block_htab): Remove.
25171         (output_object_block_compare): New.
25172         (output_object_blocks): Sort named object_blocks before outputting
25173         them.
25174
25175 2015-06-09  Richard Biener  <rguenther@suse.de>
25176
25177         PR tree-optimization/66419
25178         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
25179         consider GROUP_GAP when detecting a perfect subchain.
25180
25181 2015-06-09  Nick Clifton  <nickc@redhat.com>
25182
25183         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
25184         place read only data in the .frodata section.
25185
25186 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
25187
25188         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
25189         (atomic_store<mode>): Likewise.
25190
25191 2015-06-09  Richard Biener  <rguenther@suse.de>
25192
25193         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
25194
25195 2015-06-09  Richard Biener  <rguenther@suse.de>
25196
25197         PR middle-end/66413
25198         * tree-inline.c (insert_init_debug_bind): Unshare value.
25199
25200 2015-06-09  Richard Biener  <rguenther@suse.de>
25201
25202         PR tree-optimization/66396
25203         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
25204         Rename virtual operands.
25205
25206 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25207
25208         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
25209         always return false.
25210
25211 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25212
25213         PR rtl-optimization/64164
25214         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25215         * tree-ssa-copyrename.c: Removed.
25216         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25217         -ftree-coalesce-vars.
25218         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25219         * common.opt (ftree-copyrename): Ignore.
25220         (ftree-coalesce-inlined-vars): Likewise.
25221         * doc/invoke.texi: Remove the ignored options above.
25222         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25223         * tree-ssa-coalesce.h: ... here.
25224         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25225         headers required by it.
25226         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25227         across variables when flag_tree_coalesce_vars.  Check register
25228         use and promoted modes to allow coalescing.  Moved to
25229         tree-ssa-coalesce.c.
25230         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25231         with its member functions to tree-ssa-coalesce.c.
25232         (var_map_base_init): Likewise.  Renamed to
25233         compute_samebase_partition_bases.
25234         (partition_view_normal): Drop want_bases parameter.
25235         (partition_view_bitmap): Likewise.
25236         * tree-ssa-live.h: Adjust declarations.
25237         * tree-ssa-coalesce.c: Include explow.h.
25238         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25239         default defs at the entry point.
25240         (dump_part_var_map): New.
25241         (compute_optimized_partition_bases): New, called by...
25242         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25243         of compute_samebase_partition_bases.  Adjust.
25244         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25245         * cfgexpand.c (leader_merge): New.
25246         (get_rtl_for_parm_ssa_default_def): New.
25247         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25248         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25249         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25250         redundant MEM attr setting.
25251         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25252         from...
25253         (expand_one_stack_var): ... this.  New wrapper to check and
25254         skip already expanded SSA partitions.
25255         (record_alignment_for_reg_var): New, factored out of...
25256         (expand_one_var): ... this.
25257         (expand_one_ssa_partition): New.
25258         (adjust_one_expanded_partition_var): New.
25259         (expand_one_register_var): Check and skip already expanded SSA
25260         partitions.
25261         (expand_used_vars): Don't create DECLs for anonymous SSA
25262         names.  Expand all SSA partitions, then adjust all SSA names.
25263         (pass::execute): Replace the loops that set
25264         SA.partition_to_pseudo from partition leaders and cleared
25265         DECL_RTL for multi-location variables, and that which used to
25266         rename vars and set attrs, with one that clears DECL_RTL and
25267         checks that PARMs and RESULTs default_defs match DECL_RTL.
25268         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25269         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25270         * explow.c (promote_ssa_mode): New.
25271         * explow.h (promote_ssa_mode): Declare.
25272         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25273         * function.c: Include cfgexpand.h.
25274         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25275         (use_register_for_parm_decl): Wrapper for the above to
25276         special-case the result_ptr.
25277         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25278         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25279         multiple locations.
25280         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25281         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25282         (assign_parm_setup_block): Prefer SSA-assigned location.
25283         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25284         if stack_parm is NULL.
25285         (assign_parm_setup_stack): Prefer SSA-assigned location.
25286         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25287         rtl before testing for pointer bounds.  Special-case result_ptr.
25288         (expand_function_start): Maybe reset DECL_RTL of result.
25289         Prefer SSA-assigned location for result and static chain.
25290         Factor out DECL_RESULT and SET_DECL_RTL.
25291         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25292         anonymous SSA names.  Use promote_ssa_mode.
25293         (get_temp_reg): Likewise.
25294         (remove_ssa_form): Adjust.
25295         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25296         and get its reg_usage for reg invalidation.
25297         (compute_bb_dataflow): Pass it insn.
25298         (emit_notes_in_bb): Likewise.
25299         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25300         fail assert on conversion between unsigned types.
25301
25302 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25303
25304         PR debug/58315
25305         * tree-inline.c (reset_debug_binding): New.
25306         (reset_debug_bindings): Likewise.
25307         (expand_call_inline): Call it.
25308
25309 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25310
25311         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
25312         TYPE_STRING_FLAG.
25313
25314 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25315
25316         * lto-streamer-out.c (lto_output_location): Stream
25317         reserved locations correctly.
25318         * lto-streamer-in.c (lto_output_location): Likewise.
25319
25320 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
25321
25322         * coretypes.h: Include hash-table.h and hash-set.h for host files.
25323         * ggc.h: Don't include statistics.h>
25324         * hash-map.h: Remove all includes.
25325         * hash-set.h: Likewise.
25326         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
25327         the include list. Remove <new>.
25328         * inchash.h: Remove all includes.
25329         * mem-stats.h: Likewise.
25330         * vec.h: No special processing for generators or ggc.
25331         * alias.c : Adjust include files.
25332         * alloc-pool.c : Likewise.
25333         * alloc-pool.h : Likewise.
25334         * asan.c : Likewise.
25335         * attribs.c : Likewise.
25336         * auto-inc-dec.c : Likewise.
25337         * auto-profile.c : Likewise.
25338         * bb-reorder.c : Likewise.
25339         * bitmap.c : Likewise.
25340         * bitmap.h : Likewise.
25341         * bt-load.c : Likewise.
25342         * builtins.c : Likewise.
25343         * caller-save.c : Likewise.
25344         * calls.c : Likewise.
25345         * ccmp.c : Likewise.
25346         * cfg.c : Likewise.
25347         * cfganal.c : Likewise.
25348         * cfgbuild.c : Likewise.
25349         * cfgcleanup.c : Likewise.
25350         * cfgexpand.c : Likewise.
25351         * cfghooks.c : Likewise.
25352         * cfgloop.c : Likewise.
25353         * cfgloop.h : Likewise.
25354         * cfgloopanal.c : Likewise.
25355         * cfgloopmanip.c : Likewise.
25356         * cfgrtl.c : Likewise.
25357         * cgraph.c : Likewise.
25358         * cgraphbuild.c : Likewise.
25359         * cgraphclones.c : Likewise.
25360         * cgraphunit.c : Likewise.
25361         * cilk-common.c : Likewise.
25362         * combine-stack-adj.c : Likewise.
25363         * combine.c : Likewise.
25364         * compare-elim.c : Likewise.
25365         * context.c : Likewise.
25366         * convert.c : Likewise.
25367         * coverage.c : Likewise.
25368         * cppbuiltin.c : Likewise.
25369         * cprop.c : Likewise.
25370         * cse.c : Likewise.
25371         * cselib.c : Likewise.
25372         * data-streamer-in.c : Likewise.
25373         * data-streamer-out.c : Likewise.
25374         * data-streamer.c : Likewise.
25375         * data-streamer.h : Likewise.
25376         * dbxout.c : Likewise.
25377         * dce.c : Likewise.
25378         * ddg.c : Likewise.
25379         * debug.c : Likewise.
25380         * df-core.c : Likewise.
25381         * df-problems.c : Likewise.
25382         * df-scan.c : Likewise.
25383         * df.h : Likewise.
25384         * dfp.c : Likewise.
25385         * dojump.c : Likewise.
25386         * dominance.c : Likewise.
25387         * domwalk.c : Likewise.
25388         * double-int.c : Likewise.
25389         * dse.c : Likewise.
25390         * dumpfile.c : Likewise.
25391         * dwarf2asm.c : Likewise.
25392         * dwarf2cfi.c : Likewise.
25393         * dwarf2out.c : Likewise.
25394         * emit-rtl.c : Likewise.
25395         * et-forest.c : Likewise.
25396         * except.c : Likewise.
25397         * except.h : Likewise.
25398         * explow.c : Likewise.
25399         * expmed.c : Likewise.
25400         * expr.c : Likewise.
25401         * final.c : Likewise.
25402         * fixed-value.c : Likewise.
25403         * fold-const.c : Likewise.
25404         * function.c : Likewise.
25405         * fwprop.c : Likewise.
25406         * gcc-plugin.h : Likewise.
25407         * gcc.c : Likewise.
25408         * gcse-common.c : Likewise.
25409         * gcse.c : Likewise.
25410         * genattrtab.c : Likewise.
25411         * genautomata.c : Likewise.
25412         * genconditions.c : Likewise.
25413         * genemit.c : Likewise.
25414         * generic-match-head.c : Likewise.
25415         * genextract.c : Likewise.
25416         * gengtype-state.c : Likewise.
25417         * gengtype.c : Likewise.
25418         * genhooks.c : Likewise.
25419         * genmatch.c : Likewise.
25420         * genmodes.c : Likewise.
25421         * genrecog.c : Likewise.
25422         * gensupport.c : Likewise.
25423         * ggc-common.c : Likewise.
25424         * ggc-internal.h : Likewise.
25425         * ggc-none.c : Likewise.
25426         * ggc-page.c : Likewise.
25427         * gimple-builder.c : Likewise.
25428         * gimple-expr.c : Likewise.
25429         * gimple-fold.c : Likewise.
25430         * gimple-iterator.c : Likewise.
25431         * gimple-low.c : Likewise.
25432         * gimple-match-head.c : Likewise.
25433         * gimple-pretty-print.c : Likewise.
25434         * gimple-ssa-isolate-paths.c : Likewise.
25435         * gimple-ssa-strength-reduction.c : Likewise.
25436         * gimple-ssa.h : Likewise.
25437         * gimple-streamer-in.c : Likewise.
25438         * gimple-streamer-out.c : Likewise.
25439         * gimple-streamer.h : Likewise.
25440         * gimple-walk.c : Likewise.
25441         * gimple.c : Likewise.
25442         * gimplify-me.c : Likewise.
25443         * gimplify.c : Likewise.
25444         * godump.c : Likewise.
25445         * graph.c : Likewise.
25446         * graphds.c : Likewise.
25447         * graphite-blocking.c : Likewise.
25448         * graphite-dependences.c : Likewise.
25449         * graphite-interchange.c : Likewise.
25450         * graphite-isl-ast-to-gimple.c : Likewise.
25451         * graphite-optimize-isl.c : Likewise.
25452         * graphite-poly.c : Likewise.
25453         * graphite-scop-detection.c : Likewise.
25454         * graphite-sese-to-poly.c : Likewise.
25455         * graphite.c : Likewise.
25456         * haifa-sched.c : Likewise.
25457         * hard-reg-set.h : Likewise.
25458         * hw-doloop.c : Likewise.
25459         * ifcvt.c : Likewise.
25460         * inchash.c : Likewise.
25461         * incpath.c : Likewise.
25462         * init-regs.c : Likewise.
25463         * input.c : Likewise.
25464         * internal-fn.c : Likewise.
25465         * ipa-chkp.c : Likewise.
25466         * ipa-comdats.c : Likewise.
25467         * ipa-cp.c : Likewise.
25468         * ipa-devirt.c : Likewise.
25469         * ipa-icf-gimple.c : Likewise.
25470         * ipa-icf.c : Likewise.
25471         * ipa-inline-analysis.c : Likewise.
25472         * ipa-inline-transform.c : Likewise.
25473         * ipa-inline.c : Likewise.
25474         * ipa-polymorphic-call.c : Likewise.
25475         * ipa-profile.c : Likewise.
25476         * ipa-prop.c : Likewise.
25477         * ipa-pure-const.c : Likewise.
25478         * ipa-ref.c : Likewise.
25479         * ipa-reference.c : Likewise.
25480         * ipa-split.c : Likewise.
25481         * ipa-utils.c : Likewise.
25482         * ipa-visibility.c : Likewise.
25483         * ipa.c : Likewise.
25484         * ira-build.c : Likewise.
25485         * ira-color.c : Likewise.
25486         * ira-conflicts.c : Likewise.
25487         * ira-costs.c : Likewise.
25488         * ira-emit.c : Likewise.
25489         * ira-lives.c : Likewise.
25490         * ira.c : Likewise.
25491         * jump.c : Likewise.
25492         * langhooks.c : Likewise.
25493         * lcm.c : Likewise.
25494         * libfuncs.h : Likewise.
25495         * lists.c : Likewise.
25496         * loop-doloop.c : Likewise.
25497         * loop-init.c : Likewise.
25498         * loop-invariant.c : Likewise.
25499         * loop-iv.c : Likewise.
25500         * loop-unroll.c : Likewise.
25501         * lower-subreg.c : Likewise.
25502         * lra-assigns.c : Likewise.
25503         * lra-coalesce.c : Likewise.
25504         * lra-constraints.c : Likewise.
25505         * lra-eliminations.c : Likewise.
25506         * lra-lives.c : Likewise.
25507         * lra-remat.c : Likewise.
25508         * lra-spills.c : Likewise.
25509         * lra.c : Likewise.
25510         * lto-cgraph.c : Likewise.
25511         * lto-compress.c : Likewise.
25512         * lto-opts.c : Likewise.
25513         * lto-section-in.c : Likewise.
25514         * lto-section-out.c : Likewise.
25515         * lto-streamer-in.c : Likewise.
25516         * lto-streamer-out.c : Likewise.
25517         * lto-streamer.c : Likewise.
25518         * lto-streamer.h : Likewise.
25519         * mcf.c : Likewise.
25520         * mode-switching.c : Likewise.
25521         * modulo-sched.c : Likewise.
25522         * omega.c : Likewise.
25523         * omp-low.c : Likewise.
25524         * optabs.c : Likewise.
25525         * opts-global.c : Likewise.
25526         * opts.h : Likewise.
25527         * passes.c : Likewise.
25528         * plugin.c : Likewise.
25529         * postreload-gcse.c : Likewise.
25530         * postreload.c : Likewise.
25531         * predict.c : Likewise.
25532         * print-rtl.c : Likewise.
25533         * print-tree.c : Likewise.
25534         * profile.c : Likewise.
25535         * read-md.c : Likewise.
25536         * read-md.h : Likewise.
25537         * read-rtl.c : Likewise.
25538         * real.c : Likewise.
25539         * realmpfr.c : Likewise.
25540         * recog.c : Likewise.
25541         * ree.c : Likewise.
25542         * reg-stack.c : Likewise.
25543         * regcprop.c : Likewise.
25544         * reginfo.c : Likewise.
25545         * regrename.c : Likewise.
25546         * regstat.c : Likewise.
25547         * reload.c : Likewise.
25548         * reload1.c : Likewise.
25549         * reorg.c : Likewise.
25550         * resource.c : Likewise.
25551         * rtl-chkp.c : Likewise.
25552         * rtl.c : Likewise.
25553         * rtl.h : Likewise.
25554         * rtlanal.c : Likewise.
25555         * rtlhash.c : Likewise.
25556         * rtlhash.h : Likewise.
25557         * rtlhooks.c : Likewise.
25558         * sanopt.c : Likewise.
25559         * sched-deps.c : Likewise.
25560         * sched-ebb.c : Likewise.
25561         * sched-rgn.c : Likewise.
25562         * sched-vis.c : Likewise.
25563         * sdbout.c : Likewise.
25564         * sel-sched-dump.c : Likewise.
25565         * sel-sched-ir.c : Likewise.
25566         * sel-sched-ir.h : Likewise.
25567         * sel-sched.c : Likewise.
25568         * sese.c : Likewise.
25569         * shrink-wrap.c : Likewise.
25570         * shrink-wrap.h : Likewise.
25571         * simplify-rtx.c : Likewise.
25572         * stack-ptr-mod.c : Likewise.
25573         * statistics.c : Likewise.
25574         * stmt.c : Likewise.
25575         * stor-layout.c : Likewise.
25576         * store-motion.c : Likewise.
25577         * stringpool.c : Likewise.
25578         * symtab.c : Likewise.
25579         * target-globals.c : Likewise.
25580         * targhooks.c : Likewise.
25581         * tlink.c : Likewise.
25582         * toplev.c : Likewise.
25583         * tracer.c : Likewise.
25584         * trans-mem.c : Likewise.
25585         * tree-affine.c : Likewise.
25586         * tree-affine.h : Likewise.
25587         * tree-browser.c : Likewise.
25588         * tree-call-cdce.c : Likewise.
25589         * tree-cfg.c : Likewise.
25590         * tree-cfgcleanup.c : Likewise.
25591         * tree-chkp-opt.c : Likewise.
25592         * tree-chkp.c : Likewise.
25593         * tree-chrec.c : Likewise.
25594         * tree-complex.c : Likewise.
25595         * tree-data-ref.c : Likewise.
25596         * tree-dfa.c : Likewise.
25597         * tree-diagnostic.c : Likewise.
25598         * tree-dump.c : Likewise.
25599         * tree-eh.c : Likewise.
25600         * tree-eh.h : Likewise.
25601         * tree-emutls.c : Likewise.
25602         * tree-hasher.h : Likewise.
25603         * tree-if-conv.c : Likewise.
25604         * tree-inline.c : Likewise.
25605         * tree-inline.h : Likewise.
25606         * tree-into-ssa.c : Likewise.
25607         * tree-iterator.c : Likewise.
25608         * tree-loop-distribution.c : Likewise.
25609         * tree-nested.c : Likewise.
25610         * tree-nrv.c : Likewise.
25611         * tree-object-size.c : Likewise.
25612         * tree-outof-ssa.c : Likewise.
25613         * tree-parloops.c : Likewise.
25614         * tree-phinodes.c : Likewise.
25615         * tree-predcom.c : Likewise.
25616         * tree-pretty-print.c : Likewise.
25617         * tree-profile.c : Likewise.
25618         * tree-scalar-evolution.c : Likewise.
25619         * tree-sra.c : Likewise.
25620         * tree-ssa-address.c : Likewise.
25621         * tree-ssa-alias.c : Likewise.
25622         * tree-ssa-ccp.c : Likewise.
25623         * tree-ssa-coalesce.c : Likewise.
25624         * tree-ssa-copy.c : Likewise.
25625         * tree-ssa-copyrename.c : Likewise.
25626         * tree-ssa-dce.c : Likewise.
25627         * tree-ssa-dom.c : Likewise.
25628         * tree-ssa-dse.c : Likewise.
25629         * tree-ssa-forwprop.c : Likewise.
25630         * tree-ssa-ifcombine.c : Likewise.
25631         * tree-ssa-live.c : Likewise.
25632         * tree-ssa-loop-ch.c : Likewise.
25633         * tree-ssa-loop-im.c : Likewise.
25634         * tree-ssa-loop-ivcanon.c : Likewise.
25635         * tree-ssa-loop-ivopts.c : Likewise.
25636         * tree-ssa-loop-manip.c : Likewise.
25637         * tree-ssa-loop-niter.c : Likewise.
25638         * tree-ssa-loop-prefetch.c : Likewise.
25639         * tree-ssa-loop-unswitch.c : Likewise.
25640         * tree-ssa-loop.c : Likewise.
25641         * tree-ssa-math-opts.c : Likewise.
25642         * tree-ssa-operands.c : Likewise.
25643         * tree-ssa-phiopt.c : Likewise.
25644         * tree-ssa-phiprop.c : Likewise.
25645         * tree-ssa-pre.c : Likewise.
25646         * tree-ssa-propagate.c : Likewise.
25647         * tree-ssa-reassoc.c : Likewise.
25648         * tree-ssa-sccvn.c : Likewise.
25649         * tree-ssa-scopedtables.c : Likewise.
25650         * tree-ssa-sink.c : Likewise.
25651         * tree-ssa-strlen.c : Likewise.
25652         * tree-ssa-structalias.c : Likewise.
25653         * tree-ssa-tail-merge.c : Likewise.
25654         * tree-ssa-ter.c : Likewise.
25655         * tree-ssa-threadedge.c : Likewise.
25656         * tree-ssa-threadupdate.c : Likewise.
25657         * tree-ssa-uncprop.c : Likewise.
25658         * tree-ssa-uninit.c : Likewise.
25659         * tree-ssa.c : Likewise.
25660         * tree-ssanames.c : Likewise.
25661         * tree-stdarg.c : Likewise.
25662         * tree-streamer-in.c : Likewise.
25663         * tree-streamer-out.c : Likewise.
25664         * tree-streamer.c : Likewise.
25665         * tree-streamer.h : Likewise.
25666         * tree-switch-conversion.c : Likewise.
25667         * tree-tailcall.c : Likewise.
25668         * tree-vect-data-refs.c : Likewise.
25669         * tree-vect-generic.c : Likewise.
25670         * tree-vect-loop-manip.c : Likewise.
25671         * tree-vect-loop.c : Likewise.
25672         * tree-vect-patterns.c : Likewise.
25673         * tree-vect-slp.c : Likewise.
25674         * tree-vect-stmts.c : Likewise.
25675         * tree-vectorizer.c : Likewise.
25676         * tree-vectorizer.h : Likewise.
25677         * tree-vrp.c : Likewise.
25678         * tree.c : Likewise.
25679         * tsan.c : Likewise.
25680         * ubsan.c : Likewise.
25681         * valtrack.c : Likewise.
25682         * valtrack.h : Likewise.
25683         * value-prof.c : Likewise.
25684         * var-tracking.c : Likewise.
25685         * varasm.c : Likewise.
25686         * varpool.c : Likewise.
25687         * vec.c: Likewise.
25688         * vmsdbgout.c : Likewise.
25689         * vtable-verify.c : Likewise.
25690         * vtable-verify.h : Likewise.
25691         * web.c : Likewise.
25692         * wide-int.cc : Likewise.
25693         * xcoffout.c : Likewise.
25694         * config/aarch64/aarch64-builtins.c : Likewise.
25695         * config/aarch64/aarch64.c : Likewise.
25696         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
25697         * config/alpha/alpha.c : Likewise.
25698         * config/arc/arc.c : Likewise.
25699         * config/arm/aarch-common.c : Likewise.
25700         * config/arm/arm-builtins.c : Likewise.
25701         * config/arm/arm-c.c : Likewise.
25702         * config/arm/arm.c : Likewise.
25703         * config/avr/avr-c.c : Likewise.
25704         * config/avr/avr-log.c : Likewise.
25705         * config/avr/avr.c : Likewise.
25706         * config/bfin/bfin.c : Likewise.
25707         * config/c6x/c6x.c : Likewise.
25708         * config/cr16/cr16.c : Likewise.
25709         * config/cris/cris.c : Likewise.
25710         * config/darwin-c.c : Likewise.
25711         * config/darwin.c : Likewise.
25712         * config/default-c.c : Likewise.
25713         * config/epiphany/epiphany.c : Likewise.
25714         * config/epiphany/mode-switch-use.c : Likewise.
25715         * config/epiphany/resolve-sw-modes.c : Likewise.
25716         * config/fr30/fr30.c : Likewise.
25717         * config/frv/frv.c : Likewise.
25718         * config/ft32/ft32.c : Likewise.
25719         * config/glibc-c.c : Likewise.
25720         * config/h8300/h8300.c : Likewise.
25721         * config/i386/i386-c.c : Likewise.
25722         * config/i386/i386.c : Likewise.
25723         * config/i386/msformat-c.c : Likewise.
25724         * config/i386/winnt-cxx.c : Likewise.
25725         * config/i386/winnt-stubs.c : Likewise.
25726         * config/i386/winnt.c : Likewise.
25727         * config/ia64/ia64-c.c : Likewise.
25728         * config/ia64/ia64.c : Likewise.
25729         * config/iq2000/iq2000.c : Likewise.
25730         * config/lm32/lm32.c : Likewise.
25731         * config/m32c/m32c-pragma.c : Likewise.
25732         * config/m32c/m32c.c : Likewise.
25733         * config/m32r/m32r.c : Likewise.
25734         * config/m68k/m68k.c : Likewise.
25735         * config/mcore/mcore.c : Likewise.
25736         * config/mep/mep-pragma.c : Likewise.
25737         * config/mep/mep.c : Likewise.
25738         * config/microblaze/microblaze-c.c : Likewise.
25739         * config/microblaze/microblaze.c : Likewise.
25740         * config/mips/mips.c : Likewise.
25741         * config/mmix/mmix.c : Likewise.
25742         * config/mn10300/mn10300.c : Likewise.
25743         * config/moxie/moxie.c : Likewise.
25744         * config/msp430/msp430-c.c : Likewise.
25745         * config/msp430/msp430.c : Likewise.
25746         * config/nds32/nds32-cost.c : Likewise.
25747         * config/nds32/nds32-fp-as-gp.c : Likewise.
25748         * config/nds32/nds32-intrinsic.c : Likewise.
25749         * config/nds32/nds32-isr.c : Likewise.
25750         * config/nds32/nds32-md-auxiliary.c : Likewise.
25751         * config/nds32/nds32-memory-manipulation.c : Likewise.
25752         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
25753         * config/nds32/nds32-predicates.c : Likewise.
25754         * config/nds32/nds32.c : Likewise.
25755         * config/nios2/nios2.c : Likewise.
25756         * config/nvptx/nvptx.c : Likewise.
25757         * config/pa/pa.c : Likewise.
25758         * config/pdp11/pdp11.c : Likewise.
25759         * config/rl78/rl78-c.c : Likewise.
25760         * config/rl78/rl78.c : Likewise.
25761         * config/rs6000/rs6000-c.c : Likewise.
25762         * config/rs6000/rs6000.c : Likewise.
25763         * config/rx/rx.c : Likewise.
25764         * config/s390/s390-c.c : Likewise.
25765         * config/s390/s390.c : Likewise.
25766         * config/sh/sh-c.c : Likewise.
25767         * config/sh/sh-mem.cc : Likewise.
25768         * config/sh/sh.c : Likewise.
25769         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
25770         * config/sh/sh_treg_combine.cc : Likewise.
25771         * config/sol2-c.c : Likewise.
25772         * config/sol2-cxx.c : Likewise.
25773         * config/sol2-stubs.c : Likewise.
25774         * config/sol2.c : Likewise.
25775         * config/sparc/sparc-c.c : Likewise.
25776         * config/sparc/sparc.c : Likewise.
25777         * config/spu/spu-c.c : Likewise.
25778         * config/spu/spu.c : Likewise.
25779         * config/stormy16/stormy16.c : Likewise.
25780         * config/tilegx/mul-tables.c : Likewise.
25781         * config/tilegx/tilegx-c.c : Likewise.
25782         * config/tilegx/tilegx.c : Likewise.
25783         * config/tilepro/mul-tables.c : Likewise.
25784         * config/tilepro/tilepro-c.c : Likewise.
25785         * config/tilepro/tilepro.c : Likewise.
25786         * config/v850/v850-c.c : Likewise.
25787         * config/v850/v850.c : Likewise.
25788         * config/vax/vax.c : Likewise.
25789         * config/visium/visium.c : Likewise.
25790         * config/vms/vms-c.c : Likewise.
25791         * config/vms/vms.c : Likewise.
25792         * config/vxworks.c : Likewise.
25793         * config/winnt-c.c : Likewise.
25794         * config/xtensa/xtensa.c : Likewise.
25795
25796 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25797
25798         PR lto/65378
25799         * ipa-utils.h (warn_types_mismatch): Update prototype.
25800         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
25801         parameters.
25802         (type_mismatch_p): New function.
25803         (warn_types_mismatch): Reorg to work better on non-C++ types.
25804         (odr_types_equivalent_p): Add loc1/loc2 parameters.
25805         (add_type_duplicate): Update.
25806
25807 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25808
25809         PR rtl-optimization/66444
25810         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
25811         call_used_regs.
25812
25813 2015-06-08  Richard Biener  <rguenther@suse.de>
25814
25815         PR tree-optimization/66422
25816         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
25817         block after inserted gcc_unreachable.
25818
25819 2015-06-08  Nick Clifton  <nickc@redhat.com>
25820
25821         * config/rx/rx.c (rx_function_value): Do not promote vector types.
25822         (rx_promote_function_mode): Likewise.
25823         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
25824
25825 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
25826
25827         * genattrtab.c (insn_alternatives): Change type from int *
25828         to uint64_t *.
25829         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
25830         (get_attr_value): Change type of num_alt to uint64_t.
25831         (compute_alternative_mask): Change return type from
25832         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
25833         (make_alternative_compare, mk_attr_alt): Change argument type
25834         from int to uint64_t.
25835         (simplify_test_exp): Change type of i from int to uint64_t.
25836         Shift ((uint64_t) 1) instead of 1 up.
25837         (main): Adjust oballocvec first argument from int to uint64_t.
25838         Shift ((uint64_t) 1) instead of 1 up.
25839
25840 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
25841
25842         PR other/65366
25843         * gdbhooks.py: Import sys.
25844         (intptr): New function.  Replace int(...) by intptr(...).
25845
25846 2015-06-08  Richard Biener  <rguenther@suse.de>
25847
25848         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
25849         adjustment for gaps at the end of a SLP load group properly.
25850         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
25851         all permutations we can generate.
25852         (vect_transform_slp_perm_load): Use the correct group-size.
25853
25854 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
25855
25856         * genmatch.c (expr::gen_transform): For conditions, guess the type
25857         from the second operand.
25858
25859 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25860
25861         PR tree-optimization/66442
25862         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
25863         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
25864         if the loop latch is not a singleton.  Use
25865         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
25866
25867 2015-06-08  Marek Polacek  <polacek@redhat.com>
25868
25869         PR sanitizer/66452
25870         * toplev.c (check_global_declaration): Don't warn about artificial
25871         decls.
25872
25873 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25874
25875         PR tree-optimization/66436
25876         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
25877         dump file.
25878         * gimplify.c: Add tree-dump.h include.
25879         (gimplify_function_tree): Dump function to gimple dump file.
25880         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
25881         dump file.
25882
25883 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25884
25885         PR tree-optimization/66435
25886         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
25887         function.
25888
25889 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
25890
25891         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
25892         of ptr_type_node to not be ptr_to_node.
25893         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
25894         TREE_TYPE of pointers.
25895         * gimple-expr.c (useless_type_conversion): Reorder the check for
25896         function pointers and TYPE_CANONICAL.
25897
25898 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
25899
25900         PR bootstrap/66319
25901         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
25902         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
25903         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
25904         later.
25905         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
25906         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
25907         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
25908         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
25909         and non iso if unix2003.
25910
25911 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
25912
25913         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
25914
25915 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
25916
25917         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
25918         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
25919         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
25920         except.c, final.c, function.c, gcse-common.c, genemit.c,
25921         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
25922         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
25923         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
25924         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
25925         more derived ones.
25926
25927 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
25928
25929         * combine.c (combine_split_insns): Remove cast.
25930         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
25931         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
25932         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
25933         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
25934         * genemit.c (gen_split): Change return type of generated functions to
25935         rtx_insn.
25936         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
25937         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
25938         gen_peephole2_* functions.
25939         (print_subroutine, main): Likewise.
25940         * recog.c (peephole2_optimize): Remove cast.
25941         (peep2_next_insn): Promote return type to rtx_insn.
25942         * recog.h (peep2_next_insn): Fix prototype.
25943         * rtl.h (try_split, split_insns): Likewise.
25944
25945 2015-06-06  DJ Delorie  <dj@redhat.com>
25946
25947         * config/msp430/msp430.c (msp430_asm_integer): Support addition
25948         and subtraction too.
25949
25950 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
25951
25952         PR target/66410
25953         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
25954         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
25955         instead of Snd.  Disparage Sid/z alternative with '^'.
25956
25957 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
25958
25959         * dwarf2out.c: Remove deferred_locations*.
25960         (dwarf2_debug_hooks): Add early_finish hook.
25961         Remove global_decl hook.
25962         Add early_global_decl and late_global_decl hook.
25963         New global early_dwarf.
25964         New structure set_early_dwarf.
25965         (output_die): Indicate whether a DIE was generated early
25966         when generating assembly with -dA.
25967         (struct limbo_die_struct): Document created_for field.
25968         Remove file_table_last_lookup.
25969         (remove_AT): Return TRUE if successful.
25970         (remove_child_TAG): Clear die_parent.
25971         (reparent_child): New function abstracted from...
25972         (splice_child_die): ...here.
25973         (new_die): ICE if a DIE ends up in limbo too late.
25974         (check_die): New.
25975         (defer_location): Remove.
25976         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
25977         (fill_variable_array_bounds): New.
25978         (decl_start_label): Call fill_variable_array_bounds.
25979         (gen_formal_parameter_die): Rewrite to reuse previously generated
25980         DIEs.
25981         (gen_subprogram_die): Same.
25982         (gen_variable_die): Same.
25983         (gen_const_die): Same.
25984         (gen_label_die): Same.
25985         (gen_lexical_block_die): Same.
25986         (decl_will_get_specification_p): New.
25987         (local_function_static): New.
25988         (gen_struct_or_union_type_die): Fill in variable-length fields.
25989         (gen_typedef_die): Fill in variable-length typedefs.
25990         (gen_tagged_type_die): Gracefully return on error_mark_node.
25991         Handle re-entrancy.
25992         (gen_type_die_with_usage): Handle variable-length types.
25993         Remove duplicate code for ARRAY_TYPE case.
25994         (process_scope_var): Only process imported modules during early
25995         dwarf.
25996         (dwarf2out_early_global_decl): New.
25997         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
25998         (dwarf2out_type_decl): Set early_dwarf while calling
25999         dwarf2out_decl.
26000         (dwarf2out_decl): Verify that we did not recreate a previously
26001         generated DIE.
26002         Do not return on DECL_EXTERNALs in VAR_DECLs.
26003         Abstract some code to local_function_static.
26004         (lookup_filename): Remove use of file_table_last_lookup.
26005         Gracefully exit on missing file_name.
26006         (dwarf2out_finish): Verify limbo list.
26007         Remove deferred_locations_list use.
26008         Move deferred_asm_name and limbo flushing to...
26009         (dwarf2out_early_finish): ...here.  New.
26010         (dwarf2out_c_finalize): Remove set of deferred_location_list,
26011         deferred_asm_name, and file_table_last_lookup.
26012         * cgraph.h (referred_to_p): Add default argument.
26013         * cgraphunit.c (referred_to_p): Add and handle include_self
26014         argument.
26015         (analyze_functions): Add first_time argument.
26016         Call check_global_declaration for all symbols.
26017         Call late_global_decl for nodes for moribund nodes.
26018         (finalize_compilation_unit): Add new argument to
26019         analyze_functions.
26020         Call early_global_decl for functions.
26021         Call early_finish debug hook.
26022         * dbxout.c (dbxout_early_global_decl): New.
26023         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
26024         (dbx_debug_hooks): Add new hooks.
26025         (xcoff_debug_hooks): Same.
26026         * debug.c (do_nothing_debug_hooks): Add early_finish field.
26027         Add early and late debug hooks.
26028         Remove global_decl hook.
26029         * debug.h (struct gcc_debug_hooks): Add early_finish,
26030         early_global_decl, and late_global_decl fields.
26031         Remove global_decl field.
26032         Document gcc_debug_hooks.
26033         * gengtype.c (output_typename): Remove.
26034         * godump.c (go_early_global_decl): New.
26035         (go_late_global_decl): New.
26036         (go_global_decl): Remove.
26037         (dump_go_spec_init): Remove global_decl.  Add
26038         {early,late}_global_decl.
26039         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
26040         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
26041         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
26042         (write_global_declarations): Remove.
26043         (global_decl_processing): New.
26044         * langhooks.h (struct lang_hooks_for_decls): Remove
26045         final_write_globals field.
26046         Add post_compilation_parsing_cleanups field.
26047         * passes.c (rest_of_decl_compilation): Call early_global_decl.
26048         * sdbout.c: Add early and late_global_decl hooks.  Remove
26049         sdbout_global_decl hook.
26050         Add early_finish field for sdb_debug_hooks.
26051         (sdbout_global_decl): Remove.
26052         (sdbout_early_global_decl): New.
26053         (sdbout_late_global_decl): New.
26054         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
26055         * toplev.c (check_global_declaration): Rename from
26056         check_global_declaration_1.
26057         Adapt to use symtab infrastructure.
26058         (check_global_declarations): Remove.
26059         (emit_debug_global_declarations): Remove.
26060         (compile_file): Remove call to final_write_globals langhook.
26061         Run the actual compilation process.
26062         Perform any post compilation parser cleanups.
26063         Generate late debug info.
26064         * toplev.h (check_global_declaration): New.
26065         (check_global_declaration_1): Remove.
26066         (check_global_declarations): Remove.
26067         (write_global_declarations): Remove.
26068         (emit_debug_global_declarations): Remove.
26069         (global_decl_processing): New.
26070         * tree-core.h (struct tree_block): Add DIE field.
26071         * tree.h (BLOCK_DIE): New.
26072         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
26073         throughout.
26074         (vmsdbgout_early_global_decl): New.
26075         (vmsdbgout_late_global_decl): New.
26076         Add early_finish debug hook field to vmsdbg_debug_hooks.
26077         Remove vmsdbgout_decl to vmsdbgout_function_decl.
26078         Add early and late_global_decl debug hooks.
26079
26080 2015-06-05  Julian Brown  <julian@codesourcery.com>
26081             Sandra Loosemore  <sandra@codesourcery.com>
26082
26083         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
26084         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
26085         to print-sysroot-suffix.sh script.
26086
26087 2015-06-05  Tom de Vries  <tom@codesourcery.com>
26088
26089         merge from gomp4 branch:
26090         2015-05-28  Tom de Vries  <tom@codesourcery.com>
26091
26092         PR tree-optimization/65443
26093         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
26094         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
26095         (try_transform_to_exit_first_loop_alt): New function.
26096         (transform_to_exit_first_loop): Use
26097         try_transform_to_exit_first_loop_alt.
26098
26099 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
26100
26101         * builtins.c (expand_builtin_atomic_compare_exchange): Call
26102         emit_cmp_and_jump_insns with the mode of target.
26103
26104 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26105
26106         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
26107
26108 2015-06-04  DJ Delorie  <dj@redhat.com>
26109
26110         * config/msp430/msp430.md (movsi_s): New.  Special case for
26111         storing a 20-bit symbol into a 32-bit register.
26112         * config/msp430/msp430.c (msp430_subreg): Add support for it.
26113         * config/msp430/predicates.md (msp430_symbol_operand): New.
26114
26115 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
26116
26117         * c-family/c-common.c (noplt): New attribute.
26118         (handle_noplt_attribute): New handler.
26119         * calls.c (prepare_call_address): Check for noplt
26120         attribute.
26121         * config/i386/i386.c (ix86_expand_call): Check
26122         for noplt attribute.
26123         (ix86_nopic_noplt_attribute_p): New function.
26124         (ix86_output_call_insn): Output indirect call for non-pic
26125         no plt calls.
26126         * doc/extend.texi (noplt): Document new attribute.
26127         * doc/invoke.texi: Document new attribute.
26128
26129 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
26130
26131         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
26132         real.h, and fixed-value.h when included in host source files.
26133         * double-int.h: Remove redundant #includes listed above.
26134         * fixed-value.h: Likewise.
26135         * real.h: Likewise.
26136         * wide-int.h: Likewise.
26137         * inchash.h: Likewise.
26138         * rtl.h: Add some include files When included from a generator file.
26139         * target.h: Remove wide-int.h and insn-modes.h from the include list.
26140         * internal-fn.h: Don't include coretypes.h.
26141         * alias.c: Adjust includes for restructured coretypes.h.
26142         * asan.c: Likewise.
26143         * attribs.c: Likewise.
26144         * auto-inc-dec.c: Likewise.
26145         * auto-profile.c: Likewise.
26146         * bb-reorder.c: Likewise.
26147         * bt-load.c: Likewise.
26148         * builtins.c: Likewise.
26149         * caller-save.c: Likewise.
26150         * calls.c: Likewise.
26151         * ccmp.c: Likewise.
26152         * cfg.c: Likewise.
26153         * cfganal.c: Likewise.
26154         * cfgbuild.c: Likewise.
26155         * cfgcleanup.c: Likewise.
26156         * cfgexpand.c: Likewise.
26157         * cfghooks.c: Likewise.
26158         * cfgloop.c: Likewise.
26159         * cfgloop.h: Likewise.
26160         * cfgloopanal.c: Likewise.
26161         * cfgloopmanip.c: Likewise.
26162         * cfgrtl.c: Likewise.
26163         * cgraph.c: Likewise.
26164         * cgraphbuild.c: Likewise.
26165         * cgraphclones.c: Likewise.
26166         * cgraphunit.c: Likewise.
26167         * cilk-common.c: Likewise.
26168         * combine-stack-adj.c: Likewise.
26169         * combine.c: Likewise.
26170         * compare-elim.c: Likewise.
26171         * convert.c: Likewise.
26172         * coverage.c: Likewise.
26173         * cppbuiltin.c: Likewise.
26174         * cprop.c: Likewise.
26175         * cse.c: Likewise.
26176         * cselib.c: Likewise.
26177         * data-streamer-in.c: Likewise.
26178         * data-streamer-out.c: Likewise.
26179         * data-streamer.c: Likewise.
26180         * dbxout.c: Likewise.
26181         * dce.c: Likewise.
26182         * ddg.c: Likewise.
26183         * debug.c: Likewise.
26184         * df-core.c: Likewise.
26185         * df-problems.c: Likewise.
26186         * df-scan.c: Likewise.
26187         * df.h: Likewise.
26188         * dfp.c: Likewise.
26189         * dojump.c: Likewise.
26190         * dominance.c: Likewise.
26191         * domwalk.c: Likewise.
26192         * double-int.c: Likewise.
26193         * dse.c: Likewise.
26194         * dumpfile.c: Likewise.
26195         * dwarf2asm.c: Likewise.
26196         * dwarf2cfi.c: Likewise.
26197         * dwarf2out.c: Likewise.
26198         * dwarf2out.h: Likewise.
26199         * emit-rtl.c: Likewise.
26200         * et-forest.c: Likewise.
26201         * except.c: Likewise.
26202         * explow.c: Likewise.
26203         * expmed.c: Likewise.
26204         * expr.c: Likewise.
26205         * final.c: Likewise.
26206         * fixed-value.c: Likewise.
26207         * fold-const.c: Likewise.
26208         * function.c: Likewise.
26209         * fwprop.c: Likewise.
26210         * gcc-plugin.h: Likewise.
26211         * gcse.c: Likewise.
26212         * generic-match-head.c: Likewise.
26213         * ggc-page.c: Likewise.
26214         * gimple-builder.c: Likewise.
26215         * gimple-expr.c: Likewise.
26216         * gimple-fold.c: Likewise.
26217         * gimple-iterator.c: Likewise.
26218         * gimple-low.c: Likewise.
26219         * gimple-match-head.c: Likewise.
26220         * gimple-pretty-print.c: Likewise.
26221         * gimple-ssa-isolate-paths.c: Likewise.
26222         * gimple-ssa-strength-reduction.c: Likewise.
26223         * gimple-streamer-in.c: Likewise.
26224         * gimple-streamer-out.c: Likewise.
26225         * gimple-streamer.h: Likewise.
26226         * gimple-walk.c: Likewise.
26227         * gimple.c: Likewise.
26228         * gimplify-me.c: Likewise.
26229         * gimplify.c: Likewise.
26230         * godump.c: Likewise.
26231         * graph.c: Likewise.
26232         * graphite-blocking.c: Likewise.
26233         * graphite-dependences.c: Likewise.
26234         * graphite-interchange.c: Likewise.
26235         * graphite-isl-ast-to-gimple.c: Likewise.
26236         * graphite-optimize-isl.c: Likewise.
26237         * graphite-poly.c: Likewise.
26238         * graphite-scop-detection.c: Likewise.
26239         * graphite-sese-to-poly.c: Likewise.
26240         * graphite.c: Likewise.
26241         * haifa-sched.c: Likewise.
26242         * hooks.h: Likewise.
26243         * hw-doloop.c: Likewise.
26244         * ifcvt.c: Likewise.
26245         * incpath.c: Likewise.
26246         * init-regs.c: Likewise.
26247         * internal-fn.c: Likewise.
26248         * ipa-chkp.c: Likewise.
26249         * ipa-comdats.c: Likewise.
26250         * ipa-cp.c: Likewise.
26251         * ipa-devirt.c: Likewise.
26252         * ipa-icf-gimple.c: Likewise.
26253         * ipa-icf.c: Likewise.
26254         * ipa-inline-analysis.c: Likewise.
26255         * ipa-inline-transform.c: Likewise.
26256         * ipa-inline.c: Likewise.
26257         * ipa-polymorphic-call.c: Likewise.
26258         * ipa-profile.c: Likewise.
26259         * ipa-prop.c: Likewise.
26260         * ipa-pure-const.c: Likewise.
26261         * ipa-ref.c: Likewise.
26262         * ipa-reference.c: Likewise.
26263         * ipa-split.c: Likewise.
26264         * ipa-utils.c: Likewise.
26265         * ipa-visibility.c: Likewise.
26266         * ipa.c: Likewise.
26267         * ira-build.c: Likewise.
26268         * ira-color.c: Likewise.
26269         * ira-conflicts.c: Likewise.
26270         * ira-costs.c: Likewise.
26271         * ira-emit.c: Likewise.
26272         * ira-lives.c: Likewise.
26273         * ira.c: Likewise.
26274         * jump.c: Likewise.
26275         * langhooks.c: Likewise.
26276         * lcm.c: Likewise.
26277         * loop-doloop.c: Likewise.
26278         * loop-init.c: Likewise.
26279         * loop-invariant.c: Likewise.
26280         * loop-iv.c: Likewise.
26281         * loop-unroll.c: Likewise.
26282         * lower-subreg.c: Likewise.
26283         * lra-assigns.c: Likewise.
26284         * lra-coalesce.c: Likewise.
26285         * lra-constraints.c: Likewise.
26286         * lra-eliminations.c: Likewise.
26287         * lra-lives.c: Likewise.
26288         * lra-remat.c: Likewise.
26289         * lra-spills.c: Likewise.
26290         * lra.c: Likewise.
26291         * lto-cgraph.c: Likewise.
26292         * lto-compress.c: Likewise.
26293         * lto-opts.c: Likewise.
26294         * lto-section-in.c: Likewise.
26295         * lto-section-out.c: Likewise.
26296         * lto-streamer-in.c: Likewise.
26297         * lto-streamer-out.c: Likewise.
26298         * lto-streamer.c: Likewise.
26299         * mcf.c: Likewise.
26300         * mode-switching.c: Likewise.
26301         * modulo-sched.c: Likewise.
26302         * omega.c: Likewise.
26303         * omp-low.c: Likewise.
26304         * optabs.c: Likewise.
26305         * opts-global.c: Likewise.
26306         * passes.c: Likewise.
26307         * plugin.c: Likewise.
26308         * postreload-gcse.c: Likewise.
26309         * postreload.c: Likewise.
26310         * predict.c: Likewise.
26311         * print-rtl.c: Likewise.
26312         * print-tree.c: Likewise.
26313         * profile.c: Likewise.
26314         * real.c: Likewise.
26315         * realmpfr.c: Likewise.
26316         * realmpfr.h: Likewise.
26317         * recog.c: Likewise.
26318         * ree.c: Likewise.
26319         * reg-stack.c: Likewise.
26320         * regcprop.c: Likewise.
26321         * reginfo.c: Likewise.
26322         * regrename.c: Likewise.
26323         * regs.h: Likewise.
26324         * regstat.c: Likewise.
26325         * reload.c: Likewise.
26326         * reload1.c: Likewise.
26327         * reorg.c: Likewise.
26328         * resource.c: Likewise.
26329         * rtl-chkp.c: Likewise.
26330         * rtlanal.c: Likewise.
26331         * rtlhooks.c: Likewise.
26332         * sanopt.c: Likewise.
26333         * sched-deps.c: Likewise.
26334         * sched-ebb.c: Likewise.
26335         * sched-rgn.c: Likewise.
26336         * sched-vis.c: Likewise.
26337         * sdbout.c: Likewise.
26338         * sel-sched-dump.c: Likewise.
26339         * sel-sched-ir.c: Likewise.
26340         * sel-sched.c: Likewise.
26341         * sese.c: Likewise.
26342         * shrink-wrap.c: Likewise.
26343         * shrink-wrap.h: Likewise.
26344         * simplify-rtx.c: Likewise.
26345         * stack-ptr-mod.c: Likewise.
26346         * statistics.c: Likewise.
26347         * stmt.c: Likewise.
26348         * stor-layout.c: Likewise.
26349         * store-motion.c: Likewise.
26350         * stringpool.c: Likewise.
26351         * symtab.c: Likewise.
26352         * target-globals.c: Likewise.
26353         * targhooks.c: Likewise.
26354         * toplev.c: Likewise.
26355         * tracer.c: Likewise.
26356         * trans-mem.c: Likewise.
26357         * tree-affine.c: Likewise.
26358         * tree-affine.h: Likewise.
26359         * tree-browser.c: Likewise.
26360         * tree-call-cdce.c: Likewise.
26361         * tree-cfg.c: Likewise.
26362         * tree-cfgcleanup.c: Likewise.
26363         * tree-chkp-opt.c: Likewise.
26364         * tree-chkp.c: Likewise.
26365         * tree-chrec.c: Likewise.
26366         * tree-complex.c: Likewise.
26367         * tree-data-ref.c: Likewise.
26368         * tree-dfa.c: Likewise.
26369         * tree-diagnostic.c: Likewise.
26370         * tree-dump.c: Likewise.
26371         * tree-eh.c: Likewise.
26372         * tree-emutls.c: Likewise.
26373         * tree-if-conv.c: Likewise.
26374         * tree-inline.c: Likewise.
26375         * tree-into-ssa.c: Likewise.
26376         * tree-iterator.c: Likewise.
26377         * tree-loop-distribution.c: Likewise.
26378         * tree-nested.c: Likewise.
26379         * tree-nrv.c: Likewise.
26380         * tree-object-size.c: Likewise.
26381         * tree-outof-ssa.c: Likewise.
26382         * tree-parloops.c: Likewise.
26383         * tree-phinodes.c: Likewise.
26384         * tree-predcom.c: Likewise.
26385         * tree-pretty-print.c: Likewise.
26386         * tree-pretty-print.h: Likewise.
26387         * tree-profile.c: Likewise.
26388         * tree-scalar-evolution.c: Likewise.
26389         * tree-sra.c: Likewise.
26390         * tree-ssa-address.c: Likewise.
26391         * tree-ssa-alias.c: Likewise.
26392         * tree-ssa-ccp.c: Likewise.
26393         * tree-ssa-coalesce.c: Likewise.
26394         * tree-ssa-copy.c: Likewise.
26395         * tree-ssa-copyrename.c: Likewise.
26396         * tree-ssa-dce.c: Likewise.
26397         * tree-ssa-dom.c: Likewise.
26398         * tree-ssa-dse.c: Likewise.
26399         * tree-ssa-forwprop.c: Likewise.
26400         * tree-ssa-ifcombine.c: Likewise.
26401         * tree-ssa-live.c: Likewise.
26402         * tree-ssa-loop-ch.c: Likewise.
26403         * tree-ssa-loop-im.c: Likewise.
26404         * tree-ssa-loop-ivcanon.c: Likewise.
26405         * tree-ssa-loop-ivopts.c: Likewise.
26406         * tree-ssa-loop-manip.c: Likewise.
26407         * tree-ssa-loop-niter.c: Likewise.
26408         * tree-ssa-loop-prefetch.c: Likewise.
26409         * tree-ssa-loop-unswitch.c: Likewise.
26410         * tree-ssa-loop.c: Likewise.
26411         * tree-ssa-loop.h: Likewise.
26412         * tree-ssa-math-opts.c: Likewise.
26413         * tree-ssa-operands.c: Likewise.
26414         * tree-ssa-phiopt.c: Likewise.
26415         * tree-ssa-phiprop.c: Likewise.
26416         * tree-ssa-pre.c: Likewise.
26417         * tree-ssa-propagate.c: Likewise.
26418         * tree-ssa-reassoc.c: Likewise.
26419         * tree-ssa-sccvn.c: Likewise.
26420         * tree-ssa-scopedtables.c: Likewise.
26421         * tree-ssa-sink.c: Likewise.
26422         * tree-ssa-strlen.c: Likewise.
26423         * tree-ssa-structalias.c: Likewise.
26424         * tree-ssa-tail-merge.c: Likewise.
26425         * tree-ssa-ter.c: Likewise.
26426         * tree-ssa-threadedge.c: Likewise.
26427         * tree-ssa-threadupdate.c: Likewise.
26428         * tree-ssa-uncprop.c: Likewise.
26429         * tree-ssa-uninit.c: Likewise.
26430         * tree-ssa.c: Likewise.
26431         * tree-ssanames.c: Likewise.
26432         * tree-stdarg.c: Likewise.
26433         * tree-streamer-in.c: Likewise.
26434         * tree-streamer-out.c: Likewise.
26435         * tree-streamer.c: Likewise.
26436         * tree-switch-conversion.c: Likewise.
26437         * tree-tailcall.c: Likewise.
26438         * tree-vect-data-refs.c: Likewise.
26439         * tree-vect-generic.c: Likewise.
26440         * tree-vect-loop-manip.c: Likewise.
26441         * tree-vect-loop.c: Likewise.
26442         * tree-vect-patterns.c: Likewise.
26443         * tree-vect-slp.c: Likewise.
26444         * tree-vect-stmts.c: Likewise.
26445         * tree-vectorizer.c: Likewise.
26446         * tree-vrp.c: Likewise.
26447         * tree.c: Likewise.
26448         * tsan.c: Likewise.
26449         * ubsan.c: Likewise.
26450         * valtrack.c: Likewise.
26451         * value-prof.c: Likewise.
26452         * var-tracking.c: Likewise.
26453         * varasm.c: Likewise.
26454         * varpool.c: Likewise.
26455         * vmsdbgout.c: Likewise.
26456         * vtable-verify.c: Likewise.
26457         * web.c: Likewise.
26458         * wide-int-print.cc: Likewise.
26459         * wide-int-print.h: Likewise.
26460         * wide-int.cc: Likewise.
26461         * xcoffout.c: Likewise.
26462         * config/aarch64/aarch64-builtins.c: Likewise.
26463         * config/aarch64/aarch64.c: Likewise.
26464         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26465         * config/alpha/alpha.c: Likewise.
26466         * config/arc/arc.c: Likewise.
26467         * config/arm/aarch-common.c: Likewise.
26468         * config/arm/arm-builtins.c: Likewise.
26469         * config/arm/arm-c.c: Likewise.
26470         * config/arm/arm.c: Likewise.
26471         * config/avr/avr-c.c: Likewise.
26472         * config/avr/avr-log.c: Likewise.
26473         * config/avr/avr.c: Likewise.
26474         * config/bfin/bfin.c: Likewise.
26475         * config/c6x/c6x.c: Likewise.
26476         * config/cr16/cr16.c: Likewise.
26477         * config/cris/cris.c: Likewise.
26478         * config/darwin-c.c: Likewise.
26479         * config/darwin.c: Likewise.
26480         * config/default-c.c: Likewise.
26481         * config/epiphany/epiphany.c: Likewise.
26482         * config/epiphany/mode-switch-use.c: Likewise.
26483         * config/epiphany/resolve-sw-modes.c: Likewise.
26484         * config/fr30/fr30.c: Likewise.
26485         * config/frv/frv.c: Likewise.
26486         * config/ft32/ft32.c: Likewise.
26487         * config/glibc-c.c: Likewise.
26488         * config/h8300/h8300.c: Likewise.
26489         * config/i386/i386-c.c: Likewise.
26490         * config/i386/i386.c: Likewise.
26491         * config/i386/msformat-c.c: Likewise.
26492         * config/i386/winnt-cxx.c: Likewise.
26493         * config/i386/winnt-stubs.c: Likewise.
26494         * config/i386/winnt.c: Likewise.
26495         * config/ia64/ia64-c.c: Likewise.
26496         * config/ia64/ia64.c: Likewise.
26497         * config/iq2000/iq2000.c: Likewise.
26498         * config/lm32/lm32.c: Likewise.
26499         * config/m32c/m32c-pragma.c: Likewise.
26500         * config/m32c/m32c.c: Likewise.
26501         * config/m32r/m32r.c: Likewise.
26502         * config/m68k/m68k.c: Likewise.
26503         * config/mcore/mcore.c: Likewise.
26504         * config/mep/mep-pragma.c: Likewise.
26505         * config/mep/mep.c: Likewise.
26506         * config/microblaze/microblaze-c.c: Likewise.
26507         * config/microblaze/microblaze.c: Likewise.
26508         * config/mips/mips.c: Likewise.
26509         * config/mmix/mmix.c: Likewise.
26510         * config/mn10300/mn10300.c: Likewise.
26511         * config/moxie/moxie.c: Likewise.
26512         * config/msp430/msp430-c.c: Likewise.
26513         * config/msp430/msp430.c: Likewise.
26514         * config/nds32/nds32-cost.c: Likewise.
26515         * config/nds32/nds32-fp-as-gp.c: Likewise.
26516         * config/nds32/nds32-intrinsic.c: Likewise.
26517         * config/nds32/nds32-isr.c: Likewise.
26518         * config/nds32/nds32-md-auxiliary.c: Likewise.
26519         * config/nds32/nds32-memory-manipulation.c: Likewise.
26520         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26521         * config/nds32/nds32-predicates.c: Likewise.
26522         * config/nds32/nds32.c: Likewise.
26523         * config/nios2/nios2.c: Likewise.
26524         * config/nvptx/nvptx.c: Likewise.
26525         * config/pa/pa.c: Likewise.
26526         * config/pdp11/pdp11.c: Likewise.
26527         * config/rl78/rl78-c.c: Likewise.
26528         * config/rl78/rl78.c: Likewise.
26529         * config/rs6000/rs6000-c.c: Likewise.
26530         * config/rs6000/rs6000.c: Likewise.
26531         * config/rx/rx.c: Likewise.
26532         * config/s390/s390-c.c: Likewise.
26533         * config/s390/s390.c: Likewise.
26534         * config/sh/sh-c.c: Likewise.
26535         * config/sh/sh-mem.cc: Likewise.
26536         * config/sh/sh.c: Likewise.
26537         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
26538         * config/sh/sh_treg_combine.cc: Likewise.
26539         * config/sol2-c.c: Likewise.
26540         * config/sol2-cxx.c: Likewise.
26541         * config/sol2-stubs.c: Likewise.
26542         * config/sol2.c: Likewise.
26543         * config/sparc/sparc-c.c: Likewise.
26544         * config/sparc/sparc.c: Likewise.
26545         * config/spu/spu-c.c: Likewise.
26546         * config/spu/spu.c: Likewise.
26547         * config/stormy16/stormy16.c: Likewise.
26548         * config/tilegx/mul-tables.c: Likewise.
26549         * config/tilegx/tilegx-c.c: Likewise.
26550         * config/tilegx/tilegx.c: Likewise.
26551         * config/tilepro/mul-tables.c: Likewise.
26552         * config/tilepro/tilepro-c.c: Likewise.
26553         * config/tilepro/tilepro.c: Likewise.
26554         * config/v850/v850-c.c: Likewise.
26555         * config/v850/v850.c: Likewise.
26556         * config/vax/vax.c: Likewise.
26557         * config/visium/visium.c: Likewise.
26558         * config/vms/vms-c.c: Likewise.
26559         * config/vms/vms.c: Likewise.
26560         * config/vxworks.c: Likewise.
26561         * config/winnt-c.c: Likewise.
26562         * config/xtensa/xtensa.c: Likewise.
26563         * common/config/bfin/bfin-common.c: Likewise.
26564
26565 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
26566
26567         * tree.h (tree_code_for_canonical_type_merging): New function.
26568         * tree.c (gimple_canonical_types_compatible_p): Use
26569         tree_code_for_canonical_type_merging..
26570
26571 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26572
26573         PR c++/66192
26574         PR target/66200
26575         * doc/tm.texi: Regenerate.
26576         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
26577         * target.def (TARGET_RELAXED_ORDERING): Likewise.
26578         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
26579         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
26580         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
26581         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
26582         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
26583         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
26584         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
26585
26586 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26587
26588         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
26589         register fma steering pass.
26590         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
26591         AARCH64_TUNE_FMA_STEERING.
26592
26593 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
26594
26595         * tree.c (verify_type_variant): Verify that type and variant is
26596         compatible.
26597         (gimple_canonical_types_compatible_p): Look for main variants.
26598
26599 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
26600
26601         * config.gcc (powerpc*-*-*): Add support for a new configure
26602         option --with-advance-toolchain=<xxx> which overrides using the
26603         default header files, libraries and dynamic linker.
26604
26605         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
26606         specs to support the configure --with-advance-toolchain=<xxx>
26607         option.
26608         (INCLUDE_EXTRA_SPEC): Likewise.
26609         (LINK_OS_EXTRA_SPEC32): Likewise.
26610         (LINK_OK_EXTRA_SPEC64): Likewise.
26611         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
26612         (DYNAMIC_LINKER_PREFIX): Likewise.
26613         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
26614         toolchain support.
26615         (GLIBC_DYNAMIC_LINKER32): Likewise.
26616         (GLIBC_DYNAMIC_LINKER64): Likewise.
26617         (LINK_OS_LINUX_SPEC32): Likewise.
26618         (LINK_OS_LINUX_SPEC64): Likewise.
26619
26620         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
26621         configuration option.
26622
26623 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
26624
26625         PR target/66275
26626         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
26627         to determine current function ABI.
26628         (ix86_function_value_regno_p): Ditto.
26629
26630 2015-06-03  Martin Liska  <mliska@suse.cz>
26631
26632         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
26633         * bitmap.h (struct bitmap_usage): Likewise.
26634         * ggc-common.c (struct ggc_usage): Likewise.
26635         * mem-stats.h (struct mem_location): Likewise.
26636         (struct mem_usage): Likewise.
26637         * vec.c (struct vec_usage): Likewise.
26638
26639 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
26640
26641         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
26642         -Bsymbolic.
26643
26644 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
26645
26646         * doc/plugins.texi (enum plugin_event): New event.
26647         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
26648         and PLUGIN_FINISH_FUNCTION.
26649         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
26650         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
26651
26652 2015-06-03  Richard Biener  <rguenther@suse.de>
26653
26654         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26655         compute GROUP_GAP for the first element.
26656         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
26657         on in-group gaps.
26658
26659 2015-06-03  Nick Clifton  <nickc@redhat.com>
26660
26661         * config/rl78/rl78-real.md: Add peepholes to avoid a register
26662         copy when calling a function.
26663         * config/rl78/rl78.c (need_to_save): Do not push the frame
26664         pointer in an interrupt handler prologue if it is never used.
26665
26666 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26667
26668         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
26669
26670 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26671
26672         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
26673         reference when cloning alias node.
26674
26675 2015-06-03  Martin Liska  <mliska@suse.cz>
26676
26677         * alloc-pool.h (struct pool_usage): Correct space padding.
26678         * ggc-page.c (ggc_print_statistics): Align columns in a report.
26679         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
26680         * tree.c (dump_tree_statistics): Align columns in a report.
26681
26682 2015-06-03  Martin Liska  <mliska@suse.cz>
26683
26684         * alloc-pool.c (allocate_pool_descriptor): Remove.
26685         (struct pool_output_info): Likewise.
26686         (print_alloc_pool_statistics): Likewise.
26687         (dump_alloc_pool_statistics): Likewise.
26688         * alloc-pool.h (struct pool_usage): New struct.
26689         (pool_allocator::initialize): Change usage of memory statistics
26690         to a new interface.
26691         (pool_allocator::release): Likewise.
26692         (pool_allocator::allocate): Likewise.
26693         (pool_allocator::remove): Likewise.
26694         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
26695         for a pool allocator.
26696         * mem-stats.h (struct mem_location): Add new ctor.
26697         (struct mem_usage): Add counter for number of
26698         instances.
26699         (mem_alloc_description::register_descriptor): New overload of
26700         * mem-stats.h (mem_location::to_string): New function.
26701         * bitmap.h (struct bitmap_usage): Use this new function.
26702         * ggc-common.c (struct ggc_usage): Likewise.
26703         the function.
26704
26705 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26706
26707         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
26708         of GCC_INSN_FLAGS_H block.
26709
26710 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
26711
26712         * explow.c (plus_constant): Update check after force_const_mem call
26713         to see if the value returned is not a NULL_RTX.
26714
26715 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26716
26717         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
26718         remove instumentation thunks calling reachable functions.
26719         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
26720         * lto/lto-partition.c (privatize_symbol_name_1): New.
26721         (privatize_symbol_name): Privatize both decl and orig_decl
26722         names for instrumented functions.
26723         * cgraph.c (cgraph_node::verify_node): Add transparent
26724         alias chain check for instrumented node.
26725
26726 2015-06-03  Marek Polacek  <polacek@redhat.com>
26727
26728         PR c/64223
26729         PR c/29358
26730         * tree.c (attribute_value_equal): Handle attribute format.
26731         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
26732
26733 2015-06-03  Richard Biener  <rguenther@suse.de>
26734
26735         PR tree-optimization/63916
26736         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
26737         Forward-propagate non-invariant addresses by splicing their
26738         reference ops if the result isn't going to be used by PRE.
26739         (vn_reference_lookup_3): Remove pointless assert.
26740
26741 2015-06-03  Richard Biener  <rguenther@suse.de>
26742
26743         PR tree-optimization/66375
26744         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
26745         add to the evolution before following SSA edges.
26746
26747 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
26748
26749         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
26750         (dump_use, dump_cand, find_induction_variables): Pass new argument
26751         to dump_iv.
26752         (record_use): Preserve the ssa name information in IV.
26753
26754 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26755
26756         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
26757         NO_MODE_TEST.
26758         (add_mode_tests): Don't add mode tests if the predicate only
26759         accepts scalar constant integers.  Otherwise, allow the mode
26760         of "op" to be VOIDmode if the predicate does accept such integers.
26761
26762 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
26763
26764         PR target/66258
26765         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
26766         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
26767         (aarch64_secondary_reload): Likewise
26768         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
26769         to !TARGET_FLOAT.
26770         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
26771         Likewise.
26772
26773 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
26774             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26775
26776         PR target/65768
26777         * cprop.c (try_replace_reg): Check cost of constants before propagating.
26778
26779 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26780
26781         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
26782         provide access to the IBM extended double floating point mode if
26783         long double is IEEE 128-bit floating point.
26784         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
26785         point if long double is the IBM extended double type.
26786
26787         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
26788         enable adding IEEE 128-bit floating point support.
26789         (-mfloat128-software): Likewise.
26790         (-mfloat128-sw): Likewise.
26791
26792         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
26793         128-bit floating point types to occupy any register if
26794         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
26795         -mfloat128-software is enabled.
26796         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
26797         support.
26798         (rs6000_option_override_internal): Add -mfloat128-* support.
26799         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
26800
26801         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
26802         and float128 type nodes.
26803         (ieee128_float_type_node): Likewise.
26804         (ibm128_float_type_node): Likewise.
26805
26806 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26807
26808         PR target/66136
26809         * config/aarch64/geniterators.sh: Rewrite in awk.
26810
26811 2015-06-02  Martin Liska  <mliska@suse.cz>
26812
26813         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
26814         values to avoid -Wmaybe-uninitialized errors.
26815
26816 2015-06-02  Richard Biener  <rguenther@suse.de>
26817
26818         PR debug/65549
26819         * dwarf2out.c (lookup_context_die): New function.
26820         (resolve_addr): Avoid forcing a full DIE for the
26821         target of a DW_TAG_GNU_call_site during late compilation.
26822         Instead create a stub DIE without a type if we have a
26823         context DIE present.
26824
26825 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
26826
26827         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
26828
26829 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26830
26831         PR tree-optimization/48052
26832         * cfgloop.h (struct control_iv): New.
26833         (struct loop): New field control_ivs.
26834         * tree-ssa-loop-niter.c : Include "stor-layout.h".
26835         (number_of_iterations_lt): Set no_overflow information.
26836         (number_of_iterations_exit): Init control iv in niter struct.
26837         (record_control_iv): New.
26838         (estimate_numbers_of_iterations_loop): Call record_control_iv.
26839         (loop_exits_before_overflow): New.  Interface factored out of
26840         scev_probably_wraps_p.
26841         (scev_probably_wraps_p): Factor loop niter related code into
26842         loop_exits_before_overflow.
26843         (free_numbers_of_iterations_estimates_loop): Free control ivs.
26844         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
26845
26846 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
26847
26848         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
26849         the target doesn't belong to the current function.
26850
26851 2015-06-02  Marek Polacek  <polacek@redhat.com>
26852
26853         PR middle-end/66345
26854         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
26855         get_maxval_strlen does not produce an INTEGER_CST.
26856
26857 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
26858
26859         * config/arc/constraints.md: Use lower-case names in match_code.
26860         * config/mmix/constraints.md: Likewise.
26861
26862 2015-06-02  Richard Biener  <rguenther@suse.de>
26863
26864         PR tree-optimization/65961
26865         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
26866         check and clarify dump message.
26867         (vect_build_slp_tree): If all children are built up from scalars
26868         build up the parent from scalars instead.
26869         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
26870
26871 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
26872
26873         PR other/65366
26874         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
26875         instead of print ... .
26876
26877 2015-06-02  Alan Modra  <amodra@gmail.com>
26878
26879         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
26880         2014-08-11 change.
26881
26882 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26883
26884         PR tree-optimization/52563
26885         PR tree-optimization/62173
26886         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
26887         (alloc_iv, set_iv): New parameter.
26888         (determine_biv_step): Delete.
26889         (find_bivs): Inline original determine_biv_step.  Pass new
26890         argument to set_iv.
26891         (idx_find_step): Use no_overflow information for conversion.
26892         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
26893         resolve_mixers handle folded_casts.
26894         (instantiate_scev_name): Change bool parameter to bool pointer.
26895         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
26896         (instantiate_array_ref, instantiate_scev_not): Ditto.
26897         (instantiate_scev_3, instantiate_scev_2): Ditto.
26898         (instantiate_scev_1, instantiate_scev_r): Ditto.
26899         (instantiate_scev_convert, ): Change parameter.  Pass argument
26900         to chrec_convert_aggressive.
26901         (instantiate_scev): Change argument.
26902         (resolve_mixers): New parameter and set it.
26903         (scev_const_prop): New argument.
26904         * tree-scalar-evolution.h (resolve_mixers): New parameter.
26905         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
26906         of chrec_conert_1.
26907         (chrec_convert): New parameter.  Move definition below.
26908         (chrec_convert_aggressive): New parameter and set it.  Call
26909         convert_affine_scev.
26910         * tree-chrec.h (chrec_convert): New parameter.
26911         (chrec_convert_aggressive): Ditto.
26912
26913 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
26914
26915         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
26916         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
26917         the LHS of a no-return call if its type has variable size.
26918         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
26919         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
26920
26921 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
26922
26923         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
26924         * config.in: Regenerate.
26925
26926 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
26927
26928         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
26929         consecutive accesses within outer-loop with force_vectorize
26930         for references with zero step in inner-loop.
26931
26932 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26933
26934         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
26935         rather than from gcc/build directory.
26936
26937 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26938
26939         PR target/65697
26940         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
26941         for __sync memory models, emit initial loads and final barriers as
26942         appropriate.
26943
26944 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26945
26946         PR target/65697
26947         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
26948         (aarch64_split_atomic_op): Check for __sync memory models, emit
26949         appropriate initial loads and final barriers.
26950
26951 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26952
26953         * Makefile.in: Fix gcov dependencies that should
26954         not point to a build folder.
26955
26956 2015-06-01  Richard Biener  <rguenther@suse.de>
26957
26958         Revert
26959         2015-05-29  Richard Biener  <rguenther@suse.de>
26960
26961         PR tree-optimization/66314
26962         * tree-ssa-threadupdate.c (create_block_for_threading): Add
26963         parameter that says which loop the new block belongs to.
26964         (ssa_create_duplicates): Blocks duplicated for the threaded
26965         path belong to the loop of the thread destination.
26966
26967 2015-06-01  Martin Liska  <mliska@suse.cz>
26968
26969         * sched-deps.c: Include pool-alloc.h before
26970         cselib.h header file is included.
26971
26972 2015-06-01  Richard Biener  <rguenther@suse.de>
26973
26974         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
26975         functions.
26976
26977 2015-06-01  Martin Liska  <mliska@suse.cz>
26978
26979         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
26980         a function local variable.
26981
26982 2015-06-01  Martin Liska  <mliska@suse.cz>
26983
26984         * alloc-pool.c (create_alloc_pool): Remove.
26985         (empty_alloc_pool): Likewise.
26986         (free_alloc_pool): Likewise.
26987         (free_alloc_pool_if_empty): Likewise.
26988         (pool_alloc): Likewise.
26989         (pool_free): Likewise.
26990         * alloc-pool.h: Remove old declarations.
26991
26992 2015-06-01  Martin Liska  <mliska@suse.cz>
26993
26994         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
26995         (ira_create_object): Likewise.
26996         (ira_create_allocno): Likewise.
26997         (ira_create_live_range): Likewise.
26998         (copy_live_range): Likewise.
26999         (ira_finish_live_range): Likewise.
27000         (ira_free_allocno_costs): Likewise.
27001         (finish_allocno): Likewise.
27002         (finish_allocnos): Likewise.
27003         (initiate_prefs): Likewise.
27004         (ira_create_pref): Likewise.
27005         (finish_pref): Likewise.
27006         (finish_prefs): Likewise.
27007         (initiate_copies): Likewise.
27008         (ira_create_copy): Likewise.
27009         (finish_copy): Likewise.
27010         (finish_copies): Likewise.
27011         (finish_prefs): Likewise.
27012
27013 2015-06-01  Martin Liska  <mliska@suse.cz>
27014
27015         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
27016         (allocate_and_init_ipcp_value): Likewise.
27017         (ipcp_lattice::add_value): Likewise.
27018         (merge_agg_lats_step): Likewise.
27019         (ipcp_driver): Likewise.
27020         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
27021         (ipa_free_all_structures_after_iinln): Likewise.
27022         * ipa-prop.h: Likewise.
27023
27024 2015-06-01  Martin Liska  <mliska@suse.cz>
27025
27026         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
27027         pool allocator.
27028         (set_hint_predicate): Likewise.
27029         (inline_summary_alloc): Likewise.
27030         (reset_inline_edge_summary): Likewise.
27031         (reset_inline_summary): Likewise.
27032         (set_cond_stmt_execution_predicate): Likewise.
27033         (set_switch_stmt_execution_predicate): Likewise.
27034         (compute_bb_predicates): Likewise.
27035         (estimate_function_body_sizes): Likewise.
27036         (inline_free_summary): Likewise.
27037
27038 2015-06-01  Martin Liska  <mliska@suse.cz>
27039
27040         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
27041         (ipa_edge_duplication_hook): Likewise.
27042         (ipa_free_all_structures_after_ipa_cp): Likewise.
27043         (ipa_free_all_structures_after_iinln): Likewise.
27044
27045 2015-06-01  Martin Liska  <mliska@suse.cz>
27046
27047         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
27048         (ipa_profile_generate_summary): Likewise.
27049         (ipa_profile_read_summary): Likewise.
27050         (ipa_profile): Likewise.
27051
27052 2015-06-01  Martin Liska  <mliska@suse.cz>
27053
27054         * tree-ssa-structalias.c (new_var_info): Use new type-based
27055         pool allocator.
27056         (new_constraint): Likewise.
27057         (init_alias_vars): Likewise.
27058         (delete_points_to_sets): Likewise.
27059
27060 2015-06-01  Martin Liska  <mliska@suse.cz>
27061
27062         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
27063         (free_strinfo): Likewise.
27064         (pass_strlen::execute): Likewise.
27065
27066 2015-06-01  Martin Liska  <mliska@suse.cz>
27067
27068         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
27069         pool allocator.
27070         (vn_reference_insert_pieces): Likewise.
27071         (vn_phi_insert): Likewise.
27072         (visit_reference_op_call): Likewise.
27073         (copy_phi): Likewise.
27074         (copy_reference): Likewise.
27075         (process_scc): Likewise.
27076         (allocate_vn_table): Likewise.
27077         (free_vn_table): Likewise.
27078
27079 2015-06-01  Martin Liska  <mliska@suse.cz>
27080
27081         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
27082         pool allocator.
27083         (add_repeat_to_ops_vec): Likewise.
27084         (get_ops): Likewise.
27085         (maybe_optimize_range_tests): Likewise.
27086         (init_reassoc): Likewise.
27087         (fini_reassoc): Likewise.
27088
27089 2015-06-01  Martin Liska  <mliska@suse.cz>
27090
27091         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
27092         pool allocator.
27093         (bitmap_set_new): Likewise.
27094         (get_or_alloc_expr_for_constant): Likewise.
27095         (get_or_alloc_expr_for): Likewise.
27096         (phi_translate_1): Likewise.
27097         (compute_avail): Likewise.
27098         (init_pre): Likewise.
27099         (fini_pre): Likewise.
27100
27101 2015-06-01  Martin Liska  <mliska@suse.cz>
27102
27103         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
27104         (delete_dep_node): Likewise.
27105         (create_deps_list): Likewise.
27106         (free_deps_list): Likewise.
27107         (sched_deps_init): Likewise.
27108         (sched_deps_finish): Likewise.
27109
27110 2015-06-01  Martin Liska  <mliska@suse.cz>
27111
27112         * regcprop.c (free_debug_insn_changes): Use new type-based
27113         pool allocator.
27114         (replace_oldest_value_reg): Likewise.
27115         (pass_cprop_hardreg::execute): Likewise.
27116
27117 2015-06-01  Martin Liska  <mliska@suse.cz>
27118
27119         * ira-build.c (initiate_cost_vectors): Use new type-based
27120         pool allocator.
27121         (ira_allocate_cost_vector): Likewise.
27122         (ira_free_cost_vector): Likewise.
27123         (finish_cost_vectors): Likewise.
27124
27125 2015-06-01  Martin Liska  <mliska@suse.cz>
27126
27127         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
27128         pool allocator.
27129         (free_sched_pools): Likewise.
27130         * sel-sched-ir.h (_list_alloc): Likewise.
27131         (_list_remove): Likewise.
27132
27133 2015-06-01  Martin Liska  <mliska@suse.cz>
27134
27135         * stmt.c (add_case_node): Use new type-based pool allocator.
27136         (expand_case): Likewise.
27137         (expand_sjlj_dispatch_table): Likewise.
27138
27139 2015-06-01  Martin Liska  <mliska@suse.cz>
27140
27141         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
27142         (free_bb): Likewise.
27143         (pass_cse_reciprocals::execute): Likewise.
27144
27145 2015-06-01  Martin Liska  <mliska@suse.cz>
27146
27147         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
27148         (sra_deinitialize) Likewise.
27149         (create_access_1) Likewise.
27150         (build_accesses_from_assign) Likewise.
27151         (create_artificial_child_access) Likewise.
27152
27153 2015-06-01  Martin Liska  <mliska@suse.cz>
27154
27155         * dse.c (get_group_info):Use new type-based pool allocator.
27156         (dse_step0) Likewise.
27157         (free_store_info) Likewise.
27158         (delete_dead_store_insn) Likewise.
27159         (free_read_records) Likewise.
27160         (record_store) Likewise.
27161         (replace_read) Likewise.
27162         (check_mem_read_rtx) Likewise.
27163         (scan_insn) Likewise.
27164         (dse_step1) Likewise.
27165         (dse_step7) Likewise.
27166
27167 2015-06-01  Martin Liska  <mliska@suse.cz>
27168
27169         * df-scan.c (struct df_scan_problem_data):Use new type-based
27170         pool allocator.
27171         (df_scan_free_internal) Likewise.
27172         (df_scan_alloc) Likewise.
27173         (df_grow_reg_info) Likewise.
27174         (df_free_ref) Likewise.
27175         (df_insn_create_insn_record) Likewise.
27176         (df_mw_hardreg_chain_delete) Likewise.
27177         (df_insn_info_delete) Likewise.
27178         (df_free_collection_rec) Likewise.
27179         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
27180         (df_sort_and_compress_mws) Likewise.
27181         (df_ref_create_structure) Likewise.
27182         (df_ref_record) Likewise.
27183
27184 2015-06-01  Martin Liska  <mliska@suse.cz>
27185
27186         * df-problems.c (df_chain_create):Use new type-based pool allocator.
27187         (df_chain_unlink_1) Likewise.
27188         (df_chain_unlink) Likewise.
27189         (df_chain_remove_problem) Likewise.
27190         (df_chain_alloc) Likewise.
27191         (df_chain_free) Likewise.
27192         * df.h (struct dataflow) Likewise.
27193
27194 2015-06-01  Martin Liska  <mliska@suse.cz>
27195
27196         * cselib.c (new_elt_list):Use new type-based pool allocator.
27197         (new_elt_loc_list) Likewise.
27198         (unchain_one_elt_list) Likewise.
27199         (unchain_one_elt_loc_list) Likewise.
27200         (unchain_one_value) Likewise.
27201         (new_cselib_val) Likewise.
27202         (cselib_init) Likewise.
27203         (cselib_finish) Likewise.
27204
27205 2015-06-01  Martin Liska  <mliska@suse.cz>
27206
27207         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
27208         (sh_reorg) Likewise.
27209
27210 2015-06-01  Martin Liska  <mliska@suse.cz>
27211
27212         * cfg.c (initialize_original_copy_tables):Use new type-based
27213         pool allocator.
27214         (free_original_copy_tables) Likewise.
27215         (copy_original_table_clear) Likewise.
27216         (copy_original_table_set) Likewise.
27217
27218 2015-06-01  Martin Liska  <mliska@suse.cz>
27219
27220         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
27221         pool allocator.
27222         (asan_mem_ref_new) Likewise.
27223         (free_mem_ref_resources) Likewise.
27224
27225 2015-06-01  Martin Liska  <mliska@suse.cz>
27226
27227         * var-tracking.c (variable_htab_free):Use new type-based
27228         pool allocator.
27229         (attrs_list_clear) Likewise.
27230         (attrs_list_insert) Likewise.
27231         (attrs_list_copy) Likewise.
27232         (shared_hash_unshare) Likewise.
27233         (shared_hash_destroy) Likewise.
27234         (unshare_variable) Likewise.
27235         (var_reg_delete_and_set) Likewise.
27236         (var_reg_delete) Likewise.
27237         (var_regno_delete) Likewise.
27238         (drop_overlapping_mem_locs) Likewise.
27239         (variable_union) Likewise.
27240         (insert_into_intersection) Likewise.
27241         (canonicalize_values_star) Likewise.
27242         (variable_merge_over_cur) Likewise.
27243         (dataflow_set_merge) Likewise.
27244         (remove_duplicate_values) Likewise.
27245         (variable_post_merge_new_vals) Likewise.
27246         (dataflow_set_preserve_mem_locs) Likewise.
27247         (dataflow_set_remove_mem_locs) Likewise.
27248         (variable_from_dropped) Likewise.
27249         (variable_was_changed) Likewise.
27250         (set_slot_part) Likewise.
27251         (clobber_slot_part) Likewise.
27252         (delete_slot_part) Likewise.
27253         (loc_exp_insert_dep) Likewise.
27254         (notify_dependents_of_changed_value) Likewise.
27255         (emit_notes_for_differences_1) Likewise.
27256         (vt_emit_notes) Likewise.
27257         (vt_initialize) Likewise.
27258         (vt_finalize) Likewise.
27259
27260 2015-06-01  Martin Liska  <mliska@suse.cz>
27261
27262         * ira-color.c (init_update_cost_records):Use new type-based
27263         pool allocator.
27264         (get_update_cost_record) Likewise.
27265         (free_update_cost_record_list) Likewise.
27266         (finish_update_cost_records) Likewise.
27267         (initiate_cost_update) Likewise.
27268
27269 2015-06-01  Martin Liska  <mliska@suse.cz>
27270
27271         * lra.c (init_insn_regs): Use new type-based pool allocator.
27272         (new_insn_reg) Likewise.
27273         (free_insn_reg) Likewise.
27274         (free_insn_regs) Likewise.
27275         (finish_insn_regs) Likewise.
27276         (init_insn_recog_data) Likewise.
27277         (init_reg_info) Likewise.
27278         (finish_reg_info) Likewise.
27279         (lra_free_copies) Likewise.
27280         (lra_create_copy) Likewise.
27281         (invalidate_insn_data_regno_info) Likewise.
27282
27283 2015-06-01  Martin Liska  <mliska@suse.cz>
27284
27285         * lra-lives.c (free_live_range): Use new type-based pool allocator.
27286         (free_live_range_list) Likewise.
27287         (create_live_range) Likewise.
27288         (copy_live_range) Likewise.
27289         (lra_merge_live_ranges) Likewise.
27290         (remove_some_program_points_and_update_live_ranges) Likewise.
27291         (lra_live_ranges_init) Likewise.
27292         (lra_live_ranges_finish) Likewise.
27293
27294 2015-06-01  Martin Liska  <mliska@suse.cz>
27295
27296         * et-forest.c (et_new_occ): Use new type-based pool allocator.
27297         (et_new_tree): Likewise.
27298         (et_free_tree): Likewise.
27299         (et_free_tree_force): Likewise.
27300         (et_free_pools): Likewise.
27301         (et_split): Likewise.
27302
27303 2015-06-01  Martin Liska  <mliska@suse.cz>
27304
27305         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
27306         to header file.
27307         * alloc-pool.h (pool_allocator::pool_allocator): New function.
27308         (pool_allocator::release): Likewise.
27309         (inline pool_allocator::release_if_empty): Likewise.
27310         (inline pool_allocator::~pool_allocator): Likewise.
27311         (pool_allocator::allocate): Likewise.
27312         (pool_allocator::remove): Likewise.
27313
27314 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27315
27316         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
27317         in comment.
27318
27319 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27320
27321         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
27322         to fusible_ops.
27323         * config/arm/arm.c (arm_print_tune_info): Likewise.
27324         (arm_macro_fusion_p): Likewise.
27325         (arm_macro_fusion_pair_p): Likewise.
27326
27327 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27328
27329         * config/aarch64/aarch64-protos.h (tune_params): Rename
27330         fuseable_ops to fusible_ops.
27331         * config/aarch64/aarch64.c (generic_tunings): Rename
27332         fuseable_ops to fusible_ops.
27333         (cortexa53_tunings): Likewise.
27334         (cortexa57_tunings): Likewise.
27335         (thunderx_tunings): Likewise.
27336         (xgene1_tunings): Likewise.
27337         (aarch64_macro_fusion_p): Likewise.
27338         (aarch64_macro_fusion_pair_p): Likewise.
27339
27340 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27341
27342         * config/s390/driver-native.c: New file.
27343         * config/s390/x-native: New file.
27344         * config.host: Add new files for s390.
27345         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
27346         and -march=native
27347         * config.gcc: Likewise.
27348         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
27349         * config/s390/s390-opts.h (enum processor_type): Ditto.
27350         * config/s390/s390.c (s390_option_override): Catch unhandled
27351         PROCESSOR_NATIVE
27352
27353 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
27354
27355         PR target/65527
27356         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
27357         redirection for instrumented calls.
27358         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
27359         (append_compiler_options): Append -fcheck-pointer-bounds.
27360         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
27361         (chkp_redirect_edge): New.
27362         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
27363         (chkp_redirect_edge): New.
27364
27365 2015-06-01  Richard Biener  <rguenther@suse.de>
27366
27367         PR tree-optimization/66280
27368         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
27369         def-use walking.
27370
27371 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27372
27373         * config/aarch64/aarch64.md
27374         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
27375         logic_shift_imm.
27376
27377 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27378
27379         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
27380         Remove obsolete kludge.
27381
27382 2015-06-01  Richard Biener  <rguenther@suse.de>
27383
27384         * tree-ssa-reassoc.c (get_rank): Simplify.
27385
27386 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
27387
27388         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
27389         * configure: Regenerated.
27390
27391 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
27392
27393         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
27394         issue (add space between string literal and macro).
27395         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
27396
27397 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
27398
27399         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
27400         implict or explicit -fPIE or -fpie.
27401
27402 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
27403
27404         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
27405
27406 2015-05-28  DJ Delorie  <dj@redhat.com>
27407
27408         * expmed.c (extract_bit_field_1): Avoid clobbering a
27409         yet-to-be-used base/index register.
27410
27411 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
27412
27413         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
27414         (alias_stats): Add num_universal.
27415         (alias_set_subset_of): Special case pointers; be ready for NULL
27416         children.
27417         (alias_sets_conflict_p): Special case pointers; be ready for NULL
27418         children.
27419         (init_alias_set_entry): Break out from ...
27420         (record_alias_subset): ... here; propagate new fields;
27421         allocate children only when really needed.
27422         (get_alias_set): Do less generous pointer globbing.
27423         (dump_alias_stats_in_alias_c): Update statistics.
27424
27425 2015-05-30  Alan Modra  <amodra@gmail.com>
27426
27427         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
27428         correct block for use of r12.
27429         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
27430
27431 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27432
27433         PR target/66215
27434         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
27435         with -mhotpatch=.
27436
27437 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
27438
27439         PR tree-optimization/66142
27440         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
27441         virtual phis that feed themselves.
27442
27443 2015-05-29  Richard Biener  <rguenther@suse.de>
27444
27445         PR tree-optimization/66314
27446         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27447         parameter that says which loop the new block belongs to.
27448         (ssa_create_duplicates): Blocks duplicated for the threaded
27449         path belong to the loop of the thread destination.
27450
27451 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27452
27453         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
27454         to cleanup-saved-temps.
27455         * doc/sourcebuild.texi (Clean up generated test files): Expand
27456         introduction.
27457         (dg-keep-saved-temps): Document new proc.
27458         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
27459         cleanup-saved-temps): Remove.
27460
27461 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
27462
27463         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
27464         gcc_AC_CHECK_DECLS.
27465         * configure: Regenerate.
27466
27467 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27468
27469         * config/nios2/linux.h (CPP_SPEC): Define.
27470
27471 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27472
27473         * config/microblaze/linux.h (CPP_SPEC): Define.
27474
27475 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27476
27477         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
27478         -pthread is specified.
27479
27480 2015-05-28  Richard Biener  <rguenther@suse.de>
27481
27482         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
27483         (vect_fixup_scalar_cycles_with_patterns): Likewise.
27484         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
27485         after pattern recog.
27486         (vect_create_epilog_for_reduction): Properly handle reductions
27487         with patterns.
27488         (vectorizable_reduction): Likewise.
27489         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
27490         reduction chains.
27491         (vect_get_constant_vectors): Create the correct number of
27492         initial values for reductions.
27493         (vect_schedule_slp_instance): Handle reduction chains that are
27494         type changing properly.
27495         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
27496
27497 2015-05-28  Richard Biener  <rguenther@suse.de>
27498
27499         PR tree-optimization/66142
27500         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
27501         values better in memcpy destination handling.  Handle non-aliasing
27502         we discover here.
27503
27504 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
27505
27506         PR target/63810
27507         * config/darwin-c.c (version_components): New global enum.
27508         (parse_version, version_as_legacy_macro)
27509         (version_as_modern_macro, macosx_version_as_macro): New functions.
27510         (version_as_macro): Remove.
27511         (darwin_cpp_builtins): Use new function.
27512
27513 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
27514
27515         * builtins.c (expand_builtin_acc_on_device): Mark parameters
27516         with ATTRIBUTE_UNUSED.
27517
27518 2015-05-28  Julian Brown  <julian@codesourcery.com>
27519
27520         PR libgomp/65742
27521
27522         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
27523         sequence for !ACCEL_COMPILER.
27524
27525 2015-05-28  Nick Clifton  <nickc@redhat.com>
27526
27527         * config/rx/rx.c (push_regs): New function.  Extracts code from...
27528         (rx_expand_prologue): ... here.  Use push_regs to push even small
27529         spans of registers.
27530         (pop_regs): New function.
27531         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
27532         registers.
27533
27534 2015-05-28  Richard Biener  <rguenther@suse.de>
27535
27536         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
27537         member.
27538         (SLP_INSTANCE_BODY_COST_VEC): Remove.
27539         (vect_update_slp_costs_according_to_vf): Likewise.
27540         (vect_slp_analyze_operations): Update prototype.
27541         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
27542         vect_update_slp_costs_according_to_vf, adjust.
27543         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
27544         (vect_analyze_slp_cost_1): Likewise.
27545         (vect_analyze_slp_cost): Likewise.  Properly deal with
27546         widening reduction ops.  Commit body costs.
27547         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
27548         cost for loops from here.
27549         (vect_slp_analyze_operations): But do it from here when
27550         the vectorization factor is known and stmts are analyzed.
27551         (vect_bb_vectorization_profitable_p): Simplify.
27552         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
27553         (vect_update_slp_costs_according_to_vf): Remove.
27554
27555 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
27556             H.J. Lu  <hongjiu.lu@intel.com>
27557
27558         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
27559         (BUILD_CFLAGS): Likewise.
27560         (BUILD_CXXFLAGS): Likewise.
27561         (LINKER): Add @NO_PIE_FLAG@.
27562         (BUILD_LDFLAGS): Likewise.
27563         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
27564         --enable-default-pie.
27565         * common.opt (fPIE): Initialize to -1.
27566         (fpie): Likewise.
27567         (no-pie): New option.
27568         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
27569         * configure.ac: Add --enable-default-pie.
27570         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
27571         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
27572         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
27573         * gcc.c (NO_PIE_SPEC): New.
27574         (PIE_SPEC): Likewise.
27575         (NO_FPIE1_SPEC): Likewise.
27576         (FPIE1_SPEC): Likewise.
27577         (NO_FPIE2_SPEC): Likewise.
27578         (FPIE2_SPEC): Likewise.
27579         (NO_FPIE2_SPEC): Likewise.
27580         (FPIE_SPEC): Likewise.
27581         (NO_FPIE_SPEC): Likewise.
27582         (NO_FPIC1_SPEC): Likewise.
27583         (FPIC1_SPEC): Likewise.
27584         (NO_FPIC2_SPEC): Likewise.
27585         (FPIC2_SPEC): Likewise.
27586         (NO_FPIC2_SPEC): Likewise.
27587         (FPIC_SPEC): Likewise.
27588         (NO_FPIC_SPEC): Likewise.
27589         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
27590         (FPIE1_OR_FPIC1_SPEC): Likewise.
27591         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
27592         (FPIE2_OR_FPIC2_SPEC): Likewise.
27593         (NO_FPIE_AND_FPIC_SPEC): Likewise.
27594         (FPIE_OR_FPIC_SPEC): Likewise.
27595         (LD_PIE_SPEC): Likewise.
27596         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
27597         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
27598         * config/darwin.h (PIE_SPEC): Renamed to ...
27599         (DARWIN_PIE_SPEC): This.
27600         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
27601         * config/darwin9.h (PIE_SPEC): Renamed to ...
27602         (DARWIN_PIE_SPEC): This.
27603         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
27604         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
27605         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
27606         FPIE2_OR_FPIC2_SPEC.
27607         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
27608         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
27609         * config/sol2.h (ASM_PIC_SPEC): Likewise.
27610         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27611         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27612         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27613         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
27614         * config/m32r/m32r.h (ASM_SPEC): Likewise.
27615         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
27616         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
27617         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
27618         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
27619         * config/sparc/linux.h (ASM_SPEC): Likewise.
27620         * config/sparc/linux64.h (ASM_SPEC): Likewise.
27621         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
27622         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
27623         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
27624         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27625         * config/sparc/sparc.h (ASM_SPEC): Likewise.
27626         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
27627         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
27628         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
27629         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
27630         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
27631         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
27632         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
27633         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
27634         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
27635         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
27636         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
27637         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
27638         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
27639         * config/vax/linux.h (ASM_SPEC): Likewise.
27640         * doc/install.texi: Document --enable-default-pie.
27641         * doc/invoke.texi: Document -no-pie.
27642         * config.in: Regenerated.
27643         * configure: Likewise.
27644
27645 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27646
27647         PR rtl-optimization/66168
27648         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
27649         can_move_invariant_reg.
27650
27651 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
27652
27653         PR target/66148
27654         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
27655         REG_EQUAL note when doing insert.
27656
27657         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
27658         instead of "%d" for 'o' operand.
27659
27660 2015-05-27  Nathan Sidwell  <nathan@acm.org>
27661
27662         PR c++/66270
27663         * tree.c (build_pointer_type_for_mode): Canonical type does not
27664         inherit can_alias_all.
27665         (build_reference_type_for_mode): Likewise.
27666
27667 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27668
27669         * expr.h (array_at_struct_end_p): Move to...
27670         (array_ref_element_size): Likewise.
27671         (component_ref_field_offset): Likewise.
27672         * tree.h (array_ref_element_size): ...here.
27673         (array_at_struct_end_p): Likewise.
27674         (component_ref_field_offset): Likewise.
27675         * expr.c (array_ref_element_size): Move to...
27676         (array_ref_low_bound): Likewise.
27677         (array_at_struct_end_p): Likewise.
27678         (array_ref_up_bound): Likewise.
27679         (component_ref_field_offset): Likewise.
27680         * tree.c (array_ref_element_size): ...here.
27681         (array_ref_low_bound): Likewise.
27682         (array_ref_up_bound): Likewise.
27683         (array_at_struct_end_p): Likewise.
27684         (component_ref_field_offset): Likewise.
27685
27686 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27687             Szabolcs Nagy  <szabolcs.nagy@arm.com>
27688
27689         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
27690
27691 2015-05-27  Jason Merrill  <jason@redhat.com>
27692
27693         PR bootstrap/66304
27694         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
27695         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
27696         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
27697
27698 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
27699
27700         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
27701         is true.
27702
27703         * statistics.c (statistics_fini_pass): Print pass name.
27704
27705 2015-05-27  Richard Biener  <rguenther@suse.de>
27706
27707         PR tree-optimization/66272
27708         Revert parts of
27709         2014-08-15  Richard Biener  <rguenther@suse.de>
27710
27711         PR tree-optimization/62031
27712         * tree-data-ref.c (dr_analyze_indices): Do not set
27713         DR_UNCONSTRAINED_BASE.
27714         (dr_may_alias_p): All indirect accesses have to go the
27715         formerly DR_UNCONSTRAINED_BASE path.
27716         * tree-data-ref.h (struct indices): Remove
27717         unconstrained_base member.
27718         (DR_UNCONSTRAINED_BASE): Remove.
27719
27720 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
27721
27722         * dwarf2out.c: Remove block_map.
27723         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
27724         (gen_lexical_block_die): Same.
27725         (dwarf2out_function_decl): Remove block_map use.
27726         (dwarf2out_c_finalize): Same.
27727         * tree-core.h (struct tree_block): Add die field.
27728         * tree.h (BLOCK_DIE): New.
27729
27730 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27731
27732         PR target/65358
27733         * expr.c (memory_load_overlap): New function.
27734         (emit_push_insn): When pushing partial args to the stack would
27735         clobber the register part load the overlapping part into a pseudo
27736         and put it into the hard reg after pushing.  Change return type
27737         to bool.  Add bool argument.
27738         * expr.h (emit_push_insn): Change return type to bool.
27739         Add bool argument.
27740         * calls.c (expand_call): Cancel sibcall optimization when encountering
27741         partial argument on targets with ARGS_GROW_DOWNWARD and
27742         !STACK_GROWS_DOWNWARD.
27743         (emit_library_call_value_1): Update callsite of emit_push_insn.
27744         (store_one_arg): Likewise.
27745
27746 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27747
27748         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
27749
27750 2015-05-27  Martin Liska  <mliska@suse.cz>
27751
27752         * Makefile.in: Add additional dependencies related to memory report
27753         enhancement.
27754         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
27755         * bitmap.c (struct bitmap_descriptor_d): Remove.
27756         (struct loc): Likewise.
27757         (struct bitmap_desc_hasher): Likewise.
27758         (bitmap_desc_hasher::hash): Likewise.
27759         (bitmap_desc_hasher::equal): Likewise.
27760         (get_bitmap_descriptor): Likewise.
27761         (bitmap_register): User new memory descriptor API.
27762         (register_overhead): Likewise.
27763         (bitmap_find_bit): Register nsearches and search_iter statistics.
27764         (struct bitmap_output_info): Remove.
27765         (print_statistics): Likewise.
27766         (dump_bitmap_statistics): Use new memory descriptor.
27767         * bitmap.h (struct bitmap_usage): New class.
27768         * genmatch.c: Extend header file inclusion.
27769         * genpreds.c: Likewise.
27770         * ggc-common.c (struct ggc_usage): New class.
27771         (struct ggc_loc_desc_hasher): Remove.
27772         (ggc_loc_desc_hasher::hash): Likewise.
27773         (ggc_loc_desc_hasher::equal): Likewise.
27774         (struct ggc_ptr_hash_entry): Likewise.
27775         (struct ptr_hash_hasher): Likewise.
27776         (ptr_hash_hasher::hash): Likewise.
27777         (ptr_hash_hasher::equal): Likewise.
27778         (make_loc_descriptor): Likewise.
27779         (ggc_prune_ptr): Likewise.
27780         (dump_ggc_loc_statistics): Use new memory descriptor.
27781         (ggc_record_overhead): Likewise.
27782         (ggc_free_overhead): Likewise.
27783         (final_cmp_statistic): Remove.
27784         (cmp_statistic): Likewise.
27785         (ggc_add_statistics): Liekwise.
27786         (ggc_prune_overhead_list): Likewise.
27787         * hash-map-traits.h: New file.
27788         * hash-map.h (struct default_hashmap_traits): Move the traits to a
27789         separate header file.
27790         * hash-set.h: Pass memory statistics info to ctor.
27791         * hash-table.c (void dump_hash_table_loc_statistics): New function.
27792         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
27793         (hash_table::~hash_table): Register memory release operation.
27794         (hash_table::alloc_entries): Handle memory allocation operation.
27795         (hash_table::expand): Likewise.
27796         * inchash.c (iterative_hash_hashval_t): Move implementation to header
27797         file.
27798         (iterative_hash_host_wide_int): Likewise.
27799         * inchash.h (class hash): Likewise.
27800         * mem-stats-traits.h: New file.
27801         * mem-stats.h: New file.
27802         (mem_location): Add new class.
27803         (mem_usage): Likewise.
27804         (mem_alloc_description): Likewise.
27805         * sese.c: Add new header file inclusision.
27806         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
27807         and hash_set.
27808         * tree-sra.c: Add new header file inclusision.
27809         * vec.c (struct vec_descriptor): Remove.
27810         (hash_descriptor): Likewise.
27811         (struct vec_usage): Likewise.
27812         (struct ptr_hash_entry): Likewise.
27813         (hash_ptr): Likewise.
27814         (eq_ptr): Likewise.
27815         (vec_prefix::register_overhead): Use new memory descriptor API.
27816         (vec_prefix::release_overhead): Likewise.
27817         (add_statistics): Remove.
27818         (dump_vec_loc_statistics): Use new memory descriptor API.
27819         * vec.h (struct vec_prefix): Likewise.
27820         (va_heap::reserve): Likewise.
27821         (va_heap::release): Likewise.
27822         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
27823
27824 2015-05-27  Richard Biener  <rguenther@suse.de>
27825
27826         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
27827         earlier and remove ??? comment.
27828         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
27829         and got called from loop analysis bail out.  Always pass the SLP
27830         node to the vectorizable_* functions.
27831         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
27832         the premature SLP check here.
27833         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
27834         detected SLP stmts.
27835         (vect_detect_hybrid_slp_1): Likewise.
27836
27837 2015-05-26  Jeff Law  <law@redhat.com>
27838
27839         * combine.c (find_split_point): Verify that the shift count is a
27840         constant when choosing (plus (ashift ...)) as a split point.
27841
27842         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
27843         No functional changes.
27844
27845 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
27846
27847         * ipa-polymorphic-call.c
27848         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
27849         case when call target is already known.
27850
27851 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
27852
27853         PR target/65979
27854         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
27855         take into account the case that operands[1] and operands[2]
27856         are the same register.
27857
27858 2015-05-26  Michael Matz  <matz@suse.de>
27859
27860         PR middle-end/66251
27861
27862         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
27863         stores.
27864         (vect_create_vectorized_demotion_stmts): Always set
27865         STMT_VINFO_VEC_STMT, also with SLP.
27866         (vectorizable_store): Handle strided group stores.
27867
27868 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
27869
27870         PR target/66049
27871         * config/aarch64/aarch64.md
27872         (*adds_shift_imm_<mode>):  New pattern.
27873         (*subs_shift_imm_<mode>):  Likewise.
27874         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
27875         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
27876         (*add_uxt<mode>_shift2): Likewise.
27877         (*add_uxtsi_shift2_uxtw): Likewise.
27878         (*sub_uxt<mode>_shift2): Likewise.
27879         (*sub_uxtsi_shift2_uxtw): Likewise.
27880
27881 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
27882
27883         * config/rs6000/constraints.md (Y, U): Use match_test.
27884
27885 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27886
27887         PR target/52144
27888         * config/arm/arm.c (arm_option_check_internal)
27889         (arm_option_params_internal): Check opts->target_flags to set macros.
27890         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27891         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
27892         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27893         (builtin_define): Replaced with def_or_undef_macro.
27894         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27895         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
27896         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27897         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
27898         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
27899         (TARGET_ARM_FEATURE_LDREX_P)
27900         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
27901         * config/arm/arm-c.c (def_or_undef_macro): New function.
27902         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
27903
27904 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27905
27906         * c-common.h (builtin_define_with_int_value)
27907         (builtin_define_type_sizeof): Declare.
27908         * c-cppbuiltin.c (builtin_define_with_int_value)
27909         (builtin_define_type_sizeof): Externalize.
27910         (builtin_define_std): Cleanup declaration.
27911         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
27912         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
27913         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
27914         (builtin_define, builtin_assert): New macros.
27915
27916 2015-05-26  Richard Biener  <rguenther@suse.de>
27917
27918         PR tree-optimization/66142
27919         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
27920         MEM_REFs for the same base address.
27921
27922 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27923
27924         PR ipa/66181
27925         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
27926
27927 2015-05-26  Jason Merrill  <jason@redhat.com>
27928
27929         * configure.ac: Set CXXFLAGS for ISL test.
27930         * configure: Regenerate.
27931
27932         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
27933         strstr and basename.
27934         * configure: Regenerate.
27935
27936 2015-05-26  Richard Biener  <rguenther@suse.de>
27937
27938         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
27939         X % C -> X & (C - 1) for C being a power-of two to ...
27940         * match.pd: ... patterns.
27941
27942 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
27943
27944         * match.pd (swapped_tcc_comparison): New operator list.
27945         (-A CMP -B): New simplification.
27946         * fold-const.c (fold_comparison): Remove corresponding code.
27947
27948 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27949
27950         * caller-save.c (init_caller_save): Base temporary register numbers
27951         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
27952         * cfgloopanal.c (init_set_costs): Likewise.
27953         * dojump.c (prefer_and_bit_test): Likewise.
27954         * expr.c (init_expr_target): Likewise.
27955         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27956         * lower-subreg.c (init_lower_subreg): Likewise.
27957         * postreload.c (reload_cse_regs_1): Likewise.
27958
27959 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27960
27961         * gensupport.h (compute_test_codes): Declare.
27962         * gensupport.c (compute_predicate_codes): Rename to...
27963         (compute_test_codes): ...this.  Generalize error message.
27964         (process_define_predicate): Update accordingly.
27965         * genpreds.c (compute_maybe_allows): Delete.
27966         (add_constraint): Use compute_test_codes to determine whether
27967         something can accept a SUBREG, REG or MEM.
27968
27969 2015-05-26  Torvald Riegel  <triegel@redhat.com>
27970
27971         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
27972         'memory model' to align with C++11; fix description of memory orders;
27973         fix a few typos.
27974
27975 2015-05-26  Richard Biener  <rguenther@suse.de>
27976
27977         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
27978         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
27979         detect whether we apply SLP.  Remove call to
27980         vect_update_slp_costs_according_to_vf.
27981         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
27982         vect_update_slp_costs_according_to_vf from here.  Dispatch
27983         to vect_slp_analyze_operations to analyze SLP stmts.
27984         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
27985         unused bb_vec_info parameter, adjust assert.
27986         (vect_slp_analyze_operations): Pass in the slp instance tree
27987         instead of bb_vec_info.
27988         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
27989         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
27990
27991 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
27992
27993         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
27994         Q_REGS.  Expand comment.
27995         (REG_CLASS_NAMES): Ditto.
27996         (REG_CLASS_CONTENTS): Ditto.
27997
27998 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
27999
28000         PR target/66274
28001         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
28002         when LEGACY_INT_REGNO_P is processed.
28003
28004 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28005
28006         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
28007
28008 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
28009
28010         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
28011         register if not marked dead/unused, before return.
28012
28013 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28014
28015         PR lto/66180
28016         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
28017         is set; check for assembler name at LTO time.
28018         (type_in_anonymous_namespace): Remove hacks, check that all
28019         anonymous types are called "<anon>"
28020         (odr_type_p): Simplify; add check for "<anon>"
28021         (odr_subtypes_equivalent): Add odr_type_p check.
28022         * tree.c (need_assembler_name_p): Even anonymous namespace needs
28023         assembler name.
28024
28025 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28026
28027         * ipa-utils.h (method_class_type): Remove.
28028         * cgraphunit.c (walk_polymorphic_call_targets): Use
28029         TYPE_METHOD_BASETYPE.
28030         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
28031         on main variants only.
28032         (method_class_type): Remove.
28033         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
28034         (build_type_inheritance_graph): Likewise.
28035         * ipa-icf.c (sem_function::equals_wpa): Likewise.
28036         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
28037         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
28038
28039 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28040
28041         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
28042         is_typedef_decl, typedef_variant_p): Constify.
28043         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
28044         is_typedef_decl, typedef_variant_p): Constify.
28045
28046 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28047
28048         * defaults.h (gen_tablejump): New function.
28049         (HAVE_tablejump): Add default value.
28050         * expr.c: Adjust.
28051         * stmt.c: Likewise.
28052
28053 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28054
28055         * defaults.h (gen_store_multiple): New function.
28056         (HAVE_store_multiple): Add default value.
28057         * expr.c (move_block_from_reg): Adjust.
28058
28059 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28060
28061         * defaults.h (gen_load_multiple): New function.
28062         (HAVE_load_multiple): Add default value.
28063         * expr.c (move_block_to_reg): Adjust.
28064
28065 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28066
28067         * defaults.h (gen_mem_signal_fence): New function.
28068         (HAVE_mem_signal_fence): Add default value.
28069         * optabs.c: Adjust.
28070
28071 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28072
28073         * defaults.h (gen_memory_barrier): New function.
28074         (HAVE_memory_barrier): Add default value.
28075         * optabs.c: Adjust.
28076
28077 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28078
28079         * defaults.h (gen_mem_thread_fence): New function.
28080         (HAVE_mem_thread_fence): Add default definition.
28081         * optabs.c: Adjust.
28082
28083 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28084
28085         * combine.c (find_split_point): Check the value of HAVE_lo_sum
28086         instead of if it is defined.
28087         (combine_simplify_rtx): Likewise.
28088         * lra-constraints.c (process_address_1): Likewise.
28089         * config/darwin.c: Adjust.
28090         * genconfig.c (main): Always define HAVE_lo_sum.
28091
28092 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28093
28094         * genmatch.c (parser::parse_operation): Reject expanding
28095         operator-list inside 'for'.
28096
28097 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28098
28099         * genmatch.c (parser::parse_for): Reject iterator if used as
28100         operator-list.
28101
28102 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28103
28104         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
28105         after end of id-list.
28106
28107 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28108
28109         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
28110         we do not try to compute canonical type for type that does not need
28111         alias set.
28112         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
28113         FUNCITON_TYPE.
28114         * tree.h (type_with_alias_set_p): New.
28115
28116 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28117
28118         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
28119         function attributes.
28120         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
28121
28122 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
28123
28124         * Makefile.in (check_gcc_parallelize): Delete.
28125         (lang_checks_parallelized): Update comment.
28126
28127 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
28128
28129         PR rtl-optimization/66237
28130         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
28131         location of an "as_a" cast.
28132
28133 2015-05-22  Jeff Law  <law@redhat.com>
28134
28135         * config/pa/pa.md (non-canonical shift-add insns): Remove.
28136         (peepholes with non-canonical RTL sources): Remove.
28137         (peepholes for indexed stores of FP regs in integer modes): Match and
28138         generate canonical RTL.
28139
28140 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28141
28142         PR tree-optimization/63387
28143         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
28144         ((x ord x) & (y ord y) -> (x ord y),
28145         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
28146         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
28147         vectors like scalars.
28148
28149 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28150
28151         * convert.c (convert_to_integer, convert_to_vector): Include the
28152         types in the error message.
28153
28154 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28155
28156         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
28157         simplifications.
28158
28159 2015-05-22  Jeff Law  <law@redhat.com>
28160
28161         * config/pa/pa.md (integer_indexed_store splitters): Use
28162         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
28163         insns -- adjusting the constant 2nd operand accordingly.
28164
28165         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
28166         (plus (ashift X log2) Y) if it is a split point.
28167
28168         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
28169         out of hppa_legitimize_address to handle both forms of a multiply
28170         by 2, 4 or 8.
28171         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
28172         Always generate the ASHIFT variant as the result is not directly
28173         used in a MEM.  Update comments and refactor slightly to improve
28174         readability.
28175
28176 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28177
28178         PR target/65491
28179         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
28180         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
28181         (aarch64_composite_type_p): Return false if given type and mode are
28182         for a short vector.
28183
28184 2015-05-22  Richard Biener  <rguenther@suse.de>
28185
28186         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
28187         member.
28188         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
28189         patterns when determining whether SLP is pure.
28190         (vect_is_slp_reduction): Remove check for pattern stmts.
28191         (vect_is_simple_reduction_1): Remove dead code.
28192         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
28193         (vect_get_and_check_slp_defs): Pass in the stmt number.
28194         Allow the first def in a reduction to be not a pattern stmt when
28195         the rest of the stmts def are patterns.
28196         (vect_build_slp_tree_1): Allow tcc_expression codes like
28197         SAD_EXPR and DOT_PROD_EXPR.
28198         (vect_build_slp_tree): Adjust.
28199         (vect_analyze_slp): Refactor and move BB vect error message ...
28200         (vect_slp_analyze_bb_1): ... here.
28201
28202 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
28203
28204         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
28205         for CSWTCH temporary.
28206
28207 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28208
28209         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
28210         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
28211         unknown unspecs.
28212
28213 2015-05-22  Richard Biener  <rguenther@suse.de>
28214
28215         PR tree-optimization/66251
28216         * tree-vect-stmts.c (vectorizable_conversion): Properly
28217         set STMT_VINFO_VEC_STMT even for the SLP case.
28218
28219 2015-05-22  Marek Polacek  <polacek@redhat.com>
28220
28221         * doc/extend.texi: Use @pxref instead of @xref.
28222
28223 2015-05-22  hiraditya  <hiraditya@msn.com>
28224
28225         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
28226         redundant if.
28227
28228 2015-05-22  Richard Biener  <rguenther@suse.de>
28229
28230         PR tree-optimization/65701
28231         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
28232         Move peeling cost models into one place.  Peel for alignment
28233         for single loads only if an aligned load is cheaper than
28234         an unaligned load.
28235
28236 2015-05-22  Marek Polacek  <polacek@redhat.com>
28237
28238         PR c/47043
28239         * doc/extend.texi (Enumerator Attributes): New section.
28240         Document syntax of enumerator attributes.
28241
28242 2015-05-22  Richard Biener  <rguenther@suse.de>
28243
28244         * tree-vect-loop.c (get_reduction_op): New function.
28245         (vect_model_reduction_cost): Use it, add reduc_index parameter.
28246         Make ready for BB reductions.
28247         (vect_create_epilog_for_reduction): Use get_reduction_op.
28248         (vectorizable_reduction): Init reduc_index to a valid value.
28249         Adjust vect_model_reduction_cost call.
28250         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
28251         operand for reduction defaults.  Add SAD_EXPR support.
28252         Assert we have a neutral op for SLP reductions.
28253         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
28254         walking pattern stmt ops only recurse to SSA names.
28255
28256 2015-05-22  Richard Biener  <rguenther@suse.de>
28257
28258         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
28259         assert with guard, remove check on detected reduction.
28260         (vect_recog_sad_pattern): Likewise.
28261         (vect_recog_widen_sum_pattern): Likewise.
28262
28263 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28264
28265         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
28266         __always_inline__ attribute.
28267         (vaesdq_u8): Likewise.
28268         (vaesmcq_u8): Likewise.
28269         (vaesimcq_u8): Likewise.
28270         (vsha1cq_u32): Likewise.
28271         (vsha1mq_u32): Likewise.
28272         (vsha1pq_u32): Likewise.
28273         (vsha1h_u32): Likewise.
28274         (vsha1su0q_u32): Likewise.
28275         (vsha1su1q_u32): Likewise.
28276         (vsha256hq_u32): Likewise.
28277         (vsha256h2q_u32): Likewise.
28278         (vsha256su0q_u32): Likewise.
28279         (vsha256su1q_u32): Likewise.
28280         (vmull_p64): Likewise.
28281         (vmull_high_p64): Likewise.
28282
28283 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28284
28285         * final.c (final_scan_insn): Don't check HAVE_peephole with the
28286         preprocessor.
28287         * output.h: Likewise.
28288         * genconfig.c (main): Alwways define HAVE_peephole.
28289         * genpeep.c: Don't emit checks of HAVE_peephole.
28290
28291 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28292
28293         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
28294         check HAVE_conditional_move with the preprocessor.
28295
28296 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28297
28298         * genconfig.c (main): Always define HAVE_conditional_move.
28299         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
28300         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
28301         is defined.
28302
28303 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28304
28305         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
28306         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
28307         and FRAME_POINTER_REGNUM with the preprocessor.
28308
28309 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28310
28311         * defaults.h: Add default for STACK_PUSH_CODE.
28312         * expr.c: Don't redefine STACK_PUSH_CODE.
28313         * recog.c: Likewise.
28314
28315 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28316
28317         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
28318         sched-deps.c: Use if instead of preprocessor checks with
28319         STACK_GROWS_DOWNWARD.
28320
28321 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28322
28323         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
28324         is defined.
28325         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
28326         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
28327         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
28328         * doc/tm.texi: Regenerate.
28329
28330 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
28331
28332         PR target/66232
28333         * config/i386/constraints.md (Bg): New constraint for GOT memory
28334         operand.
28335         * config/i386/i386.md (*call_got_x32): New pattern.
28336         (*call_value_got_x32): Likewise.
28337         * config/i386/predicates.md (GOT_memory_operand): New predicate.
28338
28339 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
28340
28341         PR tree-optimization/66233
28342         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
28343         Simplify.
28344
28345 2015-05-21  Jeff Law  <law@redhat.com>
28346
28347         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
28348         than MULT for shadd sequences.
28349
28350 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
28351
28352         * alias.c (alias_stats): New static var.
28353         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
28354         (dump_alias_stats_in_alias_c): New function.
28355         * alias.h (dump_alias_stats_in_alias_c): Declare.
28356         * tree-ssa-alias.c (dump_alias_stats): Call it.
28357
28358 2015-05-08  Michael Matz  <matz@suse.de>
28359
28360         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
28361         to strided_p.
28362         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
28363         (STMT_VINFO_STRIDED_P): ... this.
28364         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
28365         (vect_verify_datarefs_alignment): Likewise.
28366         (vect_enhance_data_refs_alignment): Likewise.
28367         (vect_analyze_data_ref_access): Likewise.
28368         (vect_analyze_data_refs): Accept strided stores.
28369         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
28370         (vect_model_load_cost): Adjust for macro rename.
28371         (vectorizable_mask_load_store): Likewise.
28372         (vectorizable_load): Likewise.
28373         (vectorizable_store): Open code strided stores.
28374
28375 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28376
28377         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
28378         Document sqrt_insn.
28379
28380 2015-05-21  Richard Biener  <rguenther@suse.de>
28381
28382         PR c++/66211
28383         * match.pd: Guard pattern optimzing (int)(float)int
28384         conversions to apply only on GIMPLE.
28385
28386 2015-05-21  Jeff Law  <law@redhat.com>
28387
28388         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
28389         multiply-accumulate/shift-add insn generation.
28390
28391 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
28392
28393         PR target/54236
28394         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
28395         operands[1] are the same.
28396
28397 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
28398
28399         PR middle-end/66221
28400         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
28401         build_distinct_type_copy to copy bounds.
28402
28403 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
28404
28405         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
28406         Change to unsigned int.
28407
28408 2015-05-20  Jeff Law  <law@redhat.com>
28409
28410         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
28411         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
28412         (pa_shadd_constant_p): Allow constants for shadd insns rather
28413         than valid scaling constants for memory addresses.
28414         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
28415         * config/pa/predicates.md (mem_shadd_operand): New predicate.
28416         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
28417         (shift-add insns using ASHIFT): New patterns.
28418
28419 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
28420
28421         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
28422         feasible.
28423         (fix_up_fall_thru_edges): Likewise.
28424         (fix_crossing_conditional_branches): Likewise. Promote jump targets
28425         from to rtx_insn to rtx_code_label where feasible.
28426         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
28427         gen_move_insn (returned type changed to rtx_insn).
28428         * builtins.c (expand_errno_check): Fix arguments of
28429         do_compare_rtx_and_jump (now expects rtx_code_label).
28430         (expand_builtin_acc_on_device): Likewise.
28431         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
28432         invert_jump (now exprects rtx_jump_insn).
28433         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
28434         (construct_init_block): Use rtx_code_label.
28435         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
28436         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
28437         calling redirect_jump.
28438         (patch_jump_insn): Likewise.
28439         (redirect_branch_edge): Likewise.
28440         (force_nonfallthru_and_redirect): Likewise.
28441         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
28442         when suitable.
28443         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
28444         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
28445         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
28446         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
28447         to store the value retured by gen_label_rtx.
28448         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
28449         rtx_jump_insn.
28450         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
28451         (split_branches): Fix calls of redirect_jump.
28452         * dojump.c (jumpifnot): Promote argument type from rtx to
28453         rtx_code_label.
28454         (jumpifnot_1): Likewise.
28455         (jumpif): Likewise.
28456         (jumpif_1): Likewise.
28457         (do_jump_1): Likewise.
28458         (do_jump): Likewise. Use rtx_code_label when feasible.
28459         (do_jump_by_parts_greater_rtx): Likewise.
28460         (do_jump_by_parts_zero_rtx): Likewise.
28461         (do_jump_by_parts_equality_rtx): Likewise.
28462         (do_compare_rtx_and_jump): Likewise.
28463         * dojump.h: Update function prototypes.
28464         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
28465         returns rtx_insn).
28466         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
28467         rtx_jump_insn.
28468         (emit_label_before): Likewise.
28469         (emit_jump_insn_after_noloc): Likewise.
28470         (emit_jump_insn_after_setloc): Likewise.
28471         (emit_jump_insn_after): Likewise
28472         (emit_jump_insn_before_setloc): Likewise.
28473         (emit_jump_insn_before): Likewise.
28474         (emit_label_before): Promote return type to rtx_code_label.
28475         (emit_label): Likewise.
28476         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
28477         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
28478         gen_move_insn.
28479         (emit_stack_restore): Likewise.
28480         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
28481         (do_cmp_and_jump): Likewise.
28482         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
28483         from rtx to rtx_code_label.
28484         (gen_move_insn_uncast): New function.
28485         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
28486         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
28487         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
28488         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
28489         invert_jump_1 and redirect_jump_1.
28490         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
28491         do_compare_rtx_and_jump.
28492         (expand_addsub_overflow): Likewise.
28493         (expand_neg_overflow): Likewise.
28494         (expand_mul_overflow): Likewise.
28495         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
28496         return value of gen_move_insn.
28497         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
28498         * loop-doloop.c (add_test): Use rtx_code_label.
28499         (doloop_modify): Likewise.
28500         (doloop_optimize): Likewise.
28501         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
28502         * lra-constraints.c (emit_spill_move): Remove cast of value returned
28503         by gen_move_insn.
28504         (inherit_reload_reg): Add cast when calling dump_insn_slim.
28505         (split_reg): Likewise.
28506         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
28507         gen_move_insn.
28508         * optabs.c (expand_binop_directly): Remove casts of values returned by
28509         maybe_gen_insn.
28510         (expand_unop_direct): Likewise.
28511         (expand_abs): Likewise.
28512         (maybe_emit_unop_insn): Likewise.
28513         (maybe_gen_insn): Promote return type to rtx_insn.
28514         * optabs.h: Update prototype of maybe_gen_insn.
28515         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
28516         redundant cast.
28517         * recog.c (struct peep2_insn_data): Promote type of insn field to
28518         rtx_insn.
28519         (peep2_reinit_state): Use NULL instead of NULL_RTX.
28520         (peep2_attempt): Remove casts of insn in peep2_insn_data.
28521         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
28522         * recog.h (struct insn_gen_fn): Promote return types of function
28523         pointers and operator ().from rtx to rtx_insn.
28524         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
28525         (fill_eager_delay_slots): Likewise.
28526         (relax_delay_slots): Likewise.
28527         (make_return_insns): Likewise.
28528         (dbr_schedule): Likewise.
28529         (optimize_skips): Likewise.
28530         (reorg_redirect_jump): Likewise.
28531         (fill_slots_from_thread): Likewise.
28532         * reorg.h: Update prototypes.
28533         * resource.c (find_dead_or_set_registers): Use dyn_cast to
28534         rtx_jump_insn instead of check.  Use it's jump_target method.
28535         * rtl.h (rtx_jump_insn::jump_label): Define new method.
28536         (rtx_jump_insn::jump_target): Define new method.
28537         (rtx_jump_insn::set_jump_target): Define new method.
28538         * rtlanal.c (tablejump_p): Promote type of one local variable.
28539         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
28540         (sched_analyze_insn): Likewise.
28541         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
28542         (print_insn): Likewise.
28543         * stmt.c (label_rtx): Promote return type to rtx_insn.
28544         (force_label_rtx): Likewise.
28545         (jump_target_rtx): Define new function.
28546         (expand_label): Use it, get rid of one cast.
28547         (expand_naked_return): Promote rtx to rtx_code_label.
28548         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
28549         (expand_case): Use rtx_code_label instread of rtx where feasible.
28550         (expand_sjlj_dispatch_table): Likewise.
28551         (emit_case_nodes): Likewise.
28552         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
28553         * store-motion.c (insert_store): Make use of new return type of
28554         gen_move_insn and remove a cast.
28555         (replace_store_insn): Likewise.
28556
28557 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
28558
28559         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
28560         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
28561
28562 2015-05-20  Jeff Law  <law@redhat.com>
28563
28564         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
28565         dispose of the jump thread path when the jump threading
28566         opportunity is cancelled.
28567
28568 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28569
28570         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
28571         when printing the caret character.
28572
28573 2015-05-20  Marek Polacek  <polacek@redhat.com>
28574
28575         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
28576
28577 2015-05-20  Marek Polacek  <polacek@redhat.com>
28578
28579         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
28580         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
28581         * gimple-fold.c (canonicalize_bool): Likewise.
28582         (same_bool_result_p): Likewise.
28583         * tree-if-conv.c (parse_predicate): Likewise.
28584
28585 2015-05-20  Marek Polacek  <polacek@redhat.com>
28586
28587         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
28588         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
28589
28590 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28591
28592         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
28593         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
28594         values.
28595
28596 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
28597
28598         * config/mips/mips.h (micromips_globals): Declare.
28599
28600 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
28601
28602         * timevar.def (TV_INITIALIZE_RTL): New.
28603         * toplev.c (initialize_rtl): Use an auto_timevar to account this
28604         function's time to TV_INITIALIZE_RTL.
28605
28606 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
28607
28608         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
28609         gimple_build_nop calls.
28610         (chkp_find_bounds_for_elem): Likewise.
28611         (chkp_get_zero_bounds): Likewise.
28612         (chkp_get_none_bounds): Likewise.
28613         (chkp_get_bounds_by_definition): Likewise.
28614         (chkp_generate_extern_var_bounds): Likewise.
28615         (chkp_get_bounds_for_decl_addr): Likewise.
28616         (chkp_get_bounds_for_string_cst): Likewise.
28617
28618 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
28619
28620         PR tree-optimization/65447
28621         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
28622         (dump_use, dump_uses): Support to dump sub use.
28623         (record_use): New parameters to support sub use.  Remove call to
28624         dump_use.
28625         (record_sub_use, record_group_use): New functions.
28626         (compute_max_addr_offset, split_all_small_groups): New functions.
28627         (group_address_uses, rewrite_use_address): New functions.
28628         (strip_offset): New declaration.
28629         (find_interesting_uses_address): Call record_group_use.
28630         (add_candidate): New assertion.
28631         (infinite_cost_p): Move definition forward.
28632         (add_costs): Check INFTY cost and return immediately.
28633         (get_computation_cost_at): Clear setup cost and dependent bitmap
28634         for sub uses.
28635         (determine_use_iv_cost_address): Compute cost for sub uses.
28636         (rewrite_use_address_1): Rename from old rewrite_use_address.
28637         (free_loop_data): Free sub uses.
28638         (tree_ssa_iv_optimize_loop): Call group_address_uses.
28639
28640 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28641             Jim Wilson  <jim.wilson@linaro.org>
28642
28643         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
28644         new  fields loadv and storev.
28645         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
28646         Initialize loadv and storev.
28647         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
28648         (cortexa53_extra_costs): Likewise.
28649         (cortexa57_extra_costs): Likewise.
28650         (xgene1_extra_costs): Likewise.
28651         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
28652         rtx_costs.
28653
28654 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28655
28656         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
28657          storev.
28658         (cortexa8_extra_costs): Likewise.
28659         (cortexa5_extra_costs): Likewise.
28660         (cortexa7_extra_costs): Likewise.
28661         (cortexa12_extra_costs): Likewise.
28662         (cortexa15_extra_costs): Likewise.
28663         (v7m_extra_costs): Likewise.
28664
28665 2015-05-20  Jeff Law  <law@redhat.com>
28666
28667         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
28668         instead of open-coded version.  Also delete the jump thread created
28669         within this function.
28670
28671 2015-05-20  Alan Modra  <amodra@gmail.com>
28672
28673         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
28674         stack adjusting insn.  Formatting.
28675         (rs6000_emit_prologue): Track stack adjusting insn, and use of
28676         r12.  If possible, emit first -fsplit-stack arg pointer insn
28677         before stack adjust.  Don't use r12 to save cr if split-stack.
28678
28679 2015-05-20  Alan Modra  <amodra@gmail.com>
28680
28681         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
28682         Define.
28683         (rs6000_supports_split_stack): New function.
28684         * config/rs6000/rs6000.c (machine_function): Add
28685         split_stack_arg_pointer.
28686         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
28687         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
28688         rather than virtual_incoming_args_rtx.
28689         (rs6000_va_start): Likewise.
28690         (split_stack_arg_pointer_used_p): New function.
28691         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
28692         (morestack_ref): New var.
28693         (gen_add3_const, rs6000_expand_split_stack_prologue,
28694         rs6000_internal_arg_pointer, rs6000_live_on_entry,
28695         rs6000_split_stack_space_check): New functions.
28696         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
28697         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
28698         (UNSPECV_SPLIT_STACK_RETURN): Define.
28699         (split_stack_prologue, load_split_stack_limit,
28700         load_split_stack_limit_di, load_split_stack_limit_si,
28701         split_stack_return, split_stack_space_check): New expands and insns.
28702         * config/rs6000/rs6000-protos.h
28703         (rs6000_expand_split_stack_prologue): Declare.
28704         (rs6000_split_stack_space_check): Declare.
28705
28706 2015-05-20  Alan Modra  <amodra@gmail.com>
28707
28708         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
28709         (direct_return): Test vrsave_size rather than vrsave_mask.
28710         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
28711         (rs6000_emit_epilogue): Likewise.
28712
28713 2015-05-20  Alan Modra  <amodra@gmail.com>
28714
28715         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
28716         when not saving registers.
28717         (debug_stack_info): Adjust to omit printing unused offsets,
28718         as before.
28719         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
28720         expression.
28721
28722 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28723
28724         PR c++/65835
28725         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
28726         value_type to const char *.
28727
28728 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
28729
28730         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
28731         to build a biarch toolchain again.
28732
28733 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28734
28735         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
28736         or implicit declarations.
28737         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
28738         into it.
28739         (get_odr_type): Check type has linkage before adding bases.
28740         (register_odr_type): Check that type has linkage before adding it.
28741         (type_known_to_have_no_deriavations_p): Rename to ..
28742         (type_known_to_have_no_derivations_p): This one.
28743         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
28744         (type_known_to_have_no_derivations_p): This one.
28745         * ipa-polymorphic-call.c
28746         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
28747         type has linkage.
28748
28749 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28750
28751         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
28752         (layout_type): Use RECORD_OR_UNION_TYPE_P.
28753
28754 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28755
28756         * config/s390/s390.c (s390_vector_bool_type_p): New function.
28757         (s390_invalid_binary_op): New function.
28758         (TARGET_INVALID_BINARY_OP): Define macro.
28759
28760 2015-05-19  David Sherwood  <david.sherwood@arm.com>
28761
28762         * loop-invariant.c (create_new_invariant): Don't calculate address cost
28763         if mode is not a scalar integer.
28764         (get_inv_cost): Increase computational cost for unused invariants.
28765
28766 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28767
28768         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
28769         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
28770         * config/s390/s390-builtin-types.def: New file.
28771         * config/s390/s390-builtins.def: New file.
28772         * config/s390/s390-builtins.h: New file.
28773         * config/s390/s390-c.c: New file.
28774         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
28775         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
28776         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
28777         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
28778         prototypes.
28779         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
28780         Include.
28781         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
28782         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
28783         variable definitions.
28784         (s390_const_operand_ok): New function.
28785         (s390_expand_builtin): Rewrite.
28786         (s390_init_builtins): New function.
28787         (s390_handle_vectorbool_attribute): New function.
28788         (s390_attribute_table): Add s390_vector_bool attribute.
28789         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
28790         (s390_branch_condition_mask): Generate masks for new modes.
28791         (s390_expand_vec_compare_cc): New function.
28792         (s390_mangle_type): Add mangling for vector bool types.
28793         (enum s390_builtin): Remove.
28794         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
28795         efpc builtins.
28796         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
28797         s390_cpu_cpp_builtins.
28798         (REGISTER_TARGET_PRAGMAS): New macro.
28799         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
28800         (insn_cmp mode attribute): Add new CC modes.
28801         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
28802         (lcbb): New pattern definition.
28803         * config/s390/s390intrin.h: Include vecintrin.h.
28804         * config/s390/t-s390: New file.
28805         * config/s390/vecintrin.h: New file.
28806         * config/s390/vector.md: Include vx-builtins.md.
28807         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
28808         support.
28809
28810 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28811
28812         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
28813         CCVFHE.
28814         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
28815         (s390_select_ccmode): Likewise.
28816         (s390_canonicalize_comparison): Swap operands if necessary.
28817         (s390_expand_vec_compare_scalar): Expand DFmode compare using
28818         single element vector instructions.
28819         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
28820         (s390_branch_condition_mask): Generate CC masks for the new modes.
28821         * config/s390/s390.md (v0, vf, vd): New mode attributes.
28822         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
28823         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
28824         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
28825         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
28826         (*extend<DSF:mode><BFP:mode>2): New insn definition.
28827         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
28828         (extend<DSF:mode><BFP:mode>2): Turn into expander.
28829         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
28830         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
28831         (sqrt<mode>2): Add vector instruction.
28832
28833 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28834
28835         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
28836         constraints.
28837         * config/s390/predicates.md (const0_operand, constm1_operand)
28838         (constable_operand): Accept vector operands.
28839         * config/s390/s390-modes.def: Add supported vector modes.
28840         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
28841         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
28842         (s390_bytemask_vector_p, s390_expand_vec_strlen)
28843         (s390_expand_vec_compare, s390_expand_vcond)
28844         (s390_expand_vec_init): Add prototypes.
28845         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
28846         (s390_vector_mode_supported_p): New function.
28847         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
28848         (s390_contiguous_bitmask_vector_p): New function.
28849         (s390_bytemask_vector_p): New function.
28850         (s390_split_ok_p): Vector regs don't work either.
28851         (regclass_map): Add VEC_REGS.
28852         (s390_legitimate_constant_p): Handle vector constants.
28853         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
28854         (legitimate_reload_vector_constant_p): New function.
28855         (s390_preferred_reload_class): Handle CONST_VECTOR.
28856         (s390_reload_symref_address):  Likewise.
28857         (s390_secondary_reload): Vector memory instructions only support
28858         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
28859         (s390_emit_ccraw_jump): New function.
28860         (s390_expand_vec_strlen): New function.
28861         (s390_expand_vec_compare): New function.
28862         (s390_expand_vcond): New function.
28863         (s390_expand_vec_init): New function.
28864         (s390_dwarf_frame_reg_mode): New function.
28865         (print_operand): Handle addresses with 'O' and 'R' constraints.
28866         (NR_C_MODES, constant_modes): Add vector modes.
28867         (s390_output_pool_entry): Handle vector constants.
28868         (s390_hard_regno_mode_ok): Handle vector registers.
28869         (s390_class_max_nregs): Likewise.
28870         (s390_cannot_change_mode_class): New function.
28871         (s390_invalid_arg_for_unprototyped_fn): New function.
28872         (s390_function_arg_vector): New function.
28873         (s390_function_arg_float): Remove size variable.
28874         (s390_pass_by_reference): Handle vector arguments.
28875         (s390_function_arg_advance): Likewise.
28876         (s390_function_arg): Likewise.
28877         (s390_return_in_memory): Vector values are returned in a VR if
28878         possible.
28879         (s390_function_and_libcall_value): Handle vector arguments.
28880         (s390_gimplify_va_arg): Likewise.
28881         (s390_call_saved_register_used): Consider the arguments named.
28882         (s390_conditional_register_usage): Disable v16-v31 for non-vec
28883         targets.
28884         (s390_preferred_simd_mode): New function.
28885         (s390_support_vector_misalignment): New function.
28886         (s390_vector_alignment): New function.
28887         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
28888         (TARGET_VECTOR_MODE_SUPPORTED_P)
28889         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
28890         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
28891         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
28892         (TARGET_VECTOR_ALIGNMENT): Define target macro.
28893         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
28894         (FIRST_PSEUDO_REGISTER): Increase value.
28895         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
28896         (VECTOR_REG_P): Define macros.
28897         (FIXED_REGISTERS, CALL_USED_REGISTERS)
28898         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
28899         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
28900         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
28901         Add vector registers.
28902         (CANNOT_CHANGE_MODE_CLASS): Call C function.
28903         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
28904         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
28905         memory.
28906         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
28907         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
28908         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
28909         (VR*_REGNUM): New constants.
28910         (ALL): New mode iterator.
28911         (INTALL): Remove mode iterator.
28912         Include vector.md.
28913         (movti): Implement TImode moves for VRs.
28914         Disable TImode splitter for VR targets.
28915         Implement splitting TImode GPR<->VR moves.
28916         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
28917         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
28918         reload<mode>_la_in, reload<mode>_la_out.
28919         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
28920         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
28921         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
28922         (mov<mode> SF SD): Prefer lder, lde for loading.
28923         Add lrl and strl instructions.
28924         Add vector instructions.
28925         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
28926         Call s390_expand_vec_strlen on z13.
28927         (*cc_to_int): Change predicate to nonimmediate_operand.
28928         (addti3): Rename to *addti3.  New expander.
28929         (subti3): Rename to *subti3.  New expander.
28930         * config/s390/vector.md: New file.
28931
28932 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28933
28934         * common/config/s390/s390-common.c (processor_flags_table): Add
28935         z13.
28936         * config.gcc: Add z13.
28937         * config/s390/s390-opts.h (enum processor_type): Add
28938         PROCESSOR_2964_Z13.
28939         * config/s390/s390.c (s390_adjust_priority): Check for
28940         PROCESSOR_2964_Z13.
28941         (s390_reorg): Likewise.
28942         (s390_sched_reorder): Likewise.
28943         (s390_sched_variable_issue): Likewise.
28944         (s390_loop_unroll_adjust): Likewise.
28945         (s390_option_override): Likewise. Default to -mvx when available.
28946         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
28947         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
28948         (TARGET_VX_ABI): Define macros.
28949         macros.
28950         (TARGET_DEFAULT): Add MASK_OPT_VX.
28951         * config/s390/s390.md ("cpu" attribute): Add z13.
28952         ("cpu_facility" attribute): Add vec.
28953         * config/s390/s390.opt (processor_type): Add z13.
28954         (mvx): New options.
28955         * doc/invoke.texi: Add z13 option for -march.
28956
28957 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28958
28959         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
28960         mode check to make sure that only scalar integer values are
28961         accepted.
28962
28963 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28964
28965         * tree.c (verify_type_variant): Fix #undef.
28966         (gimple_canonical_types_compatible_p): Move here from lto.c
28967         (verify_type): Verify TYPE_CANONICAL compatibility.
28968         * tree.h (gimple_canonical_types_compatible_p): Declare.
28969
28970 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28971
28972         PR middle-end/66199
28973         * tree.h (OMP_TEAMS_COMBINED): Define.
28974         * gimplify.c (enum gimplify_omp_var_data): Add
28975         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
28976         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
28977         (omp_notice_variable): Accept both ORT_TEAMS
28978         and ORT_COMBINED_TEAMS.  Don't recurse if
28979         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
28980         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
28981         GOVD_FIRSTPRIVATE.
28982         (omp_no_lastprivate): New function.
28983         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
28984         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
28985         notice_outer and set appropriate bits, otherwise make
28986         sure default(none) combined constructs won't complain.
28987         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
28988         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
28989         omp_no_lastprivate either remove the clause or turn it
28990         into OMP_CLAUSE_PRIVATE.
28991         (gimplify_omp_for): Fix up handling of implicit
28992         lastprivate or linear iterators.
28993         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
28994         ORT_COMBINED_TEAMS.
28995         * omp-low.c (lower_omp_for_lastprivate): For combined
28996         for simd use fd.loop.n2 from the for rather than simd.
28997
28998 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28999
29000         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
29001         instead of gen_rtx_raw_REG.
29002         (cris_expand_epilogue): Likewise.
29003         * config/microblaze/microblaze.c (microblaze_classify_address):
29004         Likewise.
29005         * config/sparc/sparc.md: Likewise.
29006
29007 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
29008
29009         * config/alpha/alpha.c (alpha_legitimize_reload_address)
29010         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
29011         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
29012         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
29013         Use CASE_CONST_SCALAR_INT.
29014         (print_operand) <case 'M'>: Use mode_width_operand to check the
29015         value of the constant.
29016         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
29017         * config/alpha/predicates.md (input_operand): Use general_operand
29018         instead of match_code as operand check.
29019         (symbolic_operand): Use match_code with subexpression digits.
29020         * config/alpha/constraints.md (Q): Ditto.
29021
29022 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29023
29024         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
29025
29026 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29027
29028         * config/s390/s390.c (s390_secondary_reload): Fix check for
29029         load/store relative.
29030
29031 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29032
29033         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
29034         alternative_mask to uint64_t.
29035
29036 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29037
29038         PR tree-optimization/66187
29039         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
29040         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
29041         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
29042
29043 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
29044
29045         * diagnostic.c (diagnostic_report_current_module): Strengthen
29046         local "new_map" from const line_map * to
29047         const line_map_ordinary *.
29048         * genmatch.c (error_cb): Likewise for local "map".
29049         (output_line_directive): Likewise for local "map".
29050         * input.c (expand_location_1): Likewise for local "map".
29051         Pass NULL rather than &map to
29052         linemap_unwind_to_first_non_reserved_loc, since the value is never
29053         read from there, and the value written back not read from here.
29054         (is_location_from_builtin_token): Strengthen local "map" from
29055         const line_map * to const line_map_ordinary *.
29056         (dump_location_info): Strengthen locals "map" from
29057         line_map *, one to const line_map_ordinary *, the other
29058         to const line_map_macro *.
29059         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
29060         const line_map * to const line_map_macro *.
29061         (maybe_unwind_expanded_macro_loc): Add a call to
29062         linemap_check_macro when writing to the "map" field of the
29063         loc_map_pair.
29064         Introduce local const line_map_ordinary * "ord_map", using it in
29065         place of "map" in the part of the function where we know we have
29066         an ordinary map.  Strengthen local "m" from const line_map * to
29067         const line_map_ordinary *.
29068
29069 2015-05-19  Nick Clifton  <nickc@redhat.com>
29070
29071         PR target/66156
29072         * config/msp430/msp430.md (zero_extendhisi2): Add support for
29073         separate source and destination registers.
29074
29075 2015-05-19  Richard Biener  <rguenther@suse.de>
29076
29077         PR tree-optimization/66165
29078         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
29079         for no load permutation.
29080
29081         PR tree-optimization/66185
29082         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
29083         when building the SLP node from scalars.
29084
29085 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29086             Tristan Gingold  <gingold@adacore.com>
29087
29088         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
29089         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
29090         (expand_stack_restore): Call record_new_stack_level.
29091         (expand_stack_save): Do not call do_pending_stack_adjust.
29092         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
29093         * calls.c (expand_call): Call record_new_stack_level for alloca.
29094         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
29095         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
29096         (update_sjlj_context): New global function.
29097         * except.h (update_sjlj_context): Declare.
29098         * explow.c (record_new_stack_level): New global function.
29099         (allocate_dynamic_stack_space): Call record_new_stack_level.
29100         * explow.h (record_new_stack_level): Declare.
29101         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
29102         * cfgrtl.c (duplicate_insn_chain): Likewise.
29103
29104 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29105
29106         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
29107         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
29108         STACK_GROWS_DOWNWARD as normal if.
29109         (expand_call): Likewise.
29110
29111 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
29112
29113         PR target/54236
29114         * config/sh/sh.md (*round_int_even): New insn_and_split and
29115         accompanying new unnamed split.
29116
29117 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29118
29119         * bitmap.c (bitmap_set_range): Handle count==1 specially.
29120         (bitmap_clear_range): Likewise.
29121         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
29122         bitmap_set_range unconditionally.
29123         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29124         * df-scan.c (df_mark_reg): Likewise.
29125         * haifa-sched.c (setup_ref_regs): Likewise.
29126         * sched-rgn.c (update_live_1): Likewise.
29127
29128 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29129
29130         * regs.h (END_HARD_REGNO): Delete.
29131         (END_REGNO): Move to...
29132         * rtl.h: ...here.
29133         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
29134         * caller-save.c (mark_set_regs): Likewise.
29135         * combine.c (move_deaths, distribute_notes): Likewise.
29136         * cse.c (invalidate, invalidate_for_call): Likewise.
29137         * df-scan.c (df_ref_record): Likewise.
29138         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
29139         (record_last_reg_set_info): Likewise.
29140         * reg-stack.c (convert_regs_exit): Likewise.
29141         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
29142         * resource.c (update_live_status): Likewise.
29143         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
29144
29145 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29146
29147         * rtl.h (reg_info): Add an nregs field.
29148         (REG_NREGS): Use it.
29149         (SET_REGNO_RAW): Delete.
29150         (set_regno_raw): New function.
29151         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
29152         (END_REGNO): Redefine in terms of REG_NREGS.
29153         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
29154         SET_REGNO_RAW.
29155         * emit-rtl.c (set_mode_and_regno): Likewise.
29156         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
29157         instead of SET_REGNO_RAW.
29158
29159 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29160
29161         * rtl.h (PUT_MODE_RAW): New macro.
29162         (PUT_REG_NOTE_KIND): Use it.
29163         (set_mode_and_regno): Declare.
29164         (gen_raw_REG): Change regno to "unsigned int".
29165         (gen_rtx_REG): Change "unsigned" to "unsigned int".
29166         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
29167         use set_mode_and_regno to change the mode of registers.
29168         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
29169         * emit-rtl.c (set_mode_and_regno): New function.
29170         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
29171         * caller-save.c (reg_save_code): Use set_mode_and_regno.
29172         * expr.c (init_expr_target): Likewise.
29173         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29174         * postreload.c (reload_cse_simplify_operands): Likewise.
29175
29176 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29177
29178         * caller-save.c (init_caller_save): Use word_mode and
29179         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
29180         * expr.c (init_expr_target): Likewise.
29181         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29182         * postreload.c (reload_cse_regs_1): Likewise.
29183
29184 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29185
29186         * rtl.def (REG): Change format to "r".
29187         * rtl.h (rtunion): Remove rt_reg.
29188         (reg_info): New structure.
29189         (rtx_def): Add reg field to main union.
29190         (X0REGATTR): Delete.
29191         (REG_CHECK): New macro.
29192         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
29193         * rtl.c (rtx_format): Document "r".
29194         (rtx_code_size): Handle REG specially.
29195         * gengenrtl.c (special_format): Return true for formats
29196         that include 'r'.
29197         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
29198         Deal with REG_ATTRS after the field loop.
29199         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
29200         * expmed.c (init_expmed): Call gen_raw_REG instead of
29201         gen_rtx_raw_REG.
29202         * expr.c (init_expr_target): Likewise.
29203         * regcprop.c (maybe_mode_change): Likewise.
29204         * varasm.c (make_decl_rtl): Likewise.
29205         * final.c (leaf_renumber_regs_insn): Return early after
29206         handling REGs.
29207         * genemit.c (gen_exp): Handle 'r' fields.
29208         * genpeep.c (match_rtx): Likewise.
29209         * gensupport.c (subst_pattern_match): Likewise.
29210         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
29211         (alter_constraints, subst_dup): Likewise.
29212         * read-rtl.c (read_rtx_code): Likewise.
29213         * print-rtl.c (print_rtx): Likewise.
29214         * genrecog.c (find_operand, find_matching_operand): Likewise.
29215         (validate_pattern, match_pattern_2): Likewise.
29216         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
29217         (rtx_test::regno_field): New function.
29218         (operator ==, safe_to_hoist_p, transition_parameter_type)
29219         (parameter_type_string, print_parameter_value)
29220         (print_nonbool_test, print_test): Handle new enum values.
29221         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
29222         * lra-constraints.c (operands_match_p): Likewise.
29223
29224 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29225
29226         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
29227         Change type of new_regno to unsigned int.
29228         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
29229         new_regno to unsigned int.
29230         (df_ref_change_reg_with_loc): Remove old_regno parameter.
29231         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
29232         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
29233         (SET_REGNO_RAW): Add space after ",".
29234
29235 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29236
29237         * rtl.h (REG_NREGS): New macro
29238         * alias.c (record_set): Use it.
29239         * cfgcleanup.c (mark_effect): Likewise.
29240         * combine.c (likely_spilled_retval_1): Likewise.
29241         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
29242         (move_deaths, distribute_notes): Likewise.
29243         * cselib.c (cselib_record_set): Likewise.
29244         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29245         * df-scan.c (df_mark_reg): Likewise.
29246         * dse.c (look_for_hardregs): Likewise.
29247         * dwarf2out.c (reg_loc_descriptor): Likewise.
29248         (multiple_reg_loc_descriptor): Likewise.
29249         * expr.c (write_complex_part, read_complex_part): Likewise.
29250         (emit_move_complex): Likewise.
29251         * haifa-sched.c (setup_ref_regs): Likewise.
29252         * ira-lives.c (mark_hard_reg_live): Likewise.
29253         * lra.c (lra_set_insn_recog_data): Likewise.
29254         * mode-switching.c (create_pre_exit): Likewise.
29255         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
29256         (reload_combine_recognize_pattern): Likewise.
29257         (reload_combine_note_use, move2add_record_mode): Likewise.
29258         (reload_cse_move2add): Likewise.
29259         * reg-stack.c (subst_stack_regs_pat): Likewise.
29260         * regcprop.c (kill_value, copy_value): Likewise.
29261         (copyprop_hardreg_forward_1): Likewise.
29262         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
29263         (build_def_use): Likewise.
29264         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
29265         (deps_analyze_insn): Likewise.
29266         * sched-rgn.c (check_live_1, update_live_1): Likewise.
29267         * sel-sched.c (count_occurrences_equiv): Likewise.
29268         * valtrack.c (dead_debug_insert_temp): Likewise.
29269
29270 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29271
29272         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
29273         * dse.c (note_add_store): Likewise.
29274         * ira-lives.c (mark_hard_reg_dead): Likewise.
29275         * loop-invariant.c (mark_reg_store): Likewise.
29276         (mark_reg_death): Likewise.
29277         * postreload.c (reload_combine): Likewise.
29278         (reload_combine_note_store): Likewise.
29279         (reload_combine_note_use): Likewise.
29280         * recog.c (peep2_reg_dead_p): Likewise.
29281
29282 2015-05-19  Alan Modra  <amodra@gmail.com>
29283
29284         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
29285         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
29286         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
29287         unused predicates.
29288         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
29289         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
29290         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
29291         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
29292
29293 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
29294
29295         * config/mips/mips.md (JOIN_MODE): New mode iterator.
29296         (join2_load_Store<JOIN_MODE:mode>): New pattern.
29297         (join2_loadhi): Likewise.
29298         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
29299         load-load and store-stores.
29300         * config/mips/mips.opt (mload-store-pairs): New option.
29301         (TARGET_LOAD_STORE_PAIRS): New macro.
29302         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
29303         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
29304         * config/mips/mips.c (mips_load_store_bonding_p): New function.
29305
29306 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
29307
29308         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
29309         explicit swaps.
29310         * dojump.c (do_compare_rtx_and_jump): Likewise.
29311         * expmed.c (emit_store_flag_1): Likewise.
29312         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
29313         * final.c (sprint_ul): Use std::reverse for reversing a string.
29314         * fold-const.c (extract_muldiv_1): Use std::swap.
29315         * genmodes.c (emit_mode_int_n): Likewise.
29316         * ifcvt.c (dead_or_predicable): Likewise.
29317         * ira-build.c (ira_merge_live_ranges): Likewise.
29318         (swap_allocno_copy_ends_if_necessary): Likewise.
29319         * ira.c (ira_setup_alts): Likewise.
29320         * loop-iv.c (iv_analyze_expr): Likewise.
29321         (implies_p): Likewise.
29322         (canon_condition): Likewise.
29323         * lra-constraints.c (swap_operands): Likewise.
29324         * lra-lives.c (lra_merge_live_ranges): Likewise.
29325         * omega.c (swap): Remove.
29326         (bswap): Remove.
29327         (omega_unprotect_1): Use std::swap.
29328         (omega_solve_geq): Likewise.
29329         * optabs.c (expand_binop_directly): Likewise.
29330         (expand_binop): Likewise.
29331         (emit_conditional_move): Likewise.
29332         (emit_conditional_add): Likewise.
29333         * postreload.c (reload_cse_simplify_operands): Likewise.
29334         * reg-stack.c (emit_swap_insn): Likewise.
29335         (swap_to_top): Likewise.
29336         (compare_for_stack_reg): Likewise.
29337         (subst_asm_stack_regs): Likewise.
29338         * reload.c (find_reloads): Likewise.
29339         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
29340         * sel-sched.c (invoke_reorder_hooks): Likewise.
29341         (create_block_for_bookkeeping): Likewise.
29342         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
29343         (lambda_matrix_right_hermite): Use std::swap.
29344         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
29345         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29346         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
29347         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
29348         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
29349         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
29350         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
29351         * tree-vrp.c (compare_ranges): Likewise.
29352         * var-tracking.c (add_with_sets): Likewise.
29353         (vt_find_locations): Likewise.
29354
29355 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
29356
29357         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
29358         pie executables.
29359         (FBSD_ENDFILE_SPEC): Likewise.
29360         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
29361         config/freebsd-spec.h.
29362         (ENDFILE_SPEC): Likewise.
29363
29364 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
29365             Richard Henderson  <rth@redhat.com>
29366
29367         PR target/57032
29368         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
29369         Check for a memory location that is not a reference (using an AND)
29370         to an unaligned location here.
29371         * config/alpha/predicates.md (normal_memory_operand): Remove.
29372
29373 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
29374
29375         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
29376         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
29377
29378 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
29379
29380         * config/mips/mips.c (micromips_globals): New variable.
29381         (mips_set_compression_mode): Save and reinitialize target-dependent
29382         state for microMIPS.
29383
29384 2015-05-18  Martin Liska  <mliska@suse.cz>
29385
29386         * dbgcnt.def: Add new counter.
29387         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
29388
29389 2015-05-18  Martin Liska  <mliska@suse.cz>
29390
29391         * dbgcnt.def: Sort counters.
29392         * opts.c (common_handle_option): Do not compile if
29393         -fdbg-cnt-list is enabled.
29394
29395 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29396
29397         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
29398         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
29399         address operator to va_list operand.
29400         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
29401         unconditionally.
29402         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
29403         operand.
29404         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
29405         * config/s390/s390.c (s390_gimplify_va_arg): Same.
29406         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
29407
29408 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29409
29410         * tree-ssa-tail-merge.c: Fix whitespace.
29411
29412 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
29413
29414         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
29415         cortex-a17, and cortex-a17.cortex-a7.
29416
29417 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
29418
29419         PR target/54236
29420         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
29421
29422 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
29423
29424         PR target/66174
29425         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
29426         QImode inner modes for TARGET_AVX512BW.  Force mask operand
29427         to a register for AVX512F modes.
29428
29429 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29430
29431         * toplev.c (emit_debug_global_declarations): Do not output debug info
29432         when doing slim LTO objects.
29433
29434 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29435
29436         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
29437         odr_types_equivalent_p): Declare.
29438         (odr_type_p): Use gcc_checking_assert.
29439         (type_in_anonymous_namespace_p) Declare.
29440         (type_with_linkage_p): Declare.
29441         * common.opt (Wlto-type-mismatch): New warning.
29442         * ipa-devirt.c (compound_type_base): New function.
29443         (odr_or_derived_type_p): New function.
29444         (odr_types_equivalent_p): New function.
29445         (add_type_duplicate): Simplify.
29446         (type_with_linkage_p): Add hack to prevent false positives on C types
29447         (type_in_anonymous_namespace_p): Likewise.
29448         * tree.c (need_assembler_name_p): Use type_with_linkage.
29449         * tree.h (type_in_anonymous_namespace_p): Remove.
29450         * doc/invoke.texi (-Wlto-type-mismatch): Document
29451
29452 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29453
29454         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
29455         (verify_type): Verify STRING_FLAG.
29456
29457 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29458
29459         PR fortran/44054
29460         * tree-pretty-print.c (percent_K_format): Replace locus pointer
29461         with accessor function.
29462         * tree-diagnostic.c (diagnostic_report_current_function): Use
29463         diagnostic_location function.
29464         (maybe_unwind_expanded_macro_loc): Likewise.
29465         (virt_loc_aware_diagnostic_finalizer): Likewise.
29466         (default_tree_printer): Replace locus pointer with accessor function.
29467         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
29468         (diagnostic_set_info_translated): Initialize second location.
29469         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
29470         (diagnostic_show_locus): Handle two locations. Call
29471         diagnostic_print_caret_line.
29472         (diagnostic_print_caret_line): New.
29473         (default_diagnostic_starter): Use diagnostic_location function.
29474         (diagnostic_report_diagnostic): Use diagnostic_location function.
29475         (verbatim): Do not set text.locus.
29476         * diagnostic.h (struct diagnostic_info): Remove location field.
29477         (struct diagnostic_context): Make caret_chars an array of two.
29478         (diagnostic_location): New inline.
29479         (diagnostic_expand_location): Handle two locations.
29480         (diagnostic_same_line): New inline.
29481         (diagnostic_print_caret_line): Declare.
29482         (CARET_LINE_MARGIN): New constant.
29483         * pretty-print.c (pp_printf): Do not set text.locus.
29484         (pp_verbatim): Do not set text.locus.
29485         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
29486         (struct text_info): Replace locus pointer with locations
29487         array. Add accessor functions.
29488
29489 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
29490             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29491
29492         PR target/65768
29493         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
29494         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
29495          large constants in register instead of splitting them.
29496
29497 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
29498
29499         PR target/66140
29500         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
29501         replacements in memory addresses.
29502         (get_unaligned_address): Ditto.
29503
29504 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
29505
29506         * config/ft32/*: New files for FT32 port.
29507         * doc/install.texi: Add FT32 information.
29508         * doc/invoke.texi: Add FT32 information.
29509         * doc/md.texi: Add FT32 information.
29510         * doc/contrib.texi: Self added.
29511
29512 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
29513
29514         PR tree-optimization/64454
29515         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
29516         (-1 - A -> ~A): Remove unnecessary condition.
29517
29518 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
29519
29520         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
29521         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
29522         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
29523
29524 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
29525
29526         * ipa-chkp.h (chkp_wrap_function): New.
29527         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
29528         (chkp_wrap_function_name): New.
29529         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
29530         to get wrapper name.
29531         * lto-cgraph.c: Include ipa-chkp.h.
29532         (input_cgraph_1): Avoid alias chain for wrappers.
29533
29534 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
29535
29536         PR middle-end/66134
29537         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
29538         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
29539
29540 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29541
29542         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
29543         (AARCH64_FL_SLOWMUL): Delete.
29544         (AARCH64_FL_CRC): Redefine to 1<<3.
29545         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
29546
29547 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29548
29549         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
29550         casting.
29551
29552 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29553
29554         * config/alpha/alpha.md (extendqidi2): Use general_operand
29555         instead of some_operand for operand[1] predicate.
29556         (extendhidi2): Ditto.
29557         (cbranchdi4): Use general_operand instead of some_operand
29558         for operand[1] and operands[2] predicates.
29559         (cstoredi4): Ditto.
29560         * config/alpha/predicates.md (some_operand): Remove unused predicate.
29561         (some_ni_operand): Ditto.
29562
29563 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29564
29565         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
29566         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
29567         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
29568         low part of the constant using alpha_emit_set_const_1.
29569         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
29570
29571 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
29572
29573         * varasm.c (output_constant_pool_1): Pass down alignment from
29574         constant pool entry's descriptor to output_constant_pool_2.
29575         (output_object_block): Add comment prior to call to
29576         output_constant_pool_1.
29577
29578 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
29579
29580         PR rtl-optimization/65862
29581         * target.def (ira_change_pseudo_allocno_class): New hook.
29582         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
29583         value of the hook.
29584         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
29585         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
29586         hook.
29587         * ira-costs.c (find_costs_and_classes): Call the hook and change
29588         classes when it is necessary.
29589         * doc/tm.texi: Update.
29590
29591 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
29592
29593         * config/i386/i386.md (sibcall_memory): Check that register with
29594         callee address is not also used as one of the arguments, instead
29595         of checking that it is not live after the sibcall.
29596         (sibcall_pop_memory): Ditto.
29597         (sibcall_value_memory): Ditto.
29598         (sibcall_value_pop_memory): Ditto.
29599
29600 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
29601
29602         * generic-match-head.c (types_match): Handle non-types.
29603         * gimple-match-head.c (types_match): Likewise.
29604         * match.pd: Remove unnecessary TREE_TYPE for types_match.
29605
29606 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
29607
29608         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
29609         (csneg3<mode>_insn): Enable expansion of pattern.
29610
29611 2015-05-14  Nick Clifton  <nickc@redhat.com>
29612
29613         * config/rl78/rl78.c (rl78_select_section): Select the correct
29614         default section based upon the category of the decl.
29615
29616 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29617
29618         PR rtl-optimization/30967
29619         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
29620         destination mode for the cost of scc patterns.
29621
29622 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29623
29624         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
29625         using SWIM248 mode iterator.
29626         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
29627         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
29628         for operand[2] constraint.
29629         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
29630
29631 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29632
29633         PR middle-end/66133
29634         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
29635         make sure it is never noreturn, even when the task body does not
29636         return.
29637         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
29638         right before GIMPLE_OMP_RETURN.
29639         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
29640         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
29641         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
29642
29643 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29644
29645         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
29646         * tree-ssa-math-opts.c: Include params.h
29647         (pow_synth_sqrt_info): New struct.
29648         (representable_as_half_series_p): New function.
29649         (get_fn_chain): Likewise.
29650         (print_nested_fn): Likewise.
29651         (dump_fractional_sqrt_sequence): Likewise.
29652         (dump_integer_part): Likewise.
29653         (expand_pow_as_sqrts): Likewise.
29654         (gimple_expand_builtin_pow): Use above to attempt to expand
29655         pow as series of square roots.  Removed now unused variables.
29656
29657 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29658
29659         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
29660         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
29661         Remove *p0 and *p1 arguments.  Rewrite function.
29662         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
29663         (alpha_split_const_mov): Update calls to alpha_extract_integer and
29664         alpha_emit_set_long_const.
29665         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
29666         (alpha_output_mi_thunk_osf): Ditto.
29667         * config/alpha/alpha.md (movti): Do not check operands[1]
29668         for CONST_DOUBLE.
29669
29670 2015-05-13  Richard Biener  <rguenther@suse.de>
29671
29672         PR tree-optimization/66129
29673         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
29674         commutative.
29675         (vect_schedule_slp_instance): Fix typo.
29676
29677 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
29678
29679         * common.opt (fdump-internal-locations): New option.
29680         * input.c: Include diagnostic-core.h.
29681         (get_end_location): New function.
29682         (write_digit): New function.
29683         (write_digit_row): New function.
29684         (dump_location_range): New function.
29685         (dump_labelled_location_range): New function.
29686         (dump_location_info): New function.
29687         * input.h (dump_location_info): New prototype.
29688         * toplev.c (compile_file): Handle flag_dump_locations.
29689
29690 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
29691
29692         * gimple-expr.h (is_gimple_constant): Reorder.
29693         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
29694
29695 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29696
29697         * combine.c (simplify_set): When generating a CC set, if the
29698         source already is in the correct mode, do not wrap it in a
29699         compare.  Simplify the rest of that code.
29700
29701 2015-05-13  Richard Biener  <rguenther@suse.de>
29702
29703         PR tree-optimization/66123
29704         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
29705         a taken edge.
29706
29707 2015-05-13  Richard Biener  <rguenther@suse.de>
29708
29709         PR middle-end/66110
29710         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
29711         specially.
29712         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
29713
29714 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29715
29716         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
29717         * aclocal.m4: Regenerated with automake-1.11.6.
29718
29719 2015-05-13  Tom de Vries  <tom@codesourcery.com>
29720
29721         PR tree-optimization/66010
29722         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
29723         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
29724         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
29725         and rval based on do_deref.
29726
29727 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29728
29729         PR target/65103
29730         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
29731         link time constants into adress expressions and therefore set
29732         their cost to 0.
29733
29734 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29735
29736         PR target/66112
29737         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
29738         Use SWI248 iterator instead of SWI.
29739         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
29740         Use eq_attr "alternative" "0" instead of match_test in
29741         length_immediate attribute computation.
29742         (*mulvhi4, *mulvhi4_1): New define_insns.
29743
29744         PR target/66112
29745         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
29746         SIGNED to get precision of non-negative value.
29747
29748 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29749
29750         PR target/66048
29751         * function.c (diddle_return_value_1): Process bounds first.
29752         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
29753         register.
29754
29755 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29756
29757         PR rtl-optimization/64616
29758         * loop-invariant.c (can_move_invariant_reg): New.
29759         (move_invariant_reg): Call above new function to decide whether
29760         instruction can just be moved, skipping creation of temporary
29761         register.
29762
29763 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29764
29765         PR target/pr66047.c
29766         * i386.c (ix86_function_sseregparm): Only return -1 if local function
29767         with implied regparm is called from -mno-sse function.
29768         (init_cumulative_args): Output error if ix86_function_sseregparm
29769         return -1 and SSE register would be needed.
29770         (function_arg_advance_32): Likewise.
29771         (function_arg_32): Likewise.
29772         * i386.h (ix86_args): Add decl field.
29773
29774 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29775
29776         PR ipa/65873
29777         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
29778         inlines across optimization boundary.
29779
29780 2015-05-12  Jason Merrill  <jason@redhat.com>
29781
29782         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
29783         string literal and macro name.
29784
29785 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
29786
29787         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
29788         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
29789         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
29790
29791 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29792
29793         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
29794         (-Wmisleading-indentation): New option.
29795         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
29796
29797 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
29798
29799         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
29800         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
29801         (alpha_extract_integer): Ditto.
29802         (alpha_legitimate_constant_p): Ditto.
29803         (alpha_split_tmode_pair): Ditto.
29804         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
29805         (alpha_expand_mov): Ditto.
29806         (print_operand): Remove handling of 'H' modifier.
29807         <case 'm'>: Remove CONST_DOUBLE handling.
29808         (summarize_insn): Handle CONST_WIDE_INT.
29809         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
29810         (anddi3): Ditto.
29811         (movti): Handle CONST_WIDE_INT.
29812         * config/alpha/constraints.md ('H'): Remove constraint definition.
29813         ('G'): Do not match MODE_FLOAT class.
29814         * config/alpha/predicates.md (const0_operand): Also match
29815         const_wide_int.
29816         (non_add_const_operand): Ditto.
29817         (non_zero_const_operand): Ditto.
29818         (some_operand): Ditto.
29819         (input_operand): Ditto.  Handle CONST_WIDE_INT.
29820         (and_operand): Do not match const_double.
29821         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
29822
29823 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
29824
29825         PR target/65697
29826         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
29827         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
29828         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
29829         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
29830         is_mm_seq_cst, is_mm_sync): New accessor functions.
29831         * builtins.c (expand_builtin_sync_operation,
29832         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
29833         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
29834         (get_memmodel,  expand_builtin_atomic_compare_exchange,
29835         expand_builtin_atomic_load, expand_builtin_atomic_store,
29836         expand_builtin_atomic_clear): Use new accessor routines.
29837         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
29838         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
29839         (maybe_emit_sync_lock_test_and_set): Use new accessors and
29840         MEMMODEL_SYNC_ACQUIRE.
29841         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
29842         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
29843         expand_atomic_store): Use new accessors.
29844         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
29845         * tsan.c (instrument_builtin_call): Update check for memory model beyond
29846         final enum to use MEMMODEL_LAST.
29847         * c-family/c-common.c: Use new accessor for memmodel_base.
29848         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
29849         accessors.
29850         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
29851         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
29852         mem_thread_fence, *dmb): Likewise.
29853         * config/alpha/alpha.c (alpha_split_compare_and_swap,
29854         alpha_split_compare_and_swap_12): Likewise.
29855         * config/arm/arm.c (arm_expand_compare_and_swap,
29856         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
29857         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
29858         atomic_loaddi): Likewise.
29859         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
29860         Likewise.
29861         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
29862         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
29863         use new accessors.
29864         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
29865         atomic_store<mode>, atomic_compare_and_swap<mode>,
29866         atomic_exchange<mode>): Use new accessors.
29867         * config/mips/mips.c (mips_process_sync_loop): Likewise.
29868         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
29869         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
29870         rs6000_post_atomic_barrier): Add new cases.
29871         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
29872         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
29873         (atomic_load<mode>): Add new cases and use new accessors.
29874         (store_quadpti): Add new cases.
29875         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
29876         accessors.
29877         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
29878         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
29879         model, not 8.
29880
29881 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29882
29883         * ipa-devirt.c (type_with_linkage_p): New function.
29884         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
29885         type has linkage.
29886         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
29887         (can_be_name_hashed_p): Simplify.
29888         (hash_odr_name): Check that type has linkage before checking if it is
29889         anonymous.
29890         (types_same_for_odr): Likewise.
29891         (odr_name_hasher::equal): Likewise.
29892         (odr_subtypes_equivalent_p): Likewise.
29893         (warn_types_mismatch): Likewise.
29894         (get_odr_type): Likewise.
29895         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
29896         * ipa-utils.h (odr_type_p): Move offline.
29897         * tree.c (need_assembler_name_p): Fix handling of types
29898         without linkages.
29899         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
29900
29901 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29902
29903         * timevar.c (timevar_enable): Delete in favor of...
29904         (g_timer): New global.
29905         (struct timevar_def): Move to timevar.h inside class timer.
29906         (struct timevar_stack_def): Likewise.
29907         (timevars): Delete global in favor of field "m_timevars" within
29908         class timer in timevar.h
29909         (stack): Likewise, in favor of field "m_stack".
29910         (unused_stack_instances): Likewise, in favor of field
29911         "m_unused_stack_instances".
29912         (start_time): Likewise, in favor of field "m_start_time".
29913         (get_time): Eliminate check for timevar_enable.
29914         (timer::timer): New function, built from part of timevar_init.
29915         (timevar_init): Rewrite idempotency test from using
29916         "timevar_enable" bool to using dynamic allocation of "g_timer".
29917         Move rest of implementation into timer's constructor.
29918         (timevar_push_1): Rename to...
29919         (timer::push): ...this, adding "m_" prefixes to variables that
29920         are now fields of timer.
29921         (timevar_pop_1): Likewise, rename to...
29922         (timer::pop): ...this, and add "m_" prefixes.
29923         (timevar_start): Replace test for "timevar_enable" with one for
29924         "g_timer", and move bulk of implementation to...
29925         (timer::start): ...here, adding "m_" prefixes.
29926         (timevar_stop): Likewise, from here...
29927         (timer::stop): ...to here.
29928         (timevar_cond_start): Likewise, from here...
29929         (timer::cond_start): ...to here.
29930         (timevar_cond_stop): Likewise, from here...
29931         (timer::cond_stop): ...to here.
29932         (validate_phases): Rename to...
29933         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
29934         locals "total" and "tv" const.
29935         (timevar_print): Rename to...
29936         (timer::print): ...this, and add "m_" prefixes.  Make locals
29937         "total" and "tv" const.  Eliminate test for timevar_enable.
29938         * timevar.h (timevar_enable): Eliminate.
29939         (g_timer): New declaration.
29940         (timevar_push_1): Eliminate.
29941         (timevar_pop_1): Eliminate.
29942         (timevar_print): Eliminate.
29943         (class timer): New class.
29944         (timevar_push): Rewrite to use g_timer.
29945         (timevar_pop): Likewise.
29946         * toplev.c (toplev::~toplev): Likewise.
29947
29948 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
29949
29950         * arm-protos.h (arm_sched_autopref): Delete.
29951         (tune_params): Re-organize, use enums for flag values.
29952         (FUSE_OPS): New macro.
29953         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
29954         (ARM_PREFETCH_BENEFICIAL): Likewise.
29955         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
29956         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
29957         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
29958         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
29959         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
29960         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
29961         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
29962         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
29963         format.
29964         (arm_option_override, thumb2_reorg, arm_print_tune_info)
29965         (aarch_macro_fusion_pair_p): Update uses of current_tune.
29966         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
29967
29968 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
29969
29970         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
29971         "break".
29972
29973 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
29974             Sandra Loosemore <sandra@codesourcery.com>
29975
29976         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
29977         value.
29978         (REG_CLASS_NAMES): Add "IJMP_REGS".
29979         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
29980         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
29981         use new "c" register constraint.
29982         * config/nios2/constraint.md (c): New register constraint
29983         corresponding to IJMP_REGS.
29984
29985 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29986
29987         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
29988         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
29989         define_splits): Delete, revamp, transmogrify into ...
29990         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
29991         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
29992         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
29993         New.
29994
29995 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29996
29997         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
29998         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
29999
30000 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30001
30002         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
30003         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
30004         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
30005         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
30006         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
30007         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
30008         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
30009         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
30010         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
30011         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
30012         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
30013         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
30014         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
30015         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
30016         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
30017         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
30018         and 30 corresponding splitters): Delete.
30019
30020 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30021
30022         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
30023         zero_extract.
30024
30025 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30026
30027         * combine.c (recog_for_combine_1): New function, factored out
30028         from recog_for_combine.
30029         (change_zero_ext): New function.
30030         (recog_for_combine): If recog fails, try again with the pattern
30031         modified by change_zero_ext; if that still fails, restore the
30032         pattern.
30033
30034 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30035
30036         * combine.c (get_undo_marker): New function.
30037         (undo_to_marker): New function, largely factored out from ...
30038         (undo_all): ... this.  Adjust.
30039
30040 2015-05-12  Richard Biener  <rguenther@suse.de>
30041
30042         PR tree-optimization/66101
30043         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
30044         fixup if we turn a loop exit edge to a fallthru edge.
30045
30046 2015-05-12  Richard Biener  <rguenther@suse.de>
30047
30048         PR tree-optimization/37021
30049         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
30050         (SLP_TREE_TWO_OPERATORS): New define.
30051         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
30052         SLP_TREE_TWO_OPERATORS.
30053         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
30054         SLP node.
30055         (vect_build_slp_tree): Adjust.
30056         (vect_analyze_slp_cost_1): Likewise.
30057         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
30058         emitting two vector stmts and mixing the results.
30059
30060 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30061
30062         * call.c (print_z_candidates): Remove dead code.
30063
30064 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30065
30066         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
30067         and zEC12_simple_fp.
30068         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
30069         to 1.
30070
30071 2015-05-12  Tom de Vries  <tom@codesourcery.com>
30072
30073         PR tree-optimization/66010
30074         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
30075         ifn_va_arg.
30076         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
30077         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
30078         va_lists are passed, and remove corresponding handling.
30079         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
30080         do_deref argument to ifn_va_arg.
30081         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
30082         ifn_va_arg.
30083
30084 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30085
30086         PR target/65955
30087         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
30088         REG before taking its REGNO.
30089
30090 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30091
30092         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
30093         rsp->sign_bit_copies and rsp->nonzero_bits into ...
30094         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
30095         present to get more accurate information about the number of sign bit
30096         copies and non zero bits.
30097
30098 2015-05-12  Richard Biener  <rguenther@suse.de>
30099
30100         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
30101         do not allow unrolling.
30102
30103 2015-05-11  Richard Henderson  <rth@redhat.com>
30104
30105         * config/i386/i386-modes.def (CCP): New.
30106         * config/i386/i386.c (put_condition_code): Handle it.
30107         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
30108
30109 2015-05-11  Richard Henderson  <rth@redhat.com>
30110
30111         * target.def (md_asm_clobbers): Replace with...
30112         (md_asm_adjust): this.
30113         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
30114         (TARGET_MD_ASM_ADJUST): New.
30115         * tm.texi: Rebuild.
30116         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
30117         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
30118         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
30119
30120         * cfgexpand.c (check_operand_nalternatives): Accept vector of
30121         constraints instead of lists of outputs and inputs.
30122         (expand_asm_stmt): Save and restore input_location around the
30123         body of the function.  Move asm data into vectors instead of
30124         building tree lists.  Generate cleanup sequences as needed,
30125         rather than waiting til the end.  Use new md_asm_adjust hook.
30126
30127         * config/vxworks.c: Include vec.h before target.h.
30128         * gimple.c: Likewise.
30129         * incpath.c: Likewise.
30130         * mode-switching.c: Likewise.
30131
30132         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
30133         (cris_md_asm_adjust): this.
30134         (TARGET_MD_ASM_CLOBBERS): Remove.
30135         (TARGET_MD_ASM_ADJUST): New.
30136         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
30137         (ix86_md_asm_adjust): this.
30138         (TARGET_MD_ASM_CLOBBERS): Remove.
30139         (TARGET_MD_ASM_ADJUST): New.
30140         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
30141         (mn10300_md_asm_adjust): this.
30142         (TARGET_MD_ASM_CLOBBERS): Remove.
30143         (TARGET_MD_ASM_ADJUST): New.
30144         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
30145         (rs6000_md_asm_adjust): this.
30146         (TARGET_MD_ASM_CLOBBERS): Remove.
30147         (TARGET_MD_ASM_ADJUST): New.
30148         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
30149         (visium_md_asm_adjust): this.
30150         (TARGET_MD_ASM_CLOBBERS): Remove.
30151         (TARGET_MD_ASM_ADJUST): New.
30152
30153 2015-05-11  Richard Henderson  <rth@redhat.com>
30154
30155         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
30156         if noutputs is zero.
30157         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
30158
30159         * cfgexpand.c (expand_asm_operands): Merge into...
30160         (expand_asm_stmt): ... here.
30161
30162         * cfgexpand.c (expand_asm_operands): Don't call
30163         resolve_asm_operand_names.
30164         * stmt.c (resolve_asm_operand_names): Clarify block comment.
30165
30166 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
30167
30168         * dwarf2out.c (gen_member_die): Sanity check that we access
30169         TYPE_MAIN_VARIANT for TYPE_METHODS.
30170         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
30171         checking TYPE_METHODS.
30172         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
30173         if non-null.
30174         (build_distinct_type_copy): Clear TYPE_METHODS.
30175         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
30176         (verify_type): Allow TYPE_METHODS to be error_mark_node.
30177         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
30178
30179 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
30180
30181         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
30182         (emit_pattern_before_setloc): Likewise.
30183
30184 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30185
30186         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
30187         for define_peephole2s.
30188         (get_peephole2_pattern): New function.
30189         (main): Use it.  Call validate_pattern.
30190
30191 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30192
30193         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
30194         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
30195         (Last callee saved reg is different for AVR_TINY architecture)
30196
30197 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30198
30199         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
30200         when looking for memory references.
30201
30202 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30203
30204         PR target/65753
30205         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
30206         via function pointers.
30207
30208 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30209
30210         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
30211         indirect call by forcing address into a pseudo with -fno-plt.
30212         * common.opt (flag_plt): New option.
30213         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
30214         ([-fno-plt]): Document.
30215
30216 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
30217
30218         PR bootstrap/66105
30219         * config/rs6000/option-defaults.h: Add space between string literal
30220         and macro name.
30221
30222 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30223
30224         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
30225         accross ARM targets.
30226
30227 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30228
30229         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
30230         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
30231
30232 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30233
30234         PR rtl-optimization/66076
30235         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
30236         Don't grow the heap array if it is already big enough from a
30237         previous iteration.
30238
30239 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30240
30241         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
30242         (is_called_in_ARM_mode): Remove.
30243         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
30244         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
30245         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
30246          arm_declare_function_name.
30247
30248 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30249
30250         * config/arm/arm.c (arm_option_override): Reoganized and split into :
30251         (arm_option_params_internal); New function.
30252         (arm_option_check_internal): New function.
30253         (arm_option_override_internal): New function.
30254         (thumb_code, thumb1_code): Remove.
30255         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
30256         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
30257         (thumb_code, thumb1_code): Remove.
30258         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
30259
30260 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30261
30262         * config/alpha/alpha.c (alpha_emit_set_const_1)
30263         (alpha_emit_set_long_const, alpha_extract_integer)
30264         (alpha_legitimate_constant_p, alpha_split_const_mov)
30265         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
30266         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30267         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
30268         HOST_WIDE_INT_1U.
30269         * config/alpha/predicates.md (mode_mask_operand): Do not match
30270         const_double RTX.
30271         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30272         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
30273         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
30274         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30275         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
30276
30277 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
30278
30279         PR target/65780
30280         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
30281         default_binds_local_p_2.
30282         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
30283         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
30284
30285 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30286
30287         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
30288
30289 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30290
30291         Patch by Richard Biener
30292         * coverage.c (coverage_obj_init): Delay building of type variant
30293         until the type is finished.
30294
30295 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30296
30297         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
30298         mismatch between C and C++ type; compoare correctly ARG_TYPES
30299         for non-prototypes and output correctly parameter index for METHOD_TYPE.
30300         (odr_types_equivalent_p): Fix wording of warning about attributes;
30301         it is OK to match prototype and non-prototype.
30302
30303 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30304
30305         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
30306         TYPE_ARG_TYPES list.
30307         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
30308         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
30309
30310 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30311
30312         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
30313         * tree.h (is_lang_specific): Constify.
30314
30315 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
30316
30317         PR tree-optimization/64454
30318         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
30319         Rewrite.
30320
30321 2015-05-08  Jason Merrill  <jason@redhat.com>
30322
30323         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
30324         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
30325         config/darwin.h, config/darwin9.h, config/elfos.h,
30326         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
30327         config/microblaze/microblaze.h, config/mips/mips.h,
30328         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
30329         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
30330         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
30331         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
30332         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
30333         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
30334         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
30335         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
30336         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
30337         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
30338         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
30339         between string literal and macro name.
30340
30341 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30342
30343         * jump.c: Change argument types to rtx_insn *.
30344         * rtl.h: Adjust.
30345
30346 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30347
30348         * lra-constraints.c: Change argument type to rtx_insn *.
30349
30350 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30351
30352         * df-problems.c: Change argument type to rtx_insn *.
30353
30354 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30355
30356         * combine.c: Change argument type to rtx_insn *.
30357
30358 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30359
30360         * rtl.h: Adjust.
30361         * rtlanal.c: Change argument type to rtx_insn *.
30362
30363 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30364
30365         * sched-deps.c: Change argument types to rtx_insn *.
30366         * sched-int.h: Adjust.
30367
30368 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30369
30370         * dwarf2cfi.c: Change argument type to rtx_insn *.
30371
30372 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30373
30374         * ira.c (decrease_live_ranges_number): Changetype of local
30375         variable to rtx_insn *.
30376         * recog.c: Change argument types to rtx_insn *.
30377         * recog.h: Adjust.
30378
30379 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30380
30381         * reorg.c: Change argument types to rtx_insn *.
30382
30383 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30384
30385         * ira-color.c: Change argument types to rtx_insn *.
30386         * lra-eliminations.c: Likewise.
30387         * ira.h: Adjust.
30388
30389 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30390
30391         * gcse.c: Change argument types to rtx_insn *.
30392
30393 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30394
30395         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
30396
30397 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30398
30399         * emit-rtl.c (emit_debug_insn_before): Change argument type to
30400         rtx_insn *.
30401         * rtl.h: Adjust.
30402
30403 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30404
30405         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
30406         * rtl.h: Adjust.
30407
30408 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30409
30410         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
30411         * rtl.h: Adjust.
30412
30413 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30414
30415         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
30416         * rtl.h: Adjust.
30417
30418 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30419
30420         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
30421         * rtl.h: Adjust.
30422
30423 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30424
30425         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
30426         to rtx_insn *.
30427         * rtl.h: Adjust.
30428
30429 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30430
30431         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
30432         to rtx_insn *.
30433         * rtl.h: Likewise.
30434
30435 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30436
30437         * except.c (can_nonlocal_goto): Change type of argument to
30438         rtx_insn *.
30439         * rtl.h: Adjust.
30440
30441 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30442
30443         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
30444         * rtl.h: Adjust.
30445
30446 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30447
30448         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
30449         * cfgrtl.c (can_delete_label_p): Adjust.
30450         * rtl.h: likewise.
30451
30452 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30453
30454         * reorg.c (stop_search_p): Change argument to rtx_insn *.
30455
30456 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30457
30458         * except.c (make_reg_eh_region_note): Change argument to
30459         rtx_insn *.
30460         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
30461         * except.h: Adjust.
30462
30463 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30464
30465         * mode-switching.c (commit_mode_sets): Change type of local
30466         variable from rtx to rtx_insn *.
30467
30468 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
30469
30470         * doc/install.texi (--enable-languages): Add missing jit and lto info.
30471         Add ^ to grep command.
30472         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
30473         arg to last gimple_simplify declaration.  Add missing gimple_build
30474         declaration for built-in function case with four tree args.
30475
30476 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30477             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30478
30479         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
30480         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
30481         (GNU_USER_DYNAMIC_LINKERN32): Update.
30482
30483 2015-05-08  Richard Biener  <rguenther@suse.de>
30484
30485         PR tree-optimization/66036
30486         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30487         Handle strided group loads.
30488         (vect_verify_datarefs_alignment): Likewise.
30489         (vect_enhance_data_refs_alignment): Likewise.
30490         (vect_analyze_group_access): Likewise.
30491         (vect_analyze_data_ref_access): Likewise.
30492         (vect_analyze_data_ref_accesses): Likewise.
30493         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
30494         (vectorizable_load): Likewise.
30495
30496 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
30497
30498         * config/rs6000/rs6000.md: Require operand inequality in one
30499         of the peepholes.
30500
30501 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30502             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
30503
30504         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
30505         from (set ...).
30506         * config/rx/rx.md (movdi, movdf): Likewise.
30507         Likewise for define_peephole2s.
30508
30509 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30510
30511         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
30512         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
30513         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
30514         vtst_u64): Rewrite using gcc vector extensions.
30515
30516 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30517
30518         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
30519         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
30520
30521 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30522
30523         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
30524
30525 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30526
30527         * config/glibc-stdint.h (OPTION_MUSL): Define.
30528         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
30529         Change the definition based on OPTION_MUSL for 64 bit targets.
30530         * config/linux.h (OPTION_MUSL): Redefine.
30531         * config/alpha/linux.h (OPTION_MUSL): Redefine.
30532         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
30533         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
30534
30535 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30536             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30537
30538         * config.gcc (LIBC_MUSL): New tm_defines macro.
30539         * config/linux.h (OPTION_MUSL): Define.
30540         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
30541         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
30542         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30543         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30544         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30545         * config/linux.opt (mmusl): New option.
30546         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
30547         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30548         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30549         * configure: Regenerate.
30550
30551 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
30552             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30553
30554         PR target/48904
30555         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
30556         * config/i386/knetbsd-gnu64.h: New file.
30557
30558 2015-05-08  Marek Polacek  <polacek@redhat.com>
30559
30560         PR c/64918
30561         * doc/invoke.texi: Document -Woverride-init-side-effects.
30562
30563 2015-05-07  Marek Polacek  <polacek@redhat.com>
30564
30565         PR c/65179
30566         * doc/invoke.texi: Document -Wshift-negative-value.
30567
30568 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
30569
30570         * gcov-tool.c (do_merge): Refactore to remove int ret.
30571         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
30572         !type == FUNC to type != FUNC.
30573         * reload.h (struct target_reload): Changee to type of
30574         x_spill_indirect_levels from bool to unsigned char.
30575
30576 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
30577
30578         * rtl.h (always_void_p): New function.
30579         * gengenrtl.c (always_void_p): Likewise.
30580         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
30581         with code foo are always VOIDmode.
30582         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
30583         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
30584         compare-elim.c, config/aarch64/aarch64.c,
30585         config/aarch64/aarch64.md, config/alpha/alpha.c,
30586         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
30587         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
30588         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
30589         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
30590         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
30591         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
30592         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
30593         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
30594         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
30595         config/ia64/vect.md, config/iq2000/iq2000.c,
30596         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
30597         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
30598         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
30599         config/mep/mep.c, config/microblaze/microblaze.c,
30600         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
30601         config/mn10300/mn10300.c, config/msp430/msp430.c,
30602         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
30603         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
30604         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
30605         config/rs6000/altivec.md, config/rs6000/rs6000.c,
30606         config/rs6000/rs6000.md, config/rs6000/vector.md,
30607         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
30608         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
30609         config/sh/sh.md, config/sh/sh_treg_combine.cc,
30610         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
30611         config/spu/spu.md, config/stormy16/stormy16.c,
30612         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
30613         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
30614         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
30615         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
30616         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
30617         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
30618         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
30619         var-tracking.c: Update calls accordingly.
30620
30621 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
30622
30623         PR middle-end/192
30624         PR middle-end/54303
30625         * varasm.c (function_mergeable_rodata_prefix): New function.
30626         (mergeable_string_section): Use it.
30627         (mergeable_constant_section): Use it.
30628
30629 2015-05-07  Jeff Law  <law@redhat.com>
30630
30631         PR target/39726
30632         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30633         simplifier to narrow arithmetic.
30634         * generic-match-head.c: (types_match, single_use): New functions.
30635         * gimple-match-head.c: (types_match, single_use): New functions.
30636
30637 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
30638
30639         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
30640         rtx type.
30641
30642 2015-05-07  Richard Biener  <rguenther@suse.de>
30643
30644         PR tree-optimization/66002
30645         * passes.def: Schedule another pass_merge_phi after ifcombine, right
30646         before phiopt.
30647
30648 2015-05-07  Marek Polacek  <polacek@redhat.com>
30649             Martin Uecker  <uecker@eecs.berkeley.edu>
30650
30651         * doc/invoke.texi: Document -fsanitize=bounds-strict.
30652         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
30653         into SANITIZE_NONDEFAULT.
30654         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
30655
30656 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
30657
30658         PR target/66015
30659         * config/alpha/alpha.c (alpha_override_options_after_change): New.
30660         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
30661         (alpha_override_options): Move align_loops, align_jumps and
30662         align_functions handling into alpha_override_options_after_change.
30663
30664 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
30665             Chris Jones  <chrisj@nvidia.com>
30666             Joshua Conner  <jconner@nvidia.com>
30667
30668         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
30669         linking of crtfastmath.o.
30670         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
30671
30672 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
30673
30674         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
30675         (cstore<mode>4_unsigned_imm): New expander.
30676         (cstore<mode>4): Remove empty constraint strings.  Use the new
30677         expanders.
30678
30679 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
30680
30681         PR target/64208
30682         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
30683         alternatives.
30684
30685 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30686
30687         * config/aarch64/geniterators.sh: Use standard BRE in sed.
30688
30689 2015-05-06  Alan Modra  <amodra@gmail.com>
30690
30691         PR target/66033
30692         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
30693         (UNSPEC_NOP): Define.
30694         (reload_vsx_from_gpr<mode>): Add missing DONE.
30695         (reload_gpr_from_vsx<mode>): Likewise.
30696         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
30697         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
30698
30699 2015-05-06  Christian Bruel  <christian.bruel@st.com>
30700
30701         PR target/66015
30702         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
30703         align_jumps, align_functions into aarch64_override_options_after_change.
30704
30705 2015-05-06  Richard Biener  <rguenther@suse.de>
30706
30707         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
30708         vect_transform_slp_perm_load to check if we support a permutation
30709         for basic-block vectorization.
30710
30711 2015-05-06  Nick Clifton  <nickc@redhat.com>
30712
30713         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
30714         used, even if it is not being used as a frame pointer.
30715
30716 2015-05-05  Jason Merrill  <jason@redhat.com>
30717
30718         * dwarf2out.c (gen_member_die): Don't emit anything for an
30719         anonymous class constructor.
30720
30721 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
30722
30723         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
30724         that it reflects the block structure.
30725         (afdo_propagate_edge): Likewise.
30726         (afdo_calculate_branch_prob): Likewise.
30727         (afdo_annotate_cfg): Likewise.
30728         * cfgcleanup.c (equal_different_set_p): Likewise.
30729         (try_crossjump_to_edge): Likewise.
30730         * cgraph.c (cgraph_node::verify_node): Likewise.
30731         * cgraphunit.c (expand_all_functions): Likewise.
30732         * config/i386/i386.c (ix86_expand_copysign): Likewise.
30733         (exact_dependency_1): Likewise.
30734         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
30735         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
30736         * gensupport.c (process_define_subst): Likewise.
30737         * lto-wrapper.c (merge_and_complain): Likewise.
30738         * tree-if-conv.c (if_convertible_bb_p): Likewise.
30739         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
30740         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
30741         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
30742         * tree-vect-loop.c (vectorizable_reduction): Likewise.
30743         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
30744         * tree-vect-stmts.c (vectorizable_shift): Likewise.
30745         * tree-vrp.c (vrp_finalize): Likewise.
30746         * tree.c (variably_modified_type_p): Likewise.
30747
30748 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
30749
30750         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
30751         on darwin12 and later.
30752         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
30753         file to pass -rdynamic on darwin12 and later.
30754         * config/darwin.opt (rdynamic): Add.
30755
30756 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30757
30758         * doc/extend.texi (C Extensions): Update menu for moved Variable
30759         Attributes and Type Attributes sections.
30760
30761 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30762
30763         PR target/65990
30764         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
30765         if rep_8byte stringop strategy was specified for 32-bit target.
30766
30767 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
30768
30769         PR target/65915
30770         * config/i386/i386.md (vector convert to float spltiter): Check for
30771         xmm16+, when splitting scalar float conversion.
30772         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
30773
30774 2015-05-05  Nick Clifton  <nickc@redhat.com>
30775
30776         * config/msp430/msp430-opts.h (enum msp430_regions): New.
30777         * config/msp430/msp430.c (msp430_override_options): Complain if
30778         -mcode-region or -mdata-region is used on a non MSP430X.
30779         (msp430_section_attr): New function.  Checks lower, upper and
30780         either attributes.
30781         (msp430_attribute_table): Add lower, upper and either.
30782         (gen_prefix): New function.  Generates a prefix for a section
30783         name.
30784         (msp430_select_section): New function - handles the choice of
30785         section for an object.  Takes into account memory region
30786         attributes and options.
30787         (msp430_function_section): Use gen_prefix.
30788         (TARGET_SECTION_TYPE_FLAGS): Define.
30789         (msp430_section_type_flags): New function.
30790         (TARGET_ASM_UNIQUE_SECTION): Define.
30791         (msp430_unique_section): New function.
30792         (msp430_output_aligned_decl_common): New function.
30793         (msp430_do_not_relax_short_jumps): New function.
30794         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
30795         Define.
30796         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
30797         * config/msp430/msp430-protos.h
30798         (msp430_do_not_relax_short_jumps): New prototype.
30799         (msp430_output_aligned_decl_common): New prototype.
30800         * config/msp430/msp430.md (length): New attribute.
30801         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
30802         then use a long code sequence for short jumps.
30803         * config/msp430/msp430.opt (mcode-region): New.
30804         (mdata-region): New.
30805         * doc/invoke.texi: Document new options.
30806         * doc/extend.texi: Document new attributes.
30807
30808 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30809
30810         * config/aarch64-protos.h (struct cpu_branch_cost): New.
30811         (tune_params): Add field branch_costs.
30812         (aarch64_branch_cost): Declare.
30813         * config/aarch64.c (generic_branch_cost): New.
30814         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
30815         (cortexa53_tunings): Likewise.
30816         (cortexa57_tunings): Likewise.
30817         (thunderx_tunings): Likewise.
30818         (xgene1_tunings): Likewise.
30819         (aarch64_branch_cost): Define.
30820         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
30821
30822 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30823
30824         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
30825         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
30826         * config/i386/i386.md: Ditto.
30827         * config/i386/winnt.c: Ditto.
30828
30829 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30830
30831         * doc/extend.texi (__atomic Builtins): Move implementation details
30832         to the end of the description, rewrite opening paragraphs, state
30833         difference with __sync builtins, state C11/C++11 assumptions,
30834         weaken itemized descriptions, add explanation of memory model
30835         behaviour, expand description of compare-exchange, simplify text.
30836
30837 2015-05-05  Renlin Li  <renlin.li@arm.com>
30838
30839         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
30840
30841 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
30842
30843         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
30844         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30845         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
30846         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30847         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
30848         * configure: Regenerate.
30849         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
30850         * doc/install.texi (aarch64*-*-*): Document new
30851         --enable-fix-cortex-a53-843419 option.
30852         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
30853         and -mno-fix-cortex-a53-843419 options.
30854
30855 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30856
30857         PR target/65871
30858         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
30859
30860 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
30861
30862         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
30863         fix overactive TYPE_MIN_VALUE check and add FIXME for type
30864         compatibility problems.
30865
30866 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30867
30868         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
30869         constraints.
30870         (cbranchsi4_reg): New.
30871         * config/microblaze/microblaze.c
30872         (microblaze_expand_conditional_branch_reg): New.
30873         * config/microblaze/microblaze-protos.h
30874         (microblaze_expand_conditional_branch_reg): New prototype.
30875
30876 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30877
30878         * config/microblaze/microblaze.md (peephole2): New.
30879
30880 2015-05-04  Jeff Law  <law@redhat.com>
30881
30882         Revert:
30883         2015-05-04  Jeff Law  <law@redhat.com>
30884
30885         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30886         simplifier to narrow arithmetic.
30887         * generic-match-head.c: (types_match, single_use): New functions.
30888         * gimple-match-head.c: (types_match, single_use): New functions.
30889
30890 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30891
30892         PR target/65987
30893         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
30894         (split_branches): Likewise.
30895
30896 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
30897
30898         * common.opt (fdelete-null-pointer-checks): Init to -1.
30899         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
30900         override flag_delete_null_pointer_checks default.
30901         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
30902         behavior re address zero.  Better document target-specific behavior.
30903         (-fisolate-errneous-paths-dereference): Mention relationship to
30904         -fdelete-null-pointer-checks.
30905
30906 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30907
30908         PR tree-optimization/65984
30909         * ubsan.c: Include tree-cfg.h.
30910         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
30911         stmt_could_throw_p test, rename can_throw variable to ends_bb.
30912
30913 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30914
30915         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
30916         to CONST_DOUBLE_P predicate.
30917         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
30918         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
30919         allow only operands that satisfy standard_sse_constant_p predicate.
30920         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
30921         to CONST_DOUBLE_P predicate.
30922
30923 2015-05-04  Jeff Law  <law@redhat.com>
30924
30925         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30926         simplifier to narrow arithmetic.
30927         * generic-match-head.c: (types_match, single_use): New functions.
30928         * gimple-match-head.c: (types_match, single_use): New functions.
30929
30930 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
30931
30932         * config/arm/arm.c: Restore bootstrap.
30933
30934 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30935
30936         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
30937         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
30938         as CONST_WIDE_INT, not CONST_DOUBLE.
30939         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
30940         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
30941         (ix86_find_base_term): Do not check for CONST_DOUBLE.
30942         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
30943         (ix86_build_signbit_mask): Rewrite using wide ints.
30944         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
30945         (ix86_rtx_costs): Handle CONST_WIDE_INT.
30946         (find_constant): Ditto.
30947         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
30948         using gen_int_mode.
30949         * config/i386/predicates.md (x86_64_immediate_operand)
30950         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30951         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
30952         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30953         (const0_operand): Also match const_wide_int.
30954         (constm1_operand): Ditto.
30955         (const1_operand): Ditto.
30956
30957 2015-05-04  Richard Biener  <rguenther@suse.de>
30958
30959         PR tree-optimization/65965
30960         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
30961         store groups at gaps.
30962
30963 2015-05-04  Richard Biener  <rguenther@suse.de>
30964
30965         PR tree-optimization/65935
30966         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
30967         then make sure to apply that swapping to the IL.
30968
30969 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30970
30971         * Makefile.in (PATCHLEVEL_c): New variable.
30972         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
30973         expand the same way as if DEVPHASE_c was non-empty.
30974
30975 2015-05-04  Kai Tietz  <ktietz@redhat.com>
30976
30977         PR target/65559
30978         * lto-wrapper.c (run_gcc): Open filename
30979         in binary-mode.
30980
30981 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
30982
30983         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
30984         sections up in file, to immediately after the Function Attributes
30985         section.
30986
30987 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
30988
30989         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
30990
30991 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30992
30993         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
30994         (insert_partition_copy_on_edge): Adjust.
30995         (insert_rtx_to_part_on_edge): Likewise.
30996         (insert_part_to_rtx_on_edge): Likewise.
30997
30998 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30999
31000         * function.c (set_return_jump_label): Change type of argument to
31001         rtx_insn *.
31002         * function.h (set_return_jump_label): Adjust.
31003
31004 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31005
31006         * reload.h (struct reg_equivs_t): Change type of init to
31007         rtx_insn *.
31008         * ira.c (fix_reg_equiv_init): Adjust.
31009         * reload1.c (eliminate_regs_1): Likewise.
31010         (init_eliminable_invariants): Likewise.
31011
31012 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31013
31014         * cselib.c (fp_setter_insn): Take a rtx_insn *.
31015         * cselib.h (fp_setter_insn): Adjust.
31016
31017 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31018
31019         * recog.c (struct validate_replace_src_data): Change type of
31020         insn field to rtx_insn *.
31021         (validate_replace_src_group): Change type of argument to rtx_insn *.
31022         * recog.h (validate_replace_src_group): Adjust.
31023
31024 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31025
31026         * haifa-sched.c: Change the type of some variables to rtx_insn *.
31027         * sched-deps.c: Likewise.
31028         * sched-int.h: Likewise.
31029         * sched-rgn.c: Likewise.
31030         * sel-sched.c: Likewise.
31031
31032 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31033
31034         to rtx_insn *.
31035         * config/i386/i386.c: Change the type of some arguments to
31036         rtx_insn *.
31037         * config/arm/arm.c: Likewise.
31038
31039 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31040
31041         * lra-constraints.c: Change type of some arguments to rtx_insn *.
31042
31043 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31044
31045         * regcprop.c (kill_autoinc_value): Change type of argument to
31046         rtx_insn *.
31047
31048 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31049
31050         * genrecog.c (print_subroutine): Adjust.
31051         * recog.c (get_bool_attr_mask_uncached): Likewise.
31052         * recog.h (struct recog_data_d): Change the type of insn to
31053         rtx_insn *.
31054
31055 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31056
31057         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
31058
31059 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31060
31061         * df-problems.c (df_set_note): Change type of argument to
31062         rtx_insn *.
31063
31064 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31065
31066         * builtins.c (expand_builtin_trap): Change type of local
31067         variable to rtx_insn *.
31068         (add_sched_insns_for_speculation): Likewise.
31069         (ix86_emit_save_regs): Likewise.
31070         (get_scratch_register_on_entry): Likewise.
31071         (ix86_emit_restore_reg_using_pop): Likewise.
31072         (ix86_emit_leave): Likewise.
31073         (ix86_emit_restore_regs_using_mov): Likewise.
31074         (ix86_expand_epilogue): Likewise.
31075         Likewise.
31076         (rl78_alloc_physical_registers_umul): Likewise.
31077         * cselib.c (discard_useless_locs): Likewise.
31078         (cselib_invalidate_regno): Likewise.
31079         (cselib_invalidate_mem): Likewise.
31080         * function.c (expand_function_start): Likewise.
31081         (emit_use_return_register_into_block): Likewise.
31082         * gcse.c: Likewise.
31083         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
31084         * ifcvt.c (noce_get_alt_condition): Likewise.
31085         * loop-doloop.c (doloop_condition_get): Likewise.
31086         * lra-constraints.c (inherit_in_ebb): Likewise.
31087         * modulo-sched.c (sms_schedule_by_order): Likewise.
31088         * recog.c (next_insn_tests_no_inequality): Likewise.
31089         * reorg.c (emit_delay_sequence): Likewise.
31090         (update_reg_dead_notes): Likewise.
31091         (fix_reg_dead_note): Likewise.
31092         (fill_slots_from_thread): Likewise.
31093         (delete_computation): Likewise.
31094
31095 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
31096
31097         * doc/extend.texi (Variable Attributes): Add menu and proper
31098         @nodes to subsections.  Move Microsoft Windows attributes to
31099         their own subsection.
31100         (Type Attributes): Reorganize introduction to remove duplicate
31101         list of attributes.  Add menu and proper @nodes to subsections.
31102         Alphabetize the main table of common attributes.
31103
31104 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
31105
31106         * match.pd: New simplification patterns.
31107         (x + (x & 1))  -> ((x + 1) & ~1)
31108         (x & ~(x & y)) -> ((x & ~y))
31109         (x | ~(x | y)) -> ((x | ~y))
31110
31111 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31112
31113         * target.def (attribute_table): Mention that struct attribute_spec
31114         is defined in tree-core.h rather than tree.h
31115         * doc/tm.texi: Regenerate.
31116
31117 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
31118
31119         * genrecog.c (test): Rename to rtx_test.  Update rest of file
31120         accordingly.
31121
31122 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
31123
31124         PR translation/65959
31125         * params.h (DEFPARAM): Rename msgid to nocmsgid.
31126
31127 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31128
31129         * config/aarch64/aarch64-protos.h (tune_params):
31130         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
31131         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
31132         Return value depending on target.
31133         (generic_tunings): Initialize new target settings.
31134         (cortexa53_tunings): Likewise.
31135         (cortexa57_tunings): Likewise.
31136         (thunderx_tunings): Likewise.
31137         (xgene1_tunings): Likewise.
31138
31139 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31140
31141         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
31142         Make Cortex-A53 shift costs more accurate.
31143
31144 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31145
31146         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
31147         UNSIGNED_FLOAT.
31148
31149 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31150
31151         * config/aarch64/aarch64.c (aarch64_rtx_costs):
31152         Calculate cost of op0 and op1 in PLUS and MINUS cases.
31153
31154 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31155
31156         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
31157         Add cost of op0 in the compare-with-fpzero case.
31158
31159 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
31160
31161         * builtins.c (fold_builtin_1): Remove spurious second
31162         semicolon.
31163         * cgraph.h (symtab_node::get_availability): Likewise.
31164         * opts.c (common_handle_option): Remove spurious second semicolon.
31165         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
31166         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
31167
31168 2015-04-30  Caroline Tice  <cmtice@google.com>
31169
31170         PR gcov-profile/65929
31171         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
31172         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
31173         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
31174         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
31175         * doc/tm.texi: Regenerate.
31176         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
31177         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
31178         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
31179         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
31180
31181 2015-04-30  Marek Polacek  <polacek@redhat.com>
31182
31183         * varasm.c (handle_cache_entry): Fix logic.
31184
31185 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31186
31187         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
31188         (*extrsi5_insn_uxtw_alt): Likewise.
31189         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
31190         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
31191         operations.
31192
31193 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31194
31195         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
31196         fabd in ABS case.
31197
31198 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31199
31200         * config/aarch64/aarch64.md
31201         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
31202         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
31203         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
31204         appropriately.  Handle alternative EON form.
31205
31206 2015-04-30  Renlin Li  <renlin.li@arm.com>
31207
31208         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
31209         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
31210
31211 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31212
31213         PR ipa/65873
31214         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
31215         -fstrict-aliasing boundaries.
31216
31217 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31218
31219         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
31220         and [SU]MNEGL patterns.
31221
31222 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31223
31224         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
31225         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
31226         combined arithmetic-shift ops.  Properly handle all shift and extend
31227         operations that can occur in combination with PLUS/MINUS.
31228         Rename maybe_fma to compound_p.
31229         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
31230         arithmetic and shift operations.
31231
31232 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31233
31234         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
31235         rather than arith_shift cost when costing ADD/MINUS of an
31236         extended value.
31237
31238 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31239
31240         PR lto/65948
31241         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
31242         to itself.
31243
31244 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
31245
31246         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
31247         are for the same position.
31248
31249 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
31250
31251         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
31252         vectorize_loops.
31253         (vectorize_loops): Use it.
31254
31255 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31256
31257         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
31258         for aggregate types.
31259         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
31260         type to be non_ODR.
31261         * tree.c (need_assembler_name_p): Compute mangled name for
31262         non-fundamental types and integer types.
31263
31264 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
31265
31266         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
31267         manual swaps.
31268         * expr.c (expand_expr_real_2): Likewise.
31269
31270 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31271
31272         * tree.c (build_common_builtin_nodes): Do not build
31273         __builtin_alloca_with_align as equivalent of library alloca.
31274
31275 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31276
31277         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
31278         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
31279         bugus variants.
31280         * tree.c: Include print-tree.h and ipa-utils.h
31281         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
31282         (free_lang_data_in_cgraph): Call verify_type.
31283         (verify_type_variant): New function.
31284         (verify_type): New function.
31285         * tree.h (verify_type): Declare.
31286
31287 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
31288
31289         * config/mips/mips-cpus.def: (mips4): Change default processor
31290         from PROCESSOR_R8000 to PROCESSOR_R10000.
31291
31292 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
31293
31294         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
31295         la/jalr instead of jal.
31296
31297 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
31298
31299         PR target/65871
31300         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
31301         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
31302         (setcc+movzbl peephole2): Check also clobbered reg.
31303         (setcc+andl peephole2): Ditto.
31304
31305 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31306
31307         PR libgomp/65099
31308         * config/nvptx/mkoffload.c (target_ilp32): New variable.
31309         (main): Set it depending on "-foffload-abi=[...]".
31310         (compile_native, main): Use it to pass "-m32" or "-m64" to the
31311         compiler.
31312
31313 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31314
31315         PR target/65770
31316         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
31317         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
31318         Flip lane index back at assembly time for bigendian.
31319
31320 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31321
31322         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
31323         * gimplify.c (gimplify_omp_workshare): Use it.
31324
31325 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31326
31327         * Makefile.in (build/genrecog.o): Depend on inchash.h.
31328         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
31329         build/inchash.o
31330         * genrecog.c: Rewrite most of the code except for the third page.
31331
31332 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31333
31334         * inchash.h, inchash.c: Include bconfig.h for build objects.
31335         * Makefile.in (build/inchash.o): New rule.
31336
31337 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
31338
31339         PR target/65924
31340         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
31341         number in type attribute expression.
31342
31343 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31344
31345         * loop-iv.c (canon_condition): Generalize to all types of integer
31346         constant.
31347
31348 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
31349
31350         * gimple-walk.c: Prune duplicate or unneeded includes.
31351         (walk_gimple_asm): Only call parse_input_constraint or
31352         parse_output_constraint if their findings are used.
31353         Honour parse_input_constraint and parse_output_constraint
31354         result.
31355
31356 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31357
31358         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
31359
31360 2015-04-29  Tom de Vries  <tom@codesourcery.com>
31361
31362         PR tree-optimization/65893
31363         * passes.def (pass_all_optimizations): Move pass_stdarg to after
31364         pass_dce.
31365
31366 2015-04-29  Richard Biener  <rguenther@suse.de>
31367
31368         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
31369         compute GROUP_SIZE for basic-block SLP.
31370         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
31371         take into account gaps.
31372         (vect_get_mask_element): Properly reject references to previous
31373         vectors.
31374         (vect_transform_slp_perm_load): Likewise.
31375
31376 2015-04-29  Christian Bruel  <christian.bruel@st.com>
31377
31378         PR target/64835
31379         * config/i386/i386.c (ix86_default_align): New function.
31380         (ix86_override_options_after_change): Call ix86_default_align.
31381         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
31382         (ix86_override_options_after_change): New function.
31383
31384 2015-04-28  Jeff Law  <law@redhat.com>
31385
31386         * tree-ssa-dom.c (record_equality); Fix comment typos.
31387
31388 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31389
31390         PR tree-optimization/65887
31391         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
31392
31393 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
31394
31395         * doc/extend.texi (Declaring Attributes of Functions): Split into
31396         subsections by target.  Alphabetize the table of common attributes.
31397         Rewrite some of the introductory text to reflect the new structure.
31398         Update some cross-references to point to the new subsections.
31399         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
31400         duplicate copies in the discussion of function, label, and type
31401         attributes.
31402
31403 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
31404
31405         PR bootstrap/65910
31406         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
31407
31408 2015-04-28  Jason Merrill  <jason@redhat.com>
31409
31410         PR c++/65734
31411         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
31412         (finalize_type_size): Respect TYPE_USER_ALIGN.
31413         (layout_type) [ARRAY_TYPE]: Likewise.
31414
31415 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
31416
31417         * config/arm/arm.md (*arm_movt): Fix type attribute.
31418         (*cmpsi_shiftsi): Likewise.
31419         (*cmpsi_shiftsi_swp): Likewise.
31420         (*movsicc_insn): Likewise.
31421         (*cond_move): Likewise.
31422         (*if_plus_move): Likewise.
31423         (*if_move_plus): Likewise.
31424         (*if_arith_move): Likewise.
31425         (*if_move_arith): Likewise.
31426         (*if_shift_move): Likewise.
31427         (*if_move_shift): Likewise.
31428         (*arm_movtas_ze): Likewise.
31429         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
31430         redundancy and type attribute.
31431         (*thumb2_movsi_insn): Fix type attribute.
31432         (*thumb2_addsi_short): Likewise.
31433         (thumb2_addsi3_compare0): Likewise.
31434         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
31435         attributes accordingly.
31436
31437 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
31438
31439         PR other/65911
31440         * function.c (pad_to_arg_alignment): Add parentheses.
31441
31442 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
31443
31444         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
31445         libgcc/config/frv/elf-lib.h.
31446
31447 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31448
31449         * tree-call-cdce.c: Fix example in header comment.
31450
31451 2015-04-28  Richard Biener  <rguenther@suse.de>
31452
31453         PR tree-optimization/62283
31454         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
31455         fails fatally and we are vectorizing a basic-block simply
31456         cause the child to be constructed piecewise.
31457         (vect_analyze_slp_cost_1): Adjust.
31458         (vect_detect_hybrid_slp_stmts): Likewise.
31459         (vect_bb_slp_scalar_cost): Likewise.
31460         (vect_get_constant_vectors): For piecewise constructed
31461         constants place them after the last def.
31462         (vect_get_slp_defs): Adjust.
31463         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
31464         externals for basic-block vectorization.
31465
31466 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31467
31468         PR target/63503
31469         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
31470         aarch64-*-*.
31471         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
31472         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
31473         (AARCH64_TUNE_FMA_STEERING): Likewise.
31474         * config/aarch64/aarch64-cores.def: Set
31475         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
31476         FMUL/FMADD instructions.
31477         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
31478         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
31479         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
31480         * config/aarch64/cortex-a57-fma-steering.h: New file.
31481         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
31482
31483 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
31484
31485         * gensupport.c (std_preds): Add missing codes to address_operand entry.
31486
31487 2015-04-28  Richard Biener  <rguenther@suse.de>
31488
31489         PR tree-optimization/65851
31490         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
31491         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
31492         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
31493         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
31494         (ccp_visit_phi_node): Adjust.
31495         (evaluate_stmt): For simplifications to SSA names return its
31496         lattice value if that isn't VARYING.  Return immediately when
31497         simplified to a constant.
31498         (visit_assignment): Adjust.
31499         (ccp_visit_stmt): Likewise.
31500
31501 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31502
31503         PR tree-optimization/65818
31504         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
31505         evaluated.
31506
31507 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31508
31509         * calls.c (save_fixed_argument_area): Don't check
31510         ARGS_GROW_DOWNWARD with the preprocessor.
31511         (restore_fixed_argument_area): Likewise.
31512         (mem_overlaps_already_clobbered_arg_p): Likewise.
31513         (check_sibcall_argument_overlap): Likewise.
31514         (expand_call): Likewise.
31515         (emit_library_call_value_1): Likewise.
31516         (store_one_arg): Likewise.
31517         * function.c (assign_parms): Likewise.
31518         (locate_and_pad_parm): Likewise.
31519         (pad_to_arg_alignment): Likewise.
31520         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31521
31522 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31523
31524         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
31525         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
31526         * calls.c (save_fixed_argument_area): Don't chekc if
31527         ARGS_GROW_DOWNWARD is defined.
31528         (restore_fixed_argument_area): Likewise.
31529         (mem_overlaps_already_clobbered_arg_p): Likewise.
31530         (check_sibcall_argument_overlap): Likewise.
31531         (expand_call): Likewise.
31532         (emit_library_call_value_1): Likewise.
31533         (store_one_arg): Likewise.
31534         * function.c (assign_parms): Likewise.
31535         (locate_and_pad_parm): Likewise.
31536         (pad_to_arg_alignment): Likewise.
31537         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31538
31539 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31540
31541         * defaults.h (gen_epilogue): New function.
31542         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
31543         defined.
31544         * cfgrtl.c (cfg_layout_finalize): Likewise.
31545         * df-scan.c: Likewise.
31546         * function.c (thread_prologue_and_epilogue_insns): Likewise.
31547         (reposition_prologue_and_epilogue_notes): Likewise.
31548         * reorg.c (find_end_label): Likewise.
31549         * toplev.c: Likewise.
31550
31551 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31552
31553         * bb-reorder.c (HAVE_return): Don't check if its undefined.
31554         * defaults.h (gen_simple_return): New function.
31555         (gen_simple_return): Likewise.
31556         (HAVE_return): Add default definition to false.
31557         (HAVE_simple_return): Likewise.
31558         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
31559         HAVE_return and HAVE_simple_return are defined.
31560         * function.c (gen_return_pattern): Likewise.
31561         (convert_jumps_to_returns): Likewise.
31562         (thread_prologue_and_epilogue_insns): Likewise.
31563         * reorg.c (find_end_label): Likewise.
31564         (dbr_schedule): Likewise.
31565         * shrink-wrap.c: Likewise.
31566         * shrink-wrap.h: Likewise.
31567
31568 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31569
31570         * defaults.h (EPILOGUE_USES): Add default definition of false.
31571         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
31572         * resource.c (init_resource_info): Likewise.
31573
31574 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31575
31576         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
31577         to false.
31578         * dwarf2out.c (field_byte_offset): REmove check if
31579         PCC_BITFIELD_TYPE_MATTERS is defined.
31580         * stor-layout.c (layout_decl): Likewise.
31581         (update_alignment_for_field): Likewise.
31582         (place_field): Likewise.
31583
31584 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31585
31586         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
31587         true.
31588         * regrename.c (check_new_reg_p): Remove check if
31589         HARD_REGNO_RENAME_OK is defined.
31590         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
31591
31592 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31593
31594         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
31595         * cse.c (fold_rtx): Likewise.
31596         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
31597         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
31598         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
31599         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
31600         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
31601         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
31602         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
31603         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
31604         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
31605         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
31606         * Likewise.
31607         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
31608         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
31609         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
31610         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
31611         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
31612         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
31613         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
31614         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
31615         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
31616         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
31617         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
31618         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
31619         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
31620         * doc/tm.texi: Regenerate.
31621         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
31622         either true or false.
31623
31624 2015-04-27  Jeff Law  <law@redhat.com>
31625
31626         PR tree-optimization/65217
31627         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
31628         of them has a single use, make sure it is the LHS of the implied
31629         copy.
31630
31631 2015-04-28  Alan Modra  <amodra@gmail.com>
31632
31633         PR target/65810
31634         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
31635         (offsettable_ok_by_alignment): Use minimum of decl and toc
31636         pointer alignment.  Replace dead code with assertion.
31637         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
31638         case if size exceeds toc pointer alignment.
31639         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
31640         (rs6000_emit_move): Likewise.
31641         * configure.ac: Add linker toc pointer alignment check.
31642         * configure: Regenerate.
31643         * config.in: Regenerate.
31644
31645 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
31646
31647         * config.gcc: Add h8300-*-linux.
31648         * config/h8300/linux.h: New.
31649         * config/h8300/t-linux: New.
31650         * config/h8300/h8300.c (h8300_option_override): Normal mode
31651         is not supported for h8300-*-linux.
31652         (h8300_file_start): Target priority change.
31653         (get_shift_alg): Likewise.
31654         (h8300_shift_need_scratch_p): Likewise.
31655         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
31656         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
31657
31658 2015-04-27  Caroline Tice  <cmtice@google.com>
31659
31660         * final.c (final_scan_insn):  Output cold_function_name as function
31661         type.
31662         * varasm.c (cold_function_name):  Make global.
31663         (assemble_start_function):  Re-set cold_function_name.
31664         (assemble_end_function): Output cold partition size.
31665         * varasm.h (cold_function_name):  Declare global.
31666
31667 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
31668
31669         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
31670         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
31671         constraint.
31672         (*movxi_internal_avx512f): Ditto.
31673         (define_split): Check for xmm16+, when splitting scalar float_extend.
31674         (*extendsfdf2_mixed): Use "v" constraint.
31675         (define_split): Check for xmm16+, when splitting scalar float_truncate.
31676         (*truncdfsf_fast_sse): Use "v" constraint.
31677         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
31678         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
31679         (define_peephole2): Check for xmm16+, when converting scalar
31680         float_truncate.
31681         (define_peephole2): Check for xmm16+, when converting scalar
31682         float_extend.
31683         (*fop_<mode>_comm_mixed): Use "v" constraint.
31684         (*fop_<mode>_comm_sse): Ditto.
31685         (*fop_<mode>_1_mixed): Ditto.
31686         (*sqrt<mode>2_sse): Ditto.
31687         (*ieee_s<ieee_maxmin><mode>3): Ditto.
31688
31689 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31690
31691         * combine.c (simplify_if_then_else): Use std::swap instead
31692         of manually swapping.
31693         (known_cond): Likewise.
31694         (simplify_comparison): Likewise.
31695
31696 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
31697
31698         PR target/64579
31699         * config/rs6000/htm.md: Remove all define_expands.
31700         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
31701         UNSPECV_HTM_TABORTWCI): Remove.
31702         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
31703         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
31704         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
31705         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
31706         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
31707         tabortwci_internal): Remove define_insns.
31708         (tabort<wd>c, tabort<wd>ci): New define_insns.
31709         (tabort): Use gpc_reg_operand.
31710         (tcheck): Remove operand.
31711         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
31712         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
31713         expected value.
31714         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
31715         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
31716         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
31717         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
31718         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
31719         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
31720         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
31721         (tcheck): Remove builtin argument.
31722         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
31723         not TARGET_64BIT.
31724         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
31725         tabortdc and tabortdci builtins when not in 64-bit mode.
31726         Modify code to handle the loss of the HTM define_expands.
31727         Emit code to copy the CR register to TARGET.
31728         (htm_init_builtins): Modify code to handle the loss of the HTM
31729         define_expands.
31730         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
31731         (RS6000_BTC_64BIT): Likewise.
31732         (RS6000_BTC_CR): New macro.
31733         * doc/extend.texi: Update documentation for htm builtins.
31734
31735 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31736
31737         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
31738         of manually swapping.
31739         (simplify_associative_operation): Likewise.
31740         (simplify_binary_operation): Likewise.
31741         (simplify_plus_minus): Likewise.
31742         (simplify_relational_operation): Likewise.
31743         (simplify_ternary_operation): Likewise.
31744
31745 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31746
31747         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
31748         (xs_hi_nonmemory_operand): Remove error.
31749         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
31750         general_operand rather than xs_hi_general_operand.
31751
31752 2015-04-27  Richard Biener  <rguenther@suse.de>
31753
31754         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
31755         (record_equivalences_from_stmt): Valueize rhs.
31756         (record_equality): Canonicalize x and y order via
31757         tree_swap_operands_p.  Do not swap operands for same loop depth.
31758
31759 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
31760
31761         PR target/65296
31762         PR target/65895
31763         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
31764         Add hint how to use own spec file.
31765
31766 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
31767
31768         PR tree-optimization/65875
31769         * tree-vrp.c (update_value_range): If in is_new case setting
31770         old_vr to VR_VARYING, also set new_vr to it.  Remove
31771         old_vr->type == VR_VARYING test.
31772         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
31773         SSA_PROP_INTERESTING if update_value_range returned true,
31774         but new range is VR_VARYING.
31775
31776 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31777
31778         * combine.c (sign_extend_short_imm): New.
31779         (set_nonzero_bits_and_sign_copies): Use above new function for sign
31780         extension of src short immediate.
31781         (reg_nonzero_bits_for_combine): Likewise for tem.
31782
31783 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31784
31785         * stor-layout.c (self_referential_component_ref_p): New predicate.
31786         (copy_self_referential_tree_r): Use it.
31787         (self_referential_size): Punt for simple operations directly involving
31788         self-referential component references.
31789         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
31790
31791 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31792
31793         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
31794
31795 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31796
31797         * vec.h (vec): Make splice arguments const.  Update definitions
31798         accordingly.
31799
31800 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
31801
31802         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
31803         alternatives.
31804
31805 2015-04-26  Tom de Vries  <tom@codesourcery.com>
31806
31807         PR tree-optimization/65826
31808         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
31809
31810 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
31811
31812         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
31813         (*madd3<mode>): Ditto.
31814         (*msub4<mode>): Ditto.
31815         (*msub3<mode>): Ditto.
31816         (*nmadd4<mode>): Ditto.
31817         (*nmadd3<mode>): Ditto.
31818         (*nmadd4<mode>_fastmath): Ditto.
31819         (*nmadd3<mode>_fastmath): Ditto.
31820         (*nmsub4<mode>): Ditto.
31821         (*nmsub3<mode>): Ditto.
31822         (*nmsub4<mode>_fastmath): Ditto.
31823         (*nmsub3<mode>_fastmath): Ditto.
31824
31825 2015-04-24  Jason Merrill  <jason@redhat.com>
31826
31827         PR c++/50800
31828         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
31829         down when building TYPE_CANONICAL.
31830         (build_pointer_type_for_mode): Likewise.
31831
31832 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
31833
31834         * genrecog.c (validate_pattern): Check matching constraint refers
31835         to a lower numbered operand.
31836
31837 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31838
31839         PR target/65849
31840         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
31841         save to independent variables use the Save attribute.  This will
31842         allow these options to be modified with the #pragma/attribute
31843         target support.
31844         (-mallow-movmisalign): Likewise.
31845         (-mallow-df-permute): Likewise.
31846         (-msched-groups): Likewise.
31847         (-malways-hint): Likewise.
31848         (-malign-branch-targets): Likewise.
31849         (-mvectorize-builtins): Likewise.
31850         (-msave-toc-indirect): Likewise.
31851
31852         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
31853         can be set via the #pragma/attribute target support.
31854         (rs6000_opt_vars): Likewise.
31855         (rs6000_inner_target_options): If VSX was set, also set
31856         -mno-avoid-indexed-addresses.
31857
31858 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31859
31860         * config/arm/iterators.md (shiftable_ops): Rename to...
31861         (SHIFTABLE_OPS): ... This.  Update use in comments.
31862         (ior_xor): Rename to...
31863         (IOR_XOR): ... This.
31864         (vqh_ops): Rename to...
31865         (VQH_OPS): ... This.
31866         (vqhs_ops): Rename to...
31867         (VQHS_OPS): ... This.
31868         (rshifts): Rename to...
31869         (RSHIFTS): ... This.
31870         (returns): Rename to...
31871         (RETURNS): ... This.
31872         * config/arm/arm.md: Update uses of the above.
31873         * config/arm/neon.md: Likewise.
31874
31875 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31876
31877         * config.host (case ${host}): Add aarch64*-*-linux case.
31878         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
31879         fields to all the cores.
31880         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
31881         Add MCPU_MTUNE_NATIVE_SPECS.
31882         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
31883         field to all extensions.
31884         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
31885         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
31886         Adjust definition of AARCH64_OPT_EXTENSION.
31887         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
31888         (MCPU_MTUNE_NATIVE_SPECS): Define.
31889         * config/aarch64/driver-aarch64.c: New file.
31890         * config/aarch64/x-arch64: New file.
31891         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
31892         -mtune and -march.
31893
31894 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31895             Wei Mi  <wmi@google.com>
31896
31897         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
31898         * config/i386/i386.c (extract_base_offset_in_addr): New function.
31899         (ix86_operands_ok_for_move_multiple): Ditto.
31900         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
31901         (movlpd/movhpd to movupd peephole2): Ditto.
31902
31903 2015-04-24  Marek Polacek  <polacek@redhat.com>
31904
31905         PR c/61534
31906         * input.h (from_macro_expansion_at): Define.
31907
31908         PR c/63357
31909         * doc/invoke.texi: Update description of -Wlogical-op.
31910
31911 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31912
31913         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
31914         ternary operator in fprintf and harmonize spacing.
31915
31916 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31917
31918         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
31919         Mark operand1 commutative.
31920
31921 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31922
31923         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
31924         input operands in memory.
31925         (*vec_concatv2si_sse4_1): Ditto.
31926         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
31927         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
31928         register_operand.
31929         (vec_extract_hi_v32hi): Ditto.
31930         (vec_extract_hi_v64hi): Ditto.
31931         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
31932
31933 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31934             Steven Bosscher <steven@gcc.gnu.org>
31935
31936         PR rtl-optimization/34503
31937         * cprop.c (cprop_reg_p): New.
31938         (hash_scan_set): Use above function to check if register can be
31939         propagated.
31940         (find_avail_set): Return up to two sets, one whose source is a
31941         register and one whose source is a constant.  Sets are returned in an
31942         array passed as parameter rather than as a return value.
31943         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
31944         sets returned by find_avail_set, starting with the one whose source is
31945         a constant. Use cprop_reg_p to check if register can be propagated.
31946         (do_local_cprop): Use cprop_reg_p to check if register can be
31947         propagated.
31948         (implicit_set_cond_p): Likewise.
31949
31950 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31951
31952         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
31953         (sem_function::equals): IGNORED_NODES parameter is now unused;
31954         update call of equals_private.
31955         (sem_function::equals_private): Do not call equals_wpa; skip
31956         gimple body matching if there is no body.
31957         (sem_function::init): Add logic to hash tthunk info.
31958         (sem_function::parse): Also parse thunks.
31959         * ipa-icf.h (equals_private): Update declaration.
31960
31961 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31962
31963         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
31964         asterisk from name so this can be generated directly.
31965         (*altivec_stvx_<mode>_internal): Likewise.
31966         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
31967         that this is never called during or after reload/lra.
31968         (rs6000_frame_related): Remove split_reg
31969         argument and logic that references it.
31970         (emit_frame_save): Remove last parameter from call to
31971         rs6000_frame_related.
31972         (rs6000_emit_prologue): Remove last parameter from eight calls to
31973         rs6000_frame_related.  Force generation of stvx instruction for
31974         Altivec register saves.  Remove split_reg handling, which is no
31975         longer needed.
31976         (rs6000_emit_epilogue):  Force generation of lvx instruction for
31977         Altivec register restores.
31978
31979 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31980
31981         * config/rs6000/rs6000.opt (mcrypto): Change option description to
31982         match category changes in ISA 2.07B.
31983
31984 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31985
31986         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
31987         iterators.
31988         (cmp_op, cmp_type): New code attributes.
31989         (NEON_VCMP, NEON_VACMP): New int iterators.
31990         (cmp_op_unsp): New int attribute.
31991         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
31992         (neon_vceq<mode>): Delete.
31993         (neon_vc<cmp_op><mode>_insn): New pattern.
31994         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
31995         (neon_vcgeu<mode>): Delete.
31996         (neon_vcle<mode>): Likewise.
31997         (neon_vclt<mode>: Likewise.
31998         (neon_vcage<mode>): Likewise.
31999         (neon_vcagt<mode>): Likewise.
32000         (neon_vca<cmp_op><mode>): New define_expand.
32001         (neon_vca<cmp_op><mode>_insn): New pattern.
32002         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
32003
32004 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32005
32006         * tree.h (attribute_value_equal): Declare.
32007         * tree.c (attribute_value_equal): Export.
32008
32009 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32010
32011         * ipa-icf.c (sem_item::compare_attributes): New function.
32012         (sem_item::compare_referenced_symbol_properties): Compare variable
32013         attributes.
32014         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
32015         (sem_function::param_used_p): New function.
32016         (sem_function::equals_wpa): Fix attribute comparsion; match
32017         parameter type codes; do not compare paremter flags when
32018         they are not used; compare edge flags; compare indirect calls.
32019         (sem_item::update_hash_by_addr_refs): Hash reference type.
32020         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
32021         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
32022         reference use type.
32023         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
32024         * ipa-icf.h (compare_attributes, param_used_p): Declare.
32025
32026 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32027
32028         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
32029         cleanup.
32030         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
32031         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
32032         (sem_item::compare_referenced_symbol_properties): New.
32033         (sem_item::hash_referenced_symbol_properties): New.
32034         (sem_item::compare_cgraph_references): Rename to ...
32035         (sem_item::compare_symbol_references): ... this one; use
32036         compare_referenced_symbol_properties.
32037         (sem_function::equals_wpa): Do not compare
32038         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
32039         DECL_IS_OPERATOR_NEW; compare pointer sizes.
32040         (sem_item::update_hash_by_addr_refs): Call
32041         hash_referenced_symbol_properties.
32042         (sem_item::update_hash_by_local_refs): Cleanup.
32043         (sem_function::merge): Do not mix up symbol properties.
32044         (sem_variable::equals_wpa): Use compare_symbol_references.
32045         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
32046         (sem_item::hash_referenced_symbol_properties): New.
32047         (sem_item::compare_symbol_references): New.
32048         (sem_item::compare_cgraph_references): Remove.
32049
32050 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
32051
32052         PR target/26702
32053         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
32054         Emit size of local.
32055
32056 2015-04-23  Nick Clifton  <nickc@redhat.com>
32057
32058         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
32059         ATTRIBUTE_UNUSED to x parameter.
32060         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
32061
32062 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32063
32064         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
32065         TARGET_CRYPTO to TARGET_P8_VECTOR>
32066         (crypto_vpermxor_<mode>): Likewise.
32067         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
32068         (BU_CRYPTO_3A): Likewise.
32069         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
32070         (BU_CRYPTO_OVERLOAD_3A): New #define.
32071         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
32072         (VPMSUMH): Likewise.
32073         (VPMSUMW): Likewise.
32074         (VPMSUMD): Likewise.
32075         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
32076         (VPERMXOR_V4SI): Likewise.
32077         (VPERMXOR_V8HI): Likewise.
32078         (VPERMXOR_V16QI): Likewise.
32079         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
32080         BU_CRYPTO_OVERLOAD_2A.
32081         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
32082         BU_CRYPTO_OVERLOAD_3A.
32083         * config/rs6000/rs6000.opt (mcrypto): Change description of
32084         option.
32085
32086 2015-04-23  Richard Biener  <rguenther@suse.de>
32087
32088         * passes.def: Remove copy propagation passes run directly after CCP.
32089         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
32090         SSA names.
32091         (ccp_visit_phi_node): Rework to handle first executable edge
32092         specially.
32093
32094 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
32095
32096         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32097         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32098         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32099         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
32100         (thumb_legimitimize_reload_address): Remove.
32101         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
32102         Remove.
32103         (thumb_legimitimize_reload_address): Remove.
32104
32105 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32106
32107         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
32108
32109 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32110
32111         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
32112         MAX_LDM_STM_OPS.
32113         (store_multiple): Likewise.
32114
32115 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32116
32117         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
32118         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
32119         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
32120         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
32121         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
32122         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
32123         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
32124         Specify issue_rate value.
32125         (arm_issue_rate): Look up issue rate from tuning structs. Remove
32126         large switch statement.
32127         (arm_marvell_pj4_tune): New struct.
32128         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
32129         struct.
32130
32131 2015-04-23  Richard Biener  <rguenther@suse.de>
32132
32133         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
32134         (vect_find_last_store_in_slp_instance): Rename to ...
32135         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
32136         (vect_analyze_slp_cost_1): Use vector_load for constant defs
32137         and vec_construct for external defs when estimating prologue cost.
32138         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
32139         Compute costs here only when vectorizing loops.
32140         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
32141         have been determined.
32142         (vect_schedule_slp_instance): Simplify vectorized code placement
32143         and prepare for in-BB external defs.
32144         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
32145         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
32146         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
32147         guard.
32148         (vect_model_load_cost): Likewise.
32149         (vectorizable_store): Instead add it here.
32150         (vectorizable_load): Likewise.
32151         (vect_is_simple_use): Dump def type textually.
32152
32153 2015-04-23  Richard Biener  <rguenther@suse.de>
32154
32155         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
32156         * cfgloop.c (verify_loop_structure): Verify the root loop node.
32157         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
32158         instead of get_eh_region_from_lp_number.
32159         * loop-init.c (fix_loop_structure): If we removed a loop, reset
32160         the SCEV cache.
32161
32162 2015-04-23  Anton Blanchard  <anton@samba.org>
32163
32164         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
32165         need for -mprofile-kernel to save LR to stack.
32166
32167 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32168
32169         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
32170         adjustments.
32171         (insn_is_swappable_p): Return 1 for a convert from double to
32172         single precision when all of its uses are splats of BE element
32173         zero.
32174
32175 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
32176
32177         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
32178
32179 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32180
32181         PR target/65456
32182         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
32183         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
32184         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
32185         option.
32186         (rs6000_builtin_mask_for_load): Return 0 for targets with
32187         efficient unaligned VSX accesses so that the vectorizer will use
32188         direct unaligned loads.
32189         (rs6000_builtin_support_vector_misalignment): Always return true
32190         for targets with efficient unaligned VSX accesses.
32191         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
32192         stores on targets with efficient unaligned VSX accesses is almost
32193         always the same as the cost of an aligned load or store, so model
32194         it that way.
32195         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
32196         unaligned vectors if we have efficient unaligned VSX accesses.
32197         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
32198         undocumented option.
32199
32200 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32201
32202         Revert:
32203         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32204
32205         * config.gcc (LIBC_MUSL): New tm_defines macro.
32206         * config/linux.h (OPTION_MUSL): Define.
32207         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32208         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32209         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32210
32211         * config/linux.opt (mmusl): New option.
32212         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32213         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32214
32215         * configure: Regenerate.
32216
32217 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32218
32219         * config.gcc (LIBC_MUSL): New tm_defines macro.
32220         * config/linux.h (OPTION_MUSL): Define.
32221         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32222         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32223         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32224
32225         * config/linux.opt (mmusl): New option.
32226         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32227         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32228
32229         * configure: Regenerate.
32230
32231 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
32232
32233         * doc/invoke.texi (-fsanitize-sections): Update description.
32234         * asan.c (set_sanitized_sections): Parse incoming arg.
32235         (section_sanitized_p): Support wildcards.
32236
32237 2015-04-22  Tom de Vries  <tom@codesourcery.com>
32238
32239         PR tree-optimization/65823
32240         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
32241         equality between ap_copy and ap.
32242
32243 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32244
32245         PR target/47098
32246         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
32247
32248 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32249
32250         PR target/47122
32251         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
32252
32253 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32254
32255         PR target/55144
32256         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
32257         remove already contained t-files.
32258
32259 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32260
32261         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
32262         Remove unneeded forward declarations.
32263         (suitable_for_tail_call_opt_p): Commentary typo fix.
32264
32265 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32266
32267         * varasm.c (emit_bss): Remove redundant guard.
32268
32269 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32270
32271         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
32272
32273 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32274
32275         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
32276
32277 2015-04-22  Hale Wang  <hale.wang@arm.com>
32278             Terry Guo  <terry.guo@arm.com>
32279
32280         PR rtl-optimization/64818
32281         * combine.c (can_combine_p): Don't combine user-specified
32282         register if it is in an asm input.
32283
32284 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
32285
32286         PR ipa/65076
32287         * passes.def (early_optimizations): Add pass_dse.
32288
32289 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32290
32291         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
32292         * reorg.c (redundant_insn): Remove ifdef
32293         INSN_REFERENCES_ARE_DELAYED.
32294         * resource.c (mark_referenced_resources): Likewise.
32295
32296 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32297
32298         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
32299         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
32300         * resource.c (mark_set_resources): Likewise.
32301
32302 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32303
32304         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
32305         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32306         (flow_find_head_matching_sequence): Likewise.
32307         (try_head_merge_bb): Likewise.
32308         * combine.c (can_combine_p): Likewise.
32309         (try_combine): Likewise.
32310         (distribute_notes): Likewise.
32311         * df-problems.c (can_move_insns_across): Likewise.
32312         * final.c (final): Likewise.
32313         * gcse.c (insert_insn_end_basic_block): Likewise.
32314         * ira.c (find_moveable_pseudos): Likewise.
32315         * reorg.c (try_merge_delay_insns): Likewise.
32316         (fill_simple_delay_slots): Likewise.
32317         (fill_slots_from_thread): Likewise.
32318         * sched-deps.c (sched_analyze_2): Likewise.
32319
32320 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32321
32322         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
32323         PIC_OFFSET_TABLE_REGNUM.
32324
32325 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32326
32327         * alias.c (init_alias_target): Remove ifdef
32328         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
32329         * df-scan.c (df_insn_refs_collect): Likewise.
32330         (df_get_regular_block_artificial_uses): Likewise.
32331         (df_get_eh_block_artificial_uses): Likewise.
32332         (df_get_entry_block_def_set): Likewise.
32333         (df_get_exit_block_use_set): Likewise.
32334         * emit-rtl.c (gen_rtx_REG): Likewise.
32335         * ira.c (ira_setup_eliminable_regset): Likewise.
32336         * reginfo.c (init_reg_sets_1): Likewise.
32337         * regrename.c (rename_chains): Likewise.
32338         * reload1.c (reload): Likewise.
32339         (eliminate_regs_in_insn): Likewise.
32340         * resource.c (mark_referenced_resources): Likewise.
32341         (init_resource_info): Likewise.
32342
32343 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32344
32345         * defaults.h (MASK_RETURN_ADDR): New definition.
32346         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32347         MASK_RETURN_ADDR.
32348
32349 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32350
32351         * defaults.h (RETURN_ADDR_OFFSET): New definition.
32352         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32353         RETURN_ADDR_OFFSET.
32354         (expand_builtin_frob_return_addr): Likewise.
32355
32356 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32357
32358         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
32359         (try_redirect_by_replacing_jump): Likewise.
32360         (rtl_tidy_fallthru_edge): Likewise.
32361         * combine.c (insn_a_feeds_b): Likewise.
32362         (find_split_point): Likewise.
32363         (simplify_set): Likewise.
32364         * cprop.c (cprop_jump): Likewise.
32365         * cse.c (cse_extended_basic_block): Likewise.
32366         * df-problems.c (can_move_insns_across): Likewise.
32367         * function.c (emit_use_return_register_into_block): Likewise.
32368         * haifa-sched.c (sched_init): Likewise.
32369         * ira.c (find_moveable_pseudos): Likewise.
32370         * loop-invariant.c (find_invariant_insn): Likewise.
32371         * lra-constraints.c (curr_insn_transform): Likewise.
32372         * postreload.c (reload_combine_recognize_const_pattern):
32373         * Likewise.
32374         * reload.c (find_reloads): Likewise.
32375         * reorg.c (delete_scheduled_jump): Likewise.
32376         (steal_delay_list_from_target): Likewise.
32377         (steal_delay_list_from_fallthrough): Likewise.
32378         (redundant_insn): Likewise.
32379         (fill_simple_delay_slots): Likewise.
32380         (fill_slots_from_thread): Likewise.
32381         (delete_computation): Likewise.
32382         * sched-rgn.c (add_branch_dependences): Likewise.
32383
32384 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32385
32386         * genconfig.c (main): Always define HAVE_cc0.
32387         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
32388         HAVE_cc0.
32389         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32390         (flow_find_head_matching_sequence): Likewise.
32391         (try_head_merge_bb): Likewise.
32392         * cfgrtl.c (rtl_merge_blocks): Likewise.
32393         (try_redirect_by_replacing_jump): Likewise.
32394         (rtl_tidy_fallthru_edge): Likewise.
32395         * combine.c (do_SUBST_MODE): Likewise.
32396         (insn_a_feeds_b): Likewise.
32397         (combine_instructions): Likewise.
32398         (can_combine_p): Likewise.
32399         (try_combine): Likewise.
32400         (find_split_point): Likewise.
32401         (subst): Likewise.
32402         (simplify_set): Likewise.
32403         (distribute_notes): Likewise.
32404         * cprop.c (cprop_jump): Likewise.
32405         * cse.c (cse_extended_basic_block): Likewise.
32406         * df-problems.c (can_move_insns_across): Likewise.
32407         * final.c (final): Likewise.
32408         (final_scan_insn): Likewise.
32409         * function.c (emit_use_return_register_into_block): Likewise.
32410         * gcse.c (insert_insn_end_basic_block): Likewise.
32411         * haifa-sched.c (sched_init): Likewise.
32412         * ira.c (find_moveable_pseudos): Likewise.
32413         * loop-invariant.c (find_invariant_insn): Likewise.
32414         * lra-constraints.c (curr_insn_transform): Likewise.
32415         * optabs.c (prepare_cmp_insn): Likewise.
32416         * postreload.c (reload_combine_recognize_const_pattern):
32417         * Likewise.
32418         * reload.c (find_reloads): Likewise.
32419         (find_reloads_address_1): Likewise.
32420         * reorg.c (delete_scheduled_jump): Likewise.
32421         (steal_delay_list_from_target): Likewise.
32422         (steal_delay_list_from_fallthrough): Likewise.
32423         (try_merge_delay_insns): Likewise.
32424         (redundant_insn): Likewise.
32425         (fill_simple_delay_slots): Likewise.
32426         (fill_slots_from_thread): Likewise.
32427         (delete_computation): Likewise.
32428         (relax_delay_slots): Likewise.
32429         * sched-deps.c (sched_analyze_2): Likewise.
32430         * sched-rgn.c (add_branch_dependences): Likewise.
32431
32432 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32433
32434         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
32435         that is trivially ded on non cc0 targets.
32436         (simplify_set): Likewise.
32437         (mark_used_regs_combine): Likewise.
32438         * cse.c (new_basic_block): Likewise.
32439         (fold_rtx): Likewise.
32440         (cse_insn): Likewise.
32441         (cse_extended_basic_block): Likewise.
32442         (set_live_p): Likewise.
32443         * rtlanal.c (canonicalize_condition): Likewise.
32444         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
32445
32446 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32447
32448         * conditions.h: Define macros even if HAVE_cc0 is undefined.
32449         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
32450         * final.c: Likewise.
32451         * jump.c: Likewise.
32452         * recog.c: Likewise.
32453         * recog.h: Declare functions even when HAVE_cc0 is undefined.
32454         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
32455
32456 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32457
32458         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
32459         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
32460         * builtins.c (expand_builtin): Remove check if
32461         EH_RETURN_DATA_REGNO is defined.
32462         * df-scan.c (df_bb_refs_collect): Likewise.
32463         (df_get_exit_block_use_set): Likewise.
32464         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
32465         * ira-lives.c (process_bb_node_lives): Likewise.
32466         * lra-lives.c (process_bb_lives): Likewise.
32467
32468 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32469
32470         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
32471         FIRST_PSEUDO_REG): New.
32472         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
32473         (ARG_POINTER_REGNUM): Define to ARGP_REG.
32474         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
32475         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
32476         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
32477         (FIRST_INT_REG): New.
32478         (LAST_INT_REG): New.
32479         (FIRST_*_REG): Define using *_REG.
32480         (LAST_*_REG): Ditto.
32481         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
32482         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
32483         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
32484
32485 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32486
32487         * expmed.c: (synth_mult): Only assume overlapping
32488         shift with previous steps in alg_sub_t_m2 case.
32489
32490 2015-04-21  Richard Biener  <rguenther@suse.de>
32491
32492         PR tree-optimization/65650
32493         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
32494         transitions involving copies.
32495         (set_lattice_value): Adjust for copy lattice state.
32496         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
32497         if that doesn't dominate the merge point.
32498         (bit_value_unop): Adjust what we treat as varying mask.
32499         (bit_value_binop): Likewise.
32500         (bit_value_assume_aligned): Likewise.
32501         (evaluate_stmt): When we simplified to a SSA name record a copy
32502         instead of dropping to varying.
32503         (visit_assignment): Simplify.
32504
32505         * gimple-match.h (gimple_simplify): Add another callback.
32506         * gimple-fold.c (fold_stmt_1): Adjust caller.
32507         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
32508         for the 2nd callback.
32509         * gimple-match-head.c (gimple_simplify): Add a callback that is
32510         used to valueize the stmt operands and use it that way.
32511
32512 2015-04-21  Richard Biener  <rguenther@suse.de>
32513
32514         PR tree-optimization/65788
32515         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
32516
32517 2015-04-21  Richard Biener  <rguenther@suse.de>
32518
32519         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
32520         vec_construct cost by vec_stmt_cost.
32521
32522 2015-04-21  Richard Biener  <rguenther@suse.de>
32523
32524         * cfghooks.h (create_basic_block): Replace with two overloads
32525         for RTL and GIMPLE.
32526         (split_block): Likewise.
32527         * cfghooks.c (split_block): Rename to ...
32528         (split_block_1): ... this.
32529         (split_block): Add two type-safe overloads for RTL and GIMPLE.
32530         (split_block_after_labels): Call split_block_1.
32531         (create_basic_block): Rename to ...
32532         (create_basic_block_1): ... this.
32533         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
32534         (create_empty_bb): Call create_basic_block_1.
32535         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
32536         split_block_after_labels.
32537         * omp-low.c (expand_parallel_call): Likewise.
32538         (expand_omp_target): Likewise.
32539         (simd_clone_adjust): Likewise.
32540         * tree-chkp.c (chkp_get_entry_block): Likewise.
32541         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
32542         create_basic_block overload.
32543         (cgraph_node::expand_thunk): Likewise.
32544         * tree-cfg.c (make_blocks): Likewise.
32545         (handle_abnormal_edges): Likewise.
32546         * tree-inline.c (copy_bb): Likewise.
32547
32548 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32549
32550         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
32551         New pattern.
32552         (*xor_one_cmplsidi3_ze): Likewise.
32553
32554 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32555
32556         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
32557         use df_remove_problem rather than manually removing problems, leaving
32558         holes in df->problems_in_order[].
32559
32560 2015-04-21  Tom de Vries  <tom@codesourcery.com>
32561
32562         PR tree-optimization/65802
32563         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
32564
32565 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32566
32567         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
32568         Increase to 128.
32569         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
32570         at '.'.  Assert that there's enough space for everything.
32571
32572 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32573
32574         PR tree-optimization/64950
32575         Revert:
32576         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
32577
32578         PR target/41089
32579         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
32580         as volatile.
32581
32582 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
32583
32584         PR rtl-optimization/64916
32585         * cfgcleanup.c (values_equal_p): New function.
32586         (can_replace_by): Use it.
32587
32588 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
32589
32590         PR c++/65801
32591         * doc/invoke.texi ([-Wnarrowing]): Update.
32592
32593 2015-04-20  Jeff Law  <law@redhat.com>
32594
32595         PR tree-optimization/65658
32596         * tree-ssa-threadupdate.c (redirection_block_p): Remove
32597         redundant test for GIMPLE_ASSIGN in last change.
32598
32599 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
32600
32601         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
32602         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
32603         (legitimize_tls_address): Ditto.
32604         (ix86_expand_move): Ditto.
32605         (ix86_expand_binary_operator): Remove reload_in_progress checks.
32606         (ix86_expand_unary_operator): Ditto.
32607         * config/i386/predicates.md (index_register_operand): Ditto.
32608
32609 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
32610
32611         * reorg.c (try_merge_delay_insns): Improve correctness checking
32612         for targets with multiple delay slots.
32613
32614 2015-04-20  Jeff Law  <law@redhat.com>
32615
32616         PR tree-optimization/65658
32617         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
32618         statements too.
32619
32620 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32621
32622         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
32623         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
32624         Delete.
32625
32626 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
32627
32628         PR debug/65807
32629         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
32630
32631 2015-04-20  Richard Biener  <rguenther@suse.de>
32632
32633         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
32634         * gimple-fold.c (gimple_build_valueize): New function.
32635         (gimple_build): Always use gimple_build_valueize as valueize hook.
32636
32637 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32638
32639         PR target/64134
32640         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
32641         and overwrite variable parts if <= 1/2 the elements are variable.
32642
32643 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32644
32645         PR rtl-optimization/65805
32646         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
32647         Don't use difference of offset and previous offset if
32648         update_sp_offset is non-zero.
32649         (eliminate_regs_in_insn): Ditto.
32650         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
32651         lra_eliminate_regs_1 call.
32652         * lra-constraints.c (get_equiv_with_elimination): Ditto.
32653
32654 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
32655
32656         * hash-table.h: Remove version of hash_table that stored value_type *.
32657         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
32658         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
32659         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
32660         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
32661         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
32662         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
32663         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32664         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
32665         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
32666         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
32667         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
32668         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
32669         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
32670         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32671         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
32672         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
32673
32674 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32675             Jakub Jelinek  <jakub@redhat.com>
32676
32677         PR target/65787
32678         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
32679         subsequent SH_NONE operand does not overwrite an existing *special
32680         value.
32681         (adjust_extract): Handle case where a vec_extract operation is
32682         wrapped in a PARALLEL.
32683
32684 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32685
32686         PR target/65780
32687         * config/i386/i386.c (ix86_binds_local_p): Define only if
32688         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
32689
32690 2015-04-17  Jeff Law  <law@redhat.com>
32691
32692         PR tree-optimization/47679
32693         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
32694         * tree-ssa-scopedtables.c: New file.
32695         * tree-ssa-scopedtables.h: New file.
32696         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
32697         (const_and_copies): Change name/type.
32698         (record_const_or_copy): Move into tree-ssa-scopedtables.c
32699         (record_const_or_copy_1): Similarly.
32700         (restore_vars_to_original_value): Similarly.
32701         (pass_dominator::execute): Create and destroy const_and_copies table.
32702         (thread_across_edge): Update passing of const_and_copies.
32703         (record_temporary_equivalence): Use method calls rather than
32704         manipulating const_and_copies directly.
32705         (record_equality, cprop_into_successor_phis): Similarly.
32706         (dom_opt_dom_walker::before_dom_children): Similarly.
32707         (dom_opt_dom_walker::after_dom_children): Similarly.
32708         (eliminate_redundant_computations): Similarly.
32709         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
32710         (record_temporary_equivalence): Likewise.
32711         (invalidate_equivalences): Likewise.
32712         (record_temporary_equivalences_from_phis): Update due to type
32713         change of const_and_copies.  Use method calls rather than
32714         manipulating the stack directly.
32715         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
32716         (thread_through_normal_block, thread_across_edge): Likewise.
32717         (thread_across_edge): Likewise.
32718         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
32719         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
32720         of equiv_stack.
32721         (identify_jump_threads): Update due to type change of equiv_stack.
32722         (finalize_jump_threads): Delete the equiv_stack when complete.
32723
32724 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
32725
32726         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32727         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
32728         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
32729
32730 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
32731
32732         PR target/65535
32733         * config.gcc: Exit with a comment when we do not have a major version
32734         number for the FreeBSD target.
32735
32736 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32737
32738         PR target/65689
32739         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
32740         maybe_allows_mem bitfields.
32741         (maybe_allows_none_start, maybe_allows_none_end,
32742         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
32743         maybe_allows_mem_end): New variables.
32744         (compute_maybe_allows): New function.
32745         (add_constraint): Use it to initialize maybe_allows_reg and
32746         maybe_allows_mem fields.
32747         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
32748         is_address constraints such that those that allow neither mem nor
32749         reg come first, then those that only allow reg but not mem, then
32750         those that only allow mem but not reg, then the rest.
32751         (write_allows_reg_mem_function): New function.
32752         (write_tm_preds_h): Call it.
32753         * stmt.c (parse_output_constraint, parse_input_constraint): Use
32754         the generated insn_extra_constraint_allows_reg_mem function
32755         instead of always setting *allows_reg = true; *allows_mem = true;
32756         for unknown extra constraints.
32757
32758 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32759
32760         PR target/65780
32761         * output.h (default_binds_local_p_3): New.
32762         * varasm.c (default_binds_local_p_3): Make it public.  Take an
32763         argument to indicate if common symbol may be local.  If common
32764         symbol may be local, treat non-external variable as defined
32765         locally.
32766         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
32767         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
32768         * config/i386/i386.c (ix86_binds_local_p): New.
32769         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
32770         ix86_binds_local_p.
32771
32772 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32773
32774         PR debug/65771
32775         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
32776         trying mem_loc_descriptor on XEXP (rtl, 0).
32777
32778 2015-04-17  Martin Liska  <mliska@suse.cz>
32779
32780         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
32781         Release symbol_compare_collection.
32782         * ipa-reference.c: Add TODO that a vector should be released.
32783
32784 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
32785
32786         PR target/65296
32787         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
32788         to new AVR-LibC file layout (bug #44574).
32789         (*avrlibc_devicelib): Same.
32790         * config/avr/avr-mcus.def: Adjust comments.
32791         * config/avr/avr.opt (nodevicelib): Adjust help.
32792
32793 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
32794
32795         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
32796
32797 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
32798
32799         PR c++/64527
32800         * gimplify.c (gimplify_init_constructor): Always emit a
32801         side-effecting constructor.
32802
32803 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32804
32805         PR tree-optimization/64950
32806         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
32807         in cfun->curr_properties.
32808         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
32809         if we generate an IFN_VA_ARG.
32810         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
32811         function if PROP_gimple_lva is not set in src function.
32812
32813 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32814             Michael Matz  <matz@suse.de>
32815
32816         PR tree-optimization/64950
32817         * gimple-iterator.c (update_modified_stmts): Remove static.
32818         * gimple-iterator.h (update_modified_stmts): Declare.
32819         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
32820         (gimplify_va_arg_internal): New function.
32821         (gimplify_va_arg_expr): Use IFN_VA_ARG.
32822         * gimplify.h (gimplify_va_arg_internal): Declare.
32823         * internal-fn.c (expand_VA_ARG): New unreachable function.
32824         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
32825         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
32826         (expand_ifn_va_arg): New function.
32827         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
32828         (pass_stdarg::execute): Call expand_ifn_va_arg.
32829         (pass_data_lower_vaarg): New pass_data.
32830         (pass_lower_vaarg): New gimple_opt_pass.
32831         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
32832         (make_pass_lower_vaarg): New function.
32833         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
32834         properties_required field.
32835         * passes.def (all_passes): Add pass_lower_vaarg.
32836         * tree-pass.h (PROP_gimple_lva): Add define.
32837         (make_pass_lower_vaarg): Declare.
32838
32839 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32840
32841         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
32842         * calls.c (call_expr_flags): Same.
32843
32844 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32845
32846         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
32847         (pass_stdarg::execute): ... here.
32848
32849 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32850             Michael Matz  <matz@suse.de>
32851
32852         * tree-cfg.c (make_blocks_1): Factor out of ...
32853         (make_blocks): ... here.
32854         (make_edges_bb): Factor out of ...
32855         (make_edges): ... here.
32856         (gimple_find_sub_bbs): New function.
32857         * tree-cfg.h (gimple_find_sub_bbs): Declare.
32858
32859 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32860
32861         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
32862
32863 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
32864
32865         * asan.c (set_sanitized_sections): New function.
32866         (section_sanitized_p): Ditto.
32867         (asan_protect_global): Optionally sanitize user-defined
32868         sections.
32869         * asan.h (set_sanitized_sections): Declare new function.
32870         * common.opt (fsanitize-sections): New option.
32871         * doc/invoke.texi (-fsanitize-sections): Document new option.
32872         * opts-global.c (handle_common_deferred_options): Handle new
32873         option.
32874
32875 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32876
32877         PR debug/65771
32878         * dwarf2out.c (loc_list_from_tree): Return NULL
32879         for DEBUG_EXPR_DECL.
32880
32881 2015-04-17  Christian Bruel  <christian.bruel@st.com>
32882
32883         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
32884         same attributes.
32885
32886 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
32887
32888         * ira-color.c (setup_left_conflict_sizes_p): Do not process
32889         node itself when computing left conflict subnode size.
32890
32891 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32892
32893         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
32894         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
32895         *fop_<mode>_1_sse using enabled attribute.  Use
32896         register_mixssei387nonimm_operand operand 1 predicate. Change
32897         alternative 3 constraints from "x" to "v".
32898
32899 2015-04-16  Richard Biener  <rguenther@suse.de>
32900
32901         PR tree-optimization/65774
32902         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
32903         bit-value tracking on.
32904
32905 2015-04-16  Richard Biener  <rguenther@suse.de>
32906
32907         PR tree-optimization/64277
32908         * tree-vrp.c (check_array_ref): Fix anti-range handling,
32909         simplify upper bound handling.
32910         (search_for_addr_array): Simplify.
32911         (check_array_bounds): Handle ADDR_EXPRs here.
32912         (check_all_array_refs): Simplify.
32913
32914 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32915
32916         * config/i386/i386.c (print_reg): Rewrite function.
32917
32918 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32919
32920         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
32921         Invert the condition.
32922
32923 2015-04-16  Renlin Li  <renlin.li@arm.com>
32924
32925         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
32926         simplifications for UNSIGNED_FLOAT.
32927
32928 2015-04-16  Nick Clifton  <nickc@redhat.com>
32929
32930         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
32931         MUL_UNINIT.
32932         (enum rl78_cpu_type): New.
32933         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
32934         (umulhi3_shift_virt): Remove m constraint from operand 1.
32935         (umulqihi3_virt): Likewise.
32936         * config/rl78/rl78.c (rl78_option_override): Add code to process
32937         -mcpu and -mmul options.
32938         (rl78_alloc_physical_registers): Add code to handle divhi and
32939         divsi valloc attributes.
32940         (set_origin): Likewise.
32941         * config/rl78/rl78.h (RL78_MUL_G14): Define.
32942         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
32943         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
32944         __RL78_Gxx__.
32945         (ASM_SPEC): Pass -mcpu on to assembler.
32946         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
32947         (mulqi3_rl78): Likewise.
32948         (mulhi3_g13): Likewise.
32949         (mulhi3): Generate the G13 or G14 versions of the insn directly.
32950         (mulsi3): Likewise.
32951         (mulhi3_g14): Add clobbers of AX and BC.
32952         (mulsi3_g14): Likewise.
32953         (mulsi3_g13): Likewise.
32954         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
32955         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
32956         * config/rl78/rl78.opt (mmul): Initialise value to
32957         RL78_MUL_UNINIT.
32958         (mcpu): New option.
32959         (m13, m14, mrl78): New option aliases.
32960         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
32961         (MULTILIB_DIRNAMES): Add g13 and g14.
32962         * doc/invoke.texi: Document -mcpu and -mmul options.
32963
32964 2015-04-16  Richard Biener  <rguenther@suse.de>
32965
32966         * tree-ssa-ccp.c (likely_value): See if we have operands that
32967         are marked as never simulate again and return CONSTANT in this
32968         case.
32969         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
32970         not have any operands that will be simulated again as
32971         not being simulated again.
32972
32973 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
32974
32975         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
32976         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
32977         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
32978         attribute.
32979         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
32980         enabled attribute.
32981         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
32982         *float<SWI48:mode><MODEF:mode>2_sse.
32983         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
32984         enabled attribute.
32985         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
32986         enabled attribute.
32987
32988 2015-04-15  Tom de Vries  <tom@codesourcery.com>
32989
32990         PR other/65487
32991         * function.c (push_dummy_function): New function.
32992         (init_dummy_function_start): Use push_dummy_function.
32993         (pop_dummy_function): New function.  Factored out of ...
32994         (expand_dummy_function_end): ... here.
32995         * function.h (push_dummy_function, pop_dummy_function): Declare.
32996         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
32997         pop_dummy_function.
32998         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
32999
33000 2015-04-15  Jeff Law  <law@redhat.com>
33001
33002         PR tree-optimization/47679
33003         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
33004         need for forward declaration in upcoming changes.
33005         (record_conditions, record_edge_info): Likewise.
33006
33007         PR rtl-optimization/42522
33008         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
33009         SIGN_EXTRACT as a whole object rather than simplifying
33010         its operand.
33011
33012 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
33013
33014         PR ipa/65765
33015         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
33016         and GIMPLE_PREDICT use break instead of return true. For
33017         GIMPLE_EH_DISPATCH, compare dispatch region.
33018
33019 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
33020
33021         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
33022         details about the implementation.  Make clear preference for
33023         __atomic builtins.  Reduce possibility of future change.
33024
33025 2015-04-15  Nick Clifton  <nickc@redhat.com>
33026
33027         * config/rx/rx.opt (mallow-string-insns): New option.
33028         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
33029         builtin if string instructions are denied.
33030         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
33031         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
33032         appropriate.
33033         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
33034         * config/rx/rx.md (movstr): Enable pattern only if string
33035         instructions are allowed.
33036         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
33037         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
33038         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
33039         (MULTILIB_DIRNAMES): Add no-strings.
33040         * doc/invoke.texi: Document -mno-allow-string-insns.
33041
33042 2015-04-15  Alan Modra  <amodra@gmail.com>
33043
33044         PR target/65408
33045         PR target/58744
33046         PR middle-end/36043
33047         * calls.c (load_register_parameters): Don't load past end of
33048         mem unless suitably aligned.
33049
33050 2015-04-15  Nick Clifton  <nickc@redhat.com>
33051
33052         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
33053         decrement instruction as being frame related.
33054         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
33055         based addresses.
33056         If zero extending a function address enclose the operation in
33057         %code(...).
33058         (rl78_preferred_reload_class): New function.
33059         (TARGET_PREFERRED_RELOAD_CLASS): Define.
33060         * config/rl78/rl78.md: Remove useless constraints in expanders.
33061         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
33062         (mulhi3_rl78): Likewise.
33063         (mulhi3_g13): Likewise.
33064         (mulsi3_rl78): Likewise.
33065         (es_addr): Move to before the multiply patterns.
33066
33067 2015-04-15  Alan Modra  <amodra@gmail.com>
33068
33069         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
33070         and sequence_stack.  Add seq.
33071         (seq_stack): Delete.
33072         * function.c (prepare_function_start): Don't access x_last_insn.
33073         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
33074         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
33075         * emit_rtl.c (start_sequence, push_topmost_sequence,
33076         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
33077         sequence accessors.
33078         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
33079         remove_insn): Likewise.  Simplify.
33080         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
33081         and pop_topmost_sequence.
33082         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
33083         debug insns.
33084         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
33085
33086 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
33087
33088         PR target/65729
33089         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
33090         the assertiion.
33091
33092 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33093
33094         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
33095         (LEGACY_INT_REGNO_P): Ditto.
33096         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
33097         (ANY_MASK_REG_P): Remove.
33098         (BND_REG_P): Rename from ANY_BND_REG_P.
33099         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
33100         legacy integer registers.  Do not handle MMX_REG_P in a special way.
33101         Merge 64byte and 32byte SSE handling.
33102
33103 2015-04-14  Nick Clifton  <nickc@redhat.com>
33104
33105         * expr.c (expand_assignment): Force an address offset computation
33106         into a register before changing its mode.
33107         (expand_expr_real_1): Likewise.
33108
33109 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
33110
33111         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
33112         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
33113         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
33114         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
33115         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
33116         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
33117         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
33118         and __aarch64_vget_lane_any.
33119
33120 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
33121
33122         PR rtl-optimization/65761
33123         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
33124         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
33125
33126 2015-04-14  Richard Biener  <rguenther@suse.de>
33127
33128         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
33129         (graphite_can_represent_scev): Use POINTER_TYPE_P.
33130
33131 2015-04-14  Richard Biener  <rguenther@suse.de>
33132
33133         PR tree-optimization/65758
33134         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
33135         against -1.
33136         (ccp_lattice_meet): Likewise.
33137         (bit_value_unop): Likewise.
33138         (bit_value_binop): Likewise.
33139         (bit_value_assume_aligned): Likewise.
33140
33141 2015-04-14  Christian Bruel  <christian.bruel@st.com>
33142
33143         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
33144         function.
33145
33146 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
33147
33148         PR tree-optimization/63387
33149         * match.pd ((x unord x) | (y unord y) -> (x unord y),
33150         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
33151
33152 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33153
33154         * config/i386/predicates.md (any_QIreg_operand): Rename from
33155         q_regs_operand.  Do not process subregs.
33156         (QIreg_operand): Use QI_REGNO_P predicate.
33157         (ext_QIreg_operand): Ditto.
33158         (ext_register_operand): Ditto.
33159         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
33160         (AND splitters): Ditto.
33161         (AND with -65536 splitter): Add SWI48 mode for operand 0.
33162         (AND with -256 splitter): Use any_QIreg_operand predicate and
33163         SWI248 mode for operand 0.
33164         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
33165         mode for operand 0.
33166         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
33167
33168 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
33169
33170         * doc/plugins.texi: Rewrite first introductory paragraph.
33171
33172 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33173
33174         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
33175         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
33176
33177 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33178
33179         * ipa-profie.c (ipa_profile): Check number of parameters
33180         and possible polymorphic call targets before
33181         devirtualizing.
33182
33183 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
33184
33185         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
33186         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
33187
33188 2015-04-13  Richard Biener  <rguenther@suse.de>
33189
33190         PR tree-optimization/65204
33191         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
33192         takens for bit-CCP.
33193
33194 2015-04-13  Richard Biener  <rguenther@suse.de>
33195
33196         PR target/65660
33197         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
33198         and cond_not_taken_branch_cost to 4 and 2.
33199         (bdver2_cost): Likewise.
33200         (bdver3_cost): Likewise.
33201         (bdver4_cost): Likewise.
33202
33203 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33204
33205         * hash-table.h (hash_table constructor): Add mem stats.
33206         (alloc_entries): Likewise.
33207
33208 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33209
33210         * ipa-cp.c (ipcp_driver): Relase prev_edge.
33211         * passes.c (execute_one_pass): Only add transform if pass has one.
33212
33213 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
33214
33215         * config/i386/i386.c (ix86_option_override_internal): Don't set
33216         -fprefetch-loop-arrays if optimizing for size.
33217
33218 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33219             Gerald Pfeifer  <gerald@pfeifer.com>
33220
33221         * doc/contrib.texi (Contributors): Add Martin Jambor and
33222         Michael Matz.
33223
33224 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
33225
33226         * BASE-VER: Set to 6.0.0.
33227
33228         PR tree-optimization/65747
33229         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
33230         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
33231
33232 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33233
33234         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
33235         sentence.  Improve grammar.
33236
33237 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33238
33239         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
33240
33241 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33242
33243         PR ipa/65743
33244         * ipa-inline-transform.c (speculation_removed): Remove static var.
33245         (check_speculations): New function.
33246         (clone_inlined_nodes): Do not check spculations.
33247         (inline_call): Call check_speculations.
33248         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
33249         consider non-invariants.
33250
33251 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33252             Martin Liska  <mliska@suse.cz>
33253
33254         PR ipa/65722
33255         * ipa-icf.c (sem_item::compare_cgraph_references): function and
33256         variable can not match.
33257         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
33258         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
33259
33260 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
33261
33262         PR tree-optimization/65735
33263         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
33264         Remove visited_phis argument, add visited_bbs, avoid recursing into the
33265         same bb rather than just into the same phi node.
33266         (thread_through_normal_block): Adjust caller.
33267
33268 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33269
33270         * doc/contrib.texi (Contributors): Add Ira Rosen.
33271
33272 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
33273
33274         * gcov.c (find_source): Fix miswording in error message.
33275         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
33276         (ix86_expand_sse_comi_round): Fix typo in error message.
33277
33278 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33279
33280         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
33281
33282 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
33283
33284         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
33285
33286 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33287
33288         PR target/65710
33289         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
33290         Print bad_spills_num and insn_pseudos_num.
33291
33292 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33293
33294         PR target/65694
33295         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
33296         when creating +1 values for SImode.
33297
33298 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33299
33300         PR target/65729
33301         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
33302         assert.
33303
33304 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
33305             Iain Sandoe  <iain@codesourcery.com>
33306
33307         PR target/65351
33308         * configure: Regenerate.
33309
33310 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33311
33312         PR target/65671
33313         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
33314
33315 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
33316
33317         * doc/contrib.texi (Contributors): Add John Marino.
33318
33319 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33320
33321         PR tree-optimization/65709
33322         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
33323         TREE_TYPE (TREE_TYPE (t)).
33324
33325 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
33326
33327         PR target/65710
33328         * lra-int.h (lra_bad_spill_regno_start): New.
33329         * lra.c (lra_bad_spill_regno_start): New.
33330         (lra): Set up lra_bad_spill_regno_start.  Set up
33331         lra_constraint_new_regno_start unconditionally.
33332         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
33333         spill preferences.
33334
33335 2015-04-09  Marek Polacek  <polacek@redhat.com>
33336             Jakub Jelinek  <jakub@redhat.com>
33337
33338         PR middle-end/65554
33339         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
33340         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
33341         of STRIP_NOPS.
33342
33343 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
33344
33345         PR rtl-optimization/65693
33346         * combine.c (is_parallel_of_n_reg_sets): Move outside of
33347         #ifndef HAVE_cc0.
33348
33349 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
33350
33351         PR target/65296
33352         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
33353         device specs file if "device-specs%s" didn't resolve to a path.
33354
33355 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33356
33357         PR target/65676
33358         * config/i386/i386.c (fixup_modeless_constant): New.
33359         (ix86_expand_args_builtin): Fixup modeless constant operand.
33360         (ix86_expand_round_builtin): Ditto.
33361         (ix86_expand_special_args_builtin): Ditto.
33362         (ix86_expand_builtin): Ditto.
33363
33364 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33365
33366         PR target/65693
33367         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
33368         any pow2 integer in between 2 and 0x80000000U inclusive.
33369
33370 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
33371
33372         PR rtl-optimization/65693
33373         * combine.c (is_parallel_of_n_reg_sets): Change first argument
33374         from an rtx_insn * to an rtx.
33375         (try_combine): Adjust both callers.  Use it once more.
33376
33377 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33378
33379         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
33380         (chkp_make_static_const_bounds): Search existing
33381         symbol by assembler name.  Use make_decl_one_only.
33382         (chkp_get_zero_bounds_var): Remove node search which
33383         is now performed in chkp_make_static_const_bounds.
33384         (chkp_get_none_bounds_var): Likewise.
33385
33386 2015-04-08  Michael Witten  <mfwitten@gmail.com>
33387
33388         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
33389         to an example.
33390
33391 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33392
33393         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
33394
33395 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33396
33397         * doc/extend.texi (__sync Builtins): Fix grammar.
33398
33399 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33400
33401         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
33402
33403 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33404
33405         * varasm.c (emit_local): Move definition of align.
33406
33407 2015-04-08  Julian Brown  <julian@codesourcery.com>
33408
33409         * config/nvptx/mkoffload.c (process): Support variable mapping.
33410
33411 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
33412
33413         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
33414         alpha_links **.
33415         (alpha_write_one_linkage): Correct typo.
33416
33417 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33418
33419         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
33420
33421 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33422
33423         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
33424
33425 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33426
33427         * tree-chkp.h (chkp_insert_retbnd_call): New.
33428         * tree-chkp.c (chkp_insert_retbnd_call): New.
33429         * ipa-split.c (insert_bndret_call_after): Remove.
33430         (split_function): Use chkp_insert_retbnd_call.
33431         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
33432         bounds for instrumented functions.
33433
33434 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
33435
33436         PR ipa/65540
33437         * calls.c (initialize_argument_information): When producing tail
33438         call also turn SSA_NAMES passed by references to original PARM_DECLs
33439
33440 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33441
33442         PR target/65648
33443         * lra-remat.c (do_remat): Process input and non-input insn
33444         registers separately.
33445
33446 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33447
33448         PR debug/65678
33449         * valtrack.c (debug_lowpart_subreg): New function.
33450         (dead_debug_insert_temp): Use it.
33451
33452         PR middle-end/65680
33453         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
33454         into signed HOST_WIDE_INT the same as negative bit_offset.
33455
33456 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
33457
33458         * ipa-comdats.c (ipa_comdats): Visit all thunks
33459         to set proper comdat group.
33460
33461 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33462
33463         PR target/65489
33464         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
33465         on constants for NEON VSTRUCT modes.
33466
33467 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33468             Iain Sandoe  <iain@codesourcery.com>
33469
33470         PR target/65351
33471         * configure: Regenerate.
33472
33473 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33474
33475         PR target/65614
33476         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
33477         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
33478         that LFD is used to load double constants instead of LFS.  Add
33479         defaults for all costs structures.  Add comments for missing
33480         initialization fields.
33481         (size32_cost): Likewise.
33482         (size64_cost): Likewise.
33483         (rs64a_cost): Likewise.
33484         (mpccore_cost): Likewise.
33485         (ppc403_cost): Likewise.
33486         (ppc405_cost): Likewise.
33487         (ppc440_cost): Likewise.
33488         (ppc476_cost): Likewise.
33489         (ppc601_cost): Likewise.
33490         (ppc603_cost): Likewise.
33491         (ppc604_cost): Likewise.
33492         (ppc604e_cost): Likewise.
33493         (ppc620_cost): Likewise.
33494         (ppc630_cost): Likewise.
33495         (ppccell_cost): Likewise.
33496         (ppc750_cost): Likewise.
33497         (ppc7450_cost): Likewise.
33498         (ppc8540_cost): Likewise.
33499         (ppce300c2c3_cost): Likewise.
33500         (ppce500mc_cost): Likewise.
33501         (ppce500mc64_cost): Likewise.
33502         (ppce5500_cost): Likewise.
33503         (ppce6500_cost): Likewise.
33504         (titan_cost): Likewise.
33505         (power4_cost): Likewise.
33506         (power6_cost): Likewise.
33507         (power7_cost): Likewise.
33508         (power8_cost): Likewise.
33509         (ppca2_cost): Likewise.
33510         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
33511
33512         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
33513         instead of XXLOR to copy SFmode to clear out dirty bits created
33514         when SFmode denormals are generated.
33515         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
33516         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
33517
33518 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33519
33520         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
33521         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
33522         * config/aarch64/aarch64-tune.md: Regenerate.
33523
33524 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33525
33526         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
33527         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
33528         * config/arm/arm-cores.def (exynos-m1): New core.
33529         * config/arm/arm-tune.md: Regenerate.
33530         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
33531         * config/arm/bpabi.h: Likewise.
33532
33533 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33534
33535         * ipa-cp (set_single_call_flag): Remove too
33536         restrictive assert.
33537
33538 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
33539
33540         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
33541         GOMP_offload_unregister from the destructor.
33542
33543 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33544
33545         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
33546         flags for instrumentation thunk.
33547         (chkp_produce_thunks): Likewise.
33548
33549 2015-04-05  Martin Liska  <mliska@suse.cz>
33550
33551         PR ipa/65665
33552         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
33553         has computed data structure.
33554         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33555
33556 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
33557
33558         * invoke.texi (inline-unit-growth): Increase growth to 20%
33559         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
33560
33561 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
33562
33563         PR target/65647
33564         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
33565         value checking.
33566         (lra_rematerialization_iter): New.
33567         * lra.c (lra): Initialize lra_rematerialization_iter.
33568         Stop updating lra_constraint_new_regno_start after switching of
33569         inheritance and rematerialization.
33570         * lra-remat.c (lra_rematerialization_iter): New.
33571         (lra_remat): Add printing pass iteration.  Do rematerialization
33572         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
33573
33574 2015-04-04  Richard Biener  <rguenther@suse.de>
33575
33576         PR tree-optimization/64909
33577         PR tree-optimization/65660
33578         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
33579         to take a cost vector for scalar iteration cost.
33580         (vect_get_single_scalar_iteration_cost): Likewise.
33581         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
33582         Compute the scalar iteration cost into a cost vector.
33583         (vect_get_known_peeling_cost): Use the scalar cost vector to
33584         account for the cost of the peeled iterations.
33585         (vect_estimate_min_profitable_iters): Likewise.
33586         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
33587         Likewise.
33588
33589 2015-04-04  Alan Modra  <amodra@gmail.com>
33590
33591         PR target/65576
33592         PR target/65240
33593         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
33594         0.0 constant unless TARGET_VSX.
33595         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
33596         alternative.
33597
33598 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33599
33600         PR ipa/65654
33601         * ipa-inline-transform.c (inline_call): Skip sanity check to work
33602         around the ICE
33603
33604 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33605
33606         PR ipa/65655
33607         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
33608         speculative indirect edges to avoid ordering issue.
33609
33610 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33611
33612         PR ipa/65076
33613         * ipa-inline.c (edge_badness): Add combined size to the denominator.
33614
33615 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
33616
33617         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
33618         TYPE_ARTIFICIAL on the .omp_data* types.
33619
33620 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33621
33622         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
33623         instrumentation thunks.
33624
33625 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33626
33627         * config/i386/i386.c (ix86_expand_call): Avoid nested
33628         PARALLEL in returned call value.
33629
33630 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33631
33632         * lto-cgraph.c (input_cgraph_1): Always link instrumented
33633         assembler name with original one.
33634
33635 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33636
33637         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
33638
33639 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33640
33641         Revert parts of r216820.
33642         * config/i386/i386.md (movqi_internal): Correct type calculation
33643         for alternatives 3 and 5.
33644
33645 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
33646
33647         PR preprocessor/61977
33648         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
33649         predefine __vector/__bool/__pixel macros nor context sensitive
33650         macros for CLK_ASM.
33651         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
33652
33653 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
33654
33655         * config/pa/pa.c (pa_output_move_double): Directly handle register
33656         indexed memory operand.  Simplify handling of scaled register indexed
33657         memory operands.
33658
33659 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33660
33661         PR driver/65444
33662         * config/i386/linux-common.h (MPX_SPEC): New.
33663         (CHKP_SPEC): Add MPX_SPEC.
33664         * doc/invoke.texi (-fcheck-pointer-boudns): Document
33665         possible issues with '-z bndplt' support in linker.
33666
33667 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33668
33669         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
33670         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
33671         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
33672         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
33673         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
33674
33675 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
33676
33677         * config/i386/sync.md (UNSPEC_MOVA): Remove.
33678         (atomic_load<mode>): Change operand 0 predicate to
33679         nonimmediate_operand and fix up the destination when needed.
33680         Use UNSPEC_LDA.
33681         (atomic_loaddi_fpu): Use UNSPEC_LDA.
33682         (atomic_store<mode>): Change operand 1 predicate to
33683         nonimmendate_operand and move the source to register when needed.
33684         Use UNSPEC_STA.
33685         (atomic_store<mode>_1): Use UNSPEC_STA.
33686         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
33687         Fix moves from memory operand.  Use UNSPEC_STA.
33688
33689 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33690
33691         * expmed.c (strict_volatile_bitfield_p): Check that the access will
33692         not cross a MODESIZE boundary.
33693         (store_bit_field, extract_bit_field): Added assertions in the
33694         strict volatile bitfields code path.
33695
33696 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33697
33698         PR target/65624
33699         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
33700         Increase args array size by one to avoid buffer overflow.
33701
33702 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33703
33704         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
33705         split_part.
33706         * ipa-inline.c (edge_badness): Add wrapper penalty.
33707         (sum_callers): Move up.
33708         (inline_small_functions): Set single_caller.
33709         * ipa-inline.h (inline_summary): Add single_caller.
33710         * ipa-split.c (split_function): Set split_part.
33711         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
33712         * cgraph.h (cgraph_node): Add split_part.
33713
33714 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
33715
33716         PR target/58945
33717         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
33718         Do not split operands 0 and operands 2 to halfmode.
33719         (atomic_compare_and_swap<mode>): Update for
33720         atomic_compare_and_swap<dwi>_doubleword changes.
33721
33722 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33723
33724         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
33725         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
33726         no caching is done.
33727
33728 2015-03-31  Martin Liska  <mliska@suse.cz>
33729
33730         PR ipa/65557
33731         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
33732         has already filled up function summary.
33733         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33734
33735 2015-03-31  Richard Biener  <rguenther@suse.de>
33736
33737         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
33738         of types.
33739
33740 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33741
33742         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
33743         nested functions.
33744         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
33745         (s390_asm_output_function_label): Adapt to new signature of
33746         s390_function_num_hotpatch_hw
33747         Optimise the code generating assembler output.
33748         Add comments to assembler file.
33749
33750 2015-03-31  Richard Biener  <rguenther@suse.de>
33751
33752         PR middle-end/65626
33753         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
33754         of the noreturn call so it is last and cleanup_control_flow_bb
33755         can do the CFG part.
33756
33757 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
33758
33759         PR target/65531
33760         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
33761         same_comdat_group for external symbols.
33762         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
33763         infinite same_comdat_group traversal loop.
33764
33765 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
33766
33767         PR plugins/61176
33768         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
33769         automatically to $headers.
33770
33771 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
33772
33773         PR ipa/65610
33774         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
33775         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
33776         function.
33777         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
33778         Use it.
33779         * ipa-prop.c (param_type_may_change_p): Likewise.
33780         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
33781         (remove_unused_scope_block_p): Add in_ctor_dtor_block
33782         argument.  Before inlining, preserve
33783         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
33784         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
33785         recursive calls.
33786         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
33787
33788 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33789
33790         PR ipa/65076
33791         * ipa-inline.c (edge_badness): Base denominator on callee's
33792         grwoth squared.
33793
33794 2015-03-27  Martin Jambor  <mjambor@suse.cz>
33795
33796         PR ipa/65478
33797         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
33798         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
33799         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
33800         node_calling_single_call.
33801         * ipa-cp.c (count_callers): New function.
33802         (set_single_call_flag): Likewise.
33803         (initialize_node_lattices): Count callers and set single_flag_call if
33804         necessary.
33805         (incorporate_penalties): New function.
33806         (good_cloning_opportunity_p): Use it, dump new flags.
33807         (propagate_constants_topo): Set node_within_scc flag if appropriate.
33808         * doc/invoke.texi (ipa-cp-recursion-penalty,
33809         ipa-cp-single-call-pentalty): Document.
33810
33811 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33812
33813         PR ipa/65588
33814         * symtab.c (symtab_node::get_partitioning_class): Register vars
33815         are duplicated.
33816         * varpool.c (symbol_table::output_variables) Do not assemble unefined
33817         decls for non-symbols.
33818
33819 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
33820
33821         PR target/65248
33822         * output.h (default_binds_local_p_2): New.
33823         * varasm.c (default_binds_local_p_2): Renamed to ...
33824         (default_binds_local_p_3): This.  Don't return true on protected
33825         data symbol if protected data may be external.
33826         (default_binds_local_p): Use default_binds_local_p_3.
33827         (default_binds_local_p_1): Likewise.
33828         (default_binds_local_p_2): New.
33829         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
33830         default_binds_local_p_2 if TARGET_MACHO is undefined.
33831
33832 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
33833
33834         PR target/65593
33835         * config/i386/i386.c (legitimize_pic_address): If base
33836         is SYMBOL_REF or LABEL_REF using %rip addressing, force
33837         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
33838
33839 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33840
33841         PR target/65531
33842         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
33843         comdat groups.
33844
33845 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33846
33847         PR ipa/65600
33848         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
33849         of optimized out indirect call.
33850         (redirect_to_unreachable): Always build symbol table node for
33851         BUILT_IN_UNREACHABLE
33852
33853 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
33854
33855         PR target/65407
33856         * ira-costs.c (record_reg_classes): Process all constraint string
33857         containing 0-9.
33858
33859 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
33860
33861         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
33862         memory_operand.
33863
33864         PR target/65052
33865         * config/c6x/constraints.md (S3): New constraint.
33866         * config/c6x/c6x.md (real_jump): Use it.
33867
33868 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33869
33870         PR middle-end/65595
33871         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
33872         do redirection if the call is not optimized out.
33873
33874 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
33875
33876         PR target/65495
33877         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
33878         (fchkp-check-incomplete-type): Add LTO.
33879         (fchkp-zero-input-bounds-for-main): Likewise.
33880         (fchkp-first-field-has-own-bounds): Likewise.
33881         (fchkp-narrow-bounds): Likewise.
33882         (fchkp-narrow-to-innermost-array): Likewise.
33883         (fchkp-use-static-bounds): Likewise.
33884         (fchkp-use-static-const-bounds): Likewise.
33885         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
33886
33887 2015-03-27  Marek Polacek  <polacek@redhat.com>
33888
33889         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
33890
33891 2015-03-27  Marek Polacek  <polacek@redhat.com>
33892
33893         PR sanitizer/65583
33894         * ubsan.c (ubsan_create_edge): New function.
33895         (instrument_bool_enum_load): Call it.
33896         (instrument_nonnull_arg): Likewise.
33897         (instrument_nonnull_return): Likewise.
33898         (instrument_object_size): Likewise.
33899
33900 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33901
33902         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
33903         auto_vec.
33904
33905 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33906
33907         PR lto/65536
33908         * lto-streamer.h (class lto_location_cache): New.
33909         (struct data_in): Add location_cache.
33910         (lto_input_location): Update prototype.
33911         (stream_input_location_now): New.
33912         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
33913         pointer to location.
33914         (stream_input_location): Update.
33915         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
33916         (warn_odr): Apply location cache before warning.
33917         (lto_input_location): Update prototype.
33918         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
33919         Use stream_input_location_now.
33920         * lto-streamer-in.c (lto_location_cache::current_cache): New static
33921         variable.
33922         (lto_location_cache::cmp_loc): New function.
33923         (lto_location_cache::apply_location_cache): New function.
33924         (lto_location_cache::accept_location_cache): New function.
33925         (lto_location_cache::revert_location_cache): New function.
33926         (lto_location_cache::input_location): New function.
33927         (lto_input_location): Do location caching.
33928         (stream_input_location_now): New function.
33929         (input_eh_region, input_struct_function_base): Use
33930         stream_input_location_now.
33931         (lto_data_in_create): use new.
33932         (lto_data_in_delete): Use delete.
33933         * tree-streamer-in.c (unpack_ts_block_value_fields,
33934         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
33935         lto_input_ts_exp_tree_pointers): Update for cached location api.
33936
33937 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33938
33939         PR ipa/65076
33940         * passes.def: Add pass_nothrow.
33941         * ipa-pure-const.c: (pass_data_nothrow): New.
33942         (pass_nothrow): New.
33943         (pass_nothrow::execute): New.
33944         (make_pass_nothrow): New.
33945         * tree-pass.h (make_pass_nothrow): Declare.
33946
33947 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33948
33949         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
33950         edge to change by speculation resolution or redirection.
33951         (edge_set_predicate): Likewise.
33952         (inline_summary_t::duplicate): Likewise.
33953         (remap_edge_summaries): Likewise.
33954
33955 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33956
33957         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
33958         New macros.
33959         (can_inline_edge_p): Relax option matching for always inline functions.
33960
33961 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
33962
33963         PR target/65561
33964         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
33965         Check operand 4 and operand 0 for equality.
33966         (avx512f_vextract<shuffletype>32x4_1_maskm):
33967         Check operand 6 and operand 0 for equality.
33968         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
33969         for equality.
33970         (vec_extract_hi_<mode>_maskm): Ditto.
33971
33972 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33973
33974         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
33975         dead calls back to live.
33976         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
33977         cross check to ...
33978         (cgraph_node::verify_node): ... here; verify only callee edges,
33979         not caller.
33980         * cif-code.def (CILK_SPAWN): New code.
33981
33982 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33983
33984         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
33985         (edge_set_predicate): Use it to mark unreachable edges.
33986         (inline_summary_t::duplicate): Remove unnecesary code.
33987         (remap_edge_summaries): Likewise.
33988         (dump_inline_summary): Report contains_cilk_spawn.
33989         (compute_inline_parameters): Compute contains_cilk_spawn.
33990         (inline_read_section, inline_write_summary): Stream
33991         contains_cilk_spawn.
33992         * ipa-inline.c (can_inline_edge_p): Do not touch
33993         DECL_STRUCT_FUNCTION that may not be available;
33994         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
33995         remove check for callee_fun->can_throw_non_call_exceptions and
33996         replace it by optimization attribute check; check for flag_exceptions.
33997         * ipa-inline-transform.c (inline_call): Maintain
33998         DECL_FUNCTION_PERSONALITY
33999         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
34000
34001 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34002
34003         PR tree-optimization/65551
34004         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
34005         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
34006
34007 2015-03-26  Richard Biener  <rguenther@suse.de>
34008
34009         PR middle-end/65555
34010         * tree-cfg.c (verify_gimple_call): Do not require a call to
34011         have no LHS if it wasn't recognized as control altering yet.
34012
34013 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34014
34015         PR tree-optimization/64715
34016         * passes.def: Add another instance of pass_object_sizes before ccp1.
34017         * tree-object-size.c (pass_object_sizes::execute): In
34018         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
34019         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
34020         __bos result and the computed constant.  Remove redundant
34021         checks, obsoleted by gimple_call_builtin_p test.
34022
34023         * var-tracking.c (variable_tracking_main_1): Don't track
34024         variables for targetm.no_register_allocation targets.
34025
34026 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
34027
34028         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
34029         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
34030
34031 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34032
34033         PR target/65569
34034         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
34035         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
34036         0.0 is correctly setup.
34037         (extenddftf2_internal): Likewise.
34038
34039 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
34040
34041         PR tree-optimization/65177
34042         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
34043         (bb_in_bbs): New.
34044         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
34045         edges not adjacent on the path to the original code.
34046
34047 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
34048
34049         PR bootstrap/65537
34050         * doc/install.texi (Building a native compiler): Document new
34051         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
34052         configuration assumes that the host supports the linker plugin.
34053
34054 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
34055
34056         PR target/65508
34057         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
34058         chain for generated call.
34059
34060 2015-03-25  Richard Biener  <rguenther@suse.de>
34061
34062         * passes.c (pass_manager::execute_early_local_passes): Guard
34063         execution of pass_chkp_instrumentation_passes with
34064         flag_check_pointer_bounds.
34065         (pass_chkp_instrumentation_passes::gate): Likewise.
34066
34067 2015-03-25  Martin Liska  <mliska@suse.cz>
34068
34069         PR tree-optimization/65538
34070         * symbol-summary.h (function_summary::~function_summary):
34071         Relese memory for allocated summaries.
34072         (function_summary::release): New function.
34073
34074 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
34075
34076         PR lto/65515
34077         * lto-streamer-out.c (DFS::worklist): New struct.
34078         (DFS::worklist_vec): New data member.
34079         (DFS::next_dfs_num): Remove.
34080         (DFS::DFS): Rewritten using worklist instead of recursion,
34081         using most of code from DFS::DFS_write_tree.
34082         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
34083         pass it to DFS_write_tree calls.
34084         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
34085         quick initial checks push it into worklist_vec and return.
34086
34087 2015-03-25  Richard Biener  <rguenther@suse.de>
34088
34089         PR middle-end/65519
34090         * genmatch.c (expr::gen_transform): Re-write to avoid
34091         using gimple_build.
34092
34093 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34094
34095         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
34096
34097 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34098
34099         * config/arm/arm.opt (print_tune_info): New option.
34100         * config/arm/arm.c (arm_print_tune_info): New function.
34101         (arm_file_start): Call arm_print_tune_info.
34102         * config/arm/arm-protos.h (struct tune_params): Add comment.
34103         * doc/invoke.texi (@item -mprint-tune-info): New item.
34104         (-mtune): mention it in ARM Option Summary.
34105
34106 2015-03-25  DJ Delorie  <dj@redhat.com>
34107
34108         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
34109         correct clause.
34110
34111 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
34112             Martin Liska  <mliska@suse.cz>
34113
34114         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
34115         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
34116         (sem_item::add_type): New function.
34117         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
34118         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
34119         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
34120         (sem_function::equals_wpa): Fix typo.
34121         * ipa-icf.h (sem_item::add_type): New function.
34122         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
34123         order.
34124
34125 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
34126
34127         PR tree-optimization/65533
34128         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
34129         with swapped operands, call vect_free_slp_tree on
34130         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
34131         vector.
34132
34133 2015-03-24  Richard Biener  <rguenther@suse.de>
34134
34135         PR middle-end/65517
34136         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
34137         for fixup if necessary.
34138
34139 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
34140
34141         * doc/extend.texi (Function Attributes): Add @cindex entries
34142         for all attributes and regularize their format.  Delete text
34143         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
34144         information about "eightbit_data", "tiny_data", and "model"
34145         variable attributes to the Variable Attributes section.  Fix
34146         some obvious typos and copy-editing issues.
34147         (Variable Attributes, Type Attributes): Likewise add/fix
34148         @cindex entries for all attributes.
34149
34150 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34151
34152         PR target/65523
34153         * tree-chkp.c (chkp_build_returned_bound): Ignore
34154         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
34155
34156 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
34157
34158         PR target/65505
34159         * config/sh/predicates.md (simple_mem_operand,
34160         displacement_mem_operand): Add test for reg.
34161         (short_displacement_mem_operand): Test for displacement_mem_operand
34162         before invoking sh_disp_addr_displacement.
34163         * config/sh/constraints.md (Sdd, Sra): Simplify.
34164         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
34165         Remove redundant displacement_mem_operand tests.
34166
34167 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
34168
34169         PR target/65296
34170         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
34171         the same -mmcu=MCU more than once.
34172
34173 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34174
34175         PR bootstrap/65522
34176         * ipa-devirt.c: Remove duplicate demangle.h include.
34177
34178         PR target/65504
34179         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
34180         on the pseudo.
34181         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
34182         REG_POINTER on *destptr after adjusting it for prologue size.
34183
34184         PR ipa/65521
34185         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
34186         ultimate_alias_target ()->order ints instead of
34187         ultimate_alias_target () pointers.
34188
34189 2015-03-23  Richard Biener  <rguenther@suse.de>
34190
34191         PR tree-optimization/65518
34192         * tree-vect-stmts.c (vectorizable_load): Reject single-element
34193         interleaving cases we generate absymal code for.
34194
34195 2015-03-23  Richard Biener  <rguenther@suse.de>
34196
34197         PR tree-optimization/65494
34198         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
34199         matches here.
34200         (vect_analyze_slp_instance): But do that here, always and once.
34201
34202 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34203
34204         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
34205         adding T or multiplying by T+1 and subracting T.
34206
34207 2015-03-22  Jeff Law  <law@redhat.com>
34208
34209         PR rtl-optimization/64317
34210         * Makefile.in (OBJS): Add gcse-common.c
34211         * gcse.c: Include gcse-common.h
34212         (struct modify_pair_s): Move structure definition to gcse-common.h
34213         (compute_transp): Move function to gcse-common.c.
34214         (canon_list_insert): Similarly.
34215         (record_last_mem_set_info): Break out some code and put it into
34216         gcse-common.c.  Call into the new common code.
34217         (compute_local_properties): Pass additional arguments to compute_transp.
34218         * postreload-gcse.c: Include gcse-common.h and df.h
34219         (modify_mem_list_set, blocks_with_calls): New variables.
34220         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
34221         (get_bb_avail_insn): Pass in the expression index too.
34222         (alloc_mem): Allocate memory for the new bitmaps and lists.
34223         (free_mem): Free memory for the new bitmaps and lists.
34224         (insert_expr_in_table): Record a bitmap index for each entry we
34225         add to the table.
34226         (record_last_mem_set_info): Call into common code in gcse-common.c.
34227         (get_bb_avail_insn): If no available insn was found in the requested
34228         BB.  If BB has a single predecessor, see if the expression is
34229         transparent in BB and available in that single predecessor.
34230         (compute_expr_transp): New wrapper for compute_transp.
34231         (eliminate_partially_redundant_load): Pass expression's bitmap_index
34232         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
34233         (gcse_after_reload_main): If there are elements in the hash table,
34234         then compute transparency for all the elements in the hash table.
34235         * gcse-common.h: New file.
34236         * gcse-common.c: New file.
34237
34238 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
34239
34240         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
34241         as an adjective.
34242         (System Headers): Likewise.
34243         (Ifdef): Likewise.
34244         (Traditional macros): Likewise.
34245         (Invocation): Likewise.
34246         (Option Index): Likewise.
34247         * doc/cppopts.texi (-M): Likewise.
34248         (-finput-charset): Likewise.
34249         (--help): Likewise.
34250         * doc.invoke.texi (AVR Options): Likewise.
34251         (V850 Options): Likewise.
34252
34253 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
34254
34255         PR ipa/65475
34256         * ipa-devirt.c: Include demangle.h
34257         (odr_type_d): Add field rtti_broken.
34258         (odr_subtypes_equivalent_p): Do not require name to match.
34259         (compare_virtual_tables): Fix typo; if type already has ODR violation,
34260         bypass the tests; be ready for function referneces in vtables that are
34261         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
34262         (warn_odr): Give up for nameless types.
34263         (warn_types_mismatch): Report mismatch in mangled names;
34264         report mismatch in anonymous namespaces; look into component types to
34265         give useful error; report when mismatch is dragged in from other ODR
34266         type.
34267         (odr_types_equivalent_p): Match types for being polymorphic; avoid
34268         duplicated diagnostics.
34269         (add_type_duplicate): Reorder checks so more informative ones come
34270         first; fix typo; do not output "the extra base is defined here" when
34271         we did not warn.
34272         (BINFO_N_BASE_BINFOS): Relax sanity check.
34273
34274 2015-03-22  Martin Liska  <mliska@suse.cz>
34275             Jakub Jelinek  <jakub@redhat.com>
34276
34277         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
34278         masks that can potentially include a builtin.
34279         (ix86_add_new_builtins): Introduce fast filter for isa values
34280         that cannot trigger builtin inclusion.
34281
34282 2015-03-22  Martin Liska  <mliska@suse.cz>
34283
34284         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
34285         (sem_item::update_hash_by_local_refs): Likewise.
34286         (sem_variable::get_hash): Empty line is fixed.
34287         (sem_item_optimizer::execute): Include adding of hash references.
34288         (sem_item_optimizer::update_hash_by_addr_refs): New function.
34289         (sem_item_optimizer::build_hash_based_classes): Use local hash.
34290         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
34291         (sem_item::update_hash_by_local_refs): Likewise.
34292
34293 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34294
34295         PR ipa/65502
34296         * ipa-comdats.c (enqueue_references): Walk through thunks.
34297         (ipa_comdats): Likewise.
34298         (set_comdat_group_1): New function.
34299
34300 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34301
34302         PR ipa/65475
34303         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
34304         non-polymorphic
34305
34306 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
34307             Gerald Pfeifer  <gerald@pfeifer.com>
34308
34309         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
34310
34311 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
34312             Sandra Loosemore  <sandra@codesourcery.com>
34313
34314         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
34315         function parameter declaration.
34316         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
34317         Update arguments to nios2_adjust_call_address().
34318         (sibcall_internal): Rename from *sibcall.
34319         (sibcall_value_internal): Rename from *sibcall_value.
34320         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
34321         (nios2_large_got_address): Add target temp reg parameter.
34322         (nios2_got_address): Adjust call to nios2_large_got_address, add
34323         force_reg around it.
34324         (nios2_load_pic_address): Add target temp reg parameter, replace call
34325         to nios2_got_address with corresponding code.
34326         (nios2_legitimize_constant_address): Update call to
34327         nios2_load_pic_address.
34328         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
34329         to use temp reg for PIC loading purposes.
34330         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
34331         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34332         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
34333
34334 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34335
34336         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
34337         usage of "the @option{...}".
34338         (-Wopenmp-simd): Likewise.
34339         (-fsanitize-recover): Likewise.
34340         (-fsanitize-undefined-trap-on-error): Likewise.
34341         (-flto): Likewise.
34342         (tracer-dynamic-coverage-feedback): Likewise.
34343         (reorder-block-duplicate-feedback): Likewise.
34344         (loop-unroll-jam-size): Likewise.
34345         (-B): Likewise.
34346         (-I-): Likewise.
34347         (-mabs=legacy): Likewise.
34348         (-mupper-regs-df): Likewise.
34349         (-mupper-regs-sf): Likewise.
34350         (-mpointers-to-nested-functions): Likewise.
34351
34352 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34353
34354         * doc/extend.texi (Cilk Plus Builtins): Add markup.
34355
34356 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34357
34358         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
34359         additional index entries and cross-references.
34360         (-fchkp-check-incomplete-type): Likewise.
34361         (-fchkp-first-field-has-own-bounds): Likewise.
34362         (-fchkp-narrow-to-innermost-array): Likewise.
34363         (-fchkp-use-fast-string-functions): Likewise.
34364         (-fchkp-use-nochk-string-functions): Likewise.
34365         (-fchkp-use-static-const-bounds): Likewise.
34366         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34367         (-fchkp-instrument-marked-only): Likewise.
34368         (-fchkp-use-wrappers): Likewise.
34369         (-static-libmpx): Likewise.
34370         (-static-libmpxwrappers): Likewise.
34371         * doc/extend.texi (bnd_legacy): Likewise.
34372         (bnd_instrument): Likewise.
34373         (bnd_variable_size): Likewise.
34374         (Pointer Bounds Checker builtins): Likewise.
34375
34376 2015-03-21  Tom de Vries  <tom@codesourcery.com>
34377
34378         PR tree-optimization/65458
34379         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
34380         * cgraph.h (cgraph_node): Add parallelized_function field.
34381         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
34382         (input_overwrite_node): Read parallelized_function field.
34383         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
34384         parallelized_function on cgraph_node for child_fn.
34385         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
34386         Remove include of gt-tree-parloops.h.
34387         (parallelized_functions): Remove static variable.
34388         (parallelized_function_p): Rewrite using parallelized_function field of
34389         cgraph_node.
34390         (create_loop_fn): Remove adding to parallelized_functions.
34391         * Makefile.in (GTFILES): Remove tree-parloops.c
34392
34393 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
34394
34395         PR rtl-optimization/64366
34396         * lra.c (lra_update_insn_regno_info): Consider regs in
34397         CALL_INSN_FUNCTION_USAGE memory.
34398
34399 2015-03-20  Richard Biener  <rguenther@suse.de>
34400
34401         PR middle-end/64715
34402         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
34403         for type comparison and gcc_checking_assert.
34404         (chrec_fold_plus_poly_poly): Likewise.
34405         (chrec_fold_multiply_poly_poly): Likewise.
34406         (chrec_convert_1): Likewise.
34407         * gimplify.c (gimplify_expr): Remove premature folding of
34408         &X + CST to &MEM[&X, CST].
34409
34410 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34411
34412         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
34413         already is final.
34414         (ipa_inline): Recompute inline_failed codes.
34415         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34416         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
34417         CIF_FINAL_ERROR.
34418
34419 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
34420
34421         PR rtl-optimization/60851
34422         * recog.c (constrain_operands): Accept a pseudo register before reload
34423         for LRA enabled targets.
34424
34425 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
34426
34427         PR target/65240
34428         * config/rs6000/predicates.md (easy_fp_constant): Remove special
34429         -ffast-math handling that kept non-0 constants live in the RTL
34430         until reload.  Remove logic testing the number of instructions it
34431         took to create a constant in a GPR that was never used, due to a
34432         test for soft-float earlier.
34433         (memory_fp_constant): Delete, no longer used.
34434
34435         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
34436         alternatives for loading non-0 constants into GPRs for hard
34437         floating point that is no longer needed due to changes in
34438         easy_fp_constant.  Add support for loading 0.0 into GPRs.
34439         (mov<mode>_hardfloat32): Likewise.
34440         (mov<mode>_hardfloat64): Likewise.
34441         (mov<mode>_64bit_dm): Likewise.
34442         (movtd_64bit_nodm): Likewise.
34443         (pre-reload move FP constant define_split): Delete define_split,
34444         since it is no longer used.
34445         (extenddftf2_internal): Remove GHF constraints that are not valid
34446         for extenddftf2.
34447
34448 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
34449
34450         PR rtl-optimization/63491
34451         * lra-constraints.c (check_and_process_move): Use src instead of
34452         sreg.  Remove some dead code.
34453
34454 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
34455
34456         PR ipa/65380
34457         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
34458         (sem_variable::merge): Likewise.
34459
34460 2015-03-19  Martin Liska  <mliska@suse.cz>
34461
34462         PR ipa/65465
34463         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
34464         all fields of cgraph_thunk_info.
34465
34466 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
34467
34468         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
34469         clone instrumented thunks.
34470
34471 2015-03-19  Richard Biener  <rguenther@suse.de>
34472
34473         Revert
34474         2015-03-10  Richard Biener  <rguenther@suse.de>
34475
34476         PR middle-end/63155
34477         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34478         * tree-ssa-coalesce.c: Include timevar.h.
34479         (attempt_coalesce): Handle graph being NULL.
34480         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34481         Split out abnormal coalescing to ...
34482         (perform_abnormal_coalescing): ... this function.
34483         (coalesce_ssa_name): Perform abnormal coalescing without computing
34484         live/conflict.
34485         (verify_ssa_coalescing_worker): New function.
34486         (verify_ssa_coalescing): Likewise.
34487
34488 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34489             Jakub Jelinek  <jakub@redhat.com>
34490
34491         PR sanitizer/65400
34492         * tsan.c (instrument_gimple): Clear tail call flag on
34493         calls.
34494
34495 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
34496
34497         PR sanitizer/65400
34498         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
34499         call in the return bb.
34500         (find_split_points): Add RETURN_BB argument, don't call
34501         find_return_bb.
34502         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
34503         if true append TSAN_FUNC_EXIT internal call after the call to
34504         the split off function.
34505         (execute_split_functions): Call find_return_bb here.
34506         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
34507         Adjust find_split_points and split_function calls.
34508
34509 2015-03-18  DJ Delorie  <dj@redhat.com>
34510
34511         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
34512         (iorqi3_virt): Likewise.
34513
34514 2015-03-18  Tom de Vries  <tom@codesourcery.com>
34515
34516         * tree-parloops.c (parallelize_loops): Make static.
34517         * tree-parloops.h (parallelize_loops): Remove extern declaration.
34518
34519 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
34520
34521         PR middle-end/64491
34522         Revert:
34523         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
34524
34525         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
34526         condition would be removed due to undefined behaviour.
34527
34528 2015-03-18  Martin Liska  <mliska@suse.cz>
34529
34530         PR ipa/65432
34531         * cgraph.c (cgraph_node::get_create): Remove unnecessary
34532         xstrdup_for_dump wrapper.
34533         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
34534         sem_item::name.
34535         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
34536         with xstrdup_for_dump.
34537         (sem_variable::equals): Likewise.
34538         (sem_item_optimizer::read_section): Use symtab_node::name instead of
34539         sem_item::name.
34540         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
34541         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
34542         symtab_node::asm_name with xstrdup_for_dump.
34543         (congruence_class::dump): Use symtab_node::name instead of
34544         sem_item::name.
34545         * ipa-icf.h (symtab_node::name): Remove.
34546         (symtab_node::asm_name): Likewise.
34547
34548 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34549
34550         PR tree-optimization/65450
34551         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
34552         function.
34553         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
34554         it instead of duplicate_ssa_name_ptr_info.
34555
34556         PR target/65222
34557         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
34558
34559 2015-03-18  Richard Biener  <rguenther@suse.de>
34560
34561         * tree-data-ref.h (struct access_matrix): Remove.
34562         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
34563         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
34564         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
34565         (am_vector_index_for_loop): Likewise.
34566         (struct data_reference): Remove access_matrix member.
34567         (DR_ACCESS_MATRIX): Remove.
34568         (lambda_vector_new): Add comment.
34569         (lambda_matrix_new): Use XOBNEWVEC.
34570
34571 2015-03-18  Richard Biener  <rguenther@suse.de>
34572
34573         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
34574         (pass_ch::execute): Cleanup the CFG only if we did sth.
34575         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
34576
34577 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34578
34579         * expmed.c (synth_mult): Use std::swap instead of manually
34580         swapping algorithms.
34581
34582 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34583
34584         PR target/65078
34585         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
34586
34587 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
34588
34589         PR target/65296
34590         * config/avr/avr.opt (-nodevicelib): New option.
34591         * doc/invoke.texi (AVR Options): Document it.
34592         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
34593         libgcc.a, libc.a, libm.a.
34594         * config/avr/specs.h: Same.
34595         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
34596         which don't (directly) depend on the device.  Print more help.
34597         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
34598         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
34599         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
34600         case of an error.
34601         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
34602         for specs file name.
34603         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
34604         * config/avr/avr-mcus.def: Adjust initializers and comments.
34605
34606 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
34607
34608         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
34609         DECL_ONE_ONLY to check if decl is one only.
34610         * ipa-split.c (consider_split): Limit splitt of one only functions.
34611
34612 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34613
34614         PR tree-optimization/65427
34615         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
34616         functions.
34617         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
34618
34619 2015-03-16  Marek Polacek  <polacek@redhat.com>
34620
34621         * cgraph.h (add_new_static_var): Remove declaration.
34622         * varpool.c (add_new_static_var): Remove function.
34623
34624 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34625
34626         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
34627         instead of vec<tree> * with vec_alloc and release for args.
34628         Adjust all users.
34629
34630         PR middle-end/65431
34631         * omp-low.c (delete_omp_context): Only splay_tree_delete
34632         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
34633         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
34634
34635 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
34636
34637         PR sanitizer/64820
34638         * cfgexpand.c (align_base): New function.
34639         (alloc_stack_frame_space): Call it.
34640         (expand_stack_vars): Align prev_frame to be sure
34641         data->asan_vec elements aligned properly.
34642
34643 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
34644
34645         PR middle-end/65409
34646         * expr.c (store_field): Do not do a direct block copy if the source is
34647         a PARALLEL with BLKmode.
34648
34649 2015-03-16  Tom de Vries  <tom@codesourcery.com>
34650
34651         PR middle-end/65414
34652         Revert:
34653         2015-03-12  Tom de Vries  <tom@codesourcery.com>
34654
34655         PR rtl-optimization/64895
34656         * lra-lives.c (check_pseudos_live_through_calls): Use
34657         actual_call_used_reg_set instead of call_used_reg_set, if available.
34658
34659 2015-03-16  Alan Modra  <amodra@gmail.com>
34660
34661         PR target/63150
34662         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
34663         Modify Z->r bswapdi splitter to use dest in place of scratch.
34664         In r->Z and Z->r bswapdi splitter rename word_high, word_low
34665         to word1, word2 and rearrange logic to suit.
34666         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
34667         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
34668         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
34669         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
34670         early clobber.
34671
34672 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
34673
34674         PR tree-optimization/65369
34675         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
34676         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
34677         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
34678
34679         PR tree-optimization/65418
34680         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
34681         are casts in the first PLUS_EXPR operand, ensure tbias and
34682         *totallowp are in the inner type.
34683
34684         PR rtl-optimization/65401
34685         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
34686         argument.  If true, adjust_address_nv of x with big-endian
34687         correction for the mode widening to GET_MODE (y).
34688         (make_field_assignment): Don't do MEM mode widening here.
34689         Use MEM_P instead of GET_CODE == MEM.
34690
34691 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
34692
34693         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
34694         the external decls.
34695
34696 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34697
34698         PR target/64600
34699         * config/arm/arm.c (arm_gen_constant, AND case): Use
34700         ARM_SIGN_EXTEND when constructing AND mask.
34701
34702 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34703
34704         * graph.c (print_graph_cfg): Make function names visible and append
34705         parenthesis to it.  Also make groups of basic blocks belonging to the
34706         same function visible.
34707
34708 2015-03-12  Richard Biener  <rguenther@suse.de>
34709
34710         PR middle-end/44563
34711         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
34712         to avoid quadratic behavior with inline expansion splitting blocks.
34713         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
34714         with the successor if the predecessor will be merged with it.
34715         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
34716         entry block with its successor.
34717
34718 2015-03-13  Richard Biener  <rguenther@suse.de>
34719
34720         PR middle-end/44563
34721         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
34722         (cleanup_tree_cfg_1): Do not call it.
34723         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
34724         (fixup_noreturn_call): Mark the stmt as control altering.
34725         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
34726         here.
34727         (pass_data_fixup_cfg): Produce a dump file.
34728         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
34729         (need_noreturn_fixup): New global.
34730         (pass_dominator::execute): Fixup queued noreturn calls.
34731         (optimize_stmt): Queue calls that became noreturn for fixup.
34732         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
34733         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
34734         (el_to_fixup): New global.
34735         (eliminate_dom_walker::before_dom_childre): Queue calls that
34736         became noreturn for fixup.
34737         (eliminate): Fixup queued noreturn calls.
34738         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
34739         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
34740         (substitute_and_fold_dom_walker::before_dom_children): Queue
34741         alls that became noreturn for fixup.
34742         (substitute_and_fold): Fixup queued noreturn calls.
34743
34744 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
34745
34746         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
34747         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
34748         are building; for methods check ODR type of class they belong to if
34749         they may lead to a polymorphic call.
34750         (sem_function::compare_polymorphic_p): Be bit smarter about testing
34751         when function may lead to a polymorphic call.
34752         (sem_function::compare_type_list): Remove.
34753         (sem_variable::equals): Update use of compatible_types_p.
34754         (sem_variable::parse_tree_refs): Remove.
34755         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
34756         cdtor.
34757         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
34758         matching here.
34759         (func_checker::compatible_polymorphic_types_p): Break out from ...
34760         (unc_checker::compatible_types_p): ... here.
34761         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
34762         Declare.
34763         (unc_checker::compatible_types_p): Update.
34764         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
34765         Remove.
34766
34767 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34768
34769         PR rtl-optimization/65235
34770         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
34771         When first element of vec_concat is const_int, calculate its size
34772         using second element.
34773
34774 2015-03-12  Richard Biener  <rguenther@suse.de>
34775
34776         PR middle-end/65270
34777         * fold-const.c (operand_equal_p): Fix ordering of resetting
34778         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
34779
34780 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34781
34782         * config/s390/s390.c (s390_reorg): Move code to output nops after label
34783         to s390_reorg ().
34784         (s390_asm_output_function_label): Likewise.
34785         * config/s390/s390.c (s390_asm_output_function_label):
34786         Fix function label alignment with -mhtopatch.
34787         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
34788         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
34789         ("nop_2_byte"): New define_insn.
34790         ("nop_4_byte"): Likewise.
34791         ("nop_6_byte"): Likewise.
34792         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
34793         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
34794
34795 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34796
34797         PR target/65103
34798         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
34799         register.
34800
34801 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34802
34803         PR target/65044
34804         * toplev.c (process_options): Restrict Pointer Bounds Checker
34805         usage with Address Sanitizer.
34806
34807 2015-03-12  Richard Biener  <rguenther@suse.de>
34808
34809         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
34810         to split on.
34811         * omp-low.c (expand_omp_taskreg): Split block before removing
34812         the stmt.
34813         (expand_omp_target): Likewise.
34814         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
34815         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
34816         stmt to split_block.
34817
34818 2015-03-12  Tom de Vries  <tom@codesourcery.com>
34819
34820         PR rtl-optimization/64895
34821         * lra-lives.c (check_pseudos_live_through_calls): Use
34822         actual_call_used_reg_set instead of call_used_reg_set, if available.
34823
34824 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34825
34826         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
34827         (cgraph_node::remove): Likewise.
34828         (cgraph_node::get_untransformed_body): Likewise.
34829         * varpool.c (varpool_node::remove): Likewise.
34830         (varpool_node::get_constructor): Add sanity check.
34831
34832 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
34833
34834         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
34835         old GCC versions.
34836         (-fabi-compat-version): Likewise.
34837         (-ffriend-injection): Likewise.
34838         (-Wdeclaration-after-statement): Likewise.
34839         (-fomit-frame-pointer): Likewise.
34840         (-ftree-coalesce-inlined-vars): Likewise.
34841         (-fvisibility=): Likewise.
34842         * doc/extend.texi (Typeof): Likewise.
34843         (Zero Length): Likewise.
34844         (Escaped Newlines): Likewise.
34845         (Compound Literals): Likewise.
34846         (Function Attributes): Likewise.
34847         (Label Attributes): Likewise.
34848         (Type Attributes): Likewise.
34849         (Function Names): Likewise.
34850         (Other Builtins): Likewise.
34851         (Function Specific Option Pragmas): Likewise.
34852         (C++ Interface): Likewise.
34853
34854 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
34855
34856         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
34857
34858 2015-03-11  Marek Polacek  <polacek@redhat.com>
34859
34860         PR tree-optimization/65388
34861         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
34862
34863 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34864
34865         PR target/65296
34866         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
34867         * configure: Regenerate.
34868         * config.in: Regenerate.
34869         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
34870         [-mn-flash]: Document it.
34871         [__AVR_ARCH__]: Document avrtiny.
34872
34873         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
34874         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
34875         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
34876
34877 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34878
34879         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
34880
34881 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
34882
34883         PR target/65242
34884         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
34885         allow reloads of PLUS in floating point/VSX registers.
34886
34887 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
34888
34889         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
34890         crypto_sha256_fast.
34891         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
34892
34893 2015-03-11  Richard Biener  <rguenther@suse.de>
34894
34895         PR tree-optimization/65310
34896         * tree-sra.c (build_ref_for_offset): Also preserve larger
34897         alignment.
34898
34899 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
34900
34901         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
34902
34903 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34904
34905         PR target/65368
34906         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
34907         new define_expand.
34908         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
34909
34910 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34911
34912         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
34913         (sem_function::equals_wpa): ... here.
34914
34915 2015-03-10  Marek Polacek  <polacek@redhat.com>
34916             Jakub Jelinek  <jakub@redhat.com>
34917
34918         PR sanitizer/65367
34919         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
34920         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
34921         separately.
34922
34923 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34924
34925         PR target/65286
34926         * config/rs6000/t-linux: For powerpc64* target set
34927         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
34928
34929 2015-03-10  Richard Biener  <rguenther@suse.de>
34930
34931         PR middle-end/44563
34932         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
34933         for redirect_all_calls.
34934
34935 2015-03-10  Marek Polacek  <polacek@redhat.com>
34936
34937         * gdbinit.in (pcfun): Define and document.
34938
34939 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
34940
34941         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
34942         of libgomp-plugin.h.
34943         (find_target_compiler): Support a case when the path to gcc is
34944         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
34945         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
34946         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
34947         libgomp-plugin.h.
34948         (main): Use GCC_INSTALL_NAME as target_driver_name.
34949         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
34950         define.
34951         (mkoffload.o): Remove obsolete include path and defines.
34952         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
34953
34954 2015-03-10  Richard Biener  <rguenther@suse.de>
34955
34956         PR middle-end/63155
34957         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34958         * tree-ssa-coalesce.c: Include timevar.h.
34959         (attempt_coalesce): Handle graph being NULL.
34960         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34961         Split out abnormal coalescing to ...
34962         (perform_abnormal_coalescing): ... this function.
34963         (coalesce_ssa_name): Perform abnormal coalescing without computing
34964         live/conflict.
34965         (verify_ssa_coalescing_worker): New function.
34966         (verify_ssa_coalescing): Likewise.
34967
34968 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34969
34970         PR target/65296
34971         * config.gcc (extra_options) [avr]: Remove.
34972         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
34973         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
34974         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
34975
34976         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
34977         (-mmcu=): Add Var and MissingArgError properties.
34978         (-march=): Remove.
34979         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
34980         * config/avr/t-multilib: Regenerate.
34981         * config/avr/specs.h: New file.
34982         * config/avr/driver-avr.c: New file.
34983         * config/avr/genopt.sh: Remove file.
34984         * config/avr/avr-tables.opt: Remove file.
34985         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
34986         * config/avr/avr-c.c: Same.
34987         * avr-arch.h: Same.
34988         (avr_current_device): Remove proto.
34989         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
34990         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
34991         (EXTRA_SPEC_FUNCTIONS): Define.
34992         (avr_devicespecs_file): New specs function proto.
34993         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
34994         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
34995         (avr_current_device): Remove definition and usage.
34996         (avr_set_core_architecture): New static function.
34997         (avr_option_override): Use it.
34998         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
34999         (mcu_name): New static array.
35000         (comparator, avr_archs_str, avr_mcus_str): New static functions.
35001         (avr_inform_devices, avr_inform_core_architectures): New functions.
35002         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
35003         (avrlibc.h) [WITH_AVRLIBC]: Include.
35004         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
35005         (print_mcu): Rewrite from scratch.
35006         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
35007         Forward to avr-specific specs defined in device-specs file.
35008         * config/avr/t-avr (driver-avr.o): New rule.
35009         (avr-devices.o): Depend on avr-arch.h.
35010         (avr-mcus): No more depend on avr-tables.opt.
35011         (avr-tables.opt): Remove rule.
35012         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
35013
35014 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35015
35016         * c-family/c.opt (fchkp-use-wrappers): New.
35017         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
35018         (chkp_wrap_function): New.
35019         (chkp_build_instrumented_fndecl): Support wrapped
35020         functions.
35021         * doc/invoke.texi (-fcheck-pointer-bounds): New.
35022         (-fchkp-check-incomplete-type): New.
35023         (-fchkp-first-field-has-own-bounds): New.
35024         (-fchkp-narrow-bounds): New.
35025         (-fchkp-narrow-to-innermost-array): New.
35026         (-fchkp-optimize): New.
35027         (-fchkp-use-fast-string-functions): New.
35028         (-fchkp-use-nochk-string-functions): New.
35029         (-fchkp-use-static-bounds): New.
35030         (-fchkp-use-static-const-bounds): New.
35031         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
35032         (-fchkp-check-read): New.
35033         (-fchkp-check-write): New.
35034         (-fchkp-store-bounds): New.
35035         (-fchkp-instrument-calls): New.
35036         (-fchkp-instrument-marked-only): New.
35037         (-fchkp-use-wrappers): New.
35038         (-static-libmpx): New.
35039         (-static-libmpxwrappers): New.
35040
35041 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35042
35043         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
35044         (CHKP_SPEC): Add wrappers library.
35045         * c-family/c.opt (static-libmpxwrappers): New.
35046
35047 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35048
35049         * config/i386/linux-common.h (LIBMPX_LIBS): New.
35050         (LIBMPX_SPEC): New.
35051         (CHKP_SPEC): New.
35052         * gcc.c (CHKP_SPEC): New.
35053         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
35054         * c-family/c.opt (static-libmpx): New.
35055
35056 2015-03-10  Richard Biener  <rguenther@suse.de>
35057
35058         PR middle-end/44563
35059         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
35060         for compare_type.
35061         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
35062         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
35063         (cgraph_add_edge_to_call_site_hash): Likewise.
35064         (cgraph_node::get_edge): Likewise.
35065         (cgraph_edge::set_call_stmt): Likewise.
35066         (cgraph_edge::remove_caller): Likewise.
35067
35068 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
35069
35070         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
35071         (callee_saved_gpr_regs_size): ... this.
35072         (callee_saved_regs_first_regno): Rename to ...
35073         (callee_saved_first_gpr_regno): ... this.
35074         (callee_saved_regs_last_regno) Rename to ...
35075         (callee_saved_last_gpr_regno): ... this.
35076         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
35077         variables.
35078         (nds32_initial_elimination_offset): Likewise.
35079         (nds32_expand_prologue): Likewise.
35080         (nds32_expand_epilogue): Likewise.
35081         (nds32_expand_prologue_v3push): Likewise.
35082         (nds32_expand_epilogue_v3pop): Likewise.
35083         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
35084         Adjust renamed variables.
35085         (nds32_output_stack_pop): Likewise.
35086
35087 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35088
35089         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
35090         code in comment.
35091
35092 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35093
35094         PR rtl-optimization/65321
35095         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
35096         than shift mode.
35097         * var-tracking.c (use_narrower_mode): Likewise.
35098
35099 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35100
35101         PR tree-optimization/65355
35102         * varasm.c (notice_global_symbol): Do not produce RTL.
35103         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
35104         anchor.
35105         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
35106         check for section anchors.
35107
35108 2015-03-10  Alan Modra  <amodra@gmail.com>
35109
35110         PR target/65286
35111         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
35112         to be single-arch by default.  Set cpu_is_64bit for powerpc64
35113         given --with-cpu=native.
35114         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
35115         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
35116         and powerpc64le.
35117         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
35118         rs6000_isa_flags rather than TARGET_64BIT.
35119
35120 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
35121             Kaz Kojima  <kkojima@gcc.gnu.org>
35122
35123         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
35124
35125 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
35126
35127         PR lto/65361
35128         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
35129         on a TREE_BINFO, instead use BINFO_TYPE.
35130
35131 2015-03-09  Richard Biener  <rguenther@suse.de>
35132
35133         PR middle-end/65270
35134         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
35135         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
35136         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
35137         of that.  When comparing dereferences compare alignment.
35138         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
35139
35140 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35141
35142         * ipa-inline-analysis.c (check_callers): Check
35143         node->can_remove_if_no_direct_calls_and_refs_p.
35144         (growth_likely_positive): Reorganize to call
35145         can_remove_if_no_direct_calls_p later.
35146         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
35147         will_be_removed_from_program_if_no_direct_calls_p): Add
35148         will_inline parameter.
35149         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
35150         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35151         Handle inliner case correctly.
35152
35153 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35154
35155         PR tree-optimization/63743
35156         * cfgexpand.c (reorder_operands): Also reorder if only second operand
35157         had its definition forwarded by TER.
35158
35159 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35160
35161         PR lto/65316
35162         * ipa-utils.h (types_odr_comparable): Add strict argument.
35163         * ipa-devirt.c: Fix whitespace;
35164         (odr_hasher): Remove.
35165         (odr_name_hasher, odr_vtable_hasher): New hashers.
35166         (can_be_name_hashed_p): New predicate.
35167         (hash_type_name): remove.
35168         (hash_odr_name): New.
35169         (odr_name_hasher::hash): new.
35170         (can_be_vtable_hashed_p): New.
35171         (hash_odr_vtable): New.
35172         (odr_vtable_hasher::hash): New.
35173         (types_same_for_odr): Add strict parameter.
35174         (types_odr_comparable): Likewise.
35175         (odr_name_hasher::equal): New.
35176         (odr_vtable_hasher::equal): New.
35177         (odr_name_hasher::remove): New.
35178         (odr_hash_type): Change to hash_table<odr_name_hasher>.
35179         (odr_vtable_hash_type): New.
35180         (odr_vtable_hash): New.
35181         (odr_subtypes_equivalent_p): Do strict comparsion.
35182         (add_type_duplicate): Merge type names; cleanup; avoid type
35183         duplicates.
35184         (register_odr_type): Initialize vtable hash.
35185         (build_type_inheritance_graph): Likewise
35186         (get_odr_type): Reorg to use two hashes.
35187         (dump_possible_polymorphic_call_targets): Move sanity check after debug
35188         output.
35189         (ipa_devirt): Dump type_inheritance_graph.
35190         (types_same_for_odr): Add strict mode.
35191
35192 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35193
35194         PR ipa/65334
35195         * cgraph.h (symtab_node): Add definition_alignment,
35196         can_increase_alignment_p and increase_alignment.
35197         * symtab.c (symtab_node::can_increase_alignment_p,
35198         increase_alignment_1, symtab_node::increase_alignment,
35199         symtab_node::definition_alignment): New.
35200         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
35201         can_increase_alignment_p.
35202         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
35203         * tree-vect-stmts.c (ensure_base_align): Likewise.
35204         * varasm.c (function_section_1): Use definition_alignment.
35205         (assemble_start_function): Likewise.
35206         (emit_local): likewise.
35207         (build_constant_desc): Likewsie.
35208         (output_constant_def_contents): Likewise.
35209         (place_block_symbol): Likewise.
35210         (output_object_block): Likewise.
35211
35212 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35213
35214         PR ipa/65316
35215         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
35216         when outputting debug.
35217
35218 2015-03-07  Marek Polacek  <polacek@redhat.com>
35219             Martin Uecker  <uecker@eecs.berkeley.edu>
35220
35221         PR sanitizer/65280
35222         * doc/invoke.texi: Update description of -fsanitize=bounds.
35223
35224 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
35225
35226         * tree-ssa-phiopt.c (neg_replacement): Remove.
35227         (tree_ssa_phiopt_worker): Remove negate optimization.
35228
35229 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35230
35231         PR ipa/65302
35232         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
35233
35234 2015-03-06  Richard Biener  <rguenther@suse.de>
35235
35236         PR middle-end/64928
35237         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
35238         and liveout_obstack members.
35239         (calculate_live_on_exit): Remove.
35240         (calculate_live_ranges): Change declaration.
35241         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
35242         (new_tree_live_info): Adjust.
35243         (calculate_live_ranges): Delete livein when not wanted.
35244         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
35245         Deal with partly deleted live info.
35246         (loe_visit_block): Remove temporary bitmap by using
35247         bitmap_ior_and_compl_into.
35248         (live_worklist): Adjust accordingly.
35249         (calculate_live_on_exit): Make static.
35250         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
35251         we do not need livein.
35252
35253 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
35254
35255         * real.c (real_from_string): Fix typo in assertion.
35256
35257 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
35258
35259         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
35260         the patch.
35261
35262 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35263
35264         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
35265
35266 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
35267
35268         PR target/64342
35269         * lra-assigns.c (find_hard_regno_for): Rename to
35270         find_hard_regno_for_1.  Add a new parameter.
35271         (find_hard_regno_for): New function using find_hard_regno_for_1.
35272
35273 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35274
35275         PR rtl-optimization/65067
35276         * expmed.c (store_bit_field, extract_bit_field): Reworked the
35277         strict volatile bitfield handling.
35278
35279 2015-03-05  Martin Liska  <mliska@suse.cz>
35280
35281         PR ipa/65318
35282         * ipa-icf.c (sem_variable::equals): Compare variables types.
35283
35284 2015-03-05  Richard Henderson  <rth@redhat.com>
35285
35286         PR target/65121
35287         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
35288         correctly check weak symbol binding.
35289
35290 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
35291
35292         PR middle-end/65315
35293         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
35294         needed alignment.
35295
35296 2015-03-05  Martin Liska  <mliska@suse.cz>
35297
35298         * ipa-inline.c (inline_small_functions): Set default value to
35299         prevent warning during bootstrap.
35300         * tree.h: Add pragma guard that ignores false positives during
35301         bootstrap.
35302
35303 2015-03-05  Richard Biener  <rguenther@suse.de>
35304
35305         PR tree-optimization/65310
35306         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
35307         Properly preserve alignment of the base of the access.
35308
35309 2015-03-05  Richard Biener  <rguenther@suse.de>
35310
35311         PR ipa/65270
35312         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
35313         Compare dependence info.
35314
35315 2015-03-05  Richard Biener  <rguenther@suse.de>
35316
35317         PR middle-end/65233
35318         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
35319         tree-into-ssa.h.
35320         (walk_ssa_copies): Revert last chage.  Instead do not walk
35321         SSA names registered for SSA update.
35322
35323 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35324
35325         PR ipa/65270
35326         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
35327         vtable references for their containing type.
35328         (sem_function::equals_wpa): Compare TYPE_RESTRICT
35329         and type attributes.
35330
35331 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
35332
35333         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
35334         before negating it.
35335         * stor-layout.c (finalize_record_size): Revert latest change.
35336
35337 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
35338
35339         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
35340
35341 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35342
35343         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
35344         for correct comdat handling.
35345         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35346         Likewise.
35347         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
35348         (used_from_object_file_p_worker): Remove.
35349         (cgraph_node::only_called_directly_or_alised): Add
35350         used_from_object_file_p.
35351         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
35352         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
35353         can_remove_if_no_direct_calls_and_refs_p.
35354
35355 2015-03-04  Nick Clifton  <nickc@redhat.com>
35356
35357         * config/rl78/rl78.h (enum reg_class): Remove real registers from
35358         General register class.
35359         * config/rl78/rl78-real.md: Replace general register constraints
35360         with real+virtual register constraints.
35361
35362 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35363
35364         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
35365         from checking for -mhtm option.
35366
35367 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35368
35369         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
35370         (struct ipa_sra_check_caller_data): Add has_thunk field.
35371         (ipa_sra_check_caller): Check for thunk.
35372         (ipa_sra_preliminary_function_checks): Give up on function with
35373         thunks.
35374         (ipa_early_sra): Use call_for_symbol_and_aliases.
35375
35376 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
35377
35378         PR target/65249
35379         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
35380         called for __stack_chk_guard symbol.
35381
35382 2015-03-03  DJ Delorie  <dj@redhat.com>
35383
35384         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
35385         inc/dec.
35386         (*addhi3_real): Likewise.
35387         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
35388         pattern to match incrementing memory.
35389         * config/rl78/predicates.md (rl78_1_2_operand): New.
35390         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
35391         it's the same and only mem.
35392         (rl78_alloc_physical_registers_op2): If there's effectively only
35393         one MEM, transcode it into HL.
35394         (rl78_far_p): Reject addresses that aren't legitimate.
35395
35396 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35397
35398         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
35399         negating it.
35400
35401         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
35402
35403 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35404
35405         Implement call0 ABI for xtensa
35406         * config/xtensa/constraints.md ("a" constraint): Include stack
35407         pointer in case of call0 ABI.
35408         ("q" constraint): Make empty in case of call0 ABI.
35409         ("D" constraint): Include stack pointer in case of call0 ABI.
35410         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
35411         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
35412         prototypes.
35413         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
35414         variable.
35415         (xtensa_regno_to_class): Make it a local variable in the
35416         function xtensa_regno_to_class.
35417         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
35418         macro, function prototype and implementation.
35419         (reg_nonleaf_alloc_order): Make it a local variable in the
35420         function order_regs_for_local_alloc.
35421         (xtensa_conditional_register_usage): New function.
35422         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
35423         (xtensa_valid_move): Allow direct moves to stack pointer
35424         register in call0 ABI.
35425         (xtensa_setup_frame_addresses): Only spill register windows in
35426         windowed ABI.
35427         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
35428         call0 ABI respectively.
35429         (xtensa_function_arg_1): Only mark a7 register for copying in
35430         windowed ABI.
35431         (xtensa_call_save_reg): New function.
35432         (compute_frame_size): Add space for callee saved register
35433         storage to the frame size in call0 ABI.
35434         (xtensa_expand_prologue): Generate code to set up stack frame
35435         and save callee-saved registers in call0 ABI.
35436         (xtensa_expand_epilogue): New function.
35437         (xtensa_set_return_address): New function.
35438         (xtensa_return_addr): Calculate return address in call0 ABI.
35439         (xtensa_builtin_saveregs): Only mark a7 register for copying and
35440         emit copying code in windowed ABI.
35441         (order_regs_for_local_alloc): Add preferred register allocation
35442         order for non-leaf function in call0 ABI.
35443         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
35444         (xtensa_asm_trampoline_template): Add trampoline generation for
35445         call0 ABI.
35446         (xtensa_trampoline_init): Add trampoline initialization for
35447         call0 ABI.
35448         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
35449         functions.
35450         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
35451         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
35452         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
35453         ABI call-used registers.
35454         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
35455         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
35456         call0 ABI.
35457         (REG_CLASS_CONTENTS): Include all registers into the preferred
35458         reload registers set, adjust the set in the
35459         xtensa_conditional_register_usage.
35460         (xtensa_regno_to_class): Drop variable declaration.
35461         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
35462         function.
35463         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
35464         respectively.
35465         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
35466         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
35467         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
35468         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
35469         location in call0 ABI.
35470         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
35471         stack adjustment size when handling exception.
35472         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
35473         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
35474         definitions.
35475         ("return" pattern): Generate ret.n/ret in call0 ABI.
35476         ("epilogue" pattern): Expand epilogue.
35477         ("nonlocal_goto" pattern): Use default in call0 ABI.
35478         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
35479         emit eh_set_a0_* depending on ABI.
35480         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
35481         ("eh_set_a0_call0", "blockage"): New patterns.
35482
35483 2015-03-03  Martin Liska  <mliska@suse.cz>
35484
35485         PR ipa/65287
35486         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
35487
35488 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
35489
35490         PR 65138/target
35491         * config/rs6000/rs6000-tables.opt: Regenerate table.
35492
35493 2015-03-03  Renlin Li  <renlin.li@arm.com>
35494
35495         * doc/md.texi (@item ^): Change ? into ^.
35496
35497 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
35498
35499         * doc/tm.texi: Regenerated.
35500
35501 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35502
35503         * builtins.c (expand_builtin_return_addr): Add
35504         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
35505         surrounding #ifdef.
35506         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
35507         definition to 1.
35508         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
35509         Likewise.
35510         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
35511         undefined.
35512         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
35513         paragraph.
35514
35515 2015-03-03  Martin Jambor  <mjambor@suse.cz>
35516             Eric Botcazou  <ebotcazou@adacore.com>
35517
35518         * tree-sra.c (ipa_sra_check_caller_data): New type.
35519         (has_caller_p): Removed.
35520         (ipa_sra_check_caller): New function.
35521         (ipa_sra_preliminary_function_checks): Use it.
35522
35523 2015-03-03  Martin Liska  <mliska@suse.cz>
35524
35525         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
35526         instead of if branch.
35527
35528 2015-03-03  Martin Liska  <mliska@suse.cz>
35529
35530         PR ipa/65282
35531         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
35532
35533 2015-03-23  Jeff Law  <law@redhat.com>
35534
35535         PR tree-optimization/65241
35536         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
35537         hash table if INSERT is true.
35538
35539 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35540
35541         PR target/65296
35542         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
35543
35544 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35545
35546         PR target/64331
35547         * config/avr/avr.c (context.h, tree-pass.h): Include them.
35548         (avr_pass_data_recompute_notes): New static variable.
35549         (avr_pass_recompute_notes): New class.
35550         (avr_register_passes): New static function.
35551         (avr_option_override): Call it.
35552
35553 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35554
35555         Fix various problems with specs file generation.
35556
35557         PR target/65296
35558         * config.gcc (extra_gcc_objs) [avr]: Remove.
35559         * config/avr/driver-avr.c: Remove file.
35560         * config/avr/t-avr (driver-avr.o): Remove rule.
35561         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
35562         INCLUDES to build.  Depend on TM_H.
35563         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
35564         build warnings.  Fix non-matching types and non-existing %-codes.
35565         (tm.h): Include.
35566         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
35567         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
35568         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
35569         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
35570         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
35571         (LIBGCC_SPEC): Remove definitions.
35572
35573 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35574
35575         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
35576         to create a register in testing mode.
35577
35578 2015-03-03  Martin Liska  <mliska@suse.cz>
35579             Jan Hubicka  <hubicka@ucw.cz>
35580
35581         PR ipa/65263
35582         * cgraph.c (cgraph_node::has_thunk_p): New function.
35583         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
35584         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
35585         (sem_function::merge): Assert is changed.
35586
35587 2015-03-03  Martin Liska  <mliska@suse.cz>
35588             Martin Jambor  <mjambor@suse.cz>
35589
35590         PR ipa/65087
35591         * ipa-icf.c (sem_item_optimizer::execute): Change function
35592         return value to boolean.
35593         (sem_item_optimizer::merge_classes): Likewise.
35594         (ipa_icf_driver): Return TODO_remove_functions in case there's
35595         a merge operation processed.
35596         * ipa-icf.h: Change function return value to boolean.
35597
35598 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
35599
35600         PR 65138/target
35601         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
35602         processor type for 64-bit little endian PowerPC.
35603
35604         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
35605         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
35606         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
35607         printing built-in mask so it does not pass NULL pointers.
35608
35609         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
35610         -mcpu=powerpc64le.
35611
35612 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
35613
35614         PR target/58158
35615         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
35616         !ISA_HAS_FP_CONDMOVE.
35617
35618 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
35619
35620         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
35621         reload_completed.
35622
35623 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
35624
35625         * doc/invoke.texi (Options for Code Generation Conventions):
35626         Fix URL of DSO paper.
35627
35628 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35629
35630         PR ipa/65130
35631         * ipa-inline.c (check_callers): Looks for recursion.
35632         (inline_to_all_callers): Give up on uninlinable or recursive edges.
35633         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
35634         summary of inline clones.
35635         (do_estimate_growth_1): Fix recursion check.
35636
35637 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35638
35639         PR ipa/64988
35640         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
35641         comdat groups.
35642
35643 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35644             Aldy Hernandez  <aldyh@redhat.com>
35645
35646         PR lto/65276
35647         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
35648         when checking TYPE_BINFO.
35649
35650 2015-03-02  Richard Biener  <rguenther@suse.de>
35651
35652         PR ipa/65270
35653         * ipa-icf-gimple.c: Include builtins.h.
35654         (func_checker::compare_memory_operand): Compare base alignment.
35655
35656 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35657
35658         PR target/65184
35659         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
35660         passed by reference.
35661
35662 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35663
35664         PR target/65183
35665         * tree-chkp.c (chkp_check_lower): Don't check against
35666         zero bounds for already instrumented functions.
35667         (chkp_check_upper): Likewise.
35668         (chkp_fini): Clean pass local data to avoid wrong reusage.
35669
35670 2015-02-28  Martin Liska  <mliska@suse.cz>
35671             Jan Hubicka  <hubicka@ucw.cz>
35672
35673         * ipa-icf.c (sem_variable::equals): Improve debug output;
35674         get variable constructor.
35675         (sem_variable::parse): Do not filter out too early; give up on
35676         volatile and register vars.
35677         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
35678         variables.
35679         * ipa-icf.h (sem_variable::init): Do not set ctor.
35680         (sem_variable::ctor): Remove.
35681
35682 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
35683
35684         PR middle-end/65233
35685         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
35686
35687 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35688
35689         * ipa-icf.c: Include stor-layout.h
35690         (sem_function::compare_cgraph_references): Rename to ...
35691         (sem_item::compare_cgraph_references): ... this one.
35692         (sem_variable::equals_wpa): New function
35693         (sem_variable::equals): Do not check stuff already verified by
35694         equals_wpa.
35695         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
35696         * ipa-icf.h (sem_item): Add compare_cgraph_references.
35697         (sem_function): Remove compare_cgraph_references.
35698         (sem_variable): Turns equals_wpa into non-inline.
35699
35700 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35701
35702         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
35703         (sem_item::add_expr): New function.
35704         (sem_function::hash_stmt): Handle operands of most statements.
35705         (sem_variable::get_hash): Hash the actual constructor.
35706         * ipa-icf.h (sem_item): Add add_expr.
35707         (sem_function): Update prototype of hash_stmt
35708
35709 2015-02-28  Martin Liska  <mliska@suse.cz>
35710             Jan Hubicka  <hubicka@ucw.cz>
35711
35712         PR ipa/65245
35713         * ipa-icf-gimple.c (func_checker::compare_function_decl):
35714         Remove.
35715         (func_checker::compare_variable_decl): Skip symtab vars.
35716         (func_checker::compare_cst_or_decl): Update.
35717         * ipa-icf.c (sem_function::parse): Do not consider aliases.
35718         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
35719         use correct symtab predicates.
35720         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
35721         (sem_variable::parse):  Update comment.
35722         (sem_item_optimizer::build_graph): Consider ultimate aliases
35723         for references.
35724
35725 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35726
35727         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
35728         of OBJ_TYPE_REF.
35729
35730 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35731
35732         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
35733         (sem_variable::merge) Likewise.
35734
35735 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35736
35737         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
35738         target; also match flag_ipa_devirt.
35739
35740 2015-03-01  Martin Liska  <mliska@suse.cz>
35741             Jan Hubicka  <hubicka@ucw.cz>
35742
35743         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
35744         Validate variable alignment.
35745         * ipa-icf.c (sem_function::equals_private): Be more precise
35746         about non-common function attributes.
35747         (sem_variable::equals): Likewise.
35748
35749 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35750
35751         PR ipa/65237
35752         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
35753         across COMDAT group boundary.
35754
35755 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35756
35757         PR ipa/65232
35758         * ipa-icf.c (clear_decl_rtl): New function.
35759         (sem_function::merge): Clear RTL before forming alias.
35760         (sem_variable::merge): Clear RTL before forming alias.
35761
35762 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35763
35764         PR ipa/65236
35765         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
35766
35767 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
35768
35769         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
35770         to neon_to_gp<q>.
35771
35772 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35773
35774         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
35775         a typo in the description.
35776
35777 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35778
35779         PR target/64317
35780         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35781         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35782         * lra-constraints.c: Include "params.h".
35783         (EBB_PROBABILITY_CUTOFF): Use
35784         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
35785         (lra_inheritance): Use '<' instead of '<=' for
35786         EBB_PROBABILITY_CUTOFF.
35787         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
35788         Document change.
35789
35790 2015-02-27  Martin Liska  <mliska@suse.cz>
35791
35792         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
35793         vector length condition.
35794
35795 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
35796
35797         * doc/extend.texi (x86 transactional memory intrinsics):
35798         Reorganize discussion of _xbegin.  Clarify that the return
35799         value is a bit mask.  Expand example and move to end of section.
35800
35801 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35802             Aldy Hernandez  <aldyh@redhat.com>
35803
35804         PR rtl-optimization/65220
35805         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
35806
35807 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35808
35809         PR target/65032
35810         * lra-remat.c (update_scratch_ops): New.
35811         (do_remat): Call it.
35812         * lra.c (lra_register_new_scratch_op): New. Take code from ...
35813         (remove_scratches): ... here.
35814         * lra-int.h (lra_register_new_scratch_op): New prototype.
35815
35816 2015-02-27  Marek Polacek  <polacek@redhat.com>
35817
35818         PR c/65040
35819         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
35820         -Wformat-signedness anymore.
35821
35822 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35823
35824         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
35825         function.
35826         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
35827
35828 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35829
35830         * config/s390/s390.c (enum s390_builtin):
35831         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
35832         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
35833         (s390_init_builtins): Generate new builtin functions.
35834         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
35835         (s390_sfpc, s390_efpc): New pattern definitions.
35836
35837 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35838
35839         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
35840         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
35841         (s390_builtin_decls): New array.
35842         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
35843         (s390_builtin_decl): New function.
35844         (TARGET_BUILTIN_DECL): Define macro.
35845
35846 2015-02-27  Richard Biener  <rguenther@suse.de>
35847
35848         PR middle-end/63175
35849         * builtins.c (get_object_alignment_2): Make sure to re-apply
35850         the ANDed mask after recursing to its operand gets us a new
35851         misalignment bit position.
35852
35853 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
35854             Martin Liska  <mliska@suse.cz>
35855
35856         PR bootstrap/65150
35857         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
35858         Use address_matters_p.
35859         (redirect_all_callers, set_addressable): New functions.
35860         (sem_function::merge): Reorganize and fix merging issues.
35861         (sem_variable::merge): Likewise.
35862         (sem_variable::compare_sections): Remove.
35863         * common.opt (fmerge-all-constants, fmerge-constants): Remove
35864         Optimization flag.
35865         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
35866         redirect them.
35867         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
35868         decl is used.
35869         (address_matters_1): New function.
35870         (symtab_node::address_matters_p): New function.
35871         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
35872         check for merged flag.
35873         * cgraph.h (address_matters_p): Declare.
35874         (symtab_node::address_taken_from_non_vtable_p): Remove.
35875         (symtab_node::address_can_be_compared_p): New method.
35876         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
35877         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
35878         Remove.
35879         (comdat_can_be_unshared_p_1) Use address_matters_p.
35880         (update_vtable_references): Fix formating.
35881         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
35882         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
35883         * cgraphclones.c: Preserve merged and icf_merged flags.
35884
35885 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
35886
35887         * doc/extend.texi (Function Attributes): Fix spelling and typos.
35888         (Label Attributes): Likewise.
35889         (Cilk Plus Builtins): Likewise.
35890         (ARC SIMD Built-in Functions): Likewise.
35891         (ARM C Language Extensions (ACLE)): Likewise.
35892         (PowerPC Built-in Functions): Likewise.
35893         (PowerPC Hardware Transactional Memory Built-in Functions):
35894         Likewise.
35895
35896 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35897
35898         PR tree-optimization/65216
35899         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
35900         new stmt and new SSA_NAME for lhs whenever the arguments have
35901         changed and weren't just swapped.  Fix comment typo.
35902
35903         PR tree-optimization/65215
35904         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
35905         for PDP endian targets.
35906         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
35907         Fix up formatting issues.
35908         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
35909         size is smaller than the original, adjust MEM_REF offset by the
35910         difference of sizes.  Use is_gimple_mem_ref_addr instead of
35911         is_gimple_min_invariant test to avoid adding address temporaries.
35912
35913 2015-02-26  Martin Liska  <mliska@suse.cz>
35914             Jan Hubicka  <hubicka@ucw.cz>
35915
35916         PR ipa/64693
35917         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
35918         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
35919         (sem_item_optimizer::process_cong_reduction): Include division by
35920         sensitive references.
35921         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
35922         * ipa-ref.c (ipa_ref::address_matters_p): New function.
35923         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
35924
35925 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
35926
35927         PR target/65192
35928         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
35929         Remove.
35930         * config/avr/avr.c: Same.
35931         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
35932         Refuse any constant address not in 0..0xbf.
35933         * config/avr/avr.md (*mov<mode>, *movsf): Remove
35934         tiny_valid_direct_memory_access_range from insn conditions.
35935         (mov<mode>): Don't special-case expansion of avrtiny addresses.
35936
35937 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
35938
35939         PR target/61142
35940         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
35941         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
35942         * config/sh/predicates.md (const_logical_operand): New predicate.
35943         * config/sh/sh.md: Add new peephole2 patterns.
35944
35945 2015-02-26  Marek Polacek  <polacek@redhat.com>
35946
35947         PR ipa/65008
35948         * ipa-inline.c (early_inliner): Recompute inline parameters.
35949
35950 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35951
35952         PR target/65171
35953         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
35954         instructions with TImode operands are included in the analysis.
35955
35956 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35957
35958         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
35959         of an EDGE_FSM_THREAD.
35960
35961 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
35962
35963         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
35964
35965 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
35966
35967         PR debug/46102
35968         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
35969
35970 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35971
35972         PR tree-optimization/65048
35973         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
35974         (thread_through_all_blocks): Call valid_jump_thread_path.
35975         Remove invalid FSM jump-thread paths.
35976
35977 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35978
35979         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
35980         (ipa_write_optimization_summaries): Likewise.
35981         * tree-streamer.h: Include data-streamer.h.
35982         (streamer_mode_table): Declare extern variable.
35983         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
35984         * lto-streamer-out.c (lto_output_init_mode_table,
35985         lto_write_mode_table): New functions.
35986         (produce_asm_for_decls): Call lto_write_mode_table when streaming
35987         offloading LTO.
35988         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
35989         (lto_create_simple_input_block): Add mode_table argument to the
35990         lto_input_block constructors.
35991         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
35992         Likewise.
35993         * data-streamer-in.c (string_for_index): Likewise.
35994         * ipa-inline-analysis.c (inline_read_section): Likewise.
35995         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
35996         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
35997         * lto-streamer-in.c (lto_read_body_or_constructor,
35998         lto_input_toplevel_asms): Likewise.
35999         (lto_input_mode_table): New function.
36000         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
36001         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
36002         Use bp_pack_machine_mode.
36003         * real.h (struct real_format): Add name field.
36004         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
36005         (class lto_input_block): Add mode_table member.
36006         (lto_input_block::lto_input_block): Add mode_table_ argument,
36007         initialize mode_table.
36008         (struct lto_file_decl_data): Add mode_table field.
36009         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
36010         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
36011         unpack_ts_decl_common_value_fields,
36012         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
36013         * tree-streamer.c (streamer_mode_table): New variable.
36014         * real.c (ieee_single_format, mips_single_format,
36015         motorola_single_format, spu_single_format, ieee_double_format,
36016         mips_double_format, motorola_double_format,
36017         ieee_extended_motorola_format, ieee_extended_intel_96_format,
36018         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
36019         ibm_extended_format, mips_extended_format, ieee_quad_format,
36020         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
36021         decimal_single_format, decimal_double_format, decimal_quad_format,
36022         ieee_half_format, arm_half_format, real_internal_format): Add name
36023         field.
36024         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
36025
36026 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
36027
36028         PR target/65161
36029         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
36030         reordering for selective scheduling.
36031
36032 2015-02-26  Terry Guo  <terry.guo@arm.com>
36033
36034         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
36035         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
36036         (arm_arch_no_volatile_ce): Declare new global variable.
36037         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
36038         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
36039         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
36040         (TARGET_NO_VOLATILE_CE): New macro.
36041         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
36042         volatile memory access in IT block
36043
36044 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36045
36046         PR tree-optimization/61917
36047         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
36048         that reduc_def_stmt is null.
36049
36050 2015-02-25  Martin Liska  <mliska@suse.cz>
36051
36052         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
36053         hard register variables.
36054
36055 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36056
36057         PR target/64212
36058         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
36059         (symtab::noninterposable_alias): Likewise.
36060
36061 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
36062
36063         PR target/65167
36064         * config/i386/i386.c (ix86_function_arg_regno_p): Support
36065         bounds registers.
36066         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
36067
36068 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
36069
36070         PR target/64997
36071         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
36072         as split condition; force split via '#' in output pattern.
36073
36074 2015-02-25  Richard Biener  <rguenther@suse.de>
36075             Kai Tietz  <ktietz@redhat.com>
36076
36077         PR tree-optimization/61917
36078         * tree-vect-loop.c (vectorizable_reduction): Allow
36079         vect_internal_def without reduction to exit graceful.
36080
36081 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36082
36083         PR target/65196
36084         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
36085         only with NONDEBUG_INSN_P.
36086
36087 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36088
36089         Use variadic macros with avr-log.c.
36090
36091         * config/avr/avr-protos.h (avr_vdump): New prototype.
36092         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
36093         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
36094         * config/avr/avr-log.c: Adjust comments.
36095         (avr_vdump): New function.
36096         (avr_vadump): Pass caller as 2nd argument instead of format string.
36097         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
36098         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
36099
36100 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
36101
36102         PR lto/64374
36103         * target.def (target_option_stream_in): New target hook.
36104         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
36105         targetm.target_option.post_stream_in if non-NULL.
36106         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
36107         * doc/tm.texi: Updated.
36108         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
36109         function.
36110         (TARGET_OPTION_POST_STREAM_IN): Redefine.
36111
36112 2015-02-24  Jeff Law  <law@redhat.com>
36113
36114         PR target/65117
36115         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
36116         of operand 0 and operand 2.
36117         (zero_cost_loop_end, loop_end): Similarly.
36118
36119 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
36120
36121         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
36122         CXX_MEM_STAT_INFO.
36123
36124 2015-02-24  DJ Delorie  <dj@redhat.com>
36125
36126         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
36127         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
36128         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
36129         instead of hardcoding SImode.
36130
36131 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
36132
36133         * omp-low.c (create_omp_child_function): Tag entrypoint
36134         functions with a special attribute.
36135
36136 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
36137
36138         PR target/65058
36139         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
36140
36141 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
36142
36143         PR rtl-optimization/65123
36144         * lra-remat.c (operand_to_remat): Check hard regs in insn
36145         definition too.
36146
36147 2015-02-24  Nick Clifton  <nickc@redhat.com>
36148
36149         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
36150         to the assembler.
36151
36152 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
36153
36154         PR libgomp/64625
36155         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
36156         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
36157         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
36158         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
36159         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
36160         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
36161         (BUILT_IN_GOACC_PARALLEL): Specify as
36162         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
36163         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
36164         * builtin-types.def
36165         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36166         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36167         Remove function types.
36168         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
36169         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36170         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36171         New function types.
36172
36173 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
36174
36175         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
36176
36177 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
36178
36179         PR tree-optimization/65170
36180         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
36181         if val[1] < 0, clear also val[2] and return 3.
36182
36183 2015-02-24  Alan Modra  <amodra@gmail.com>
36184
36185         PR target/65172
36186         * config/rs6000/rs6000.c (get_memref_parts): Only return true
36187         when *base is a reg.  Handle nested plus addresses.  Simplify
36188         pre_modify test.
36189
36190 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
36191
36192         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
36193         use natural alignment when optimizing for size.
36194
36195 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
36196
36197         PR target/65153
36198         * config/sh/sh.md (movsicc_true+3): Remove peephole.
36199         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
36200         * config/sh/sh.c (replace_n_hard_rtx): Remove.
36201
36202 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
36203
36204         PR fortran/63427
36205         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
36206         too big for a wide_int.  Implement missing wrapping operation.
36207
36208 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
36209
36210         PR target/65163
36211         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
36212         instead of const_int 4294901760.
36213
36214 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
36215
36216         * config/avr/t-avr: Fix typo in comment.
36217
36218 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
36219
36220         * doc/rtl.texi (fma): Clarify documentation.
36221
36222 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
36223
36224         PR debug/58123
36225         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
36226         over input_location.
36227
36228 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36229
36230         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
36231         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
36232         restrict alignments to absolute_biggest_alignment.
36233         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
36234         Define.
36235         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
36236         * doc/tm.texi: Regenerate.
36237         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
36238
36239 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
36240
36241         PR target/64172
36242         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
36243
36244 2015-02-20  Richard Biener  <rguenther@suse.de>
36245
36246         PR tree-optimization/65136
36247         * tree-ssa-propagate.c: Include cfgloop.h.
36248         (replace_phi_args_in): Avoid replacing loop latch edge PHI
36249         arguments with constants.
36250
36251 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
36252             Martin Liska  <mliska@suse.cz>
36253
36254         PR target/63892
36255         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
36256         don't try to create_thunk if stdarg_p.  If
36257         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
36258         redirect_callers if possible.
36259         (sem_item_optimizer::execute): Call unregister_hooks here...
36260         (ipa_icf_driver): ... instead of here.
36261
36262 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36263
36264         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
36265         Mark operand 0 as earlyclobber in 2nd alternative.
36266         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
36267         Write negated shift amount into QI lowpart operand 0 and use it
36268         in the shift step.
36269         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
36270
36271 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36272
36273         * cgraph.h (clone_function_name_1): Declare.
36274         * cgraphclones.c (clone_function_name_1): New function.
36275         (clone_function_name): Use it.
36276         * lto-partition.c: Include "stringpool.h".
36277         (must_not_rename, maybe_rewrite_identifier)
36278         (validize_symbol_for_target): New static functions.
36279         (privatize_symbol_name): Use must_not_rename.
36280         (promote_symbol): Call validize_symbol_for_target.
36281         (lto_promote_cross_file_statics): Likewise.
36282         (lto_promote_statics_nonwpa): Likewise.
36283
36284 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
36285
36286         PR target/64452
36287         * config/avr/avr.md (pushhi_insn): New insn.
36288         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
36289
36290 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36291             Jakub Jelinek  <jakub@redhat.com>
36292
36293         * tree-streamer.c (preload_common_nodes): Don't preload
36294         TI_VA_LIST* for offloading.
36295         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
36296         in_lto_p.
36297
36298 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
36299
36300         * config/pa/pa.c (pa_emit_move_sequence): Always force
36301         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
36302         note on insn.
36303
36304         * config/pa/pa.c (pa_reloc_rw_mask): New function.
36305         (TARGET_ASM_RELOC_RW_MASK): Define.
36306         (pa_cannot_force_const_mem): Revert previous change.
36307
36308 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
36309             Jan Hubicka  <hubicka@ucw.cz>
36310
36311         PR ipa/65028
36312         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
36313         across jump functions.
36314
36315 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
36316
36317         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
36318
36319 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
36320
36321         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
36322
36323 2015-02-19  Richard Henderson  <rth@redhat.com>
36324
36325         PR middle-end/65074
36326         * varasm.c (default_binds_local_p_2): Don't test node->definition;
36327         test DECL_EXTERNAL independent of symtab_node.
36328
36329 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
36330
36331         PR lto/65012
36332         * varpool.c (varpool_node::get_constructor): Return early
36333         if this->lto_file_data is NULL.
36334
36335 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36336
36337         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
36338         (rank_for_schedule_debug): Update.
36339         (ready_sort): Make static.  Move sorting logic to ...
36340         (ready_sort_debug, ready_sort_real): New static functions.
36341         (schedule_block): Sort both debug insns and real insns in preparation
36342         for ready list trimming.  Improve debug output.
36343         * sched-int.h (ready_sort): Remove global declaration.
36344
36345 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
36346
36347         * ipa-icf.c (sem_function::equals_private): Adjust.
36348         (sem_function::bb_dict_test): Take a vec<int> * instead of
36349         auto_vec<int>.
36350         * ipa-icf.h (bb_dict_test): Likewise.
36351
36352 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36353
36354         PR gcov-profile/64634
36355         * tree-eh.c (frob_into_branch_around): Fix up typos
36356         in function comment.
36357         (lower_catch): Put eh_seq resulting from EH lowering of
36358         the cleanup sequence after the cleanup rather than before it.
36359
36360 2015-02-18  Tom de Vries  <tom@codesourcery.com>
36361
36362         * common.opt (fstdarg-opt): New option.
36363         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
36364         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
36365         (@item -fstdarg-opt): New item.
36366
36367 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
36368
36369         PR target/65064
36370         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
36371         for common symbols.
36372
36373 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36374
36375         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
36376         insn-modes.h.
36377         (ALL_HOST_OBJS): Add mkoffload.o.
36378         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
36379
36380 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
36381
36382         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
36383         (compare_virtual_tables): Be smarter about skipping typeinfos;
36384         do sane output on virtual table table mismatch.
36385         (warn_odr): Be ready for forward declarations of enums;
36386         output sane info on base mismatch and virtual table mismatch.
36387         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
36388         when only one type is polymorphic.
36389         (get_odr_type): Fix hashtable corruption.
36390         (dump_odr_type): Dump mangled names.
36391
36392 2015-02-18  Richard Biener  <rguenther@suse.de>
36393
36394         PR tree-optimization/65063
36395         * tree-predcom.c (determine_unroll_factor): Return 1 if we
36396         have replaced looparound PHIs.
36397
36398 2015-02-18  Martin Liska  <mliska@suse.cz>
36399
36400         * lto-streamer.c (lto_streamer_init): Encapsulate
36401         streamer_check_handled_ts_structures with checking macro.
36402
36403 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36404
36405         PR ipa/65087
36406         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
36407         section if !implicit_section.
36408         (cgraph_node::create_version_clone_with_body): Likewise.
36409         * trans-mem.c (ipa_tm_create_version): Likewise.
36410
36411 2015-02-18  Richard Biener  <rguenther@suse.de>
36412
36413         PR tree-optimization/62217
36414         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
36415         into BIVs.
36416
36417 2015-02-18  Marek Polacek  <polacek@redhat.com>
36418
36419         PR sanitizer/65081
36420         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
36421         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
36422         is in range [-16K, -1].  Don't issue run-time error if
36423         (ptr > ptr + offset).
36424
36425 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
36426
36427         * doc/install.texi (nvptx-*-none): New section.
36428         * doc/invoke.texi (Nvidia PTX Options): Likewise.
36429         * config/nvptx/nvptx.opt: Update.
36430
36431         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
36432         (access_check): New functions, copied from
36433         config/i386/intelmic-mkoffload.c.
36434         (main): For non-installed testing, look in all COMPILER_PATHs for
36435         GCC_INSTALL_NAME.
36436
36437         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
36438
36439 2015-02-18  Andrew Pinski  <apinski@cavium.com>
36440             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
36441
36442         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
36443         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
36444
36445 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36446
36447         * ipa-visibility.c (function_and_variable_visibility): Only
36448         check locality if node is not already local.
36449         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36450         call_for_symbol_and_aliases instead of
36451         call_for_symbol_thunks_and_aliases.
36452         (ipa_inline): Likewise.
36453         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36454         first walk aliases.
36455         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36456         call_for_symbol_and_aliases.
36457         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36458         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36459         (ipa_propagate_frequency): Update.
36460         (ipa_profile): Add opt_for_fn gueards.
36461
36462 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36463
36464         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
36465         * doc/invoke.texi (SH options): Document it.
36466         * config/sh/sh.c (sh_insn_length_adjustment): Check
36467         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
36468
36469 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
36470
36471         * common.opt (fipa-cp-alignment): New.
36472         * ipa-cp.c (ipcp_store_alignment_results): Check
36473         flag_ipa_cp_alignment.
36474         * opts.c (default_options_table): Enable -fipa-cp-alignment for
36475         -O2.
36476         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
36477         * doc/invoke.texi: Document -fipa-cp-alignment.
36478
36479 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36480
36481         PR target/64793
36482         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
36483         to nil.  Adjust comments.
36484
36485 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36486
36487         * ipa-visibility.c (function_and_variable_visibility): Only
36488         check locality if node is not already local.
36489         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36490         call_for_symbol_and_aliases instead of
36491         call_for_symbol_thunks_and_aliases.
36492         (ipa_inline): Likewise.
36493         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36494         first walk aliases.
36495         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36496         call_for_symbol_and_aliases.
36497         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36498         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36499         (ipa_propagate_frequency): Update.
36500         (ipa_profile): Add opt_for_fn guards.
36501
36502 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
36503
36504         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
36505         skipping of "strange" tokens.
36506
36507 2015-02-17  Jeff Law  <law@redhat.com>
36508
36509         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
36510         obsolete comment.
36511
36512 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
36513
36514         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
36515         as forcing a HARD_DEP between instructions, thereby
36516         disallowing rewriting to break dependencies.
36517
36518 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36519
36520         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
36521         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
36522         variables in boundary that have no inlitalizer encoded and are
36523         not aliases.
36524         * varasm.c (default_binds_local_p_2): External definitions do not
36525         count as definitions here.
36526
36527 2015-02-16  Jeff Law  <law@redhat.com>
36528
36529         PR tree-optimization/64823
36530         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
36531         statements.
36532         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36533         threading through blocks with PHIs, but no statements.
36534         (thread_through_normal_block): Distinguish between blocks where
36535         we did not process all the statements and blocks with no statements.
36536
36537 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
36538             James Greenhalgh  <james.greenhalgh@arm.com>
36539
36540         PR ipa/64963
36541         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
36542         section if not linkonce.  Fix up formatting.
36543         (cgraph_node::create_version_clone_with_body): Copy section.
36544         * trans-mem.c (ipa_tm_create_version): Likewise.
36545
36546 2015-02-16  Richard Biener  <rguenther@suse.de>
36547
36548         PR tree-optimization/65077
36549         * tree-ssa-structalias.c (get_constraint_for_1): Handle
36550         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
36551         (find_func_aliases): Allow float values to carry pointers again.
36552
36553 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
36554
36555         * doc/install.texi (Specific): Reorder targets list to put
36556         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
36557         from the top menu.
36558
36559 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
36560             David Edelsohn  <dje.gcc@gmail.com>
36561
36562         PR target/65058
36563         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
36564         mapping class to external variable or function reference.
36565         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
36566         mapping class.
36567
36568 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
36569
36570         PR target/53348
36571         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
36572         ASM_WEAKEN_DECL if defined.
36573
36574 2015-02-16  Richard Biener  <rguenther@suse.de>
36575
36576         PR lto/65015
36577         * varasm.c (default_file_start): For LTO produced units
36578         emit <artificial> as file directive.
36579
36580 2015-02-16  Richard Biener  <rguenther@suse.de>
36581
36582         PR tree-optimization/63593
36583         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
36584         stmts and releasing SSA names until...
36585         (execute_pred_commoning): ... after processing all chains.
36586
36587 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36588
36589         PR ipa/65059
36590         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
36591         external functions.
36592
36593 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
36594
36595         * doc/bugreport.texi: Adjust section titles throughout the file
36596         to use "Title Case".
36597         * doc/extend.texi: Likewise.
36598         * doc/gcov.texi: Likewise.
36599         * doc/implement-c.texi: Likewise.
36600         * doc/implement-cxx.texi: Likewise.
36601         * doc/invoke.texi: Likewise.
36602         * doc/objc.texi: Likewise.
36603         * doc/standards.texi: Likewise.
36604         * doc/trouble.texi: Likewise.
36605
36606 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
36607
36608         * cgraph.h (symtab_node::has_aliases_p): Simplify.
36609         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
36610         * tree.c (lookup_binfo_at_offset): Make static.
36611         (get_binfo_at_offset): Do not shadow offset; add explanatory
36612         comment.
36613
36614 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
36615
36616         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
36617         for all floading point loads and stores except those using a register
36618         index address.
36619         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
36620         to a register.
36621
36622 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36623
36624         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
36625         (do_estimate_growth_1): Record if any uninlinable edge was seen.
36626         (estimate_growth): Handle uninlinable edges correctly.
36627         (check_callers): New.
36628         (growth_likely_positive): Handle aliases correctly.
36629
36630 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36631
36632         * ipa-chkp.c: Use iterate_direct_aliases.
36633         * symtab.c (resolution_used_from_other_file_p): Move inline.
36634         (symtab_node::create_reference): Fix formating.
36635         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36636         (symtab_node::iterate_reference): Move inline.
36637         (symtab_node::iterate_referring): Move inline.
36638         (symtab_node::iterate_direct_aliases): Move inline.
36639         (symtab_node::used_from_object_file_p_worker): Inline into ...
36640         (symtab_node::used_from_object_file_p): ... this one; move inline.
36641         (symtab_node::call_for_symbol_and_aliases): Move inline;
36642         use iterate_direct_aliases.
36643         (symtab_node::call_for_symbol_and_aliases_1): New method.
36644         (cgraph_node::call_for_symbol_and_aliases): Move inline;
36645         use iterate_direct_aliases.
36646         (cgraph_node::call_for_symbol_and_aliases_1): New method.
36647         (varpool_node::call_for_node_and_aliases): Rename to ...
36648         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
36649         use iterate_direct_aliases.
36650         (varpool_node::call_for_symbol_and_aliases_1): New method.
36651         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
36652         (ipa_discover_readonly_nonaddressable_var): Update.
36653         * ipa-devirt.c: Fix formating.
36654         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
36655         Move inline.
36656         (cgraph_node::call_for_symbol_and_aliases): Move inline.
36657         (cgraph_node::call_for_symbol_and_aliases_1): New function..
36658         * cgraph.h (used_from_object_file_p_worker): Remove.
36659         (resolution_used_from_other_file_p): Move inline.
36660         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36661         (symtab_node::iterate_reference): Move inline.
36662         (symtab_node::iterate_referring): Move inline.
36663         (symtab_node::iterate_direct_aliases): Move inline.
36664         (symtab_node::used_from_object_file_p_worker): Inline into ...
36665         (symtab_node::used_from_object_file_p): Move inline.
36666         * tree-emutls.c (ipa_lower_emutls): Update.
36667         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
36668         (varpool_node::call_for_node_and_aliases): Remove.
36669
36670 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
36671
36672         PR tree-optimization/62209
36673         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
36674         op == range->exp, insert seq and gimplified code after labels
36675         instead of after the phi.
36676
36677 2015-02-13  Jeff Law  <law@redhat.com>
36678
36679         PR bootstrap/65060
36680         Revert my change for tree-optimization/64823.
36681
36682 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36683
36684         PR tree-optimization/65053
36685         * tree-ssa-phiopt.c (value_replacement): When moving assign before
36686         cond, either reset VR on lhs or set it to phi result VR.
36687
36688 2015-02-13  Jeff Law  <law@redhat.com>
36689
36690         PR tree-optimization/64823
36691         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
36692         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36693         threading through blocks with PHIs, but no statements.
36694         (thread_through_normal_block): Distinguish between blocks where
36695         we did not process all the statements and blocks with no statements.
36696
36697         PR rtl-optimization/47477
36698         * match.pd (convert (plus/minus (convert @0) (convert @1): New
36699         simplifier to narrow arithmetic.
36700
36701 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
36702
36703         PR ipa/65028
36704         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
36705         polymorphic call info when type is not known to be preserved.
36706
36707 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
36708
36709         PR ipa/65028
36710         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
36711         (inline_call): Use it.
36712
36713 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
36714
36715         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
36716         GOMP_DEVICE_NVIDIA_PTX.
36717
36718 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36719
36720         PR ipa/65034
36721         * stmt.c (emit_case_nodes): Use void_type_node instead of
36722         NULL_TREE as LABEL_DECL type.
36723
36724 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
36725
36726         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
36727         constraints.
36728         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
36729         symbolic references to data to be forced to constant memory on the
36730         SOM target.
36731
36732 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
36733
36734         PR tree-optimization/65002
36735         * tree-cfg.c (pass_data_fixup_cfg): Don't update
36736         SSA on start.
36737         * tree-sra.c (some_callers_have_no_vuse_p): New.
36738         (ipa_early_sra): Reject functions whose callers
36739         assume function is read only.
36740
36741 2015-02-13  Richard Biener  <rguenther@suse.de>
36742
36743         PR lto/65015
36744         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
36745         for LTO produced CUs.
36746
36747 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
36748
36749         PR tree-optimization/64705
36750         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
36751         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
36752         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
36753         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
36754         expand_simple_operations.
36755
36756 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
36757             Richard Henderson  <rth@redhat.com>
36758
36759         PR rtl/32219
36760         * cgraphunit.c (cgraph_node::finalize_function): Set definition
36761         before notice_global_symbol.
36762         (varpool_node::finalize_decl): Likewise.
36763         * varasm.c (default_binds_local_p_2): Rename from
36764         default_binds_local_p_1, add weak_dominate argument.  Use direct
36765         returns instead of assigning to local variable.  Unify varpool and
36766         cgraph paths via symtab_node.  Reject undef weak variables before
36767         testing visibility.  Reorder tests for simplicity.
36768         (default_binds_local_p): Use default_binds_local_p_2.
36769         (default_binds_local_p_1): Likewise.
36770         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
36771         via symtab_node.
36772         (default_elf_asm_output_external): Emit visibility when specified.
36773
36774 2015-02-13  Alan Modra  <amodra@gmail.com>
36775
36776         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
36777         code setting up r11 for out-of-line fp restore.
36778
36779 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
36780
36781         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
36782         (muser-mode): Likewise.
36783
36784 2015-02-13  Alan Modra  <amodra@gmail.com>
36785
36786         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
36787         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
36788
36789 2015-02-12  David Howells  <dhowells@redhat.com>
36790
36791         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
36792         warning.
36793         * tree-ssa-uninit.c (dump_predicates): Likewise.
36794         * opts.c (print_filtered_help): Likewise.
36795
36796 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36797
36798         * dwarf2out.c (output_die): Use "%s", name instead of name to
36799         avoid -Wformat-security warning.
36800
36801         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
36802         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36803         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
36804         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36805
36806 2015-02-12  Jason Merrill  <jason@redhat.com>
36807
36808         * common.opt (-flifetime-dse): New.
36809
36810 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36811
36812         PR sanitizer/65019
36813         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
36814
36815         PR tree-optimization/65014
36816         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
36817         use original second operand of arg0 or arg1 instead of
36818         that adjusted by STRIP_NOPS.
36819
36820 2015-02-11  Jeff Law  <law@redhat.com>
36821
36822         PR target/63347
36823         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
36824         that needs to be queued, just queue it for a single cycle.
36825
36826 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
36827
36828         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
36829         bodies of thunks; comment on why.
36830         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
36831         symbols are extern.
36832
36833 2015-02-11  Richard Henderson  <rth@redhat.com>
36834
36835         PR sanitize/65000
36836         * tree-eh.c (mark_reachable_handlers): Mark source and destination
36837         regions of __builtin_eh_copy_values.
36838
36839 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36840
36841         PR middle-end/65003
36842         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
36843         ultimate alias is MEM with SYMBOL_REF satisfying
36844         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
36845         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
36846
36847 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
36848
36849         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
36850         "diagnostic-core.h".
36851         (main): Initialize progname, and call diagnostic_initialize.
36852
36853         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
36854         instead of __OPENMP_TARGET__.
36855
36856         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
36857         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
36858         hard-coding PTX_ID.
36859
36860 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
36861
36862         * doc/sourcebuild.texi (pie_enabled): Document.
36863
36864 2015-02-11  Martin Liska  <mliska@suse.cz>
36865
36866         PR ipa/64813
36867         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
36868         a return value for call to a function that is noreturn.
36869
36870 2015-02-11  Richard Biener  <rguenther@suse.de>
36871
36872         PR lto/65015
36873         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
36874         and -fresolution.
36875
36876 2015-02-11  Andrew Pinski  <apinski@cavium.com>
36877
36878         PR target/64893
36879         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
36880         Change the first argument type to size_type_node and add another
36881         size_type_node.
36882         (aarch64_simd_expand_builtin): Handle the new argument to
36883         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
36884         print an out when the first two arguments are not
36885         nonzero integer constants.
36886         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
36887         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
36888
36889 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36890
36891         PR target/61925
36892         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
36893         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
36894         (ix86_set_current_function): Rewritten.
36895         (ix86_add_new_builtins): Temporarily clear current_target_pragma
36896         when creating builtin fndecls.
36897
36898 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36899
36900         PR ipa/65005
36901         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
36902         function.
36903         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
36904         have no comdat group.
36905         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
36906         (lto_output_varpool_node): Always output alias info.
36907         (output_refs): Output refs of boundary aliases, too.
36908         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
36909         (output_symtab): Output call eges in thunks in boundary.
36910         (get_alias_symbol): Remove.
36911         (input_node, input_varpool_node): Do not special case weakrefs.
36912         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
36913         alias and thunks targets in the boundary; do not take removed symbols
36914         from their comdat groups.
36915         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
36916         (cgraph_node::global_info): Remove.
36917         (cgraph_node::rtl_info): Look through aliases and thunks.
36918         * cgrpah.h (global_info): Remove.
36919         (non_local_p): Remove.
36920
36921 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36922             Sandra Loosemore  <sandra@codesourcery.com>
36923
36924         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
36925         to inline asm.  List dialects in proper order.
36926
36927 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36928             Sandra Loosemore  <sandra@codesourcery.com>
36929
36930         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
36931
36932 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36933
36934         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
36935         modified) reference to Solaris.
36936
36937 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
36938
36939         * doc/extend.texi (Extended Asm): Fix typos.
36940
36941 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
36942
36943         PR sanitizer/65004
36944         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
36945
36946 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
36947
36948         PR target/64661
36949         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
36950         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
36951         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
36952         * config/sh/constraints.md (Ara, Add): New constraints.
36953         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
36954         predicates.
36955         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
36956         atomic_mem_operand_0.  Don't use force_reg on the memory address.
36957         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
36958         Sra constraint.  Convert to insn_and_split.  Add workaround for
36959         PR 64974.
36960         (atomic_compare_and_swap<mode>_hard): Copy to
36961         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
36962         Use atomic_mem_operand_0 predicate.
36963         (atomic_compare_and_swap<mode>_soft_gusa,
36964         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
36965         AraAdd constraints.
36966         (atomic_compare_and_swap<mode>_soft_tcb,
36967         atomic_compare_and_swap<mode>_soft_imask,
36968         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
36969         atomic_mem_operand_0 predicate and SraSdd constraints.
36970         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
36971         constraint.
36972         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
36973         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
36974         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
36975         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
36976         force_reg on the memory address.
36977         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
36978         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
36979         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
36980         atomic_mem_operand_1 predicate and Sra constraint.
36981         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
36982         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36983         Use atomic_mem_operand_1 predicate.
36984         (atomic_<fetchop_name><mode>_hard): Copy to
36985         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36986         Use atomic_mem_operand_1 predicate.
36987         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
36988         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36989         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
36990         insn_and_split.  Use atomic_mem_operand_1 predicate.
36991         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
36992         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
36993         Use atomic_mem_operand_1 predicate.
36994         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
36995         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36996         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
36997         in generated insn with original mem operand before emitting the insn.
36998         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
36999         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
37000         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
37001         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
37002         Use atomic_mem_operand_1 predicate and AraAdd constraints.
37003         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
37004         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
37005         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
37006         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
37007         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
37008         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
37009         atomic_not_fetch<mode>_soft_tcb,
37010         atomic_<fetchop_name>_fetch<mode>_soft_imask,
37011         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
37012         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
37013         Use atomic_mem_operand_1 predicate and SraSdd constraints.
37014
37015 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
37016
37017         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
37018         and 3 earlyclobber operands.
37019
37020 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37021
37022         * common.opt (fstack-reuse): Mark as optimization.
37023
37024 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37025
37026         PR ipa/64982
37027         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
37028
37029 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
37030
37031         PR tree-optimization/64326
37032         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
37033
37034 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
37035
37036         PR gcov-profile/61889
37037         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
37038
37039 2015-02-10  Richard Biener  <rguenther@suse.de>
37040
37041         PR tree-optimization/64995
37042         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
37043         value we use is final.
37044         (visit_reference_op_store): Always valueize op.
37045         (visit_use): Properly valueize vuses.
37046
37047 2015-02-10  Richard Biener  <rguenther@suse.de>
37048
37049         PR tree-optimization/64909
37050         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
37051         pass a scalar-stmt count estimate to the cost model.
37052         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
37053
37054 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
37055
37056         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
37057         enabled by default together with var-tracking.
37058
37059 2015-02-10  Nick Clifton  <nickc@redhat.com>
37060
37061         * config/rl78/rl78.c: Remove DIV attribute code accidentally
37062         included in previous rl78 commit.
37063
37064 2015-02-10  Richard Biener  <rguenther@suse.de>
37065
37066         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
37067         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
37068         return the bitpack.
37069
37070 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37071
37072         PR gcov-profile/61889
37073         * config.in: regenerate.
37074         * configure.in: Likewise.
37075         * configure.ac: Check for ftw.h.
37076         * gcov-tool.c: Check for ftw.h before using nftw.
37077
37078 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37079
37080         PR lto/64076
37081         * ipa-visibility.c (update_visibility_by_resolution_info): Only
37082         assert when not in lto mode.
37083
37084 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
37085
37086         * ira-color.c (setup_left_conflict_sizes_p): Simplify
37087         initialization/assignment of conflict_size.
37088
37089 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
37090
37091         PR ipa/64978
37092         * ipa-cp.c (gather_caller_stats): Skip thunks.
37093         (propagate_constants_topo): Skip aliases.
37094
37095 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
37096
37097         PR target/64761
37098         * config/sh/sh.c (sh_option_override): Don't change
37099         -freorder-blocks-and-partition to -freorder-blocks even when
37100         unwinding is enabled.
37101         (sh_can_follow_jump): Return false if the followee jump is
37102         a crossing jump when -freorder-blocks-and-partition is specified.
37103         * config/sh/sh.md (*jump_compact_crossing): New insn.
37104
37105 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
37106             Kaz Kojima  <kkojima@gcc.gnu.org>
37107
37108         PR target/64761
37109         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
37110         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
37111         (sh_can_redirect_branch): Rename to ...
37112         (sh_can_follow_jump): ... this.  Constify argument types.
37113         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
37114         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
37115         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
37116         * doc/tm.texi: Regenerate.
37117
37118 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37119
37120         PR sanitizer/64981
37121         * builtins.c (expand_builtin): Call targetm.expand_builtin
37122         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
37123
37124 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37125
37126         PR ipa/61548
37127         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
37128
37129 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37130
37131         PR ipa/63566
37132         * ipa-icf.c (set_local): New function.
37133         (sem_function::merge): Use it.
37134
37135 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37136
37137         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
37138         (add_type_duplicate): Fix comparison of BINFOs.
37139
37140 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37141
37142         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
37143         on getting VOID pointer.
37144
37145 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37146
37147         PR target/64979
37148         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
37149         va_list escapes.
37150
37151 2015-02-09  Richard Biener  <rguenther@suse.de>
37152
37153         * genmatch.c (replace_id): Copy expr_type.
37154
37155 2015-02-09  Richard Biener  <rguenther@suse.de>
37156
37157         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
37158         (streamer_write_tree_bitfields): Declare.
37159         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
37160         properly unpack padding.
37161         (unpack_value_fields): Inline ...
37162         (streamer_read_tree_bitfields): ... here.
37163         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
37164         and properly add padding bits.
37165         (streamer_pack_tree_bitfields): Fold into ...
37166         (streamer_write_tree_bitfields): ... this new function,
37167         exposing the bitpack object.
37168         * lto-streamer-out.c (lto_write_tree_1): Call
37169         streamer_write_tree_bitfields.
37170
37171 2015-02-09  Richard Biener  <rguenther@suse.de>
37172
37173         PR tree-optimization/54000
37174         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
37175         (struct ivopts_data): Add loop_loc member.
37176         (tree_ssa_iv_optimize_loop): Dump loop location.
37177         (create_new_ivs): Likewise, also dump number of IVs generated.
37178
37179 2015-02-09  Martin Liska  <mliska@suse.cz>
37180
37181         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
37182         just if not yet registered.
37183         (ipa_icf_generate_summary): Register callgraph hooks.
37184
37185 2015-02-08  Andrew Pinski  <apinski@cavium.com>
37186
37187         * config/aarch64/aarch64.c (gty_dummy): Delete.
37188
37189 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37190
37191         PR ipa/63566
37192         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
37193         (cgraph_node::local_p): Remove thunk related FIXME.
37194
37195 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37196
37197         PR ipa/63566
37198         * i386.c (ix86_function_regparm): Look through aliases to see if callee
37199         is local and optimized.
37200         (ix86_function_sseregparm): Likewise; also use target's SSE math
37201         settings; error out instead of silently generating wrong code
37202         on mismatches.
37203         (init_cumulative_args): Look through aliases.
37204
37205 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37206
37207         PR ipa/63566
37208         * ipa-split.c (execute_split_functions): Split if function has aliases.
37209
37210 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37211
37212         PR ipa/63566
37213         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
37214         aliases before trying to expand it.
37215         (cgraph_node::expand_thunk): Fix formating.
37216
37217 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
37218
37219         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
37220         (Using Assembly Language with C): Expand introduction.
37221         (Basic Asm): Copy-edit.  Add more information about uses of
37222         basic asm.
37223         (Extended Asm): Copy-edit.  Document new escape syntax and
37224         %l[label] syntax.
37225         (Global Reg Vars): Copy-edit.
37226         (Local Reg Vars): Likewise.
37227
37228 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
37229
37230         PR debug/2714
37231         PR bootstrap/64256
37232         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
37233         (DBX_CONTIN_CHAR): Define.
37234
37235 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
37236             Brian Rzycki  <b.rzycki@samsung.com>
37237
37238         PR tree-optimization/64878
37239         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
37240         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
37241         Stop recursion at loop phi nodes after having visited a loop phi node.
37242
37243 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37244
37245         * toplev.c (process_options): Change flag_ipa_ra before creating
37246         optimization_{default,current}_node.
37247
37248         PR ipa/64896
37249         * cgraphunit.c (cgraph_node::expand_thunk): If
37250         restype is not is_gimple_reg_type nor the thunk_fndecl
37251         returns aggregate_value_p, set restmp to a temporary variable
37252         instead of resdecl.
37253
37254 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
37255
37256         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
37257
37258 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37259
37260         PR target/64205
37261         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
37262         add a general secondary reload handler for SDmode, unless we have
37263         both read/write support for SDmode.
37264
37265 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37266
37267         PR middle-end/64937
37268         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
37269         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
37270         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
37271         1 before, push it to abstract_vec.
37272         (dwarf2out_abstract_function): Adjust caller.  Don't call
37273         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
37274         DECL_ABSTRACT_P flags for all abstract_vec elts.
37275
37276 2015-02-06  Renlin Li  <renlin.li@arm.com>
37277
37278         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
37279         complex gimple.
37280         * tree-ssa.c (execute_update_addresses_taken): Likewise.
37281
37282 2015-02-06  Jeff Law  <law@redhat.com>
37283
37284         PR target/64889
37285         * config/h8300/h8300.c (push): New argument "in_prologue".
37286         Pass "in_prologue" along to "F".
37287         (h8300_push_pop): Corresponding changes.
37288         (h8300_expand_prologue): Likewise.
37289         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
37290
37291 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37292
37293         PR rtl-optimization/64957
37294         PR debug/64817
37295         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
37296         IOR rather than for AND.
37297
37298 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
37299
37300         PR target/62631
37301         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
37302         of shift-add and (add + shift) operations.  Rename local variable.
37303
37304 2015-02-05  Jeff Law  <law@redhat.com>
37305
37306         PR target/17306
37307         * config/h8300/constraints.md (U): Correctly dectect
37308         "eightbit_data" memory addresses.
37309         * config/h8300/h8300.c (eightbit_constant_address_p): Also
37310         handle (const (plus (symbol_ref (x)))) where x is declared
37311         as an 8-bit data memory address.
37312         * config/h8300/h8300.md (call, call_value): Correctly detect
37313         "funcvec" functions.
37314
37315         PR target/43264
37316         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
37317         24 to 28 bits for the H8/300.
37318
37319 2015-02-06  Alan Modra  <amodra@gmail.com>
37320
37321         PR target/64876
37322         * config/rs6000/rs6000.c (chain_already_loaded): New function.
37323         (rs6000_call_aix): Use it.
37324
37325 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
37326
37327         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
37328         check.
37329
37330 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
37331
37332         * config/h8300/constraints.md ("U" constraint): Use strict
37333         variant of REG_OK_FOR_BASE_P after reload has started.
37334
37335 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
37336
37337         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
37338         define to zero if !TARGET_NEON.
37339         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
37340
37341 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37342             Trevor Saunders  <tsaunders@mozilla.com>
37343
37344         PR ipa/61548
37345         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
37346
37347 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37348
37349         PR ipa/61548
37350         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
37351         when removing varpool nodes.
37352
37353 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37354
37355         PR ipa/61548
37356         * varpool.c (varpool_node::remove): Fix order of variables.
37357
37358 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37359
37360         PR ipa/64686
37361         * ipa-inline.c (inline_small_functions): Fix ordering issue between
37362         speculation resolution and key updates.
37363
37364 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37365
37366         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
37367         about not letting any speculative edges unupdated.
37368
37369 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37370
37371         PR gcov/64123
37372         * gcov-io.c (gcov_var): Export.
37373
37374 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37375
37376         PR middle-end/64922
37377         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
37378         edges that become speculative.
37379
37380 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37381
37382         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
37383         or DW_LANG_Fortran08.
37384         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
37385         DW_LANG_Fortran08.
37386         (gen_compile_unit_die): Handle "GNU Fortran2003" and
37387         "GNU Fortran2008" language strings.
37388         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
37389         * langhooks.h (lang_GNU_Fortran): New prototype.
37390         * langhooks.c (lang_GNU_Fortran): New function.
37391         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
37392         lang_GNU_Fortran.
37393
37394 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37395
37396         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
37397         (RTX_OK_FOR_OLO10_P): Likewise.
37398
37399 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37400
37401         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
37402
37403 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37404
37405         PR middle-end/64922
37406         * gimple.c: Include gimple-ssa.h.
37407         (maybe_remove_unused_call_args): New function.
37408         * gimple.h (maybe_remove_unused_call_args): Declare.
37409         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
37410         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
37411         * gimple-fold.c (gimple_fold_call): Likewise.
37412
37413 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
37414
37415         PR rtl-optimization/64905
37416         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
37417         pointer alignment if it isn't needed.
37418
37419 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37420
37421         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
37422         cortex-a72.cortex-a53.
37423         * config/aarch64/aarch64-tune.md: Regenerate.
37424         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
37425
37426 2015-02-04  Nick Clifton  <nickc@redhat.com>
37427
37428         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
37429         inside a MEM.
37430
37431 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37432
37433         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
37434         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
37435         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
37436         of DEF_BUILTIN.
37437         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
37438         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
37439         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
37440         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
37441         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
37442         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
37443         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
37444         * tree-core.h (enum built_in_function): In between
37445         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
37446         for builtins that use DEF_BUILTIN_CHKP macro.
37447
37448 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
37449
37450         PR debug/64817
37451         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
37452         operands for tcc_comparison exprs.  Fix typos.
37453
37454         PR debug/64817
37455         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
37456         of two XORs that have an intervening AND or IOR.
37457
37458         PR debug/64817
37459         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
37460         simplification of XOR of AND to not allocate new rtx before
37461         committing to a simplification.
37462
37463 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37464
37465         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
37466         manual swaps in all peepholes.
37467
37468 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37469
37470         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
37471         of manual swapping implementation.
37472         (aarch64_expand_vec_perm_const_1): Likewise.
37473
37474 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
37475
37476         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
37477         (generic_addrcost_table): Remove NAMED_PARAM.
37478         (cortexa57_addrcost_table): Likewise.
37479         (xgene1_addrcost_table): Likewise.
37480         (generic_regmove_table): Likewise.
37481         (cortexa53_regmove_table): Likewise.
37482         (xgene1_regmove_table): Likewise.
37483         (generic_vector_table): Likewise.
37484         (cortexa57_vector_table): Likewise.
37485         (xgene1_vector_table): Likewise.
37486         (generic_tunings): Likewise.
37487         (cortexa53_tunings): Likewise.
37488         (cortexa57_tunings): Likewise.
37489         (xgene1_tunings): Likewise.
37490
37491 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37492
37493         * config/arm/arm-cores.def: Add cortex-a72 and
37494         cortex-a72.cortex-a53.
37495         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
37496         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
37497         * config/arm/arm-tune.md: Regenerate.
37498         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
37499         "cortex-a72.cortex-a53".
37500         * doc/invoke.texi (ARM Options/-mtune): Likewise.
37501
37502 2015-02-04  Nick Clifton  <nickc@redhat.com>
37503
37504         PR target/64408
37505         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
37506         of accepted codes.
37507         (nonimmediate_di_operand): Likewise.
37508
37509         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
37510         prefixes of known F5 using MSP430 MCUs.
37511
37512 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37513
37514         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
37515         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
37516         instead of __builtin_sqrt.
37517
37518 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
37519
37520         * varasm.c (do_assemble_alias): Follow transparent alias
37521         chain for target.
37522         (default_assemble_visibility): Follow transparent alias
37523         chain for decl name.
37524
37525 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37526
37527         PR middle-end/62103
37528         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
37529         to compute size of referenced value in the constant case.
37530
37531 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37532
37533         PR rtl-optimization/64756
37534         * cse.c (invalidate_dest): New function.
37535         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
37536         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
37537         invalidate and do not record it.
37538
37539 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
37540
37541         PR target/64660
37542         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
37543         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
37544         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
37545         atomic_nand<mode>_soft_tcb): New insns.
37546         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
37547         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
37548         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
37549         Split into atomic_not_fetchsi_hard if operands[0] is unused.
37550         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
37551         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37552         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
37553         atomic_not<mode>_hard if operands[0] is unused.
37554         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
37555         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
37556         if operands[0] is unused.
37557         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
37558         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
37559         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
37560         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37561         unused.
37562         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
37563         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37564         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
37565         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
37566         if operands[0] is unused.
37567         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
37568         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
37569         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
37570         atomic_nand_fetchsi_hard if operands[0] is unused.
37571         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
37572         atomic_nand<mode>_hard if operands[0] is unused.
37573         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
37574         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
37575         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
37576         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37577         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
37578         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
37579         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
37580         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37581         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
37582         atomic_not<mode>_hard if operands[0] is unused.
37583         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
37584         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37585         unused.
37586         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37587         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37588         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
37589         atomic_nand<mode>_hard if operands[0] is unused.
37590         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37591         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37592
37593 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
37594
37595         PR jit/64810
37596         * Makefile.in (GCC_OBJS): Add gcc-main.o.
37597         * gcc-main.c: New file, containing "main" taken from gcc.c.
37598         * gcc.c (do_self_spec): Free decoded_options.
37599         (class driver): Move declaration to gcc.h.
37600         (main): Move declaration and implementation to new file
37601         gcc-main.c.
37602         (driver_get_configure_time_options): New function.
37603         * gcc.h (class driver): Move this declaration here, from
37604         gcc.c.
37605         (driver_get_configure_time_options): New declaration.
37606
37607 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
37608
37609         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
37610         cross-module inlining.
37611         * cgraph.h (cgraph_node): Add flag merged.
37612         * ipa-icf.c (sem_function::merge): Maintain it.
37613
37614 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
37615
37616         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
37617         instead of OBJECT_P.
37618
37619 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
37620
37621         PR target/62631
37622         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
37623         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
37624         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
37625         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
37626
37627 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37628
37629         PR other/63504
37630         * combine.c (reg_n_sets_max): New variable.
37631         (can_change_dest_mode, reg_nonzero_bits_for_combine,
37632         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
37633         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
37634         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
37635         (rest_of_handle_combine): Initialize reg_n_sets_max.
37636
37637 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
37638
37639         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
37640         if some always_inline was inlined, apply changes before inlining
37641         heuristically.
37642
37643 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
37644
37645         PR jit/64810
37646         * config/arm/arm.c (arm_option_override): Set
37647         arm_selected_arch/cpu/tune to NULL on entry.
37648
37649 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
37650             Andrew Pinski  <pinskia@gcc.gnu.org>
37651             Jakub Jelinek  <jakub@gcc.gnu.org>
37652
37653         PR target/64231
37654         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
37655         integer typing for small model. Use IN_RANGE.
37656
37657 2015-02-02  Richard Biener  <rguenther@suse.de>
37658
37659         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
37660         * tree-vrp.c (vrp_valueize_1): Likewise.
37661
37662 2015-02-02  Alan Modra  <amodra@gmail.com>
37663
37664         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
37665         than mem for toc_restore.
37666         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
37667         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
37668         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
37669
37670 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
37671
37672         PR target/64047
37673         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
37674         explicit default options.
37675
37676 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
37677
37678         PR ipa/64872
37679         * ipa-utils.c (ipa_merge_profiles): Add release argument.
37680         * ipa-icf.c (sem_function::merge): Do not release body when merging.
37681         * ipa-utils.h (ipa_merge_profiles): Update prototype.
37682
37683 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
37684
37685         PR debug/64817
37686         * cfgexpand.c (deep_ter_debug_map): New variable.
37687         (avoid_deep_ter_for_debug): New function.
37688         (expand_debug_expr): If TERed SSA_NAME is in
37689         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
37690         instead of trying to expand SSA_NAME's def stmt.
37691         (expand_debug_locations): When expanding debug bind
37692         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
37693         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
37694         value.
37695         (pass_expand::execute): Call avoid_deep_ter_for_debug on
37696         all debug bind stmts.  Delete deep_ter_debug_map after
37697         expand_debug_location if non-NULL and clear it.
37698
37699 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
37700
37701         PR target/64851
37702         * config/sh/sync.md (atomic_fetch_notsi_hard,
37703         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
37704         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
37705         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
37706         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
37707         atomic_not_fetch<mode>_soft_imask): New insns.
37708
37709 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37710
37711         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
37712         (rank_for_schedule_debug): Split from ...
37713         (rank_for_schedule): ... this.
37714         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
37715         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
37716
37717 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37718
37719         * doc/md.texi (Machine Constraints): Alphabetize table by target.
37720         * doc/extend.texi (x86 Variable Attributes): Move section to
37721         correct alphabetization after renaming.
37722         (x86 Type Attributes): Likewise.
37723         (Target Builtins): Re-alphabetize menu.
37724         (x86 Built-in Functions): Move section to correct alphabetization
37725         after renaming.
37726         (x86 transactional memory intrinsics): Likewise.
37727         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
37728         and x86 Windows Options in table and menu.
37729         (x86 Options): Move section to correct alphabetization after
37730         renaming.
37731         (x86 Windows Options): Likewise.
37732
37733 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37734
37735         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
37736         preferred names of the architecture and its 32- and 64-bit
37737         variants.
37738         * doc/invoke.texi: Likewise.
37739         * doc/md.texi: Likewise.
37740
37741 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37742
37743         PR target/64882
37744         * config/i386/predicates.md (address_no_seg_operand): Reject
37745         non-CONST_INT_P operands in invalid mode.
37746
37747 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37748
37749         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
37750         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
37751         * config/i386/predicates.md (address_no_seg_operand): Call
37752         address_operand with VOIDmode.
37753         (vsib_address_operand): Ditto.
37754         (address_mpx_no_base_operand): Ditto.
37755         (address_mpx_no_index_operand): Ditto.
37756
37757 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37758
37759         PR target/64688
37760         * lra-constraints.c (original_subreg_reg_mode): New.
37761         (simplify_operand_subreg): Try to simplify subreg of const.  Use
37762         original_subreg_reg_mode for it.
37763         (swap_operands): Update original_subreg_reg_mode.
37764         (curr_insn_transform): Set up original_subreg_reg_mode.
37765
37766 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37767
37768         PR target/64617
37769         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
37770         function.
37771         (process_alt_operands): Use it.
37772         (curr_insn_transform): Check the optional reload pseudo class is
37773         ok for the mode.
37774
37775 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
37776
37777         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
37778         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
37779         prototype.
37780         * toplev.h (init_asm_output): Update comment on use of
37781         UNKNOWN_LOCATION with fatal_error.
37782         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
37783         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
37784         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
37785         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
37786         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
37787         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
37788         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
37789         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
37790         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
37791         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
37792         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
37793         fatal_error changed to pass input_location as first argument.
37794
37795 2015-01-30  Martin Liska  <mliska@suse.cz>
37796
37797         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
37798         in #pragma GCC diagnostic guards.
37799
37800 2015-01-30  Richard Biener  <rguenther@suse.de>
37801
37802         PR tree-optimization/64829
37803         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
37804         not add a widening conversion pattern but hand off extra
37805         widenings to callers.
37806         (vect_recog_widen_mult_pattern): Handle extra widening produced
37807         by vect_handle_widen_op_by_const.
37808         (vect_recog_widen_shift_pattern): Likewise.
37809         (vect_pattern_recog_1): Remove excess vertical space in dumping.
37810         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
37811         (vect_init_vector_1): Likewise.
37812         (vect_get_vec_def_for_operand): Likewise.
37813         (vect_finish_stmt_generation): Likewise.
37814         (vectorizable_load): Likewise.
37815         (vect_analyze_stmt): Likewise.
37816         (vect_is_simple_use): Likewise.
37817
37818 2015-01-29  Jeff Law  <law@redhat.com>
37819
37820         * combine.c (try_combine): Fix typo in comment.
37821
37822 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
37823
37824         PR target/64580
37825         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
37826         (rs6000_stack_info): Add assert.
37827         (rs6000_output_savres_externs): New function, split off from...
37828         (rs6000_output_function_prologue): ... here.  Do not call it for
37829         thunks.
37830
37831 2015-01-29  Jeff Law  <law@redhat.com>
37832
37833         PR target/15184
37834         * combine.c (try_combine): If I0 is a memory load and I3 a store
37835         to a related address, increase the "goodness" of doing a 4-insn
37836         combination with I0-I3.
37837         (make_field_assignment): Handle SUBREGs in the ior+and case.
37838
37839 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
37840
37841         PR tree-optimization/64746
37842         * tree-if-conv.c (mask_exists): New function.
37843         (predicate_mem_writes): Save created mask with given size for further
37844         use.
37845         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
37846         (ifcvt_repair_bool_pattern): Collect all statements that are root
37847         of bool pattern and use iterative algorithm to remove multiple uses
37848         of predicates, display number of required iterations.
37849
37850 2015-01-29  Richard Biener  <rguenther@suse.de>
37851
37852         PR tree-optimization/64853
37853         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
37854         stmt will get simulated again.
37855         * tree-ssa-ccp.c (valueize_op_1): Likewise.
37856
37857 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37858
37859         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
37860         return_in_pc.  Remove redundant assignments.
37861         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
37862         (arm_expand_epilogue): Don't compare boolean with true in if condition.
37863
37864 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
37865
37866         * config/i386/i386.c (ix86_mode_after): Make static.
37867
37868 2015-01-29  Richard Biener  <rguenther@suse.de>
37869
37870         PR tree-optimization/64844
37871         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
37872         dump cost model analysis.
37873         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
37874         Do not register adjusted load/store costs here.
37875
37876 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37877             Uros Bizjak  <ubizjak@gmail.com>
37878
37879         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
37880         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
37881         using x86_use_pseudo_pic_reg.
37882         * config/i386/i386.c (ix86_conditional_register_usage): Remove
37883         support for fixed PIC register.
37884         (ix86_use_pseudo_pic_reg): Not static any more.
37885
37886 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37887
37888         PR middle-end/64805
37889         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
37890         to avoid error in cgraph node verification.
37891
37892 2015-01-29  Marek Polacek  <polacek@redhat.com>
37893
37894         * doc/standards.texi: Reflect that the default for C is gnu11.
37895
37896 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
37897
37898         PR target/64761
37899         * reorg.c (switch_text_sections_between_p): New function.
37900         (relax_delay_slots): Call it when testing if the jump insn
37901         is removable.  Use targetm.can_follow_jump when testing if
37902         the conditional branch can follow an unconditional jump.
37903
37904 2015-01-27  Caroline Tice  <cmtice@google.com>
37905
37906         Committing VTV Cywin/Ming patch for Patrick Wollgast
37907         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
37908         if -fvtable-verify=preinit/std is used.
37909         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
37910         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
37911         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
37912         if -fvtable-verify=preinit/std is used.
37913         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
37914         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
37915         if -fvtable-verify=preinit/std is used.
37916         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
37917         * config/i386/mingw32.h (LIB_SPEC): Likewise.
37918         * varasm.c (assemble_variable): Add code to properly set the comdat
37919         section and name for the .vtable_map_vars section in case the
37920         target is PE or COFF.
37921
37922 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37923
37924         PR ipa/64801
37925         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
37926         make sane BB profile.
37927         (cgraph_node::expand_thunk): Make sane BB profile.
37928         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
37929         * cgraph.h (init_lowered_empty_function): Update prototype.
37930         * config/i386/i386.c (make_resolver_func): Update call.
37931         * predict.c (gate): Disable branch prediction pass if
37932         profile is already there.
37933
37934 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37935
37936         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
37937         * opth-gen.awk: Likewise.
37938         * common.opt: Mark flag_fp_contract_mode as Optimization.
37939
37940 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37941
37942         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
37943         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
37944
37945 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
37946
37947         PR target/64659
37948         * config/sh/predicates.md (atomic_arith_operand,
37949         atomic_logical_operand): Remove.
37950         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
37951         (atomic_arith_operand_0): New predicate.
37952         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
37953         Use atomic_arith_operand_0 for input values.
37954         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
37955         atomic_compare_and_swap<mode>_soft_gusa,
37956         atomic_compare_and_swap<mode>_soft_tcb,
37957         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
37958         arith_reg_operand instead of register_operand.
37959         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
37960         atomic_arith_operand_0 for newval input.
37961         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
37962         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
37963         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
37964         arith_reg_operand instead of register_operand.
37965         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
37966         fetchop_predicate_1, fetchop_constraint_1_llcs,
37967         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
37968         fetchop_constraint_1_imask): New code iterator attributes.
37969         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
37970         register_operand.  Use fetchop_predicate_1.
37971         (atomic_fetch_<fetchop_name>si_hard,
37972         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
37973         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
37974         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
37975         and arith_reg_operand instead of register_operand.  Use
37976         fetchop_predicate_1, fetchop_constraint_1_gusa.
37977         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
37978         and arith_reg_operand instead of register_operand.  Use
37979         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
37980         to allow R0 usage.
37981         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
37982         and arith_reg_operand instead of register_operand.  Use
37983         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
37984         to allow R0 usage.
37985         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
37986         register_operand.  Use atomic_logical_operand_1.
37987         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
37988         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
37989         arith_reg_operand instead of register_operand.
37990         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
37991         Use arith_reg_dest and arith_reg_operand instead of register_operand.
37992         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
37993         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
37994         register_operand.  Use fetchop_predicate_1.
37995         (atomic_<fetchop_name>_fetchsi_hard,
37996         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
37997         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37998         fetchop_constraint_1_llcs.
37999         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
38000         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38001         fetchop_constraint_1_gusa.
38002         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
38003         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38004         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
38005         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
38006         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38007         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
38008         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
38009         register_operand.  Use atomic_logical_operand_1.
38010         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
38011         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
38012         arith_reg_operand instead of register_operand.
38013         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
38014         arith_reg_operand instead of register_operand.  Use logical_operand
38015         and K08.  Adjust asm sequence to allow R0 usage.
38016         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
38017         arith_reg_operand instead of register_operand.  Use logical_operand
38018         and K08.
38019
38020 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38021
38022         PR other/63504
38023         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
38024         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
38025         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
38026         only get_full_len HOST_WIDE_INTs from get_val () array rather than
38027         all bits in *val_wide.
38028
38029 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
38030
38031         * varpool.c (tls_model_names): Fix names.
38032         (varpool_node::dump): Dump tls- prefix for tls models.
38033
38034 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
38035             Bernd Schmidt  <bernds@codesourcery.com>
38036             Nathan Sidwell  <nathan@codesourcery.com>
38037
38038         * config/nvptx/mkoffload.c: New file.
38039         * config/nvptx/t-nvptx: Add build rules for it.
38040         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
38041         (extra_programs): Add mkoffload.
38042         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
38043         function.
38044         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
38045
38046 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
38047
38048         PR middle-end/64809
38049         * cfgexpand.c (reorder_operands): Skip debug gimples.
38050
38051 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
38052
38053         PR tree-optimization/64277
38054         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
38055         range info when possible to refine estimation.
38056
38057 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38058
38059         PR tree-optimization/64718
38060         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
38061         be a 16bit unsigned integer when n->range is 16.
38062         (bswap_replace): Convert src to that type if necessary for all bswap
38063         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
38064         set in pass_optimize_bswap::execute ().
38065
38066 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
38067
38068         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
38069         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
38070         integer and floating point variants.
38071         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
38072
38073 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
38074
38075         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
38076         for all vector modes.
38077
38078 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38079
38080         PR bootstrap/64612
38081         * doc/sourcebuild.texi (comdat_group): Document.
38082
38083 2015-01-28  Terry Guo  <terry.guo@arm.com>
38084
38085         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
38086
38087 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
38088
38089         * toplev.c (print_version): Add param "show_global_state", and
38090         only print GGC and plugin information if it is true.
38091         (init_asm_output): Pass in "true" for the new param when calling
38092         print_version.
38093         (process_options): Likewise.
38094         (toplev::main): Likewise.
38095         * toplev.h (print_version): Add new param to decl.
38096
38097 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38098
38099         PR ipa/60871
38100         PR ipa/64139
38101         * tree.c (lookup_binfo_at_offset): New function.
38102         (get_binfo_at_offset): Use it.
38103
38104 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38105
38106         PR ipa/64282
38107         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
38108         on vtable being vtable.
38109
38110 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38111
38112         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
38113         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
38114         -mhotpatch= option.
38115         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
38116         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
38117         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
38118         Renamed.
38119         (s390_hotpatch_trampoline_halfwords_max): Renamed.
38120         (s390_hotpatch_hw_max): New name.
38121         (s390_hotpatch_trampoline_halfwords): Renamed.
38122         (s390_hotpatch_hw_before_label): New name.
38123         (get_hotpatch_attribute): Removed.
38124         (s390_hotpatch_hw_after_label): New name.
38125         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
38126         attribute.
38127         (s390_attribute_table): Ditto.
38128         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
38129         (s390_function_num_hotpatch_hw): New name.
38130         Remove special handling of inline functions and hotpatching.
38131         Return number of nops before and after the function label.
38132         (s390_can_inline_p): Removed.
38133         (s390_asm_output_function_label): Emit a configurable number of nops
38134         after the function label.
38135         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
38136         (TARGET_CAN_INLINE_P) Removed.
38137         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
38138
38139 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38140             Jiong Wang  <jiong.wang@arm.com>
38141
38142         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
38143         of scratch reg.
38144         (cb<optab><mode>1): Likewise.
38145         * config/aarch64/iterators.md (bcond): New define_code_attr.
38146
38147 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38148
38149         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
38150         memory accesses.
38151
38152 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38153
38154         * config/s390/s390.c (s390_register_move_cost): Increase costs for
38155         FPR->GPR moves.
38156
38157 2015-01-27  Richard Biener  <rguenther@suse.de>
38158
38159         * tree-vrp.c (update_value_range): Intersect the range with
38160         old recorded SSA name range information.
38161
38162 2015-01-27  Nick Clifton  <nickc@redhat.com>
38163
38164         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
38165         BC, DE and HL registers directly, not via AX.
38166         When decrementing the stack pointer by a large amount, transfer SP
38167         into AX and perform the subtraction there.
38168         (rl78_expand_epilogue): Perform the inverse of the above
38169         enhancements.
38170
38171 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38172
38173         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
38174
38175 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38176             Yury Gribov  <y.gribov@samsung.com>
38177
38178         PR ubsan/64741
38179         * ubsan.c (ubsan_source_location): Refactor code.
38180         (ubsan_type_descriptor): Update type size. Refactor code.
38181
38182 2015-01-27  Richard Biener  <rguenther@suse.de>
38183
38184         PR tree-optimization/56273
38185         PR tree-optimization/59124
38186         PR tree-optimization/64277
38187         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
38188         from the first VRP pass.
38189
38190 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38191
38192         PR ipa/64776
38193         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
38194         handle the first argument in the same loop as all the other arguments.
38195
38196         PR rtl-optimization/61058
38197         * jump.c (cleanup_barriers): Update basic block boundaries
38198         if BLOCK_FOR_INSN is non-NULL on PREV.
38199
38200 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
38201
38202         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
38203         bounds narrowing, already instrumented calls and calls to
38204         not instrumentable functions.
38205
38206 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38207
38208         PR tree-optimization/64807
38209         * wide-int.cc (wi::divmod_internal): Clear
38210         b_dividend[dividend_blocks_needed].
38211
38212 2015-01-26  DJ Delorie  <dj@redhat.com>
38213
38214         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
38215         volatile memory references.
38216
38217 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
38218
38219         PR target/49263
38220         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
38221         remove_insn.
38222         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
38223         shifts if it already fits into K08.
38224
38225 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38226
38227         PR ipa/64730
38228         * ipa-inline.c (inline_small_functions): Print "unknown" even
38229         if edge->call_stmt is non-NULL, but has builtins or unknown
38230         location.
38231
38232         PR middle-end/64421
38233         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
38234         with asterisk, skip the first character.
38235
38236 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38237
38238         PR target/64806
38239         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
38240         order change.
38241
38242 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
38243
38244         PR target/64795
38245         * config/i386/i386.md (*movdi_internal): Also check operand 0
38246         to determine TYPE_LEA operand.
38247         (*movsi_internal): Ditto.
38248
38249 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38250
38251         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
38252         OPTION_MASK_QUAD_MEMORY_ATOMIC.
38253
38254 2015-01-26  Renlin Li  <renlin.li@arm.com>
38255
38256         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
38257         the comment.
38258         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
38259         for higher part.
38260
38261 2015-01-26  Richard Biener  <rguenther@suse.de>
38262
38263         PR middle-end/64764
38264         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
38265         combining two BIT_AND_EXPR predicates.
38266
38267 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38268
38269         PR bootstrap/64754
38270         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
38271
38272 2015-01-26  Terry Guo  <terry.guo@arm.com>
38273
38274         * config/arm/arm.c (arm_file_start): Update the assignment of
38275         Tag_ABI_HardFP_use.
38276
38277 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
38278
38279         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
38280         pipeline model.
38281         config/arm/arm.md: Include the new Cortex-A57 model.
38282         (generic_sched): Don't use generic_sched when tuning for
38283         Cortex-A57.
38284
38285 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
38286             Uros Bizjak  <ubizjak@gmail.com>
38287
38288         * config/i386/i386.c (get_builtin_code_for_version): Add
38289         support for BMI and BMI2 multiversion functions.
38290
38291 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38292
38293         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
38294         (extract_bit_field): Likewise.
38295         (extract_low_bits): Likewise.
38296         (expand_mult): Likewise.
38297         (expand_mult_highpart_adjust): Likewise.
38298
38299 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
38300
38301         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
38302         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
38303         * config/i386/i386.c (processor_model): Add
38304         M_INTEL_COREI7_BROADWELL.
38305         (arch_names_table): Add "broadwell".
38306
38307 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
38308
38309         PR target/49263
38310         PR target/53987
38311         PR target/64345
38312         PR target/59533
38313         PR target/52933
38314         PR target/54236
38315         PR target/51244
38316         * config/sh/sh-protos.h
38317         (sh_extending_set_of_reg::can_use_as_unextended_reg,
38318         sh_extending_set_of_reg::use_as_unextended_reg,
38319         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
38320         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
38321         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
38322         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
38323         (sh_treg_insns): New class.
38324         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
38325         (scope_counter): New class.
38326         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
38327         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
38328         sh_extending_set_of_reg::can_use_as_unextended_reg,
38329         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
38330         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
38331         sh_split_treg_set_expr): New functions.
38332         (addsubcosts): Handle treg_set_expr.
38333         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
38334         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
38335         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
38336         (sh_insn_operands_modified_between_p): Make non-static.
38337         * config/sh/predicates.md (zero_extend_movu_operand): Allow
38338         simple_mem_operand in addition to displacement_mem_operand.
38339         (zero_extend_operand): Don't allow zero_extend_movu_operand.
38340         (treg_set_expr, treg_set_expr_not_const01,
38341         arith_reg_or_treg_set_expr): New predicates.
38342         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
38343         arith_or_int_operand instead of logical_operand.  Convert to
38344         insn_and_split.  Try to optimize constant operand in splitter.
38345         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
38346         (*tstqi_t_zero): Delete.
38347         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
38348         (tstsi_t_and_not): Delete.
38349         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
38350         Convert to insn_and_split.
38351         (unnamed split, tstsi_t_zero_extract_xor,
38352         tstsi_t_zero_extract_subreg_xor_little,
38353         tstsi_t_zero_extract_subreg_xor_big): Delete.
38354         (*tstsi_t_shift_mask): New insn_and_split.
38355         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
38356         to recombine with surrounding insns when splitting.
38357         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
38358         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
38359         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
38360         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
38361         (*cbranch_div0s: Delete.
38362         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38363         Try to recombine with surrounding insns when splitting.  Add operand
38364         order variants.
38365         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
38366         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
38367         *addc_r_r_msb, *addc_2r_msb): Delete.
38368         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
38369         order variant.
38370         (*addc_negreg_t): New insn_and_split.
38371         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38372         Try to recombine with surrounding insns when splitting.
38373         Add operand order variants.
38374         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
38375         insn_and_split patterns.
38376         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
38377         surrounding insns when splitting.
38378         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
38379         (*rotcl): Likewise.  Add zero_extract variant.
38380         (*ashrsi2_31): New insn_and_split.
38381         (*negc): Convert to insn_and_split.  Use treg_set_expr.
38382         (*zero_extend<mode>si2_disp_mem): Update comment.
38383         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
38384         condition.
38385         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
38386         with surrounding insns when splitting.
38387         (any_treg_expr_to_reg): New insn_and_split.
38388         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
38389         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
38390         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
38391         *zero_extract_2): New single bit zero extract patterns.
38392         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
38393         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
38394         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
38395         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
38396         set destination.
38397         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
38398         register_operand for set source.
38399
38400 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
38401
38402         * i386.opt (prefetch_sse): New targetsave.
38403         * i386.c (ix86_function_specific_save): Save prefetch_sse.
38404         (ix86_function_specific_restore): Restore prefetch_sse and initialize
38405         ix86_cost/ix86_tune_cost.
38406
38407 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38408
38409         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
38410         Support the JIT by using 0 as the language type.
38411
38412 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
38413
38414         PR target/64317
38415         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
38416         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
38417         (mark_regno_live, process_bb_lives): Pass new parameter value to
38418         make_hard_regno_born.
38419
38420 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38421
38422         PR rtl-optimization/63637
38423         PR rtl-optimization/60663
38424         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
38425         if elt->cost is MAX_COST for ASM_OPERANDS.
38426         (find_sets_in_insn): Fix up comment typo.
38427         (cse_insn): Don't set src_volatile for all non-volatile
38428         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
38429         or with "memory" clobber.  Set elt->cost to MAX_COST
38430         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
38431         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
38432
38433 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38434
38435         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
38436         alternative 1.
38437
38438 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38439
38440         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
38441         libgcc/config/i386/elf-lib.h.
38442
38443 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38444
38445         PR driver/64737
38446         * gcc.c (print_configuration): Don't print a blank line at the end
38447         here...
38448         (run_attempt): ... but here unstead.
38449
38450         PR middle-end/64734
38451         * omp-low.c (scan_sharing_clauses): Don't ignore
38452         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
38453         on target data/update constructs.
38454
38455 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38456
38457         PR target/50928
38458         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
38459         (DEBUG_RELOAD): Removed define.
38460         (m32c_limit_reload_class): Enable traces with if DEBUG0.
38461         (m32c_function_arg): Added a type cast.
38462         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
38463         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
38464         * config/m32c/bitops.md (andqi3_16): Likewise.
38465         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
38466         (push_a01_l): Likewise.
38467
38468 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38469
38470         PR jit/64721
38471         * main.c (main): Construct toplev instances with init_signals=true.
38472         * toplev.c (general_init): Add param "init_signals", and use it to
38473         conditionalize the calls to signal and host_hooks.extra_signals.
38474         (toplev::toplev): Add param "init_signals".
38475         (toplev::main): When invoking general_init, pass m_init_signals
38476         to control whether signal-handlers are installed.
38477         * toplev.h (toplev::toplev): Add param "init_signals".
38478         (toplev::m_init_signals): New field.
38479
38480 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38481
38482         PR jit/64722
38483         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
38484         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
38485         latter may be affected by the former (e.g. on i686).
38486
38487 2015-01-23  Martin Liska  <mliska@suse.cz>
38488
38489         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
38490         false positive during profiledbootstrap.
38491
38492 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38493
38494         PR libgomp/64672
38495         * lto-opts.c (lto_write_options): Output non-explicit conservative
38496         -fno-openacc.
38497         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
38498         (append_compiler_options): Pass -fopenacc through.
38499
38500 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38501
38502         PR libgomp/64707
38503         * lto-opts.c (lto_write_options): Output non-explicit conservative
38504         -fno-openmp.
38505         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
38506         (append_compiler_options): Pass -fopenmp through.
38507
38508 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38509
38510         PR debug/64511
38511         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
38512         GTY markup.
38513
38514         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
38515         * diagnostic.def (DK_ICE_NOBT): New kind.
38516         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
38517         like DK_ICE, but never print backtrace.
38518         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
38519         (internal_error_no_backtrace): New function.
38520         * gcc.c (execute): Use internal_error_no_backtrace instead of
38521         internal_error.
38522
38523 2015-01-22  Jeff Law  <law@redhat.com>
38524
38525         PR target/52076
38526         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
38527         improve code density for small immediate to memory case.
38528         (insv): Better handle bitfield assignments when the field is
38529         being set to all ones.
38530         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
38531         operand predicate.
38532
38533 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38534             Jakub Jelinek  <jakub@redhat.com>
38535
38536         PR middle-end/64729
38537         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
38538         for !TARGET_LIBC_PROVIDES_SSP version and
38539         -fstack-protector-{all,strong,explicit} otherwise.
38540         * config/freebsd.h (LINK_SSP_SPEC): Handle
38541         -fstack-protector-{strong,explicit}.
38542
38543 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
38544             H.J. Lu  <hongjiu.lu@intel.com>
38545
38546         PR ipa/64694
38547         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
38548         heap.
38549
38550 2015-01-22  Wei Mi  <wmi@google.com>
38551
38552         PR rtl-optimization/64557
38553         * dse.c (record_store): Call get_addr for mem_addr.
38554         (check_mem_read_rtx): Likewise.
38555
38556 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
38557
38558         * fold-const.c (const_binop): Add early return for non-tcc_binary.
38559
38560 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
38561
38562         * toplev.c (init_local_tick): Process the failure when read
38563         fails for random_seed.
38564
38565         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
38566         'pretty_name' to avoid memory overflow.
38567
38568 2015-01-22  Richard Biener  <rguenther@suse.de>
38569
38570         PR middle-end/64728
38571         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
38572         abnormal coalescing on undefined SSA names.
38573
38574 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
38575
38576         PR target/64688
38577         PR target/64477
38578         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
38579         for alternative 3.
38580         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
38581
38582 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
38583
38584         PR middle-end/63325
38585         * fold-const.c (fold_checksum_tree): Don't include value of
38586         expr->decl_with_vis.symtab_node in the checksum.
38587
38588 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38589
38590         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
38591
38592 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
38593
38594         PR driver/64690
38595         * gcc.c (insert_comments): New function.
38596         (try_generate_repro): Call it.
38597         (append_text): Removed.
38598
38599 2015-01-22  Richard Biener  <rguenther@suse.de>
38600
38601         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
38602         with IL incompatible options.  Properly honor user optimize
38603         attributes.
38604
38605 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
38606
38607         PR rtl-optimization/64682
38608         * combine.c (distribute_notes): When moving a death note for
38609         a register that is set in the new I2, make sure to put it
38610         before that new I2.
38611
38612 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
38613
38614         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
38615         not TARGET_DEFAULT.
38616
38617 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
38618
38619         PR debug/64511
38620         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
38621         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
38622         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
38623
38624         PR sanitizer/64706
38625         * doc/invoke.texi (-fsanitize=vptr): Document.
38626
38627         PR rtl-optimization/62078
38628         * dse.c: Include cfgcleanup.h.
38629         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
38630         anything call purge_all_dead_edges and cleanup_cfg at the end
38631         of the pass.
38632
38633 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
38634
38635         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
38636         edges.
38637
38638 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38639
38640         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
38641         decl attribute.
38642
38643 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38644             Tejas Belagod <Tejas.Belagod@arm.com>
38645
38646         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
38647         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
38648         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
38649         Removed.
38650
38651 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38652             Tejas Belagod <Tejas.Belagod@arm.com>
38653
38654         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
38655         (aarch64_reverse_mask): New decls.
38656         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
38657         (insn_count): New mode_attr.
38658         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
38659         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
38660         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
38661         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
38662         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
38663         (aarch64_simd_st4): New patterns.
38664         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
38665         (aarch64_reverse_mask): New functions.
38666
38667 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38668
38669         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
38670         Declare.
38671         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
38672         addressing modes for BE.
38673         (aarch64_print_operand): Add 'R' specifier.
38674         (aarch64_simd_disambiguate_copy): Delete.
38675         (aarch64_simd_emit_reg_reg_move): New function.
38676         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
38677         in define_splits for structural moves.
38678         (mov<mode>): Use less restrictive predicates.
38679         (*aarch64_mov<mode>): Simplify and only allow for LE.
38680         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
38681
38682 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38683
38684         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
38685
38686 2015-01-21  Richard Henderson  <rth@redhat.com>
38687
38688         PR target/64669
38689         * ccmp.c (used_in_cond_stmt_p): Remove.
38690         (expand_ccmp_expr): Don't use it.
38691
38692 2015-01-21  Nick Clifton  <nickc@redhat.com>
38693
38694         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
38695         PARALLELs.
38696
38697 2015-01-21  Richard Biener  <rguenther@suse.de>
38698
38699         PR middle-end/64313
38700         * tree-core.h (builtin_info, builtin_info_type): Turn from
38701         an object with two arrays into an array of an object with
38702         decl and two flags, implicit_p and declared_p.
38703         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
38704         set_builtin_decl, set_builtin_decl_implicit_p,
38705         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
38706         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
38707         * builtins.c (builtin_info): Adjust.
38708         * gimplify.c (gimplify_addr_expr): References to builtins
38709         that have been declared by the user makes them eligible for
38710         use by the compiler.  Call set_builtin_decl_implicit_p on them.
38711
38712 2015-01-20  Jeff Law  <law@redhat.com>
38713
38714         PR target/59946
38715         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
38716         allow pc-relative addresses in operand predicates or constraints.
38717
38718 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
38719
38720         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
38721         neon on aarch32 processors for stringops.
38722
38723 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38724
38725         PR ipa/63576
38726         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
38727
38728 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38729
38730         PR lto/45375
38731         * ipa-inline.c: Include lto-streamer.h
38732         (report_inline_failed_reason): Output source file differences and
38733         flags on optimization/target node mismatch.
38734         (can_inline_edge_p): Consider caller to be the outer inline function;
38735         be less restrictive about matching opimize and optimize_size attributes.
38736         (inline_account_function_p): Break out from ...
38737         (inline_small_functions): ... here.
38738         * ipa-inline-transform.c (clone_inlined_nodes): Use
38739         inline_account_function_p.
38740         (inline_call): Use optimize attribution; use inline_account_function_p.
38741         (inline_transform): Use opt_for_fn.
38742         * ipa-inline.h (inline_account_function_p): Declare.
38743
38744 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
38745
38746         PR debug/64663
38747         * dwarf2out.c (decl_piece_node): Don't put bitsize into
38748         mode if bitsize <= 0.
38749         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
38750         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
38751         sizes and positions.
38752
38753 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
38754
38755         * config/nios2/nios2.c (nios2_asm_file_end): Implement
38756         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
38757         needed.
38758         (TARGET_ASM_FILE_END): Define.
38759
38760 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38761
38762         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
38763         (struct tune_params): Use the enum.
38764         * arm.c (arm_*_tune): Update.
38765         (arm_option_override): Update.
38766
38767 2015-01-20  Richard Biener  <rguenther@suse.de>
38768
38769         PR ipa/64684
38770         * ipa-reference.c (add_static_var): Inline ...
38771         (analyze_function): ... here after splitting out from ...
38772         (is_proper_for_analysis): ... this.
38773
38774 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
38775
38776         PR target/64149
38777         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
38778         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
38779         replace the conditional with it's true branch.
38780         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
38781         (arm_lra_p): Remove.
38782
38783 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
38784
38785         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
38786
38787 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38788
38789         * config/tilegx/mul-tables.c: Move symtab.h include after
38790         coretypes.h include.
38791         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
38792         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
38793         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
38794         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
38795         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38796
38797 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
38798
38799         PR bootstrap/64676
38800         Revert:
38801         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38802
38803         PR rtl-optimization/64081
38804         * loop-iv.c (def_pred_latch_p): New function.
38805         (latch_dominating_def): Allow specific cases with non-single
38806         definitions.
38807         (iv_get_reaching_def): Likewise.
38808         (check_complex_exit_p): New function.
38809         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38810         with exits not executing on any iteration.
38811
38812 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38813
38814         PR lto/45375
38815         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
38816         to set branch cost.
38817
38818 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38819
38820         PR lto/45375
38821         * i386.c (gate): Check flag_expensive_optimizations and
38822         optimize_size.
38823         (ix86_option_override_internal): Drop optimize_size condition
38824         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
38825         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
38826         MASK_PREFER_AVX128.
38827         (ix86_avx256_split_vector_move_misalign,
38828         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
38829         * sse.md (all uses of TARGET_PREFER_AVX128): Add
38830         optimize_insn_for_speed_p check.
38831
38832 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38833
38834         * config/mips/mips.h (FP_ASM_SPEC): New define.
38835         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
38836         instead.
38837
38838 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
38839
38840         PR target/53988
38841         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
38842         nullptr for insn when reaching the first insn.
38843         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
38844         (sh_insn_operands_modified_between_p): Add nullptr check.
38845         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
38846         sign extending mem load if the insn contains any UNSPEC or
38847         UNSPEC_VOLATILE.
38848
38849 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38850
38851         * params.def (inline-unit-growth): Drop to 15%.
38852         * invoke.texi (inline-unit-growth): Document change.
38853
38854 2015-01-19  Martin Liska  <mliska@suse.cz>
38855
38856         PR ipa/64668
38857         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
38858         function for second argument of OBJ_TYPE_REF.
38859
38860 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38861
38862         PR ipa/64218
38863         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
38864         whether function is an alias.
38865
38866 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38867
38868         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
38869         cases.
38870
38871 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
38872
38873         PR rtl-optimization/64671
38874         * lra-remat.c (operand_to_remat): Don't consider jump and call
38875         insns.
38876
38877 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
38878
38879         PR target/59828
38880         * config/rs6000/default64.h: Include rs6000-cpus.def.
38881         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
38882         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
38883         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
38884         and POWER8.
38885         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
38886         POWER8.
38887         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
38888         pseudo-op to specify assembler dialect.
38889
38890 2015-01-19  Martin Liska  <mliska@suse.cz>
38891
38892         PR ipa/64664
38893         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
38894         Handle safe potentially removed nodes during filtering.
38895
38896 2015-01-19  Martin Liska  <mliska@suse.cz>
38897
38898         * doc/extend.texi (no_icf): Add new attribute description.
38899         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
38900         where the pass attempts to merge a function with no_icf attribute.
38901
38902 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38903
38904         PR target/64532
38905         * doc/md.texi (ARM Options): Document register constraints.
38906
38907 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
38908             Andrew Pinski  <apinski@cavium.com>
38909
38910         PR target/64304
38911         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
38912         (ashl<mode>3): Don't expand if operands[2] is not constant.
38913
38914 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38915
38916         PR target/64448
38917         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
38918         Match xor-and-xor RTL pattern.
38919
38920 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38921
38922         PR rtl-optimization/64081
38923         * loop-iv.c (def_pred_latch_p): New function.
38924         (latch_dominating_def): Allow specific cases with non-single
38925         definitions.
38926         (iv_get_reaching_def): Likewise.
38927         (check_complex_exit_p): New function.
38928         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38929         with exits not executing on any iteration.
38930
38931 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
38932
38933         * common.opt (fgraphite): Fix a typo.
38934
38935 2015-01-19  Felix Yang  <felix.yang@huawei.com>
38936
38937         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
38938         pattern.
38939         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
38940         uminp, smax_nanp, smin_nanp): New builtins.
38941         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
38942         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
38943         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
38944         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
38945         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
38946         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
38947         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
38948         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
38949         vpminnms_f32): Rewrite using builtin functions.
38950
38951 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
38952
38953         PR libgomp/64625
38954         * omp-low.c (offload_symbol_decl): Remove variable.
38955         (get_offload_symbol_decl): Remove function.
38956         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
38957         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
38958         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
38959         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
38960         BUILT_IN_GOACC_UPDATE don't pass it at all.
38961
38962 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38963
38964         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
38965         callers.
38966
38967 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38968
38969         * ipa-chkp.c (chkp_produce_thunks): Add early param
38970         to split thunks production into two passes.  Keep
38971         'always_inline' function bodies after the first pass.
38972         (pass_data_ipa_chkp_early_produce_thunks): New.
38973         (pass_ipa_chkp_early_produce_thunks): New.
38974         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
38975         chkp_produce_thunks signature.
38976         (make_pass_ipa_chkp_early_produce_thunks): New.
38977         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
38978         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
38979         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
38980
38981 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38982
38983         * cgraph.c (cgraph_node::dump): Dump profile flags.
38984
38985 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
38986
38987         PR target/64652
38988         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
38989         reg appear first in the parallel.
38990
38991 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38992
38993         * ipa-reference.c (set_reference_optimization_summary,
38994         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
38995         disabled.
38996         (ignore_module_statics): New static var.
38997         (propagate_bits): If ipa-reference is disabled, do not look into local
38998         properties.
38999         (analyze_function): Disable analysis when ipa_reference is disabled.
39000         (generate_summary): Do not dump when reference is disabled;
39001         collect vars accessed from functions with ipa-reference disabled.
39002         (get_read_write_all_from_node): When ipa-reference is disabled, use the
39003         node flags.
39004         (gate): Enable for LTO.
39005         (ignore_edge_p): New function.
39006         (propagate): Skip functions w/o ipa-reference analysis.
39007         * optc-save-gen.awk: Handle optimize_debug correctly.
39008         * opth-gen.awk: Likewise.
39009         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
39010         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
39011         fira-share-save-slots, fira-share-spill-slots,
39012         fmodulo-sched-allow-regmoves, fpartial-inlining,
39013         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
39014         ftracer, ftree-parallelize-loops, fassociative-math,
39015         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
39016         Optimization
39017         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
39018         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
39019         Optimization.
39020         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
39021         Fix for IPA.
39022
39023 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39024
39025         PR ipa/64378
39026         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
39027         flag correctly.
39028         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
39029
39030 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
39031
39032         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
39033         Remove duplicate option listings.
39034
39035 2015-01-18  Felix Yang  <felix.yang@huawei.com>
39036
39037         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
39038         (autofdo_source_profile::get_callsite_total_count,
39039         function_instance::get_function_instance_by_decl,
39040         string_table::get_index, string_table::get_index_by_decl,
39041         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
39042         Fix comment typos. Reformatting and minor code rearrangement.
39043
39044 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39045
39046         * config/rs6000/rs6000.md (probe_stack): Delete.
39047         (probe_stack_address): New.
39048
39049 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39050
39051         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
39052         to test for 32-bit ABIs, not !TARGET_POWERPC64.
39053
39054 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39055
39056         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
39057         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
39058         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
39059         snafu.
39060         (rs6000_libcall_value): Use the new function.
39061
39062 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
39063
39064         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
39065
39066 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39067
39068         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
39069         implement a more precise life analysis for it during backward scan.
39070
39071 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
39072
39073         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
39074
39075 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
39076
39077         PR rtl-optimization/52773
39078         * calls.c (emit_library_call_value): When pushing arguments use
39079         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
39080         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
39081         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
39082
39083 2015-01-17  Jeff Law  <law@redhat.com>
39084
39085         PR rtl-optimization/32790
39086         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
39087         not ZERO_EXTEND in SET_DESTs.
39088
39089 2015-01-17  Alan Modra  <amodra@gmail.com>
39090
39091         * cprop.c (do_local_cprop): Revert last change.
39092
39093 2015-01-16  DJ Delorie  <dj@redhat.com>
39094             Nick Clifton  <nickc@redhat.com>
39095
39096         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
39097         (addhi3_real): Likewise.  Fix [HL+0] syntax.
39098         (subqi3_real): Likewise.
39099         (subhi3_real): Likewise.
39100         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
39101         (cbranchhi4_real): Likewise.
39102         (cbranchhi4_real_inverted): Likewise.
39103         (cbranchsi4_real_lt): Likewise.
39104         (cbranchsi4_real_ge): Likewise.
39105         (cbranchsi4_real_ge): Likewise.
39106         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
39107         (sub<mode>3_virt): Likewise.
39108         (cbranchqi4_virt): Likewise.
39109         (cbranchhi4_virt): Likewise.
39110         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
39111         always use '[reg+imm]' even when imm is zero.
39112         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
39113         (rl78_general_operand): New.
39114         (rl78_nonimmediate_operand): New.
39115         (rl78_nonfar_operand): Use them.
39116         (rl78_nonfar_nonimm_operand): Likewise.
39117         (rl78_stack_based_mem): Fix.
39118         * config/rl78/constraints.md (Ibqi): New.
39119         (IBqi): New.
39120         (Wsa): New.
39121         (Wsf): New.
39122         (Cs1): Fix.
39123         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
39124         (iorqi3): Likewise.
39125         (xorqi3): Likewise.
39126         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
39127
39128         * config/rl78/constrains (Qs8): New constraint.
39129         * config/rl78/rl78.c (rl78_flags_already_set): New function.
39130         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
39131         * config/rl78/rl78-real.md (update_Z): New attribute.
39132         Update patterns to set it.
39133         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
39134         shorter compare and branch sequence can be used.
39135         (cbranchhi4_real): Likewise.
39136         (cbranchhi4_real_inverted): Likewise.
39137
39138         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
39139         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
39140         address space.
39141         * config/rl78/rl78.c (rl78_get_name_encoding): New.
39142         (rl78_option_override): Allow -mes0 only if C.
39143         (characterize_address): Support subregs of symbol_refs.
39144         (rl78_addr_space_address_mode): Move.  Add __near.
39145         (rl78_far_p): Likewise.
39146         (rl78_addr_space_pointer_mode): Likewise.
39147         (rl78_as_legitimate_address): Likewise.
39148         (rl78_addr_space_subset_p): Likewise.
39149         (rl78_addr_space_convert): Likewise.
39150         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
39151         symbols with -mes0.
39152         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
39153         addressing.
39154         (rl78_alloc_physical_registers_op1): Change logic to prefer
39155         symbol[BC] addressing.
39156         (frodata_section): New.
39157         (rl78_asm_init_sections): Initialize it.
39158         (rl78_select_section): Put __far readonly symbols in .frodata.
39159         (rl78_make_type_far): New.
39160         (rl78_insert_attributes): Force all readonly symbols to be
39161         __far when -mes0.
39162         (rl78_asm_out_integer): New.
39163         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
39164         * config/rl78/rl78.opt (-mes0): New.
39165
39166         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
39167         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
39168         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
39169         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
39170         (rl78_saddr_p): New.
39171         (rl78_output_aligned_common): New.
39172         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
39173         (rl78_handle_saddr_attribute): New.
39174         (rl78_handle_naked_attribute): New.
39175         (rl78_attribute_table): Add saddr.
39176         (rl78_print_operand_1): Don't print '!' on saddr operands.
39177         (rl78_print_operand_1): Strip encodings.
39178         (rl78_sfr_p): New.
39179         (rl78_strip_name_encoding): New.
39180         (rl78_attrlist_to_encoding): New.
39181         (rl78_encode_section_info): New.
39182         (rl78_asm_init_sections): New.
39183         (rl78_select_section): New.
39184         (rl78_output_labelref): New.
39185         (rl78_output_aligned_common): New.
39186         (rl78_asm_out_integer): New.
39187         (rl78_asm_ctor_dtor): New.
39188         (rl78_asm_constructor): New.
39189         (rl78_asm_destructor): New.
39190
39191         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
39192         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
39193         (transcode_memory_rtx): Update.
39194         (rl78_expand_epilogue): Use A_REG instead of 0.
39195
39196 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39197
39198         * config/arm/arm-protos.h (struct tune_params): New field
39199         sched_autopref_queue_depth.
39200         * config/arm/arm.c (sched-int.h): Include header.
39201         (arm_first_cycle_multipass_dfa_lookahead_guard,)
39202         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
39203         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
39204         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
39205         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
39206         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
39207         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
39208         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
39209         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
39210         * config/arm/t-arm (arm.o): Update.
39211         * haifa-sched.c (update_insn_after_change): Update.
39212         (rank_for_schedule): Use auto-prefetcher model, if requested.
39213         (autopref_multipass_init): New static function.
39214         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
39215         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
39216         variable for debug dumps.
39217         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
39218         (autopref_multipass_dfa_lookahead_guard): New global function that
39219         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
39220         (init_h_i_d): Update.
39221         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
39222         * sched-int.h (enum autopref_multipass_data_status): New const enum.
39223         (autopref_multipass_data_): Structure for auto-prefetcher data.
39224         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
39225         (struct _haifa_insn_data:autopref_multipass_data): New field.
39226         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
39227         (autopref_multipass_dfa_lookahead_guard): Declare.
39228
39229 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39230
39231         * rtlanal.c (get_base_term): Handle SCRATCH.
39232
39233 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39234
39235         * config/aarch64/aarch64.c
39236         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
39237         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39238         * config/arm/arm.c
39239         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
39240         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39241
39242 2015-01-17  Alan Modra  <amodra@gmail.com>
39243
39244         * cprop.c (do_local_cprop): Disallow replacement of fixed
39245         hard registers.
39246
39247 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39248
39249         PR target/62066
39250         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
39251         early return 0.
39252
39253 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39254
39255         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
39256         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
39257
39258 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39259
39260         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
39261         * config/arm/thumb1.md: ... Here.
39262
39263 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39264
39265         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
39266         TImode for TARGET_32BIT.
39267
39268 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39269
39270         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
39271         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
39272         as ...
39273         (rs6000_abi_word_mode): New function.
39274
39275 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39276
39277         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
39278         instead of UNITS_PER_WORD to describe the size of stack slots.
39279
39280 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39281
39282         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
39283         as rs6000_promote_function_mode.  Move comment to there.
39284         (rs6000_promote_function_mode): New function.
39285
39286 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39287
39288         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
39289         -mpowerpc64 is active.
39290
39291 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39292
39293         PR middle-end/64353
39294         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
39295         virtuals on start.
39296
39297 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39298
39299         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
39300         introduced in revision 219724.
39301
39302 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39303             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39304
39305         PR target/64263
39306         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
39307         destination is not a GP reg.
39308         (*movdi_aarch64): Likewise.
39309
39310 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
39311
39312         PR target/64623
39313         * config/rs6000/default64.h: Revert ISA change.
39314
39315 2015-01-16  Richard Biener  <rguenther@suse.de>
39316
39317         PR middle-end/64614
39318         * tree-ssa-uninit.c: Include tree-cfg.h.
39319         (MAX_SWITCH_CASES): New define.
39320         (convert_control_dep_chain_into_preds): Handle switch statements.
39321         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
39322         (normalize_one_pred_1): Do not split bit-manipulations.
39323         Record (x & CST).
39324
39325 2015-01-16  Richard Biener  <rguenther@suse.de>
39326
39327         PR tree-optimization/64568
39328         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
39329         complex load rewriting for TARGET_MEM_REFs.
39330
39331 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
39332
39333         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
39334
39335 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
39336
39337         PR target/64149
39338         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
39339         variable.
39340         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
39341         (aarch64_lra_p): Remove.
39342
39343 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39344
39345         PR target/64363
39346         * ipa-chkp.h (chkp_instrumentable_p): New.
39347         * ipa-chkp.c: Include tree-inline.h.
39348         (chkp_instrumentable_p): New.
39349         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
39350         Fix processing of not instrumentable functions.
39351         (chkp_versioning): Use chkp_instrumentable_p. Warn about
39352         not instrumentable functions.
39353         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
39354         chkp_instrumentable_p.
39355         * tree-inline.h (copy_forbidden): New.
39356         * tree-inline.c (copy_forbidden): Not static anymore.
39357
39358 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39359
39360         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
39361         ptr1, ptr2 unused.
39362
39363 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39364
39365         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
39366         type OP_OUT to OP_INOUT.
39367
39368 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39369
39370         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
39371         (high x) y) to y if x and y have the same base.
39372
39373 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39374
39375         * config/arm/cortex-a57.md: New.
39376         * config/aarch64/aarch64.md: Include it.
39377         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
39378         * config/aarch64/aarch64-tune.md: Regenerate.
39379
39380 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
39381
39382         PR target/64015
39383         * ccmp.c (expand_ccmp_next): New function.
39384         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
39385         and compare insn sequence.
39386         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
39387         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
39388         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
39389         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
39390         (*ccmp_ior): Changed to ccmp_ior<mode>.
39391         (cmp<mode>): New pattern.
39392         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
39393         parameters.
39394         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
39395
39396 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
39397
39398         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
39399         _mm256_bsrli_epi128): New.
39400         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
39401
39402 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39403
39404         * expmed.c (store_bit_field_using_insv): Improve warning message.
39405         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
39406
39407 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39408
39409         PR rtl-optimization/64011
39410         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
39411         there is partial overflow.
39412
39413 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39414
39415         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
39416         prototype.
39417         (nds32_expand_epilogue_v3pop): Likewise.
39418         * config/nds32/nds32.md (sibcall): Define this for sibling call
39419         optimization.
39420         (sibcall_register): Likewise.
39421         (sibcall_immediate): Likewise.
39422         (sibcall_value): Likewise.
39423         (sibcall_value_register): Likewise.
39424         (sibcall_value_immediate): Likewise.
39425         (sibcall_epilogue): Likewise.
39426         (epilogue): Pass false to indicate this is not a sibcall epilogue.
39427         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
39428         (nds32_expand_epilogue_v3pop): Likewise.
39429
39430 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39431
39432         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
39433         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
39434         (return_internal): New.
39435         (return): Define this named pattern.
39436         (simple_return): Define this named pattern.
39437         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
39438         pattern instead of unspec_volatile_func_return.
39439         (nds32_expand_epilogue_v3pop): Likewise.
39440         (nds32_can_use_return_insn): New function.
39441
39442 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39443
39444         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
39445         * config/nds32/nds32.md (pop25return): New.
39446         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
39447         pop25return pattern.
39448
39449 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39450
39451         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
39452         -mforbid-fp-as-gp, and -mex9 options.
39453
39454 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39455
39456         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
39457         remove -mgp-direct option.
39458
39459 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39460
39461         * doc/invoke.texi (--param early-inlining-insns): Update default value.
39462         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
39463
39464 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39465
39466         * ipa-inline.c (inline_small_functions): Work around hints
39467         cache issue.
39468
39469 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
39470
39471         PR target/59710
39472         * doc/invoke.texi (Option Summary): Document new Nios II
39473         -mgpopt= syntax.
39474         (Nios II Options): Likewise.
39475         * config/nios2/nios2.opt: Add -mgpopt= option support.
39476         Modify existing -mgpopt and -mno-gpopt options to be aliases.
39477         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
39478         * config/nios2/nios2.c (nios2_option_override): Adjust
39479         -mgpopt defaulting.
39480         (nios2_in_small_data_p): Return true for explicit small data
39481         sections even with -G0.
39482         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
39483         option choices.
39484
39485 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39486
39487         PR ipa/64612
39488         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
39489         of comdat locals.
39490         (inline_call): Fix removal of aliases.
39491
39492 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39493
39494         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
39495         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
39496         * opts.c (common_handle_option): Add -fsanitize=vptr.
39497         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
39498         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
39499         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
39500         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
39501         (ubsan_expand_vptr_ifn): New prototype.
39502         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
39503         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
39504         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
39505         expand_LOOP_VECTORIZED): Make argument nameless, remove
39506         ATTRIBUTE_UNUSED.
39507         (expand_UBSAN_VPTR): New function.
39508         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
39509         in fn spec.
39510         (UBSAN_VPTR): New internal function.
39511         * sanopt.c (tree_map_traits): Renamed to ...
39512         (sanopt_tree_map_traits): ... this.
39513         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
39514         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
39515         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
39516         (maybe_optimize_ubsan_vptr_ifn): New function.
39517         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
39518         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
39519         -fsanitize=vptr.
39520         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
39521         internal calls like pure functions for aliasing, even when they
39522         have other side-effects that prevent making them ECF_PURE.
39523         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
39524         (ubsan_expand_vptr_ifn): New function.
39525
39526 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
39527
39528         PR rtl-optimization/64110
39529         * stmt.c (parse_output_constraint): Process '^' and '$'.
39530         (parse_input_constraint): Ditto.
39531         * lra-constraints.c (process_alt_operands): Process the new
39532         constraints.
39533         * ira-costs.c (record_reg_classes): Process the new constraint
39534         '^'.
39535         * genoutput.c (indep_constraints): Add '^' and '$'.
39536         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
39537         * doc/md.texi: Add description of the new constraints.
39538
39539 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
39540             Bernd Schmidt  <bernds@codesourcery.com>
39541             Cesar Philippidis  <cesar@codesourcery.com>
39542             James Norris  <jnorris@codesourcery.com>
39543             Tom de Vries  <tom@codesourcery.com>
39544             Ilmir Usmanov  <i.usmanov@samsung.com>
39545             Dmitry Bocharnikov  <dmitry.b@samsung.com>
39546             Evgeny Gavrin  <e.gavrin@samsung.com>
39547             Jakub Jelinek  <jakub@redhat.com>
39548
39549         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
39550         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39551         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39552         New function types.
39553         * builtins.c: Include "gomp-constants.h".
39554         (expand_builtin_acc_on_device): New function.
39555         (expand_builtin, is_inexpensive_builtin): Handle
39556         BUILT_IN_ACC_ON_DEVICE.
39557         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
39558         New macros.
39559         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
39560         flag_openmp.
39561         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
39562         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
39563         i386/intelmic-offload.h.
39564         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
39565         to libgomp and its dependencies.
39566         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
39567         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
39568         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
39569         * config/ia64/hpux.h (LIB_SPEC): Likewise.
39570         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
39571         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
39572         * doc/generic.texi: Update for OpenACC changes.
39573         * doc/gimple.texi: Likewise.
39574         * doc/invoke.texi: Likewise.
39575         * doc/sourcebuild.texi: Likewise.
39576         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
39577         GF_OMP_FOR_KIND_OACC_LOOP.
39578         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
39579         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
39580         GF_OMP_TARGET_KIND_OACC_UPDATE,
39581         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39582         Dump more data.
39583         * gimple.c: Update comments for OpenACC changes.
39584         * gimple.def: Likewise.
39585         * gimple.h: Likewise.
39586         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
39587         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39588         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
39589         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39590         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
39591         appropriate place.
39592         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
39593         * gimplify.c: Include "gomp-constants.h".
39594         Update comments for OpenACC changes.
39595         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
39596         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
39597         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39598         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
39599         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39600         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39601         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
39602         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39603         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
39604         OMP_CLAUSE_SEQ.
39605         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
39606         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39607         OMP_CLAUSE_SET_MAP_KIND.
39608         (gimplify_oacc_cache): New function.
39609         (gimplify_omp_for): Handle OACC_LOOP.
39610         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
39611         OACC_DATA.
39612         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
39613         OACC_EXIT_DATA, OACC_UPDATE.
39614         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
39615         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
39616         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
39617         (gimplify_body): Consider flag_openacc next to flag_openmp.
39618         * lto-streamer-out.c: Include "gomp-constants.h".
39619         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
39620         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
39621         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
39622         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
39623         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
39624         (BUILT_IN_ACC_ON_DEVICE): New builtins.
39625         * omp-low.c: Include "gomp-constants.h".
39626         Update comments for OpenACC changes.
39627         (struct omp_context): Add reduction_map, gwv_below, gwv_this
39628         members.
39629         (extract_omp_for_data, use_pointer_for_field, install_var_field)
39630         (new_omp_context, delete_omp_context, scan_sharing_clauses)
39631         (create_omp_child_function, scan_omp_for, scan_omp_target)
39632         (check_omp_nesting_restrictions, lower_reduction_clauses)
39633         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
39634         Update for OpenACC changes.
39635         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
39636         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
39637         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
39638         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39639         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
39640         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
39641         OMP_CLAUSE_MAP_*.
39642         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
39643         Handle GF_OMP_FOR_KIND_OACC_LOOP.
39644         (expand_omp_target, lower_omp_target): Handle
39645         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39646         GF_OMP_TARGET_KIND_OACC_UPDATE,
39647         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
39648         GF_OMP_TARGET_KIND_OACC_DATA.
39649         (pass_expand_omp::execute, execute_lower_omp)
39650         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
39651         flag_openmp.
39652         (offload_symbol_decl): New variable.
39653         (oacc_get_reduction_array_id, oacc_max_threads)
39654         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
39655         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
39656         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
39657         (oacc_gimple_assign, oacc_initialize_reduction_data)
39658         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
39659         functions.
39660         (is_targetreg_ctx): Remove function.
39661         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
39662         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
39663         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39664         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
39665         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
39666         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
39667         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
39668         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
39669         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
39670         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
39671         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
39672         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
39673         * tree-core.h: Update comments for OpenACC changes.
39674         (enum omp_clause_map_kind): Remove.
39675         (struct tree_omp_clause): Change type of map_kind member from enum
39676         omp_clause_map_kind to unsigned char.
39677         * tree-inline.c: Update comments for OpenACC changes.
39678         * tree-nested.c: Likewise.  Include "gomp-constants.h".
39679         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
39680         (convert_tramp_reference_stmt, convert_gimple_call): Update for
39681         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39682         OMP_CLAUSE_SET_MAP_KIND.
39683         * tree-pretty-print.c: Include "gomp-constants.h".
39684         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
39685         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
39686         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
39687         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
39688         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39689         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
39690         instead of OMP_CLAUSE_MAP_*.
39691         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
39692         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
39693         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39694         * tree-streamer-in.c: Include "gomp-constants.h".
39695         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
39696         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
39697         * tree-streamer-out.c: Include "gomp-constants.h".
39698         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
39699         OMP_CLAUSE_MAP_*.
39700         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
39701         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
39702         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
39703         * tree.c (omp_clause_num_ops): Update accordingly.
39704         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
39705         Likewise.
39706         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
39707         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
39708         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
39709         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
39710         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
39711         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
39712         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
39713         (OMP_CLAUSE_SET_MAP_KIND): New macro.
39714         * varpool.c (varpool_node::get_create): Consider flag_openacc next
39715         to flag_openmp.
39716         * config/i386/intelmic-offload.h: New file.
39717         * config/nvptx/offload.h: Likewise.
39718
39719 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39720
39721         * explow.h: Remove duplicate contents.
39722         * dojump.h: Likewise.
39723
39724 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
39725
39726         * arm.c (arm_xgene_tune): Add default initializer for instruction
39727         fusion.
39728
39729 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39730
39731         PR ipa/64068
39732         PR ipa/64559
39733         * ipa.c (symbol_table::remove_unreachable_nodes):
39734         Do not put abstract origins into boundary.
39735
39736 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
39737
39738         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
39739         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
39740
39741 2015-01-15  Steve Ellcey  <sellcey@mips.com>
39742
39743         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
39744         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
39745         builtins.def, and chkp-builtins.def.
39746
39747 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
39748
39749         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
39750         ISA 2.7 (POWER8).
39751
39752 2015-01-15  Richard Biener  <rguenther@suse.de>
39753
39754         PR tree-optimization/61743
39755         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
39756         information on PHIs for some simple cases.
39757
39758 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39759
39760         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
39761         Include xgene1.md.
39762         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
39763         * config/arm/arm-cores.def (xgene1): New entry.
39764         * config/arm/arm-tables.opt: Regenerate.
39765         * config/arm/arm-tune.md: Regenerate.
39766         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
39767
39768 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39769
39770         * tree-if-conv.c: Include hash-map.h.
39771         (aggressive_if_conv): New variable.
39772         (fold_build_cond_expr): Add simplification of non-zero condition.
39773         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
39774         destination block is not always executed.
39775         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
39776         than two predecessors if AGGRESSIVE_IF_CONV is true.
39777         (if_convertible_stmt_p): Fix commentary.
39778         (all_preds_critical_p): New function.
39779         (has_pred_critical_p): New function.
39780         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
39781         BB can have more than two predecessors and all incoming edges can be
39782         critical.
39783         (predicate_bbs): Skip predication for loop exit block, use build2_loc
39784         to compute predicate for true edge.
39785         (find_phi_replacement_condition): Delete this function.
39786         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
39787         Allow interchange PHI arguments if EXTENDED is false.
39788         Change check that block containing reduction statement candidate
39789         is predecessor of phi-block since phi may have more than two arguments.
39790         (phi_args_hash_traits): New helper structure.
39791         (struct phi_args_hash_traits): New type.
39792         (phi_args_hash_traits::hash): New function.
39793         (phi_args_hash_traits::equal_keys): New function.
39794         (gen_phi_arg_condition): New function.
39795         (predicate_scalar_phi): Add handling of phi nodes with more than two
39796         arguments, delete COND and TRUE_BB arguments, insert body of
39797         find_phi_replacement_condition to predicate ordinary phi nodes.
39798         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
39799         delete call of find_phi_replacement_condition and invoke
39800         predicate_scalar_phi with two arguments.
39801         (insert_gimplified_predicates): Add assert that non-predicated block
39802         don't have statements to insert.
39803         (ifcvt_split_critical_edges): New function.
39804         (ifcvt_split_def_stmt): Likewise.
39805         (ifcvt_walk_pattern_tree): Likewise.
39806         (stmt_is_root_of_bool_pattern): Likewise.
39807         (ifcvt_repair_bool_pattern): Likewise.
39808         (ifcvt_local_dce): Likewise.
39809         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
39810         is copy of inner or outer loop force_vectorize field, invoke
39811         ifcvt_split_critical_edges, ifcvt_local_dce and
39812         ifcvt_repair_bool_pattern for aggressive if-conversion.
39813
39814 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
39815
39816         * config/aarch64/aarch64.md: Include xgene1.md.
39817         * config/aarch64/xgene1.md: New file.
39818
39819 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39820
39821         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
39822         xgene1 (APM XGene-1) core definition.
39823         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
39824         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
39825         * doc/invoke.texi: Document -mcpu=xgene1.
39826
39827 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39828
39829         * dojump.h: New header file.
39830         * explow.h: Likewise.
39831         * expr.h: Remove includes.
39832         Move expmed.c prototypes to expmed.h.
39833         Move dojump.c prototypes to dojump.h.
39834         Move alias.c prototypes to alias.h.
39835         Move explow.c prototypes to explow.h.
39836         Move calls.c prototypes to calls.h.
39837         Move emit-rtl.c prototypes to emit-rtl.h.
39838         Move varasm.c prototypes to varasm.h.
39839         Move stmt.c prototypes to stmt.h.
39840         (saved_pending_stack_adjust): Move to dojump.h.
39841         (adjust_address): Move to explow.h.
39842         (adjust_address_nv): Move to emit-rtl.h.
39843         (adjust_bitfield_address): Likewise.
39844         (adjust_bitfield_address_size): Likewise.
39845         (adjust_bitfield_address_nv): Likewise.
39846         (adjust_automodify_address_nv): Likewise.
39847         * explow.c (expr_size): Move to expr.c.
39848         (int_expr_size): Likewise.
39849         (tree_expr_size): Likewise.
39850         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39851         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39852         * genemit.c (main): Generate includes statistics.h, real.h,
39853         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
39854         stmt.h.
39855         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
39856         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
39857         explow.h, emit-rtl.h, stmt.h.
39858         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
39859         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
39860         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
39861         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
39862         emit-rtl.h, varasm.h, stmt.h.
39863         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
39864         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
39865         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
39866         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
39867         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
39868         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
39869         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
39870         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
39871         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
39872         tm.h tree.h varasm.h vec.h wide-int.h.
39873         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39874         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39875         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
39876         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
39877         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
39878         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
39879         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
39880         * loop-iv.c: Likewise.
39881         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
39882         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
39883         statistics.h stmt.h tree.h varasm.h wide-int.h.
39884         * lra-constraints.c: Likewise.
39885         * lra-eliminations.c: Likewise.
39886         * lra-lives.c: Likewise.
39887         * lra-remat.c: Likewise.
39888         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39889         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
39890         statistics.h stmt.h tree.h varasm.h wide-int.h.
39891         * hw-doloop.c: Likewise.
39892         * ira-color.c: Likewise.
39893         * ira-emit.c: Likewise.
39894         * loop-doloop.c: Likewise.
39895         * loop-invariant.c: Likewise.
39896         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39897         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
39898         statistics.h stmt.h tree.h varasm.h wide-int.h.
39899         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
39900         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
39901         statistics.h stmt.h tree.h varasm.h wide-int.h.
39902         * combine-stack-adj.c: Likewise.
39903         * cse.c: Likewise.
39904         * ddg.c: Likewise.
39905         * ifcvt.c: Likewise.
39906         * ira-costs.c: Likewise.
39907         * jump.c: Likewise.
39908         * lra-coalesce.c: Likewise.
39909         * lra-spills.c: Likewise.
39910         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39911         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
39912         stmt.h varasm.h wide-int.h.
39913         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39914         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39915         varasm.h.
39916         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
39917         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
39918         statistics.h stmt.h varasm.h wide-int.h.
39919         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
39920         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
39921         varasm.h wide-int.h.
39922         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
39923         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39924         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
39925         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
39926         statistics.h stmt.h.
39927         * config/tilepro/tilepro.c: Likewise.
39928         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
39929         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
39930         * config/pdp11/pdp11.c: Likewise.
39931         * config/xtensa/xtensa.c: Likewise.
39932         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
39933         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39934         varasm.h.
39935         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39936         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39937         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
39938         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39939         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39940         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
39941         * rtl-chkp.c: Likewise.
39942         * tree-chkp-opt.c: Likewise.
39943         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
39944         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39945         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
39946         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39947         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39948         statistics.h stmt.h.
39949         * tree-vect-data-refs.c: Likewise.
39950         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
39951         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39952         rtl.h statistics.h stmt.h varasm.h.
39953         * internal-fn.c: Likewise.
39954         * ipa-icf-gimple.c: Likewise.
39955         * lto-section-out.c: Likewise.
39956         * tree-data-ref.c: Likewise.
39957         * tree-nested.c: Likewise.
39958         * tree-outof-ssa.c: Likewise.
39959         * tree-predcom.c: Likewise.
39960         * tree-pretty-print.c: Likewise.
39961         * tree-scalar-evolution.c: Likewise.
39962         * tree-ssa-strlen.c: Likewise.
39963         * tree-vect-loop.c: Likewise.
39964         * tree-vect-patterns.c: Likewise.
39965         * tree-vect-slp.c: Likewise.
39966         * tree-vect-stmts.c: Likewise.
39967         * tsan.c: Likewise.
39968         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39969         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
39970         stmt.h.
39971         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
39972         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39973         statistics.h stmt.h varasm.h.
39974         * loop-unroll.c: Likewise.
39975         * ubsan.c: Likewise.
39976         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
39977         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
39978         stmt.h varasm.h.
39979         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39980         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
39981         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
39982         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39983         statistics.h stmt.h.
39984         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
39985         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39986         statistics.h stmt.h varasm.h.
39987         * gimple-match-head.c: Likewise.
39988         * lto-cgraph.c: Likewise.
39989         * lto-section-in.c: Likewise.
39990         * lto-streamer-in.c: Likewise.
39991         * lto-streamer-out.c: Likewise.
39992         * tree-affine.c: Likewise.
39993         * tree-cfg.c: Likewise.
39994         * tree-cfgcleanup.c: Likewise.
39995         * tree-if-conv.c: Likewise.
39996         * tree-into-ssa.c: Likewise.
39997         * tree-ssa-alias.c: Likewise.
39998         * tree-ssa-copyrename.c: Likewise.
39999         * tree-ssa-dse.c: Likewise.
40000         * tree-ssa-forwprop.c: Likewise.
40001         * tree-ssa-live.c: Likewise.
40002         * tree-ssa-math-opts.c: Likewise.
40003         * tree-ssa-pre.c: Likewise.
40004         * tree-ssa-sccvn.c: Likewise.
40005         * tree-tailcall.c: Likewise.
40006         * tree-vect-generic.c: Likewise.
40007         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40008         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
40009         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40010         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
40011         * varasm.c: Likewise.
40012         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40013         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
40014         varasm.h.
40015         * init-regs.c: Likewise.
40016         * ira.c: Likewise.
40017         * omp-low.c: Likewise.
40018         * stack-ptr-mod.c: Likewise.
40019         * tree-ssa-reassoc.c: Likewise.
40020         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40021         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
40022         varasm.h.
40023         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40024         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
40025         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40026         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
40027         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40028         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
40029         * tree-ssa-phiopt.c: Likewise.
40030         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40031         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40032         * config/fr30/fr30.c: Likewise.
40033         * config/frv/frv.c: Likewise.
40034         * expr.c: Likewise.
40035         * final.c: Likewise.
40036         * optabs.c: Likewise.
40037         * passes.c: Likewise.
40038         * simplify-rtx.c: Likewise.
40039         * stmt.c: Likewise.
40040         * toplev.c: Likewise.
40041         * var-tracking.c: Likewise.
40042         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40043         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40044         * lower-subreg.c: Likewise.
40045         * postreload-gcse.c: Likewise.
40046         * ree.c: Likewise.
40047         * reginfo.c: Likewise.
40048         * store-motion.c: Likewise.
40049         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40050         fixed-value.h hashtab.h real.h stmt.h varasm.h.
40051         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40052         fixed-value.h hashtab.h statistics.h stmt.h.
40053         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40054         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
40055         * except.c: Likewise.
40056         * explow.c: Likewise.
40057         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40058         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
40059         varasm.h.
40060         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40061         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
40062         * tree-ssa-structalias.c: Likewise.
40063         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40064         fixed-value.h insn-config.h real.h statistics.h.
40065         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40066         fixed-value.h insn-config.h real.h statistics.h stmt.h.
40067         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40068         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40069         * cfgbuild.c: Likewise.
40070         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40071         fixed-value.h real.h rtl.h statistics.h stmt.h.
40072         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40073         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40074         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40075         fixed-value.h real.h statistics.h stmt.h.
40076         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40077         fixed-value.h real.h statistics.h stmt.h varasm.h.
40078         * cprop.c: Likewise.
40079         * modulo-sched.c: Likewise.
40080         * postreload.c: Likewise.
40081         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40082         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
40083         statistics.h stmt.h varasm.h.
40084         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
40085         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40086         rtl.h statistics.h stmt.h varasm.h.
40087         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
40088         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
40089         varasm.h.
40090         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40091         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
40092         varasm.h.
40093         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
40094         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
40095         varasm.h.
40096         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
40097         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40098         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40099         function.h real.h statistics.h stmt.h varasm.h.
40100         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40101         insn-config.h real.h statistics.h stmt.h.
40102         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40103         statistics.h stmt.h.
40104         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
40105         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
40106         statistics.h stmt.h varasm.h.
40107         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
40108         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
40109         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40110         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
40111         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
40112         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40113         statistics.h stmt.h varasm.h.
40114         * ipa-polymorphic-call.c: Likewise.
40115         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
40116         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40117         statistics.h stmt.h.
40118         * config/c6x/c6x.c: Likewise.
40119         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
40120         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40121         statistics.h stmt.h varasm.h.
40122         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
40123         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
40124         stmt.h varasm.h.
40125         * ipa-split.c: Likewise.
40126         * tree-eh.c: Likewise.
40127         * tree-ssa-dce.c: Likewise.
40128         * tree-ssa-loop-niter.c: Likewise.
40129         * tree-vrp.c: Likewise.
40130         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
40131         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
40132         stmt.h.
40133         * config/nds32/nds32-fp-as-gp.c: Likewise.
40134         * config/nds32/nds32-intrinsic.c: Likewise.
40135         * config/nds32/nds32-isr.c: Likewise.
40136         * config/nds32/nds32-md-auxiliary.c: Likewise.
40137         * config/nds32/nds32-memory-manipulation.c: Likewise.
40138         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
40139         * config/nds32/nds32-predicates.c: Likewise.
40140         * config/nds32/nds32.c: Likewise.
40141         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
40142         fixed-value.h hashtab.h real.h statistics.h.
40143         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
40144         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40145         * config/arm/arm.c: Likewise.
40146         * config/avr/avr.c: Likewise.
40147         * config/bfin/bfin.c: Likewise.
40148         * config/h8300/h8300.c: Likewise.
40149         * config/i386/i386.c: Likewise.
40150         * config/ia64/ia64.c: Likewise.
40151         * config/iq2000/iq2000.c: Likewise.
40152         * config/m32c/m32c.c: Likewise.
40153         * config/m32r/m32r.c: Likewise.
40154         * config/m68k/m68k.c: Likewise.
40155         * config/mcore/mcore.c: Likewise.
40156         * config/mep/mep.c: Likewise.
40157         * config/mips/mips.c: Likewise.
40158         * config/mn10300/mn10300.c: Likewise.
40159         * config/moxie/moxie.c: Likewise.
40160         * config/pa/pa.c: Likewise.
40161         * config/rl78/rl78.c: Likewise.
40162         * config/rx/rx.c: Likewise.
40163         * config/s390/s390.c: Likewise.
40164         * config/sh/sh.c: Likewise.
40165         * config/sparc/sparc.c: Likewise.
40166         * config/spu/spu.c: Likewise.
40167         * config/stormy16/stormy16.c: Likewise.
40168         * config/v850/v850.c: Likewise.
40169         * config/vax/vax.c: Likewise.
40170         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
40171         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40172         * config/msp430/msp430.c: Likewise.
40173         * predict.c: Likewise.
40174         * value-prof.c: Likewise.
40175         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
40176         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
40177         * config/microblaze/microblaze.c: Likewise.
40178         * config/nios2/nios2.c: Likewise.
40179         * config/rs6000/rs6000.c: Likewise.
40180         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40181         insn-config.h real.h rtl.h statistics.h stmt.h.
40182         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40183         insn-config.h real.h statistics.h stmt.h.
40184         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
40185         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40186         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
40187         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40188         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
40189         fixed-value.h real.h statistics.h stmt.h.
40190         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
40191         fixed-value.h statistics.h stmt.h.
40192         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
40193         stmt.h.
40194
40195 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
40196
40197         * gengtype.c (create_user_defined_type): Workaround
40198         -Wmaybe-uninitialized false positives.
40199         * cse.c (fold_rtx): Likewise.
40200         * loop-invariant.c (gain_for_invariant): Likewise.
40201
40202 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
40203
40204         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
40205         set the memory attributes in all cases but clear MEM_EXPR if need be.
40206
40207 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
40208
40209         PR tree-optimization/64434
40210         * cfgexpand.c (reorder_operands): New function.
40211         (expand_gimple_basic_block): Insert call of reorder_operands if
40212         optimized is true.
40213
40214 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
40215
40216         * config/mips/micromips.md (*swp): Remove explicit parallel.
40217         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
40218         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
40219         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
40220         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
40221         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
40222         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
40223         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
40224         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
40225         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
40226         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
40227         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
40228         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
40229         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
40230         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
40231         (mips_wrdsp): Likewise.
40232         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
40233         parallel.
40234         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
40235         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
40236         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
40237         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
40238         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
40239         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
40240         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
40241         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
40242         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
40243
40244 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40245
40246         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
40247         (mips_print_operand): Support 'y' to print exact log2 in decimal
40248         of a const_int.
40249         * config/mips/mips.h (ISA_HAS_LSA): New define.
40250         (ISA_HAS_DLSA): Likewise.
40251         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
40252         * config/mips/predicates.md (const_immlsa_operand): New predicate.
40253
40254 2015-01-15  Martin Liska  <mliska@suse.cz>
40255
40256         PR target/64377
40257         * optc-save-gen.awk: Add support for array types.
40258
40259 2015-01-15  Richard Biener  <rguenther@suse.de>
40260
40261         PR middle-end/64365
40262         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
40263         for MEM_REF access functions with the same base can never partially
40264         overlap.
40265
40266 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
40267
40268         * common.opt: New option -fstack-protector-explicit.
40269         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
40270         (stack_protect_decl_phase): Handle stack_protect attribute for
40271         explicit stack protection requests.
40272         (expand_used_vars): Similarly.
40273         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
40274         * doc/extend.texi: Add documentation for "stack_protect" attribute.
40275         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
40276
40277 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
40278
40279         PR target/53988
40280         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
40281         reg-reg copies.
40282         (sh_extending_set_of_reg): New struct.
40283         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
40284         sh_remove_reg_dead_or_unused_notes): New Declarations.
40285         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
40286         sh_find_extending_set_of_reg, sh_split_tst_subregs,
40287         sh_extending_set_of_reg::use_as_extended_reg): New functions.
40288         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
40289         convert to insn_and_split and use new function sh_split_tst_subregs.
40290
40291 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
40292
40293         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
40294         option.
40295         (Optimization Options): Move -fuse-ld documentation to...
40296         (Link Options): ...here.
40297
40298 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40299
40300         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
40301         offsets.
40302         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
40303         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
40304         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
40305         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
40306         instead of ZR for the memory operand of LL/SC.
40307         (compare_and_swap_12, sync_add<mode>): Likewise.
40308         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
40309         (sync_new_<optab>_12, sync_nand_12): Likewise.
40310         (sync_old_nand_12, sync_new_nand_12): Likewise.
40311         (sync_sub<mode>, sync_old_add<mode>): Likewise.
40312         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
40313         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
40314         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
40315         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
40316         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
40317         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
40318         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
40319         * doc/md.texi (ZC): Update description.
40320
40321 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40322
40323         * builtins.c (expand_builtin_atomic_exchange): Remove error when
40324         memory model is CONSUME.
40325         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
40326         expand_builtin_atomic_store): Change invalid memory model errors to
40327         warnings.
40328         (expand_builtin_atomic_clear): Change invalid model errors to warnings
40329         and issue warning for CONSUME.
40330
40331 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
40332
40333         * lto-cgraph: Update function comments for
40334         lto_symtab_encoder_encode_*.
40335
40336 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40337
40338         * Makefile.in (site.exp): Do not set ENABLE_LTO.
40339
40340 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40341
40342         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
40343         * lto-cgraph.c (select_what_to_stream): Remove argument, use
40344         lto_stream_offload_p instead.
40345         * lto-streamer.h (select_what_to_stream): Remove argument.
40346         * passes.c (ipa_write_summaries): Likewise.
40347         * tree-pass.h (ipa_write_summaries): Likewise.
40348
40349 2015-01-14  Richard Biener  <rguenther@suse.de>
40350
40351         PR tree-optimization/59354
40352         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
40353         groups larger than the slp group size as having gaps.
40354
40355 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40356
40357         PR middle-end/59448
40358         * builtins.c (get_memmodel): Promote consume to acquire always.
40359
40360 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40361
40362         PR target/64386
40363         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
40364         V32HImode.
40365
40366 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40367
40368         PR target/64393
40369         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
40370         Enable AVX512BW.
40371         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
40372         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
40373         AVX512VBMI, as it implies AVX512BW.
40374
40375 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40376
40377         PR target/64387
40378         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
40379         (vec_unpacks_hi_v16sf): Ditto.
40380
40381 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40382
40383         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
40384         is not available.
40385
40386 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40387
40388         * doc/invoke.texi (mapcs): Mention deprecation.
40389         (mapcs-frame): Likewise.
40390
40391 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40392
40393         PR target/64453
40394         * config/arm/arm.c (callee_saved_reg_p): Define.
40395         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
40396         register is callee saved instead of !call_used_regs[reg].
40397         (thumb1_compute_save_reg_mask): Likewise.
40398
40399 2015-01-14  Hale Wang  <hale.wang@arm.com>
40400
40401         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
40402         Cortex-M7.
40403
40404 2015-01-14  Richard Biener  <rguenther@suse.de>
40405
40406         PR lto/64415
40407         * tree-inline.c (insert_debug_decl_map): Check destination
40408         function MAY_HAVE_DEBUG_STMTS.
40409         (insert_init_debug_bind): Likewise.
40410         (insert_init_stmt): Remove redundant check.
40411         (remap_gimple_stmt): Drop debug stmts if the destination
40412         function has var-tracking assignments disabled.
40413
40414 2015-01-14  Martin Liska  <mliska@suse.cz>
40415
40416         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
40417         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
40418
40419 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40420
40421         PR target/64460
40422         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
40423         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
40424
40425 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40426
40427         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
40428         level from an ARCH; do not inject the default.
40429         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
40430         MIPS_ISA_LEVEL_SPEC.
40431         (MIPS_ISA_NAN2008_SPEC): Update comment.
40432         (BASE_DRIVER_SELF_SPECS): Likewise.
40433         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
40434         MIPS_DEFAULT_ISA_LEVEL_SPEC.
40435         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
40436         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
40437         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
40438
40439 2015-01-14  Richard Biener  <rguenther@suse.de>
40440
40441         PR tree-optimization/64493
40442         PR tree-optimization/64495
40443         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
40444         assign the proper vectorized PHI to the inner loop exit PHIs.
40445
40446 2015-01-14  Joey Ye  <joey.ye@arm.com>
40447
40448         * config/arm/arm.c (arm_compute_save_reg_mask):
40449         Do not save lr in case of tail call.
40450         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
40451
40452 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
40453
40454         * tree-vrp.c (check_array_ref): Emit more warnings
40455         for warn_array_bounds >= 2.
40456         * common.opt: New option -Warray-bounds=.
40457         * doc/invoke.texi: Document -Warray-bounds=.
40458
40459 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
40460
40461         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
40462         (mforbid-fp-as-gp): Remove.
40463         (mex9): Remove.
40464         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
40465         (nds32_symbol_load_store_p): Remove.
40466         (nds32_fp_as_gp_check_available): Clean up implementation.
40467         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
40468         cases.
40469         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
40470         fp-as-gp and ex9 cases.
40471
40472 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40473
40474         * tree-profile.c (init_ic_make_global_vars): Drop workaround
40475         for bintuils bug 14342.
40476         (init_ic_make_global_vars): Likewise.
40477         (gimple_init_edge_profiler): Likewise.
40478         (gimple_gen_ic_func_profiler): Likewise.
40479
40480 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
40481
40482         * ipa-inline.c (inline_small_functions): Swap the operands in
40483         enum.
40484
40485 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40486
40487         PR ipa/64481
40488         * ipa-inline-analysis.c (node_growth_cache): Remove.
40489         (initialize_growth_caches): Do not initialize it.
40490         (free_growth_caches): Do not free it.
40491         (do_estimate_growth): Rename to ...
40492         (estimate_growth): ... this one; drop growth cache code.
40493         (growth_likely_positive): Always go the heuristics way.
40494         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
40495         (reset_edge_caches): Do not reset node growth.
40496         (heap_edge_removal_hook): Do not maintain cache.
40497         (inline_small_functions): Likewise; strenghten sanity check.
40498         (ipa_inline): Do not maintain caches.
40499         * ipa-inline.h (node_growth_cache): Remove.
40500         (do_estimate_growth): Remove to ...
40501         (estimate_growth): this one; remove inline version.
40502         (reset_node_growth_cache): Remove.
40503
40504 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40505
40506         PR ipa/64565
40507         * ipa-inline.c (inline_small_functions): Update callee keys after
40508         resolving speculation
40509         (inline_small_functions): Always check monotonicity of the queue.
40510
40511 2015-01-13  Marek Polacek  <polacek@redhat.com>
40512
40513         PR middle-end/64391
40514         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
40515
40516 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40517
40518         PR rtl-optimization/64286
40519         * ree.c (combine_reaching_defs): Move part of comment earlier,
40520         remove !SCALAR_INT_MODE_P check.
40521         (add_removable_extension): Don't add vector mode
40522         extensions if all uses of the source register aren't the same
40523         vector extensions.
40524
40525 2015-01-13  Renlin Li  <renlin.li@arm.com>
40526
40527         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
40528         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
40529
40530 2015-01-13  Martin Liska  <mliska@suse.cz>
40531
40532         * ipa-icf.c (sem_function::equals_private): Call new functions
40533         cl_target_option_print_diff and cl_optimization_print_diff.
40534         * optc-save-gen.awk (cl_target_option_print_diff): New function.
40535         (cl_optimization_print_diff): Likewise.
40536         * opth-gen.awk: Likewise.
40537
40538 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40539
40540         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
40541         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
40542         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
40543         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
40544         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
40545         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
40546
40547 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40548
40549         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
40550         instead of src mode.
40551
40552 2015-01-13  Richard Biener  <rguenther@suse.de>
40553
40554         PR lto/64373
40555         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
40556         DECL_CONTEXT.
40557
40558 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40559
40560         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
40561         volatile mems.
40562         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
40563
40564 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40565
40566         PR middle-end/63974
40567         * cfgexpand.c (expand_computed_goto): Don't call
40568         convert_memory_address here.
40569
40570 2015-01-13  Richard Biener  <rguenther@suse.de>
40571
40572         PR tree-optimization/64406
40573         * tree-loop-distibution.c (pass_loop_distribution::execute):
40574         Reset the SCEV hashtable if we distributed anything.
40575
40576 2015-01-13  Richard Biener  <rguenther@suse.de>
40577
40578         PR tree-optimization/64404
40579         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
40580         SLP types for CSEd loads.
40581
40582 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40583
40584         PR tree-optimization/64436
40585         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
40586         merge of two symbolic numbers for a bitwise OR to ...
40587         (perform_symbolic_merge): This. Also fix computation of the range and
40588         end of the symbolic number corresponding to the result of a bitwise OR.
40589
40590 2015-01-13  Richard Biener  <rguenther@suse.de>
40591
40592         PR tree-optimization/64568
40593         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
40594         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
40595
40596 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40597
40598         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
40599         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
40600
40601 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40602
40603         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
40604         target-specific symbol_ref flag.
40605         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
40606         resides in rodata section.
40607         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
40608         (nds32_encode_section_info): New function.
40609
40610 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40611
40612         * config/nds32/nds32.md (call): Use pseudo instruction bal which
40613         clobbers TA_REGNUM if large code model is specified.
40614         (call_register): Likewise.
40615         (call_immediate): Likewise.
40616         (call_value): Likewise.
40617         (call_value_register): Likewise.
40618         (call_value_immediate): Likewise.
40619
40620 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40621
40622         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
40623         (TARGET_CMODEL_MEDIUM): New macro.
40624         (TARGET_CMODEL_LARGE): New macro.
40625         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
40626         code model setting in assembly code.
40627
40628 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40629
40630         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
40631         Remove MASK_GP_DIRECT flag.
40632         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
40633         one of the multilib default options.
40634         * config/nds32/nds32.opt (mgp-direct): Remove.
40635         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
40636         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
40637
40638 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40639
40640         * config/nds32/nds32.opt (mcmodel): Add new option.
40641         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
40642         to describe code model.
40643
40644 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
40645
40646         PR target/64479
40647         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
40648
40649 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
40650
40651         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
40652         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
40653         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
40654         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
40655         __builtin_sh_set_fpscr.
40656
40657 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40658
40659         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
40660         after a funtion name just to indicate it is a function.
40661         ([-fsanitize-undefined-trap-on-error]): Likewise.
40662         ([-fdbg-cnt=]): Likewise.
40663         ([-mmemcpy]): Likewise.
40664         ([-mflush-func]): Likewise.
40665         ([-msynci]): Likewise.
40666
40667 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40668
40669         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
40670         example.
40671
40672 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
40673
40674         PR tree-optimization/64563
40675         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
40676         instead of != VR_VARYING.
40677
40678         PR target/64513
40679         * config/i386/i386.c (ix86_expand_prologue): Add
40680         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
40681
40682         PR tree-optimization/64454
40683         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
40684         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
40685         for signed or [0, op1 - 1] for unsigned modulo.
40686         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
40687         even if op1 does not satisfy integer_pow2p.
40688
40689         PR other/64370
40690         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
40691
40692 2015-01-12  Jeff Law  <law@redhat.com>
40693
40694         PR target/64461
40695         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
40696         (trunchiqi2, truncsihi2): Similarly.
40697
40698         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
40699         rather than calling F.
40700
40701 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40702
40703         * tsan.c (instrument_expr): Use force_gimple_operand.
40704         Use may_be_nonaddressable_p instead of is_gimple_addressable.
40705
40706 2015-01-12  Richard Biener  <rguenther@suse.de>
40707
40708         PR tree-optimization/64530
40709         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
40710         back dr1.
40711
40712 2015-01-12  Richard Biener  <rguenther@suse.de>
40713
40714         PR middle-end/64357
40715         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
40716         latches properly.
40717
40718 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40719
40720         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
40721         Cortex-A17 tuning parameters.
40722         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
40723
40724 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40725
40726         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
40727         * config/arm/arm.c (arm_macro_fusion_p): New function.
40728         (arm_macro_fusion_pair_p): Likewise.
40729         (TARGET_SCHED_MACRO_FUSION_P): Define.
40730         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
40731         (ARM_FUSE_NOTHING): Likewise.
40732         (ARM_FUSE_MOVW_MOVT): Likewise.
40733         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
40734         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
40735         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
40736         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
40737         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
40738         arm_cortex_a5_tune): Specify fuseable_ops value.
40739
40740 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
40741
40742         PR bootstrap/64561
40743         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
40744         test for PIE with copy reloc.
40745         * configure: Regenerated.
40746
40747 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40748
40749         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
40750         in gen_rtx_REG.
40751         (arm_tls_descseq_addr): Likewise.
40752         (arm_gen_movmemqi): Likewise.
40753         (arm_expand_epilogue_apcs_frame): Likewise.
40754         (arm_expand_epilogue): Likewise.
40755         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
40756         in gen_rtx_REG.
40757
40758 2015-01-12  Martin Liska  <mliska@suse.cz>
40759
40760         PR ipa/64550
40761         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
40762         volatility for correct operands.
40763
40764 2015-01-12  Martin Liska  <mliska@suse.cz>
40765
40766         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
40767         indication that a function is not leaf.
40768         (sem_function::compare_polymorphic_p): Likewise.
40769
40770 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40771
40772         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
40773         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
40774         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
40775         fold-const.h, tree-check.h.
40776
40777 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40778
40779         PR ipa/63967
40780         PR ipa/64425
40781         * ipa-inline.c (compute_uninlined_call_time,
40782         compute_inlined_call_time): Use counts for extra precision when
40783         needed possible.
40784         (big_speedup_p): Fix formating.
40785         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
40786         (relative_time_benefit): Remove.
40787         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
40788         merge guessed and read profile paths.
40789         (inline_small_functions): Count only !optimize_size functions into
40790         initial size; be more lax about sanity check when profile is used;
40791         be sure to update inlined function profile when profile is read.
40792
40793 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40794
40795         PR ipa/63470
40796         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
40797         cost when edge becomes direct.
40798         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
40799         is resolved or when introducing new speculation.
40800
40801 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
40802
40803         PR ipa/64551
40804         PR ipa/64552
40805         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
40806         '||' to fix typo issue.
40807
40808         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
40809         accept and return NULL.
40810
40811 2015-01-12  Martin Liska  <mliska@suse.cz>
40812
40813         * cgraph.c (cgraph_edge::remove_callee): Move function to header
40814         file for being inlined.
40815         (cgraph_set_edge_callee): Delete.
40816         (cgraph_edge::redirect_callee): Move function to header file
40817         for being inlined.
40818         (cgraph_edge::make_direct): Use new function.
40819         (cgraph_edge::dump_edge_flags): New function created from
40820         static dump_edge_flags function.
40821         (cgraph_node::dump): Use new function.
40822         (cgraph_edge::verify_count_and_frequency): New function created
40823         from verify_edge_count_and_frequency.
40824         (cgraph_edge::verify_corresponds_to_fndecl): New function created
40825         from verify_edge_corresponds_to_fndecl.
40826         (verify_edge_corresponds_to_fndecl): Delete.
40827         (cgraph_node::verify_node): Use new function.
40828         * cgraph.h (cgraph_edge::set_callee): New function.
40829         (cgraph_edge::dump_edge_flags): Likewise.
40830         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
40831
40832 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
40833
40834         * ipa-utils.c (estimate_function_body_sizes): Do not
40835         free node params when called late with early=true.
40836
40837 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
40838
40839         * doc/md.texi (Instruction Patterns): Rewrite text for
40840         clarity.
40841         (Example): Likewise.
40842
40843 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40844
40845         * doc/invoke.texi (Option Summary): Break long lines.
40846         [(-fdiagnostics-color)]: Put long literal in @smallexample
40847         instead of inline.
40848         [(-fsanitize-recover)]: Likewise.
40849         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
40850         [(-ffast-math)]: Likewise.
40851         [(--param max-inline-insns-recursive)]: Likewise.
40852         [(--param max-inline-recursive-depth)]: Likewise.
40853         [(-mno-text-section-literals)]: Likewise.
40854
40855 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
40856
40857         * doc/install.texi: Update for libgomp being renamed from "GNU
40858         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
40859         Runtime Library".
40860         * doc/sourcebuild.texi: Likewise.
40861
40862 2015-01-10  Anthony Green  <green@moxielogic.com>
40863
40864         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
40865         mul.x availability for moxiebox configuration.
40866
40867 2015-01-09  Anthony Green  <green@moxielogic.com>
40868
40869         * config/moxie/moxie.md: Tabify assembly output.
40870
40871 2015-01-09  Anthony Green  <green@moxielogic.com>
40872
40873         * config/moxie/moxie.md (CC_REG): Correct register definition.
40874
40875 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
40876
40877         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
40878         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
40879         of log files.
40880
40881 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40882
40883         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
40884
40885 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
40886             Jakub Jelinek  <jakub@redhat.com>
40887
40888         PR middle-end/64412
40889         * lto-streamer.h (lto_stream_offload_p): New declaration.
40890         * lto-streamer.c (lto_stream_offload_p): New variable.
40891         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
40892         at the same time as section_name_prefix.
40893         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
40894         if lto_stream_offload_p.
40895         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
40896         stream TREE_TARGET_OPTION if lto_stream_offload_p.
40897         (write_ts_function_decl_tree_pointers): Don't
40898         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
40899         * tree-streamer-in.c (unpack_value_fields): Don't stream
40900         TREE_TARGET_OPTION in if ACCEL_COMPILER.
40901         (lto_input_ts_function_decl_tree_pointers): Don't stream
40902         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
40903         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
40904         instead of section_name_prefix string comparisons.
40905
40906 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
40907
40908         PR rtl-optimization/64536
40909         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
40910         tablejumps.
40911
40912 2015-01-09  Michael Collison  <michael.collison@linaro.org>
40913
40914         PR tree-optimization/64322
40915         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
40916         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
40917
40918 2015-01-09  Tom de Vries  <tom@codesourcery.com>
40919
40920         PR rtl-optimization/64539
40921         * regcprop.c (kill_clobbered_values): Factor out of ...
40922         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
40923         instead of note_stores with kill_clobbered_value.
40924
40925 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40926
40927          * ginclude/unwind-arm-common.h: Revert previous commit.
40928
40929 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40930
40931         * config.gcc (arm*-*-freebsd*): New configuration.
40932         * config/arm/freebsd.h: New file.
40933         * config.host: Add extra components for arm*-*-freebsd*.
40934         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
40935         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
40936
40937 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40938
40939         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
40940         for -mcpu=e6500.
40941         * config/rs6000/t-rtems: Add e6500 multilibs.
40942
40943 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40944
40945         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
40946         MPC8540.
40947
40948 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40949
40950         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
40951         MULTILIB_EXCEPTIONS.
40952
40953 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40954
40955         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
40956         MULTILIB_EXCEPTIONS.
40957
40958 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40959
40960         * config/arm/t-rtems-eabi: Rename to...
40961         * config/arm/t-rtems: ...this.
40962         * config/arm/rtems-eabi.h: Rename to...
40963         * config/arm/rtems.h: ...this.
40964         * config.gcc (arm*-*-rtems*): Reflect changes above.
40965
40966 2015-01-09  Richard Biener  <rguenther@suse.de>
40967
40968         PR tree-optimization/64410
40969         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
40970         on the LHS.
40971         (execute_update_addresses_taken): Deal with that.
40972         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
40973         loads/stores for complex variables.
40974
40975 2015-01-09  Martin Liska  <mliska@suse.cz>
40976
40977         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
40978         name comparison.
40979         (func_checker::compare_memory_operand): New function.
40980         (func_checker::compare_operand): Split case to newly
40981         added functions.
40982         (func_checker::compare_cst_or_decl): New function.
40983         (func_checker::compare_gimple_call): Identify
40984         memory operands.
40985         (func_checker::compare_gimple_assign): Likewise.
40986         * ipa-icf-gimple.h: New function.
40987
40988 2015-01-09  Martin Liska  <mliska@suse.cz>
40989
40990         PR ipa/64503
40991         * sreal.c (sreal::dump): Change unsigned format to signed for
40992         m_exp value.
40993         (sreal::to_double): Replace exp2 with scalbln.
40994
40995 2015-01-09  Martin Liska  <mliska@suse.cz>
40996
40997         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
40998         * ipa-icf.c (sem_function::equals_private): Add support for target and
40999         (sem_item_optimizer::merge_classes): Remove redundant function
41000         optimization flags comparison.
41001         * tree.h (target_opts_for_fn): New function.
41002
41003 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41004
41005         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
41006
41007 2015-01-09  Kito Cheng  <kito@0xlab.org>
41008
41009         PR rtl-optimization/64348
41010         * lra-constraints.c (split_reg): Fix caller-save store/restore
41011         instruction generation.
41012
41013 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
41014
41015         PR gcov-profile/61790
41016         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
41017         long long.  Fallback to int64_t if host doesn't have long long and
41018         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
41019
41020 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41021
41022         PR tree-optimization/63989
41023         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
41024         from 1000 to 10000.
41025         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
41026         (get_stridx): If we don't have a record for certain SSA_NAME,
41027         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
41028         constant offset, call get_stridx_plus_constant.
41029         (get_stridx_plus_constant): New function.
41030         (zero_length_string): Don't use get_stridx here.
41031
41032         PR target/55023
41033         PR middle-end/64388
41034         * dse.c (struct insn_info): Mention frame_read set also
41035         before reload for tail calls on some targets.
41036         (scan_insn): Revert 2014-12-22 change.  Set frame_read
41037         also before reload for tail calls if
41038         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
41039         instead of add_non_frame_wild_read for non-const/memset
41040         tail calls after reload.
41041
41042 2015-01-08  Jason Merrill  <jason@redhat.com>
41043
41044         * ubsan.c (do_ubsan_in_current_function): New.
41045         (pass_ubsan::gate): Use it.
41046         * ubsan.h: Declare it.
41047         * convert.c (convert_to_integer): Use it.
41048
41049 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41050
41051         PR target/64338
41052         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
41053         compare_code when it is unconditionally overwritten afterwards.
41054         Use ix86_reverse_condition instead of reverse_condition.  Don't
41055         change code if *reverse_condition* returned UNKNOWN and don't
41056         swap ct/cf and negate diff in that case.
41057
41058 2015-01-08  Mike Stump  <mikestump@comcast.net>
41059
41060         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
41061         (pass_tsan_O0::gate): Likewise.
41062         * extend.texi (Function Attributes): Add no_sanitize_thread
41063         documentation.
41064
41065 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
41066
41067         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
41068         for registering builtins.
41069         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
41070         add -fopenmp to the argv_obstack used when invoking
41071         compile_for_target.
41072
41073         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
41074         add "-m32" or "-m64" to argv_obstack.
41075         (generate_host_descr_file): Likewise, when invoking host_compiler.
41076         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
41077         ld.
41078
41079 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41080
41081         * config/sh/sh-mem.cc: Use constant as second operand when emitting
41082         tstsi_t insns.
41083
41084 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41085
41086         PR target/55212
41087         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
41088         constant load if constant operand fits into I08.
41089
41090 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41091
41092         PR sanitizer/64336
41093         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
41094         and TREE_THIS_VOLATILE for MEM_REFs.
41095         (build5_stat): Fix up initialization of TREE_READONLY and
41096         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
41097
41098 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
41099
41100         PR target/64533
41101         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
41102         of r for the second alternative of the destination operand.
41103
41104 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
41105
41106         PR target/36557
41107         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
41108
41109 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41110
41111         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
41112         keywords.
41113         ([-fivar-visibility], [-fvisibility]): Likewise.
41114
41115 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41116
41117         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
41118         the file where @code, @command, etc is more appropriate.
41119
41120 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
41121
41122         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
41123         of -mrecip= documentation.
41124
41125 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
41126
41127         PR target/64505
41128         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
41129         correct reload handler if -m32 -mpowerpc64 is used.
41130
41131 2015-01-06  Tom de Vries  <tom@codesourcery.com>
41132
41133         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
41134
41135 2015-01-08  Christian Bruel  <christian.bruel@st.com>
41136
41137         PR target/64507
41138         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
41139
41140 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41141
41142         PR tree-optimization/63259
41143         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
41144         if optab exists for 16bit byteswap.
41145
41146 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
41147
41148         * opts.c (common_handle_option): Add support for
41149         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
41150         * doc/invoke.texi: Document -fno-sanitize=all,
41151         -f{,no-}sanitize-recover=all.  Document that
41152         -fsanitize=float-cast-overflow is not enabled
41153         by -fsanitize=undefined.  Fix up documentation
41154         of -f{,no-}sanitize-recover.
41155
41156 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
41157
41158         * config.gcc: Add Visium support.
41159         * configure.ac: Likewise.
41160         * configure: Regenerate.
41161         * doc/extend.texi (interrupt attribute): Add Visium.
41162         * doc/invoke.texi: Document Visium options.
41163         * doc/install.texi: Document Visium target.
41164         * doc/md.texi: Document Visium constraints.
41165         * common/config/visium: New directory.
41166         * config/visium: Likewise.
41167
41168 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41169
41170         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
41171         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
41172
41173 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41174
41175         * combine.c (combine_validate_cost): Do not count the cost of a
41176         split I2 twice.  Do not display it twice in the dump, either.
41177
41178 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41179
41180         Revert parts of r219199.
41181         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
41182         <inttypes.h>.
41183         ([-Wtraditional]): Restore markup on <limits.h>.
41184
41185 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
41186
41187         PR c++/31397
41188         * doc/invoke.texi: Document -Wsuggest-override.
41189
41190 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
41191
41192         PR rtl-optimization/64287
41193         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
41194         (process_options): Disable flag_ipa_ra if profiling.
41195
41196 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41197
41198         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
41199
41200 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
41201
41202         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
41203         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
41204         put under #if TARGET_LOOPS guard.
41205
41206 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
41207
41208         * config/i386/i386.c (output_387_binary_op): Use std::swap.
41209
41210 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
41211
41212         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
41213         * rtl.h (refers_to_regno_p): Add overload.
41214         * cse.c: Use it.
41215         * bt-load.c: Likewise.
41216         * combine.c: Likewise.
41217         * df-scan.c: Likewise.
41218         * sched-deps.c: Likewise.
41219         * config/s390/s390.c: Likewise.
41220         * config/m32r/m32r.c: Likewise.
41221         * config/rs6000/spe.md: Likewise.
41222         * config/rs6000/rs6000.c: Likewise.
41223         * config/pa/pa.c: Likewise.
41224         * config/stormy16/stormy16.c: Likewise.
41225         * config/cris/cris.c: Likewise.
41226         * config/arc/arc.md: Likewise.
41227         * config/arc/arc.c: Likewise.
41228         * config/sh/sh.md: Likewise.
41229         * config/sh/sh.c: Likewise.
41230         * config/frv/frv.c: Likewise.
41231
41232 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41233
41234         PR sanitizer/64265
41235         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
41236         call as cleanup of the whole body.
41237         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
41238         * tsan.c (replace_func_exit): New function.
41239         (instrument_func_exit): Moved earlier.
41240         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
41241         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
41242         been found.
41243         (tsan_pass): Don't call instrument_func_exit.
41244         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
41245         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
41246         inlining.
41247
41248         PR sanitizer/64344
41249         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
41250         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
41251         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
41252         if the result is integer_zerop, return NULL_TREE.
41253         * convert.c (convert_to_integer): Pass expr as ARG.
41254
41255         PR tree-optimization/64465
41256         * tree-inline.c (redirect_all_calls): During inlining
41257         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
41258         changed the stmt to a non-throwing call.
41259
41260 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41261
41262         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
41263         etc markup throughout the file.
41264
41265 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41266
41267         Enable experimental TSAN support for Ada.
41268         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
41269
41270 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41271
41272         PR tree-optimization/64494
41273         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
41274         clear SSA_NAME_ANTI_RANGE_P flag.
41275
41276 2015-01-05  Marek Polacek  <polacek@redhat.com>
41277
41278         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
41279
41280 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41281
41282         Update copyright years.
41283
41284         * gcc.c (process_command): Update copyright notice dates.
41285         * gcov-dump.c: Ditto.
41286         * gcov.c: Ditto.
41287         * doc/cpp.texi: Bump @copying's copyright year.
41288         * doc/cppinternals.texi: Ditto.
41289         * doc/gcc.texi: Ditto.
41290         * doc/gccint.texi: Ditto.
41291         * doc/gcov.texi: Ditto.
41292         * doc/install.texi: Ditto.
41293         * doc/invoke.texi: Ditto.
41294
41295         * auto-profile.c, auto-profile.h: Fix up Copyright line.
41296
41297 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
41298
41299         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
41300         verb tense, etc.
41301         ([-fvtable-verify], [-fvtv-debug]): Likewise.
41302         ([-Wabi]): Likewise.
41303         ([-fmessage-length]): Likewise.
41304         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
41305         ([-Wno-discarded-qualifiers]): Likewise.
41306         ([-Wnodiscarded-array-qualifiers]): Likewise.
41307         ([-Wno-virtual-move-assign]): Likewise.
41308         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
41309         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
41310         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
41311         ([-fsanitize-undefined-trap-on-error]): Likewise.
41312         ([-floop-interchange]): Likewise.
41313         ([-ftree-coalesce-inlined-vars]): Likewise.
41314         ([-fvect-cost-model]): Likewise.
41315         ([-flto]): Likewise.
41316         ([--param]): Likewise.
41317         (Spec Files): Likewise.
41318         ([-mstrict-align]): Likewise.
41319         ([-mfix-cortex-a53-835769]): Likewise.
41320         ([-march], [-mtune]): Likewise.
41321         ([-mpic-register]): Likewise.
41322         ([-munaligned-access]): Likewise.
41323         ([-msp8]): Likewise.
41324         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
41325         (AVR Built-in Macros): Likewise.
41326         ([-mpreferred-stack-boundary]): Likewise.
41327         ([-mtune-crtl]): Likewise.
41328         ([-mashf]): Likewise.
41329         ([-mmcu=]): Likewise.
41330         ([-minrt]): Likewise.
41331         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
41332         ([-mupper-regs]): Likewise.
41333         ([-matomic-model]): Likewise.
41334         ([-mdiv]): Likewise.
41335         ([-mzdcbranch]): Likewise.
41336         ([-mdisable-callt]): Likewise.
41337         ([-msoft-float]): Likewise.
41338         ([-m8byte-align]): Likewise.
41339         ([-fstack-reuse]): Likewise.
41340
41341 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41342
41343         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
41344         Fix markup, light copy-editing.
41345         ([-fauto-profile]): Rewrite to fix formatting and content
41346         problems.
41347
41348 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41349
41350         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
41351         Copy-edit description.
41352         ([-fisolate-erroneous-paths-attribute]): Likewise.
41353         * common.opt (fisolate-erroneous-paths-dereference):
41354         Copy-edit description.
41355         (fisolate-erroneous-paths-attribute): Likewise.
41356
41357 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41358
41359         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
41360         tidy grammar.
41361
41362 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41363
41364         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
41365         ([-fvtv-debug]): Likewise.
41366         ([-Wc++-compat]): Likewise.
41367         ([-Wc++11-compat]): Likewise.
41368         ([-Wc++14-compat]): Likewise.
41369         ([-Wno-sized-deallocation]): Likewise.
41370         ([-femit-class-debug-always]): Likewise.
41371         ([-femit-struct-debug-detailed]): Likewise.
41372         ([-fno-keep-inline-dllexport]): Likewise.
41373         ([-fira-algorithm]): Likewise.
41374         ([-fira-region]): Likewise.
41375         ([-flra-remat]): Likewise.
41376         ([-fipa-ra]): Likewise.
41377         ([-fhoist-adjacent-loads]): Likewise.
41378         ([-fisolate-erroneous-paths-dereference]): Likewise.
41379         ([-fisolate-erroneous-paths-attribute]): Likewise.
41380         ([-ftree-switch-conversion]): Likewise.
41381         ([-ftree-tail-merge]): Likewise.
41382         ([-ftree-loop-if-convert]): Likewise.
41383         ([-ftree-loop-if-convert-stores]): Likewise.
41384         ([-ftree-loop-distribution]): Likewise.
41385         ([-ftree-loop-distribute-patterns]): Likewise.
41386         ([-flto-compression-level]): Likewise.
41387         ([-flto-report]): Likewise.
41388         ([-flto-report-wpa]): Likewise.
41389         ([-fuse-linker-plugin]): Likewise.
41390         ([-mfix-cortex-a53-835769]): Likewise.
41391         ([-mno-fix-cortex-a53-835769]): Likewise.
41392         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
41393         explicit listing; add a note to the discussion indicating they
41394         exist.  Reorder table to group similar options.  Add missing
41395         @opindex entries.  Add @need commands throughout the table to
41396         allow it to be split across multiple pages.
41397         ([-m8bit-idiv]): Fix @opindex.
41398         ([-mavx256-split-unaligned-load]): Likewise.
41399         ([-mavx256-split-unaligned-store]): Likewise.
41400         ([-mstack-protector-guard]): Likewise.
41401         ([-mcpu=]): Likewise.
41402         ([-mcpu]): Likewise.
41403         ([-mpointer-size=]): Likewise.
41404
41405 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
41406
41407         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
41408         instead of `m' constraint.  Likewise for unnamed movb comparison
41409         patterns using reg_before_reload_operand predicate.
41410         * config/pa/predicates.md (reg_before_reload_operand): Tighten
41411         predicate to reject register index and LO_SUM DLT memory forms
41412         after reload.
41413
41414 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41415
41416         * doc/invoke.texi (Option Summary): Fix spelling of
41417         -fdevirtualize-at-ltrans.
41418         ([-fdevirtualize]): Fix markup.
41419         ([-fdevirtualize-speculatively]): Fix typo.
41420         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
41421         implementor-speaky.
41422         * common.opt (fdevirtualize-at-ltrans): Likewise.
41423         * ipa-devirt.c: Fix typos in comments throughout the file.
41424         (ipa_devirt): Fix typos in format strings for dump output.
41425
41426 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41427
41428         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
41429         discussion of defaults, light copy-editing.
41430
41431 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41432
41433         * tsan.c (instrument_expr): corrected previous checkin.
41434
41435 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41436
41437         Instrument bit field and unaligned accesses for TSAN.
41438         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
41439         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
41440         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
41441         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
41442         unaligned memory regions.
41443
41444 2015-01-01  Anthony Green  <green@moxielogic.com>
41445
41446         * config/moxie/predicates.md (moxie_general_movsrc_operand):
41447         Restrict move source register offsets to 16 bits.
41448 \f
41449 Copyright (C) 2015 Free Software Foundation, Inc.
41450
41451 Copying and distribution of this file, with or without modification,
41452 are permitted in any medium without royalty provided the copyright
41453 notice and this notice are preserved.