S/390: Fix vrepi constraint letter.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2
3         * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
4         latter I->K.
5
6 2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7
8         * config/s390/s390.md ("bswap<mode>2"): Add support for strv and
9         strvg.
10         ("bswaphi2"): New pattern.
11         New splitter for HI reg-reg bswap.
12
13 2015-11-27  Jiri Engelthaler  <engycz@gmail.com>
14
15         PR driver/68029
16         * opts-common.c (prune_options): Don't ignore -fdiagnostics-color 
17         if it is the first parameter.
18
19 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
20
21         PR tree-optimization/68577
22         * tree-vect-stmts.c (simple_integer_narrowing): New function.
23         (vectorizable_call): Restrict internal function handling
24         to NONE and NARROW cases, using simple_integer_narrowing
25         to test for the latter.  Add cost of narrowing operation
26         and insert it where necessary.
27
28 2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
29
30         * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
31         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
32         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
33
34 2015-12-01  Nathan Sidwell  <nathan@acm.org>
35
36         * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
37         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
38         ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
39         * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
40         (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
41         (init_output_initializer): Call write_var_marker.
42         (nvptx_output_aligned_decl): New.
43         (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
44
45 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
46
47         * c-common.c (parse_optimize_options): Do not silently ignore
48         -fstrict-aliasing changes.
49
50 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
51
52         * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
53         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
54         stream TYPE_ALIAS_SET.
55         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
56         stream TYPE_ALIAS_SET.
57
58 2015-12-01  Nathan Sidwell  <nathan@acm.org>
59
60         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
61         consider mode.
62
63 2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
64
65         * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
66         indirection for large and small code models.
67         (adjust_vperm): Likewise.
68
69 2015-12-01  Julian Brown  <julian@codesourcery.com>
70             Cesar Philippidis  <cesar@codesourcery.com>
71             James Norris  <James_Norris@mentor.com>
72
73         * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
74         support.
75         * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
76         (is_gimple_omp_oacc): Add support for above.
77         * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
78         (omp_notice_variable): Diagnose undefined implicit uses of
79         use_device variables in offloaded regions.
80         (gimplify_scan_omp_clauses): Add host_data, use_device
81         support. Diagnose undefined mapping of use_device variables in
82         OpenACC clauses.
83         (gimplify_omp_workshare): Add host_data support.
84         (gimplify_expr): Likewise.
85         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
86         * omp-low.c (lookup_decl_in_outer_ctx)
87         (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
88         host_data regions.
89         (scan_sharing_clauses): Support use_device.
90         (check_omp_nesting_restrictions): Support host_data.
91         (expand_omp_target): Support host_data.
92         (lower_omp_target): Skip over outer host_data regions when looking
93         up decls. Support use_device.
94         (make_gimple_omp_edges): Support host_data.
95         * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
96         clause.
97
98 2015-12-01  Marek Polacek  <polacek@redhat.com>
99
100         PR middle-end/68582
101         * cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
102         for VAR_DECLs.
103
104 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
105
106         PR tree-optimization/68474
107         * tree-call-cdce.c (use_internal_fn): Protect call to
108         gen_shrink_wrap_conditions.
109
110 2015-12-01  Christian Bruel  <christian.bruel@st.com>
111
112         PR target/68617
113         * config/arm/arm.opt (unaligned_access): Save.
114         * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
115         * config/arm/arm.c (arm_option_override): Move unaligned_access setting
116         (arm_option_override_internal): ... here.
117         * config/arm/arm.h (TARGET_32BIT_P): New macro.
118
119 2015-12-01  Richard Biener  <rguenther@suse.de>
120
121         PR tree-optimization/68379
122         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
123         always base loads on the first used DR of a group.
124         * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
125         Compute alignment of the first scalar element unconditionally.
126
127 2015-12-01  Richard Biener  <rguenther@suse.de>
128
129         PR middle-end/68590
130         * genmatch.c (struct capture_info): Add match_use_count.
131         (capture_info::walk_match): Increment match_use_count.
132         (dt_simplify::gen_1): For GENERIC, only wrap multi-use
133         replacements in a save_expr if they occur more often than
134         in the original expression.
135
136 2015-12-01  Richard Biener  <rguenther@suse.de>
137
138         PR ipa/68470
139         * ipa-split.c (split_function): Handle main part not returning.
140
141 2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
142
143         PR middle-end/68595
144         * tree-vect-stmts.c (vect_init_vector): Cast boolean
145         scalars to a proper value before building a vector.
146
147 2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
148
149         * genattrtab.c (check_attr_test): Take an attr_desc instead of
150         an is_const flag.  Put the file_location argument first.
151         Update recursive calls.  Improve error messages.
152         (check_attr_value): Take a file location and use it instead
153         of attr->loc.  Improve error messages.  Update calls to
154         check_attr_test.
155         (check_defs): Update call to check_attr_value.
156         (make_canonical): Likewise.
157         (gen_attr): Likewise.
158         (main): Likewise.
159         (gen_insn_reserv): Update call to check_attr_test.
160
161 2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
162
163         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
164
165 2015-12-01  Richard Biener  <rguenther@suse.de>
166
167         PR middle-end/68590
168         * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
169
170 2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
171
172         * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
173         odr_type_p): Move to ...
174         * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
175         odr_type_p): here; miscro-optimize.
176
177 2015-12-01  Bin Cheng  <bin.cheng@arm.com>
178
179         PR tree-optimization/68529
180         * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
181         Compute no-overflow information for control iv.
182         (number_of_iterations_lt, number_of_iterations_le): Add new param.
183         (number_of_iterations_cond): Pass new argument to above functions.
184
185 2015-11-30  Jan Hubicka  <hubicka@ucw.cz>
186
187         * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
188         inlining -fno-strict-aliasing into -fstrict-aliasing body.
189
190 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
191             Sebastian Pop  <s.pop@samsung.com>
192
193         PR tree-optimization/68565
194         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
195         codegen_error.  Fail when rhs of division operations is integer_zerop.
196         (ternary_op_to_tree): Early return on codegen_error.
197         (unary_op_to_tree): Same.
198         (nary_op_to_tree): Same.
199         (gcc_expression_from_isl_expr_op): Same.
200         (gcc_expression_from_isl_expression): Same.
201         (graphite_create_new_loop): On codegen_error continue generating
202         wrong code.
203         (graphite_create_new_loop_guard): Same.
204         (build_iv_mapping): Same.
205         (graphite_create_new_guard): Same.
206
207 2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
208             Sebastian Pop  <s.pop@samsung.com>
209
210         * graphite-isl-ast-to-gimple.c: Fix dump messages.
211         * graphite-scop-detection.c: Same.
212         * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
213
214 2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
215
216         * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
217         OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
218         (convert_local_omp_clauses): Likewise.
219
220 2015-11-30  Tom de Vries  <tom@codesourcery.com>
221
222         PR tree-optimization/46032
223         * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
224         factored out of ...
225         (find_func_aliases_for_call): ... here.
226         (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
227         BUILT_IN_GOMP_PARALLEL.
228         (ipa_pta_execute): Same.  Handle node->parallelized_function as a local
229         function.
230
231 2015-11-30  Jakub Jelinek  <jakub@redhat.com>
232
233         PR tree-optimization/68501
234         * target.def (builtin_reciprocal): Replace the 3 arguments with
235         a gcall * one, adjust description.
236         * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
237         with a gcall * one.
238         * targhooks.c (default_builtin_reciprocal): Likewise.
239         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
240         targetm.builtin_reciprocal even on internal functions, adjust
241         the arguments and allow replacing an internal function with normal
242         built-in.
243         * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
244         with a gcall * one.  Handle internal fns too.
245         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
246         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
247         * doc/tm.texi (builtin_reciprocal): Document.
248
249 2015-11-30  Richard Biener  <rguenther@suse.de>
250
251         PR tree-optimization/68592
252         * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
253         on the pattern def sequence.
254
255 2015-11-30  Nathan Sidwell  <nathan@acm.org>
256
257         * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
258         (write_one_arg): Reorder parms, add 'sep' param.
259         (nvptx_write_function_decl): Rename to ...
260         (write_fn_proto): ... here.  Do name replacement. Emit linaer
261         comment marker. Deal with both decls and defns. Simplify argument
262         formatting.
263         (write_function_decl_and_comment): Delete.
264         (write_func_decl_from_insn): Rename to ...
265         (write_fn_proto_from_insn): ... here.  Don't do name replacement.
266         (nvptx_record_fndecl): Call write_fn_proto.
267         (nvptx_record_libfunc): Call write_fn_proto_from_insn.
268         (nvptx_declare_function_name): Adjust for write_fn_proto changes.
269         (nvotx_output_call_insn): Call write_fn_prot_from_insn.
270
271 2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>
272
273         * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
274         (define_insn "*k<logic><mode>"): Use new iterator.
275
276 2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
277
278         PR target/28115
279         * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
280         (sparc_adjust_cost): Add missing space.
281
282 2015-11-30  Richard Biener  <rguenther@suse.de>
283
284         PR c/68162
285         * dwarf2out.c (gen_type_die_with_usage): Keep variant types
286         of arrays.
287
288 2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
289
290         * tree-if-conv.c (struct ifc_dr): Add new tree
291         base_predicate field.
292         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
293         base ref, DR pairs and store base_predicate for write type DRs.
294         (ifcvt_memrefs_wont_trap): Guard checks with
295         -ftree-loop-if-convert-stores flag.
296
297 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
298
299         * cgraph.c (cgraph_node::make_local): No name is unique during
300         incremental linking.
301         * cgraph.h (can_be_discarded_p): Update comment; also common and
302         WEAK in named sections can be discarded; when doing incremental
303         link do not rely on resolution being the final one.
304         * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
305         When symbol can be discarded, do not rely on resolution info.
306         * symtab.c (symtab_node::nonzero_address): Take into account that
307         symbol can be discarded.
308         * ipa-visibility.c (update_visibility_by_resolution_info): Handle
309         definition correctly.
310         (function_and_variable_visibility): Do not set unique_name when
311         incrementally linking.
312
313 2015-11-29  Nathan Sidwell  <nathan@acm.org>
314
315         * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
316         const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
317         (ctrap<mode>): Use const0_operand.
318
319 2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
320
321         * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
322         dump
323
324 2015-11-29  David Edelsohn  <dje.gcc@gmail.com>
325
326         PR target/28115
327         * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
328         recog_memoized test for insn and check recog_memoized for dep_insn.
329
330 2015-11-28  Nathan Sidwell  <nathan@acm.org>
331
332         * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
333         (FRAME_POINTER_CFA_OFFSET): Define.
334         (struct nvptx_args): Use 'tree' type.
335         (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
336
337 2015-11-28  Tom de Vries  <tom@codesourcery.com>
338
339         * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
340
341 2015-11-27  Jonathan Wakely  <jwakely@redhat.com>
342
343         * doc/invoke.texi (Option Summary): Use negative form of
344         -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
345         sort alphabetically and re-justify.
346
347 2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>
348
349         PR rtl-optimization/68536
350         * lra.c (lra_emit_add): Add code for null base.
351         * lra-constraints.c (curr_insn_transform): Skip operators for
352         subreg reloads.
353
354 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
355
356         Revert
357         2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
358
359         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
360         multiple_sets.
361         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
362         are not modified by the final modified insns in the basic blocks.
363
364 2015-11-27  Nathan Sidwell  <nathan@acm.org>
365
366         * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
367         Don't declare.
368         * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
369         (nvptx_maybe_convert_symbolic_operand): Simplify.
370         (nvptx_addr_space_from_address): Delete.
371         (nvptx_print_operand): Adjust 'A' case.
372
373 2015-11-27  Richard Biener  <rguenther@suse.de>
374
375         PR tree-optimization/68559
376         * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
377         peeling for gap checks ...
378         * tree-vect-stmts.c (vectorizable_load): ... here and relax
379         for SLP.
380         * tree-vect-loop.c (vect_analyze_loop_2): Re-set
381         LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
382
383 2015-11-27  Nathan Sidwell  <nathan@acm.org>
384
385         * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
386         declare.
387         * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
388         (nvptx_record_fndecl): Don't return value, remove force
389         argument. Require fndecl.
390         (nvptx_record_libfunc): New.
391         (nvptx_record_needed_decl): Deteermine how to record decl here.
392         (nvptx_maybe_record_fnsym): New.
393         (nvptx_expand_call): Don't record libfuncs here,
394         (nvptx_maybe_convert_symbolic_operand): Use
395         nvptx_maye_record_fnsym.
396         (nvptx_assemble_integer): Reimplement with single switch.
397         (nvptx_output_call_insn): Register libfuncs here.
398         (nvptx_file_end): Adjust  nvptx_record_fndecl call.
399         * config/nvptx/nvptx.md (expand_movdi): Don't call
400         nvptx_record_needed_decl.
401
402 2015-11-27  Richard Biener  <rguenther@suse.de>
403
404         PR tree-optimization/68553
405         * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
406         generation for 1:1 permutations.
407         (vect_transform_slp_perm_load): Detect 1:1 permutations.
408
409 2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>
410
411         * gimple.h (nonbarrier_call_p): Declare.
412         * gimple.c (nonbarrier_call_p): New function.
413         * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
414         Also increment call phase for ASMs with vdef and potential barrier
415         calls.
416
417 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
418
419         * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
420         multiple_sets.
421         (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
422         are not modified by the final modified insns in the basic blocks.
423
424 2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
425
426         PR rtl-optimization/68506
427         * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
428         first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
429         blocks.
430
431 2015-11-27  Martin Liska  <mliska@suse.cz>
432
433         PR c++/68312
434         * vec.h (release_vec_vec): New function.
435
436 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
437
438         PR tree-optimization/68552
439         * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
440         (expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
441         or whether v0 == v1.
442
443 2015-11-27  Martin Liska  <mliska@suse.cz>
444
445         * tree-ssa-uninit.c: Fix whitespaces in the source file.
446         The change is just automatical.
447
448 2015-11-27  Martin Liska  <mliska@suse.cz>
449
450         * tree-chkp.c (chkp_make_static_bounds): Release buffer
451         used for string.
452
453 2015-11-27  Martin Liska  <mliska@suse.cz>
454
455         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
456         Do not release memory for comp_alias_ddrs.
457         * tree-vect-loop.c (destroy_loop_vec_info): Release
458         the memory for all loop_vec_info.
459
460 2015-11-27  Martin Liska  <mliska@suse.cz>
461
462         * ipa-devirt.c (ipa_devirt): Use auto_vec instead
463         of a local-scope vec.
464         (struct final_warning_record): Use auto_vec instead
465         of vec.
466
467 2015-11-27  Richard Biener  <rguenther@suse.de>
468
469         PR tree-optimization/68553
470         * tree-vect-slp.c (vect_get_mask_element): Remove.
471         (vect_transform_slp_perm_load): Implement in a simpler way.
472
473 2015-11-26  Alexandre Oliva <aoliva@redhat.com>
474
475         PR rtl-optimization/67753
476         PR rtl-optimization/64164
477         * function.c (assign_parm_setup_block): Right-shift
478         upward-padded big-endian args when bypassing the stack slot.
479
480 2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
481
482         * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
483         `-mcompact-branches='.
484         (MIPS Options): Likewise.
485
486 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
487
488         * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
489
490 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
491
492         * doc/install.texi (Prerequisites): Increase ISL requirement to
493         0.14 or 0.15.
494
495 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
496
497         * config/aarch64/arm_neon.h
498         (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
499         (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
500         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
501         (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
502         (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
503         (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
504         (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
505         (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
506         (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
507         (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
508         (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
509         (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
510
511 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
512
513         * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
514         (vqrdmlahq_s16, vqrdmlahq_s32): New.
515         (vqrdmlsh_s16, vqrdmlsh_s32): New.
516         (vqrdmlshq_s16, vqrdmlshq_s32): New.
517
518 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
519
520         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
521         ARM_FEATURE_QRDMX.
522
523 2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
524
525         PR debug/53927
526         * tree-nested.c (finalize_nesting_tree_1): Append a field to
527         hold the frame base address.
528         * dwarf2out.c (gen_subprogram_die): Generate for
529         DW_AT_static_link a location description that computes the value
530         of this field.
531
532 2015-11-26  Tom de Vries  <tom@codesourcery.com>
533
534         revert:
535         2015-11-25  Tom de Vries  <tom@codesourcery.com>
536
537         * cfgloop.c (find_single_latch): New function, factored out of ...
538         (flow_loops_find): ... here.
539         (verify_loop_structure): Improve verification of loop->latch.
540         * cfgloop.h (find_single_latch): Declare.
541         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
542
543 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
544
545         * config/aarch64/aarch64-simd-builtins.def:
546         Add missing changes from r230962.
547
548 2015-11-26  Nathan Sidwell  <nathan@acm.org>
549
550         * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
551         arg with name.  Don't deal with split regs.  Tweak formatting.
552         (nvptx_expand_call): Adjust write_func_decl_from_insn call.
553         (nvptx_output_call_insn): Don't deal with split regs here.
554
555 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
556
557         * config/aarch64/aarch64-simd-builtins.def
558         (sqrdmlah, sqrdmlsh): New.
559         (sqrdmlah_lane, sqrdmlsh_lane): New.
560         (sqrdmlah_laneq, sqrdmlsh_laneq): New.
561
562 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
563
564         * config/aarch64/aarch64-simd.md
565         (aarch64_sqmovun<mode>): Fix some white-space.
566         (aarch64_<sur>qmovun<mode>): Likewise.
567         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
568         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
569         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
570         * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
571         (UNSPEC_SQRDMLSH): New.
572         (SQRDMLH_AS): New.
573         (rdma_as): New.
574
575 2015-11-26  Richard Biener  <rguenther@suse.de>
576
577         PR tree-optimization/66721
578         * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
579         iteration cost earlier.  Re-do analysis without SLP when
580         vectorization using SLP fails and without has a chance to succeed.
581
582 2015-11-26  Richard Biener  <rguenther@suse.de>
583
584         * genmatch.c (dt_simplify::gen_1): For generic wrap all
585         multi-result-use captures in a SAVE_EXPR.
586
587 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
588
589         * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
590         (TARGET_SIMD_RDMA): New.
591
592 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
593
594         * combine.c (subst): Do not return clobber of zero in widening mult
595         case.  Just return x unchanged if it is a no-op substitution.
596
597 2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
598
599         PR target/68416
600         * config/i386/i386.h (enum reg_class): Add
601         bounds registers to ALL_REGS.
602
603 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
604
605         PR tree-optimization/68128
606         * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
607         * gimplify.c: Include gimple-walk.h.
608         (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
609         (omp_notice_variable): Set flags to n->value if n already
610         exists in target region, but we need to jump to do_outer.
611         (omp_shared_to_firstprivate_optimizable_decl_p,
612         omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
613         functions.
614         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
615         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
616         not modified in the body.  Call omp_mark_stores for outer
617         contexts on OMP_CLAUSE_SHARED clauses if they could be written
618         in the body or on OMP_CLAUSE_LASTPRIVATE.
619         (gimplify_adjust_omp_clauses): Add body argument, call
620         omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
621         Set OMP_CLAUSE_SHARED_READONLY
622         on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
623         not modified in the body.  Call omp_mark_stores for outer
624         contexts on OMP_CLAUSE_SHARED clauses if they could be written
625         in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
626         without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
627         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
628         gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
629         gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
630         * tree-nested.c (convert_nonlocal_omp_clauses,
631         convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
632         non-local vars or local vars referenced from nested routines.
633         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
634         attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
635         TREE_READONLY, don't call use_pointer_for_field with non-NULL
636         second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
637
638 2015-11-26  Paolo Bonzini <bonzini@gnu.org>
639
640         * doc/implement-c.texi (Integers Implementation): Make GCC's promises
641         about signed left shift stronger and clarify the cases when they're
642         broken.
643
644 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
645             Bernd Schmidt  <bschmidt@redhat.com>
646
647         PR rtl-optimization/67226
648         * calls.c (store_one_arg): Take into account
649         crtl->args.pretend_args_size when checking for overlap between
650         arg->value and argblock + arg->locate.offset during sibcall
651         optimization.
652
653 2015-11-26  Wilco Dijkstra  <wdijkstr@arm.com>
654
655         * config/aarch64/aarch64.md (cbranch<mode>4): Use
656         aarch64_fp_compare_operand.
657         (store_pairsf): Use aarch64_reg_or_fp_zero.
658         (store_pairdf): Likewise.
659         (cstore<mode>4): Use aarch64_fp_compare_operand.
660         (cmov<mode>6): Likewise.
661         * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
662
663 2015-11-25  Aditya Kumar  <aditya.k7@samsung.com>
664             Sebastian Pop  <s.pop@samsung.com>
665
666         PR tree-optimization/68453
667         * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
668         not redirect edges already pointing to their destination.
669         (translate_isl_ast_node_for): Split edges after loops to create
670         basic blocks for close phi nodes.  Save merge points at the end of
671         a loop guard.
672         (translate_isl_ast_node_if): Save merge points at the end of the
673         if region.
674         (add_close_phis_to_outer_loops): New.
675         (add_close_phis_to_merge_points): New.
676         (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
677         (copy_bb_and_scalar_dependences): Do not split basic blocks on
678         loop close phi locations.
679
680 2015-11-25  Jan Hubicka  <jh@suse.cz>
681
682         * ipa-visibility.c (cgraph_externally_visible_p,
683         varpool_node::externally_visible_p): When doing incremental linking,
684         hidden symbols may be still used later.
685         (update_visibility_by_resolution_info): Do not drop weak during
686         incremental link.
687         (function_and_variable_visibility): Fix formating.
688         * flag-types.h (lto_linker_output): Declare.
689         * common.opt 9flag_incremental_link): New flag.
690
691 2015-11-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
692
693         * config/rs6000/constraints.md (wb constraint): New constraint for
694         ISA 3.0 d-form scalar addressing.
695
696         * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
697         for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
698         Altivec registers.  Add wb constraint for Altivec registers with
699         D-form addressing.  If we have ISA 3.0 d-form support, undo
700         secondary reload support for using FPR registers if we want to do
701         D-form addressing.
702         (rs6000_debug_reg_global): Likewise.
703         (rs6000_setup_reg_addr_masks): Likewise.
704         (rs6000_init_hard_regno_mode_ok): Likewise.
705         (rs6000_secondary_reload): Likewise.
706         (rs6000_preferred_reload_class): Likewise.
707         (rs6000_secondary_reload_class): Likewise.
708
709         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
710         constraint.
711
712         * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
713         for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
714         (f32_lm2): Likewise.
715         (f32_li2): Likewise.
716         (f32_sr2): Likewise.
717         (f32_sm2): Likewise.
718         (f32_si2): Likewise.
719         (f64_p9): Likewise.
720         (extendsfdf2_fpr): Likewise.
721         (mov<mode>_hardfloat): Likewise.
722         (mov<mode>_hardfloat32): Likewise.
723         (mov<mode>_hardfloat64): Likewise.
724
725         * doc/md.texi (RS/6000 constraints): Document wb constraint.
726         Fixup we constraint documentation.
727
728 2015-11-25  Tom de Vries  <tom@codesourcery.com>
729
730         * omp-low.c (pass_expand_omp_ssa::clone): New function.
731         * passes.def: Add pass_oacc_kernels pass group.
732         * tree-ssa-loop-ch.c (pass_ch::clone): New function.
733
734 2015-11-25  Tom de Vries  <tom@codesourcery.com>
735
736         * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
737         Declare.
738         * tree-ssa-loop.c (gate_oacc_kernels): New static function.
739         (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
740         (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
741         (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
742
743 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
744
745         * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
746         TV_IPA_LTO_OUTPUT): New.
747         * lto-compress.c: Include timevar.h
748         (lto_end_compression, lto_end_uncompression): Add timers.
749         * langhooks.c: Include timevar.h
750         (lhd_append_data): Add timer.
751
752 2015-11-25  Jan Hubicka  <hubicka@ucw.cz>
753
754         * varasm.c (default_elf_asm_output_limited_string,
755         default_elf_asm_output_ascii): Replace fprintf by putc.
756
757 2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>
758
759         PR rtl-optimization/67954
760         * lra-constraints.c (curr_insn_transform): Add check on scratch
761         pseudo when change class to NO_REGS.  Add an assert.
762
763 2015-11-25  Nathan Sidwell  <nathan@acm.org>
764
765         * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
766         constraint is 'n'.
767         * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
768         number.
769         (nvptx_write_function_decl): Number args from 0.
770         (nvptx_declare_function_name): Likewise.
771         (nvptx_function_incoming_arg): Likewise.
772         (nvptx_output_call_insn): Correct formatting.
773
774 2015-11-25  David Sherwood  <david.sherwood@arm.com>
775
776         * optabs.def: Add new optabs fmax_optab/fmin_optab.
777         * internal-fn.def: Add new fmax/fmin internal functions.
778         * doc/md.texi: Add fmin and fmax patterns.
779
780 2015-11-25  Jason Merrill  <jason@redhat.com>
781
782         PR c++/68385
783         * tree.c (integer_zerop, integer_onep, integer_each_onep)
784         (integer_all_onesp, integer_minus_onep, integer_pow2p)
785         (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
786         (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
787
788 2015-11-25  Richard Biener  <rguenther@suse.de>
789
790         PR middle-end/68528
791         * fold-const.c (fold_binary_loc): Do not call negate_expr_p
792         on stripped operands.
793
794 2015-11-25  Nathan Sidwell  <nathan@acm.org>
795
796         * config/nvptx/nvptx.c (walk_args_for_params): Delete.
797         (nvptx_declare_function_name): Move assignments next to register
798         declarations, and process params here.
799
800 2015-11-25  David Edelsohn  <dje.gcc@gmail.com>
801
802         * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
803         both the symbol and the "dot" symbol for function descriptors. Fix
804         inversion for rename of symbols with dollar sign.
805
806 2015-11-25  Tom de Vries  <tom@codesourcery.com>
807
808         * cfgloop.c (find_single_latch): New function, factored out of ...
809         (flow_loops_find): ... here.
810         (verify_loop_structure): Improve verification of loop->latch.
811         * cfgloop.h (find_single_latch): Declare.
812         * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
813
814 2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
815
816         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
817         (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
818         (STARTFILE_SPEC): Use %(startfile_vtv).
819         (ENDFILE_SPEC): Use %(endfile_vtv).
820         (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
821         ENDFILE_VTV_SPEC.
822
823         * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
824
825 2015-11-25  Bernd Schmidt  <bschmidt@redhat.com>
826
827         * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
828         noce_can_store_speculate): Delete.
829         (noce_process_if_block): Don't try to handle single MEM stores.
830         * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
831         * alias.c (memory_must_be_modified_in_insn_p): Delete.
832
833 2015-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
834
835         PR rtl-optimization/68435
836         * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
837         for conflicts between a, b and the set destinations.
838
839 2015-11-25  Richard Biener  <rguenther@suse.de>
840
841         PR tree-optimization/68517
842         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
843         Properly handle zero-sized types.
844
845 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
846
847         * ipa-inline-analysis.c: Include gimplify.h
848         (set_cond_stmt_execution_predicate,
849         set_switch_stmt_execution_predicate): Be sure to not leak locations
850         to function body.
851
852 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
853
854         PR target/67089
855         * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
856         match_uaddsub_overflow): New functions.
857         (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
858
859 2015-11-25  Richard Biener  <rguenther@suse.de>
860
861         PR tree-optimization/68492
862         * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
863         op from scalars after operand swapping.
864
865 2015-11-25  Richard Biener  <rguenther@suse.de>
866
867         PR tree-optimization/68502
868         * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
869         check that the step is a multiple of the type size.
870
871 2015-11-24  Michael Collison  <michael.collison@linaro.org>
872
873         * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
874         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
875         * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
876
877 2015-11-24  Steve Ellcey  <sellcey@imgtec.com>
878
879         * frame-header-opt.c (gate): Check for optimize > 0.
880         (has_inlined_assembly): New function.
881         (needs_frame_header_p): Remove is_leaf_function check,
882         add argument type check.
883         (callees_functions_use_frame_header): Add is_leaf_function
884         and has_inlined_assembly calls..
885         (set_callers_may_not_allocate_frame): New function.
886         (frame_header_opt): Add is_leaf_function call, add
887         set_callers_may_not_allocate_frame call.
888         * config/mips/mips.c (mips_compute_frame_info): Add check
889         to see if callee saved regs can be put in frame header.
890         (mips_expand_prologue): Add check to see if step1 is zero,
891         fix cfa restores when using frame header to store regs.
892         (mips_can_use_return_insn): Check to see if registers are
893         stored in frame header.
894         * config/mips/mips.h (machine_function): Add
895         callers_may_not_allocate_frame and
896         use_frame_header_for_callee_saved_regs fields.
897
898 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
899
900         PR rtl-optimization/68520
901         * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
902         its bit was already set in BB_WITH.
903
904 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
905
906         * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
907         double check that type is main variant.
908         * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
909         variant.
910         (verify_type_variant): Verify that variants have no
911         TYPE_ALIAS_SET_KNOWN_P set
912         * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
913         streaming so constant fields come first; stream TYPE_ALIAS_SET==0
914         only for main variants; stream TYPE_ALIAS_SET as a bit.
915         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
916         accordingly.
917
918 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
919
920         * tree.c (make_vector_type): Properly compute canonical type of the
921         main variant.
922         (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
923         a main variant.
924
925 2015-11-24  Nathan Sidwell  <nathan@acm.org>
926
927         * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
928         VOIDmode, don't alter incoming mode.
929         (nvptx_split_reg_p): Delete.
930         (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
931         write_func_decl_from_insn, nvptx_output_call_insn): Adjust
932         maybe_split_mode calls.
933         (nvptx_print_operand): Use maybe_split_mode.
934
935 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
936
937         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
938         only for types where LTO sets them.
939         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
940         (make_vector_type): Likewise.
941         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
942         * tree.h (canonical_type_used_p): New inline.
943         * alias.c (get_alias_set): Handle structural equality for all
944         types that pass canonical_type_used_p.
945         (record_component_aliases): Look through all types with
946         record_component_aliases for possible pointers; sanity check that
947         the alias sets match.
948
949 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
950
951         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
952
953 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
954
955         * tree.c (free_node): New function.
956         (type_hash_canon): Use it.
957         * tree.h (free_node): Declare.
958
959 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
960             Michael Meissner  <meissner@linux.vnet.ibm.com>
961
962         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
963         (Fv2): New mode attribute to be used when ISA 2.07 instructions
964         are used on SF values, and ISA 2.06 instructions on DF values.
965         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
966         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
967         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
968         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
969         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
970         (fre<Fs>): Use <Fv2> instead of <Fv>.
971         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
972         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
973         (xsrdpi<mode>): Add support for the lround function.
974         (lround<mode>di2): Likewise.
975         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
976         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
977         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
978         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
979
980 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
981             Sebastian Pop  <s.pop@samsung.com>
982
983         PR tree-optimization/67984
984         * graphite-isl-ast-to-gimple.c (is_constant): New.
985         (get_rename): Call is_constant.
986         (get_new_name): Same.
987
988 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
989             Sebastian Pop  <s.pop@samsung.com>
990
991         * graphite-dependences.c: Only include graphite.h.
992         * graphite-isl-ast-to-gimple.c: Same.
993         * graphite-optimize-isl.c: Same.
994         * graphite-poly.c: Same.
995         * graphite-scop-detection.c: Same.
996         * graphite-sese-to-poly.c: Same.
997         * graphite.c: Same.
998         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
999         * graphite-poly.h: Same.
1000         * graphite-scop-detection.h: Same.
1001         * graphite.h: New.
1002
1003 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
1004
1005         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
1006         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
1007         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
1008         function already takes care of checking what it can emit.
1009
1010 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1011
1012         * doc/invoke.texi (-fpic): Add the AArch64 limit.
1013         (-fPIC): Add AArch64.
1014
1015 2015-11-24  Tom de Vries  <tom@codesourcery.com>
1016
1017         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
1018         (pass_lim::execute): Allow to run outside pass_tree_loop.
1019
1020 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
1021
1022         * config/aarch64/aarch64.md (add<mode>3):
1023         Block early expansion into 2 add instructions.
1024         (add<mode>3_pluslong): New pattern to combine complex
1025         immediates into 2 additions.
1026
1027 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1028
1029         PR target/66217
1030         PR target/67677
1031         PR target/68332
1032         * config/rs6000/predicates.md (and_operand): Check that the operand
1033         is a const_int before calling rs6000_is_valid_and_mask.
1034
1035 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1036
1037         * config/aarch64/aarch64.md (*condjump): Rename to...
1038         (condjump): ... This.
1039         (*compare_condjump<mode>): New define_insn_and_split.
1040         (*compare_cstore<mode>_insn): Likewise.
1041         (*cstore<mode>_insn): Rename to...
1042         (cstore<mode>_insn): ... This.
1043         * config/aarch64/iterators.md (CMP): Handle ne code.
1044         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
1045
1046 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
1047
1048         PR target/68497
1049         * config/i386/i386.c (output_387_binary_op): Fix assertion for
1050         -fno-checking case.
1051
1052 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1053
1054         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
1055         (val_ssa_equiv_hash_traits::remove): Likewise.
1056         (pass_uncprop::execute): Adjust.
1057
1058 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1059
1060         * hash-map-traits.h (simple_hashmap_traits ::remove): call
1061         destructors on values that are being removed.
1062         * mem-stats.h (hash_map): Pass type of values to
1063         simple_hashmap_traits.
1064         * tree-sra.c (sra_deinitialize): Remove work around for hash
1065         maps not destructing values.
1066         * genmatch.c (sinfo_hashmap_traits): Adjust.
1067         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
1068
1069 2015-11-24  Richard Biener  <rguenther@suse.de>
1070             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1071
1072         PR middle-end/68375
1073         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
1074         bogus assertion.
1075
1076 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
1077
1078         PR target/68483
1079         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
1080         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
1081         returns false.
1082         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
1083         whenever first is nelt or above.  Don't mask expected with
1084         2 * nelt - 1.
1085
1086 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
1087
1088         PR c/68337
1089         * gimple-fold.c: Include ipa-chkp.h.
1090         (gimple_fold_builtin_memory_op): Don't fold call if we
1091         are going to instrument it and it may copy pointers.
1092
1093 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
1094             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1095
1096         PR rtl-optimization/68194
1097         PR rtl-optimization/68328
1098         PR rtl-optimization/68185
1099         * ree.c (combine_reaching_defs): Reject copy_needed case if
1100         copies_list is not empty.
1101
1102 2015-11-24  Richard Biener  <rguenther@suse.de>
1103
1104         PR middle-end/68221
1105         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1106         use mem_ref_offset.
1107
1108 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1109
1110         PR rtl-optimization/68381
1111         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
1112         is poisoned.
1113
1114 2015-11-23  Nick Clifton  <nickc@redhat.com>
1115             Jeff Law  <law@redhat.com>
1116
1117         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
1118         the source/dest of the target extension require a different number of
1119         hard registers.
1120         (combine_set_extension): Remove #if 0 code.
1121
1122 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1123             Sebastian Pop  <s.pop@samsung.com>
1124
1125         PR tree-optimization/68314
1126         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
1127         * graphite-poly.c (new_scop): Remove original_schedule.
1128         (free_scop): Same.
1129         * graphite-poly.h (struct scop): Same.
1130         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
1131         (build_pbb_scattering_polyhedrons): Add back.
1132         (build_scop_minimal_scattering): Remove.
1133         (build_scop_scattering): Add back.
1134         (build_scop_original_schedule): Remove.
1135         (build_poly_scop): Revert to only call build_scop_scattering.
1136
1137 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1138             Sebastian Pop  <s.pop@samsung.com>
1139
1140         PR tree-optimization/68493
1141         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
1142         missing early return when codegen_error is set.
1143
1144 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1145             Sebastian Pop  <s.pop@samsung.com>
1146
1147         PR tree-optimization/68279
1148         * graphite-poly.c (new_scop): Remove poly_scop_p.
1149         * graphite-poly.h (struct scop): Same.
1150         (build_poly_scop): Declare.
1151         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
1152         (cleanup_loop_iter_dom): New.
1153         (build_loop_iteration_domains): Early return when scev analysis fails.
1154         (create_pw_aff_from_tree): Same.
1155         (add_condition_to_pbb): Same.
1156         (add_conditions_to_domain): Same.
1157         (add_conditions_to_constraints): Same.
1158         (build_scop_iteration_domain): Same.
1159         (build_poly_scop): Same.  Do not initialize poly_scop_p.
1160         * graphite-sese-to-poly.h: Remove.
1161         * graphite.c: Do not include graphite-sese-to-poly.h.
1162         (graphite_transform_loops): Stop before code generation when
1163         build_poly_scop fails.
1164         * sese.c (scalar_evolution_in_region): Add fixme note about scev
1165         analysis.
1166
1167 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
1168             Sebastian Pop  <s.pop@samsung.com>
1169
1170         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
1171         Remove call to update_ssa.
1172         * sese.c (sese_insert_phis_for_liveouts): Same.
1173
1174 2015-11-23  Marek Polacek  <polacek@redhat.com>
1175
1176         PR tree-optimization/68455
1177         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
1178         extract_range_from_multiplicative_op_1 on symbolic ranges.
1179
1180 2015-11-23  Richard Henderson  <rth@redhat.com>
1181
1182         * optabs.def (uaddv4_optab, usubv4_optab): New.
1183         * internal-fn.c (expand_addsub_overflow): Use them.
1184         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
1185
1186         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
1187         to reversed operands.
1188         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
1189         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
1190         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
1191         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
1192         (*add<SWI>3_cconly_overflow_2): New.
1193         (*add<SWI>3_cc_overflow_2): New.
1194         (*addsi3_zext_cc_overflow_2): New.
1195
1196 2015-11-23  Richard Biener  <rguenther@suse.de>
1197
1198         PR tree-optimization/68465
1199         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
1200         Also record equalities from multiple predecessor blocks if
1201         only one non-backedge exists.
1202
1203 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1204
1205         PR target/68363
1206         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
1207         that are not INSN_P.
1208
1209 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
1210
1211         * config/aarch64/aarch64-builtins.c
1212         (aarch64_gimple_fold_builtin): Fold FMULX.
1213
1214 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
1215
1216         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
1217         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
1218         after GCC header files and before graphite header files.
1219         * graphite-dependences.c: Same.
1220         * graphite-isl-ast-to-gimple.c: Same.
1221         * graphite-optimize-isl.c: Same.
1222         * graphite-poly.c: Same.
1223         * graphite-scop-detection.c: Same.
1224         * graphite-sese-to-poly.c: Same.
1225         * graphite.c: Same.
1226
1227 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
1228             Jiong Wang  <jiong.wang@arm.com>
1229
1230         PR tree-optimization/68317
1231         PR tree-optimization/68326
1232         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
1233         final min and max are not infinity.
1234
1235 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
1236             Richard Biener  <rguenther@suse.de>
1237
1238         PR tree-optimization/68327
1239         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1240         compute vectype for non-relevant mask producers.
1241         * tree-vect-stmts.c (vectorizable_comparison): Check stmt
1242         relevance earlier.
1243
1244 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1245
1246         PR tree-optimization/68460
1247         * tree-parloops.c (gather_scalar_reductions): Also call
1248         free_stmt_vec_info_vec if simple_loop_info == NULL.
1249
1250 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
1251
1252         * opts.c (finish_options): Allow -fsanitize-recover=address for
1253         userspace sanitization.
1254         * asan.c (asan_expand_check_ifn): Redefine recover_p.
1255         * doc/invoke.texi (fsanitize-recover): Update documentation.
1256
1257 2015-11-23  Tom de Vries  <tom@codesourcery.com>
1258
1259         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
1260
1261 2015-11-23  Richard Biener  <rguenther@suse.de>
1262
1263         PR tree-optimization/68445
1264         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
1265         two different strides.
1266
1267 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1268
1269         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
1270         * config/s390/s390.c (s390_check_symref_alignment): Use new
1271         symref flags, early abort on wrong alignment
1272         (s390_secondary_reload): Use new symref flags.
1273         (s390_encode_section_info): Likewise.
1274         * config/s390/predicates.md: Likewise.
1275
1276 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1277
1278         PR target/68390
1279         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
1280         for indirect function call.
1281
1282 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
1283
1284         * config/aarch64/aarch64-simd.md
1285         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
1286         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
1287         (*aarch64_mulx_elt_to_64v2df): Likewise.
1288         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
1289         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
1290         (vmulx_lane_f64): Likewise.
1291         (vmulxq_lane_f32): Refactored & moved.
1292         (vmulxq_lane_f64): Likewise.
1293         (vmulx_laneq_f32): New.
1294         (vmulx_laneq_f64): Likewise.
1295         (vmulxq_laneq_f32): Likewise.
1296         (vmulxq_laneq_f64): Likewise.
1297         (vmulxs_lane_f32): Likewise.
1298         (vmulxs_laneq_f32): Likewise.
1299         (vmulxd_lane_f64): Likewise.
1300         (vmulxd_laneq_f64): Likewise.
1301
1302 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
1303
1304         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
1305         In LTO we do not compute TYPE_CANONICAL of pointers.
1306         (gimple_canonical_types_compatible_p): Improve coments; sanity check
1307         that pointers do not have canonical type that would make us believe
1308         they are different.
1309         * alias.c (get_alias_set): Do structural type equality on pointers;
1310         enable pointer path for LTO; also glob pointer to vector with pointer
1311         to vector element; glob pointers and references for LTO; do more strict
1312         sanity checking about build_pointer_type returning the canonical type
1313         which is also the main variant.
1314         (record_component_aliases): When component type is pointer and we
1315         do LTO; record void_type_node alias set.
1316
1317 2015-11-21  Nathan Sidwell  <nathan@acm.org>
1318
1319         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
1320
1321         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
1322         leading blank line.
1323         (write_func_decl_from_insn): Likewise.
1324         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
1325         (nvptx_file_end): Likewise.
1326         (nvptx_function_end): Undent output.
1327         (nvptx_expand_call): Fix formatting.
1328         (nvptx_output_call_insn): Indent output.
1329         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
1330         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
1331
1332 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
1333
1334         PR debug/66432
1335         * tree-inline.c (copy_debug_stmt): If
1336         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
1337         in decl_debug_args, don't call remap_gimple_op_r on it.
1338
1339 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
1340
1341         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
1342         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
1343         Check that all record types are complete.
1344         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
1345         compare alias sets for types w/o alias sets.
1346
1347 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1348
1349         * config/sparc/sparc.md (umulxhi_vis): Move around.
1350         (*umulxhi_sp64): Likewise.
1351         (umulxhi_v8plus): Likewise.
1352         (xmulx_vis): Likewise.
1353         (*xmulx_sp64): Likewise.
1354         (xmulx_v8plus): Likewise.
1355         (xmulxhi_vis): Likewise.
1356         (*xmulxhi_sp64): Likewise.
1357         (xmulxhi_v8plus): Likewise.
1358
1359 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
1360
1361         PR 62314
1362         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
1363         (class layout): Update comment
1364         (layout::print_any_fixits): New method.
1365         (layout::move_to_column): New method.
1366         (diagnostic_show_locus): Add call to layout.print_any_fixits.
1367
1368 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
1369
1370         PR middle-end/68221
1371         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
1372         has non-zero bias, subtract it in integer type instead of
1373         pointer plus of negated bias.
1374
1375         PR middle-end/68339
1376         * omp-low.c (expand_simd_clones): Call node->get_body () before
1377         allocating stuff in GC.
1378
1379 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
1380
1381         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
1382
1383 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
1384
1385         * config/aarch64/aarch64.md (predicated): Copy attribute from
1386         "arm.md".
1387         * config/arm/arm.md (predicated): Added description.
1388
1389 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1390
1391         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
1392         for unaligned_access.
1393         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
1394         from matching condition.
1395         (unaligned_loadhis): Likewise.
1396         (unaligned_loadhiu): Likewise.
1397         (unaligned_storesi): Likewise.
1398         (unaligned_storehi): Likewise.
1399
1400 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1401
1402         PR target/68149
1403         * config/arm/arm.md (unaligned_loaddi): Delete.
1404         (unaligned_storedi): Likewise.
1405         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
1406         unaligned DImode memory ops.  Instead perform two back-to-back
1407         unaligned SImode ops.
1408
1409 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
1410             James Norris  <jnorris@codesourcery.com>
1411
1412         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
1413         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
1414
1415 2015-11-20  Alan Hayward <alan.hayward@arm.com>
1416
1417         PR tree-optimization/68413
1418         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
1419         evolution base
1420         (vectorizable_reduction): Use cached base
1421
1422 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1423
1424         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
1425         dump-file string.
1426         (try_create_reduction_list): Same.  Fix typo in dump-file string.
1427
1428 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1429
1430         * doc/md.texi (Standard Names): Move entry for addptr3 around,
1431         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
1432         glitch in entries for cbranch4 and jump.
1433
1434 2015-11-20  Tom de Vries  <tom@codesourcery.com>
1435
1436         PR tree-optimization/68373
1437         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
1438         of ...
1439         (scev_const_prop): ... here.
1440         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
1441         * tree-parloops.c (try_create_reduction_list): Call
1442         final_value_replacement_loop.
1443
1444 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
1445
1446         PR tree-optimization/52272
1447         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
1448         (struct iv_common_cand_hasher): New struct.
1449         (iv_common_cand_hasher::hash): New function.
1450         (iv_common_cand_hasher::equal): New function.
1451         (struct ivopts_data): New fields, iv_common_cand_tab and
1452         iv_common_cands.
1453         (tree_ssa_iv_optimize_init): Initialize above fields.
1454         (record_common_cand, common_cand_cmp): New functions.
1455         (add_iv_candidate_derived_from_uses): New function.
1456         (add_iv_candidate_for_use): Record iv_common_cands derived from
1457         iv use in hash table, instead of adding candidates directly.
1458         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
1459         (record_important_candidates): Add important candidates to iv uses'
1460         related_cands.  Always keep related_cands for future use.
1461         (try_add_cand_for): Use iv uses' related_cands.
1462         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
1463         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
1464
1465 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1466
1467         * config/s390/s390.md ("bswaphi2"): New pattern.
1468
1469 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1470
1471         * config/s390/s390.md (GPR1_REGNUM): New constant.
1472         ("*trunc<BFP:mode><DFP_ALL:mode>2")
1473         ("*trunc<DFP_ALL:mode><BFP:mode>2")
1474         ("trunc<BFP:mode><DFP_ALL:mode>2")
1475         ("trunc<DFP_ALL:mode><BFP:mode>2")
1476         ("*extend<BFP:mode><DFP_ALL:mode>2")
1477         ("*extend<DFP_ALL:mode><BFP:mode>2")
1478         ("extend<BFP:mode><DFP_ALL:mode>2")
1479         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
1480
1481 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1482             Sebastian Pop  <s.pop@samsung.com>
1483
1484         PR tree-optimization/68428
1485         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
1486         over basic blocks outside the scop.
1487
1488 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1489             Sebastian Pop  <s.pop@samsung.com>
1490
1491         PR tree-optimization/68341
1492         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
1493         gcc_unreachable and safely fail codegen.
1494         (copy_loop_close_phi_args): Do not insert merge phis in a basic
1495         block with loop phi nodes.
1496         (edge_for_new_close_phis): New.
1497         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
1498
1499 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1500
1501         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
1502         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
1503         (nvptx_declare_objec_name): Likewise.
1504
1505 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
1506
1507         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
1508         (get_false_edge_from_guard_bb): Move...
1509         * sese.c (get_false_edge_from_guard_bb)
1510         (get_true_edge_from_guard_bb): ... here.
1511
1512 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
1513
1514         Revert
1515         2015-11-18  Alan Modra  <amodra@gmail.com>
1516
1517         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1518         type-limits warning.
1519
1520
1521 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1522
1523         * tree.h (desired_pro_or_demotion_p): New function.
1524         * tree-vrp.c (simplify_cond_using_ranges): Call it.
1525
1526 2015-11-19  Michael Matz  <matz@suse.de>
1527
1528         * fwprop.c (update_uses): Use flag_checking instead of
1529         gcc_checking_assert.
1530
1531 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
1532
1533         * doc/gty.texi (Support for inheritance): Fix missing
1534         parentheses in example.
1535
1536 2015-11-19  Marek Polacek  <polacek@redhat.com>
1537
1538         PR tree-optimization/68431
1539         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
1540
1541 2015-11-19  Nathan Sidwell  <nathan@acm.org>
1542
1543         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
1544         atomic_exchange<mode>): Input values can be immediates.
1545
1546 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1547
1548         PR lto/61313
1549         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
1550         by the user.
1551         * configure: Regenerate.
1552
1553 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1554
1555         PR target/68408
1556         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
1557         (DTORS_SECTION_ASM_OP): Likewise.
1558
1559 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1560
1561         PR rtl-optimization/68376
1562         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
1563         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
1564
1565 2015-11-19  Richard Biener  <rguenther@suse.de>
1566
1567         PR middle-end/68117
1568         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
1569         redirect_edge_var_map_destroy.
1570
1571 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
1572
1573         PR target/67770
1574         * config/i386/i386.md (simple_return): Disable if
1575         ix86_static_chain_on_stack is true.
1576
1577 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
1578
1579         PR bootstrap/68393
1580         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
1581         destinations.
1582
1583 2015-11-18  Jeff Law  <law@redhat.com>
1584
1585         PR tree-optimization/68198
1586         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
1587         between threading a multi-way branch and a thread path that contains
1588         a multi-way branch.  Disallow the case where a path contains a
1589         multi-way branch and does not thread a multi-way branch.
1590         (thread_through_all_blocks): Update comment.
1591
1592 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
1593
1594         PR c/65083
1595         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
1596         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
1597         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
1598         functions before defining as macros.
1599
1600 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1601
1602         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
1603         (nvptx_record_offload_symbol): Remove code compensating for lack
1604         of default dimension handling.
1605         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
1606
1607 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1608
1609         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
1610         type to bool for early exit.
1611         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
1612         in case of error.
1613         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
1614         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
1615         predecessor dominates the other.
1616         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
1617         element is not found it returns -1.
1618         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
1619         out early when codegen fails.
1620         (graphite_regenerate_ast_isl): Remove codegen region when pending
1621         phis could not be generated.
1622
1623 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
1624
1625         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
1626         semicolon.
1627         (class translate_isl_ast_to_gimple): Indentation.
1628         (translate_pending_phi_nodes): Comment.
1629         (add_parameters_to_ivs_params): Moved from sese.c inside class
1630         translate_isl_ast_to_gimple.
1631         (get_max_schedule_dimensions): Same.
1632         (generate_isl_context): Same.
1633         (extend_schedule): Same.
1634         (generate_isl_schedule): Same.
1635         (set_options): Same.
1636         (scop_to_isl_ast): Same.
1637         (is_valid_rename): Same.
1638         (get_rename): Same.
1639         (get_rename_from_scev): Same.
1640         (get_def_bb_for_const): Same.
1641         (get_new_name): Same.
1642         (collect_all_ssa_names): Same.
1643         (copy_loop_phi_args): Same.
1644         (copy_loop_phi_nodes): Same.
1645         (copy_loop_close_phi_args): Same.
1646         (copy_loop_close_phi_nodes): Same.
1647         (copy_cond_phi_args): Same.
1648         (copy_cond_phi_nodes): Same.
1649         (graphite_copy_stmts_from_block): Same.
1650         (copy_bb_and_scalar_dependences): Same.
1651         (add_phi_arg_for_new_expr): Same.
1652         (rename_uses): Same.
1653         (set_rename): Same.
1654         (set_rename_for_each_def): Same.
1655         (gsi_insert_earliest): Same.
1656         (rename_all_uses): Same.
1657         (codegen_error_p): Same.
1658         (print_isl_ast_node): Same.
1659         (translate_isl_ast_for_loop): Call function codegen_error_p.
1660         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
1661         (translate_isl_ast_node_user): Make nb_loops const and release
1662         iv_map before exit.
1663         (get_true_edge_from_guard_bb): Move all free-functions early.
1664         (get_false_edge_from_guard_bb): Same.
1665         (bb_contains_loop_close_phi_nodes): Same.
1666         (bb_contains_loop_phi_nodes): Same.
1667         (is_loop_closed_ssa_use):  Same.
1668         (number_of_phi_nodes): Same.
1669         (phi_uses_name): Same.
1670         (later_of_the_two): Same.
1671         (substitute_ssa_name):
1672         (get_edges): Same.
1673         (get_loc): Same.
1674         (get_loop_init_value): Same.
1675         (find_init_value): Same.
1676         (find_init_value_close_phi): Same.
1677         (ast_build_before_for): Same.
1678         (graphite_regenerate_ast_isl): Formatting changes.
1679         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
1680         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
1681         (set_rename): Same.
1682         (gsi_insert_earliest): Same.
1683         (collect_all_ssa_names): Same.
1684         (rename_all_uses): Same.
1685         (rename_uses): Same.
1686         (get_def_bb_for_const): Same.
1687         (copy_loop_phi_nodes): Same.
1688         (copy_loop_close_phi_args): Same.
1689         (copy_loop_close_phi_nodes): Same.
1690         (copy_cond_phi_args): Same.
1691         (copy_cond_phi_nodes): Same.
1692         (set_rename_for_each_def): Same.
1693         (graphite_copy_stmts_from_block): Same.
1694         (copy_bb_and_scalar_dependences): Same.
1695         (if_region_set_false_region): Same.
1696         (scev_analyzable_p): Same.
1697         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
1698
1699 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
1700
1701         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
1702         commit from r125920 for FreeBSD.
1703
1704 2015-11-18  Jason Merrill  <jason@redhat.com>
1705
1706         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
1707         to be vecs of vecs.
1708         (add_finalizer): Split out from ggc_internal_alloc.
1709         (ggc_handle_finalizers): Run finalizers for the current depth.
1710         (init_ggc, ggc_pch_read): Reserve space for finalizers.
1711
1712 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
1713
1714         PR target/68410
1715         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
1716         from || expression.
1717
1718 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1719
1720         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
1721         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
1722         and atmega328pb.
1723         * doc/avr-mmcu.texi: Regenerate.
1724
1725 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1726
1727         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
1728         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
1729         (struct bb_sese): New struct.
1730         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
1731         (BB_GET_SESE, BB_SET_SESE): Define.
1732         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
1733         (nvptx_find_sese): New.
1734         (nvptx_neuter_pars): Find SESE regions when optimizing.
1735
1736 2015-11-18  Alan Modra  <amodra@gmail.com>
1737
1738         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
1739         type-limits warning.
1740
1741 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
1742
1743         PR bootstrap/68406
1744         * hash-set.h (hash_set::traverse): Expand Key typedef.
1745
1746 2015-11-18  Martin Liska  <mliska@suse.cz>
1747
1748         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
1749         options struct.
1750
1751 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1752
1753         * config/nvptx/nvptx.c (global_lock_var): New.
1754         (nvptx_global_lock_addr): New.
1755         (nvptx_lockless_update): Recomment and adjust for clarity.
1756         (nvptx_lockfull_update): New.
1757         (nvptx_reduction_update): New.
1758         (nvptx_goacc_reduction_fini): Call it.
1759
1760 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
1761
1762         * regrename.h (struct du_head): Add target_data_1 and target_data_2
1763         fields.
1764         * regrename.c (create_new_chain): Clear entire struct after allocating.
1765
1766         * config/i386/i386.opt (mmitigate-rop): New option.
1767         * doc/invoke.texi (mmitigate-rop): Document.
1768         * config/i386/i386.c: Include "regrename.h".
1769         (ix86_rop_should_change_byte_p, reg_encoded_number,
1770         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
1771         static functions.
1772         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
1773         * config/i386/i386.md (attr "modrm_class"): New.
1774         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
1775         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
1776         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
1777
1778 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1779
1780         PR target/68405
1781         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
1782
1783 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
1784
1785         PR tree-optimization/68157
1786         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
1787         pow_stmt or mul_stmt from stmt's uid.
1788         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
1789
1790 2015-11-18  Martin Liska  <mliska@suse.cz>
1791
1792         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
1793
1794 2015-11-18  Martin Liska  <mliska@suse.cz>
1795
1796         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1797         Fix GNU coding style.
1798         (find_def_preds): Use auto_vec.
1799         (destroy_predicate_vecs): Change signature of the function.
1800         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
1801         new signature.
1802         (simplify_preds_4): Use destroy_predicate_vecs instread of
1803         just releasing preds vector.
1804         (normalize_preds): Likewise.
1805         (is_use_properly_guarded): Use new signature of
1806         destroy_predicate_vecs.
1807         (find_uninit_use): Likewise.
1808
1809 2015-11-18  Richard Biener  <rguenther@suse.de>
1810
1811         PR tree-optimization/67790
1812         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
1813         IL rewrite for MINUS_EXPR reductions, rename back to ...
1814         (vect_is_simple_reduction): ... this, removing the wrapper.
1815         (vect_force_simple_reduction): Adjust.
1816         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
1817         reductions and make use if reduc_index in all places.  For
1818         the final reduction of MINUS_EXPR use PLUS_EXPR.
1819
1820 2015-11-18  Alan Modra  <amodra@gmail.com>
1821
1822         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
1823         to ld.
1824         * configure: Regenerate.
1825
1826 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1827
1828         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
1829
1830 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1831
1832         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
1833         uses of ssa_name with constant.
1834
1835 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1836
1837         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
1838         something changed.
1839
1840 2015-11-17  Tom de Vries  <tom@codesourcery.com>
1841
1842         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
1843         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
1844         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
1845
1846 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
1847
1848         * regrename.c (regrename_find_superclass): New function, code moved
1849         from ...
1850         (rename_chains): ... here.  Call it.
1851         * regrename.h (regrename_find_superclass): Declare.
1852
1853         * regrename.c (record_out_operands): Terminate earlyclobbered
1854         operands here.
1855
1856         PR target/66785
1857         * regrename.c (record_operand_use): Keep track of failed operands
1858         and stop appending if we see any.
1859         * regrename.h (struct operand_rr_info): Add a failed field and shrink
1860         n_chains to short.
1861
1862 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1863
1864         PR 48568
1865         * doc/extend.texi (Common Function Attributes) [visibility]:
1866         Add cross-references to matching variable and type attributes.
1867         (Common Variable Attributes) [visibility]: Add missing entry.
1868
1869 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1870
1871         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
1872         entries that map directly to optabs.
1873
1874 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1875
1876         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
1877         entries that map directly to optabs.
1878
1879 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1880
1881         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
1882         * internal-fn.c (direct_internal_fn_array): Update accordingly.
1883         * tree-vectorizer.h (vectorizable_function): Delete.
1884         * tree-vect-stmts.c: Include internal-fn.h.
1885         (vectorizable_internal_function): New function.
1886         (vectorizable_function): Inline into...
1887         (vectorizable_call): ...here.  Explicitly reject calls that read
1888         from or write to memory.  Try using an internal function before
1889         falling back on the old vectorizable_function behavior.
1890
1891 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1892
1893         * target.def (builtin_vectorized_function): Take a combined_fn (in
1894         the form of an unsigned int) rather than a function decl.
1895         (builtin_md_vectorized_function): New.
1896         * targhooks.h (default_builtin_vectorized_function): Replace the
1897         fndecl argument with an unsigned int.
1898         (default_builtin_md_vectorized_function): Declare.
1899         * targhooks.c (default_builtin_vectorized_function): Replace the
1900         fndecl argument with an unsigned int.
1901         (default_builtin_md_vectorized_function): New function.
1902         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
1903         New hook.
1904         * doc/tm.texi: Regenerate.
1905         * tree-vect-stmts.c (vectorizable_function): Update call to
1906         builtin_vectorized_function, also passing internal functions.
1907         Call builtin_md_vectorized_function for target-specific builtins.
1908         * config/aarch64/aarch64-protos.h
1909         (aarch64_builtin_vectorized_function): Replace fndecl argument
1910         with an unsigned int.
1911         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
1912         (aarch64_builtin_vectorized_function): Update after above changes.
1913         Use CASE_CFN_*.
1914         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
1915         fndecl argument with an unsigned int.
1916         * config/arm/arm-builtins.c: Include case-cfn-macros.h
1917         (arm_builtin_vectorized_function): Update after above changes.
1918         Use CASE_CFN_*.
1919         * config/i386/i386.c: Include case-cfn-macros.h
1920         (ix86_veclib_handler): Take a combined_fn rather than a
1921         built_in_function.
1922         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
1923         mathfn_built_in rather than calling builtin_decl_implicit directly.
1924         (ix86_builtin_vectorized_function) Update after above changes.
1925         Use CASE_CFN_*.
1926         * config/rs6000/rs6000.c: Include case-cfn-macros.h
1927         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
1928         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
1929         than calling builtin_decl_implicit directly.
1930         (rs6000_builtin_vectorized_function): Update after above changes.
1931         Use CASE_CFN_*.  Move BUILT_IN_MD to...
1932         (rs6000_builtin_md_vectorized_function): ...this new function.
1933         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
1934
1935 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1936
1937         * tree-vect-patterns.c: Include internal-fn.h.
1938         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
1939
1940 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1941
1942         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
1943         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
1944
1945 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1946
1947         * builtins.c (expand_errno_check, expand_builtin_mathfn)
1948         (expand_builtin_mathfn_2): Delete.
1949         (expand_builtin): Remove handling of functions with
1950         internal function equivalents.
1951         * internal-fn.def (SET_EDOM): New internal function.
1952         * internal-fn.h (set_edom_supported_p): Declare.
1953         * internal-fn.c (expand_SET_EDOM): New function.
1954         (set_edom_supported_p): Likewise.
1955         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
1956         Rewrite comment at head of file.
1957         (is_call_dce_candidate): Rename to...
1958         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
1959         or gimple_call_builtin_p here.
1960         (edom_only_function): New function.
1961         (shrink_wrap_one_built_in_call_with_conds): New function, split out
1962         from...
1963         (shrink_wrap_one_built_in_call): ...here.
1964         (can_use_internal_fn, use_internal_fn): New functions.
1965         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
1966         for calls that have an lhs.
1967         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
1968         (pass_call_cdce::execute): Skip blocks that are optimized for size.
1969         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
1970         calls with an lhs.
1971         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
1972         at -O and above.
1973
1974 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1975
1976         * builtins.h (called_as_built_in): Declare.
1977         * builtins.c (called_as_built_in): Make external.
1978         * internal-fn.h (expand_internal_call): Define a variant that
1979         specifies the internal function explicitly.
1980         * internal-fn.c (expand_load_lanes_optab_fn)
1981         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
1982         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
1983         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
1984         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
1985         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
1986         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
1987         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
1988         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
1989         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
1990         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
1991         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
1992         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
1993         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
1994         argument.
1995         (internal_fn_expanders): Update prototype.
1996         (expand_internal_call): Define a variant that specifies the
1997         internal function explicitly. Use it to implement the previous
1998         interface.
1999         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
2000         functions as calls to internal functions.
2001
2002 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2003
2004         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
2005         (generated_files): Likewise.
2006         (s-cfn-operators, cfn-operators.pd): New rules.
2007         (s-match): Depend on cfn-operators.pd.
2008         * gencfn-macros.c: Expand comment to describe -o behavior.
2009         (print_define_operator_list): New function.
2010         (main): Accept -o.  Call print_define_operator_list.
2011         * genmatch.c (main): Add the current directory to the include path.
2012         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
2013         instead.
2014
2015 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2016
2017         * doc/match-and-simplify.texi: Document the "null" identifier.
2018         * genmatch.c (id_base::NULL_ID): New kind.
2019         (null_id): New variable.
2020         (get_operator): Add a parameter that says whether null identifiers
2021         are allowed.
2022         (contains_id): New function.
2023         (lower_for): Skip substitutions that would have a null_id in
2024         either the match or the result.
2025         (parser::parse_for): Allow the null identifier to be used.
2026         (parser::parse_operator_list): Likewise.
2027         (main): Initialize null_id.
2028
2029 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2030
2031         * match.pd: Use HYPOT and COS rather than hypot and cos.
2032         Use CASE_CFN_* macros.  Guard log/exp folds with
2033         SCALAR_FLOAT_TYPE_P.
2034         * genmatch.c (internal_fn): New enum.
2035         (fn_id::fn): Change to an unsigned int.
2036         (fn_id::fn_id): Accept internal_fn too.
2037         (add_builtin): Rename to...
2038         (add_function): ...this and turn into a template.
2039         (get_operator): Only try one variation if the original name fails.
2040         Only add _EXPR if the original name was all lower case.
2041         Try converting internal and built-in function names to their
2042         CFN equivalents.
2043         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
2044         (dt_simplify::gen_1): Likewise.
2045         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
2046         and get_call_combined_fn for generic.
2047         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
2048         (decision_tree::gen): Likewise.
2049         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
2050         Use add_function rather than add_builtin.  Register internal
2051         functions too.
2052         * generic-match-head.c: Include case-cfn-macros.h.
2053         * gimple-fold.c (replace_stmt_with_simplification): Use
2054         gimple_call_combined_fn to test whether we can keep an
2055         existing call.
2056         * gimple-match.h (code_helper): Replace built_in_function
2057         with combined_fn.
2058         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
2059         and case-fn-macros.h.
2060         (gimple_resimplify1): Use fold_const_call.
2061         (gimple_resimplify2, gimple_resimplify3): Likewise.
2062         (build_call_internal, build_call): New functions.
2063         (maybe_push_res_to_seq): Use them.
2064         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
2065         rather than a built-in function.
2066         * tree.h (build_call_expr_internal_loc): Declare.
2067         (maybe_build_call_expr_loc): Likewise.
2068         * tree.c (build_call_expr_internal_loc_array): New function.
2069         (maybe_build_call_expr_loc): Likewise.
2070
2071 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2072
2073         * builtins.h (mathfn_built_in): Add a variant that takes
2074         a combined_fn.
2075         * builtins.c: Include case-cfn-macros.h.
2076         (CASE_MATHFN): Use CASE_CFN_*.
2077         (CASE_MATHFN_REENT): Use CFN_ codes.
2078         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
2079         argument with a combined_fn.
2080         (mathfn_built_in): Add a variant that takes a combined_fn.
2081         (expand_builtin_int_roundingfn_2): Update callers accordingly.
2082         (fold_builtin_sincos, fold_builtin_classify): Likewise.
2083
2084 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2085
2086         * tree-vect-patterns.c: Include case-cfn-macros.h.
2087         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
2088
2089 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2090
2091         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
2092         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
2093         (pass_cse_sincos::execute): Likewise.
2094
2095 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2096
2097         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
2098         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
2099         (decrement_power, acceptable_pow_call): Likewise.
2100         (attempt_builtin_copysign): Likewise.
2101
2102 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2103
2104         * tree-vrp.c: Include case-cfn-macros.h.
2105         (extract_range_basic): Switch on combined_fn rather than handling
2106         built-in functions and internal functions separately.
2107
2108 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2109
2110         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
2111         than a built_in_function.
2112         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2113         a function decl.
2114         (integer_valued_real_call_p): Likewise.
2115         * fold-const.c: Include case-cfn-macros.h
2116         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
2117         (negate_expr_p): Update accordingly.
2118         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
2119         a function decl.
2120         (integer_valued_real_call_p): Likewise.
2121         (tree_invalid_nonnegative_warnv_p): Update accordingly.
2122         (integer_valued_real_p): Likewise.
2123         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
2124         to tree_call_nonnegative_warnv_p.
2125         (gimple_call_integer_valued_real_p): Likewise
2126         integer_valued_real_call_p.
2127         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
2128         (backprop::process_builtin_call_use): Extend to combined_fn.
2129         (strip_sign_op_1): Likewise.
2130         (backprop::process_use): Don't check for built-in calls here.
2131         (backprop::execute): Likewise.
2132         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
2133
2134 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2135
2136         * fold-const-call.h (fold_const_call): Replace built_in_function
2137         arguments with combined_fn arguments.
2138         * fold-const-call.c: Include case-cfn-macros.h.
2139         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
2140         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
2141         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
2142         built_in_function arguments with combined_fn arguments.
2143         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
2144         (fold_builtin_3): Update calls to fold_const_call.
2145
2146 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2147
2148         * Makefile.in (HASH_TABLE_H): Add GGC_H.
2149         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
2150         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
2151         (build/gencfn-macros$(build_exeext): New rules.
2152         (genprogerr): Add cfn-macros.
2153         * hash-set.h (hash_set): Use the traits value_type as the key.
2154         * gencfn-macros.c: New file.
2155
2156 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2157
2158         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
2159         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
2160         * builtins.c (associated_internal_fn): Handle them.
2161
2162 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2163
2164         * builtins.h (associated_internal_fn): Declare.
2165         (replacement_internal_fn): Likewise.
2166         * builtins.c: Include internal-fn.h
2167         (associated_internal_fn, replacement_internal_fn): New functions.
2168         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
2169         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
2170         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
2171         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
2172         (LDEXP): New functions.
2173         * internal-fn.c: Include recog.h.
2174         (unary_direct, binary_direct): New macros.
2175         (expand_direct_optab_fn): New function.
2176         (expand_unary_optab_fn): New macro.
2177         (expand_binary_optab_fn): Likewise.
2178         (direct_unary_optab_supported_p): Likewise.
2179         (direct_binary_optab_supported_p): Likewise.
2180
2181 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2182
2183         * coretypes.h (tree_pair): New type.
2184         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
2185         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
2186         * internal-fn.h (direct_internal_fn_info): New structure.
2187         (direct_internal_fn_array): Declare.
2188         (direct_internal_fn_p, direct_internal_fn): New functions.
2189         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
2190         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
2191         (mask_store_direct, store_lanes_direct): New macros.
2192         (direct_internal_fn_array) New array.
2193         (get_multi_vector_move): Return the optab handler without asserting
2194         that it is available.
2195         (expand_LOAD_LANES): Rename to...
2196         (expand_load_lanes_optab_fn): ...this and add an optab argument.
2197         (expand_STORE_LANES): Rename to...
2198         (expand_store_lanes_optab_fn): ...this and add an optab argument.
2199         (expand_MASK_LOAD): Rename to...
2200         (expand_mask_load_optab_fn): ...this and add an optab argument.
2201         (expand_MASK_STORE): Rename to...
2202         (expand_mask_store_optab_fn): ...this and add an optab argument.
2203         (direct_internal_fn_types, direct_optab_supported_p)
2204         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
2205         (direct_internal_fn_supported_p): New functions.
2206         (direct_mask_load_optab_supported_p): New macro.
2207         (direct_load_lanes_optab_supported_p): Likewise.
2208         (direct_mask_store_optab_supported_p): Likewise.
2209         (direct_store_lanes_optab_supported_p): Likewise.
2210
2211 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
2212
2213         * tree-core.h (internal_fn): Move immediately after the definition
2214         of built_in_function.
2215         (combined_fn): New enum.
2216         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
2217         (internal_fn_p, as_internal_fn): New functions.
2218         (get_call_combined_fn, combined_fn_name): Declare.
2219         * tree.c (get_call_combined_fn): New function.
2220         (combined_fn_name): Likewise.
2221         * gimple.h (gimple_call_combined_fn): Declare.
2222         * gimple.c (gimple_call_combined_fn): New function.
2223
2224 2015-11-17  Martin Sebor  <msebor@redhat.com>
2225
2226         PR c++/68308
2227         * cp/init.c (build_new_1): Check for expression constness
2228         the right way.
2229
2230 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
2231
2232         PR target/53587
2233         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
2234         option list.
2235         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
2236         discussion of the Microsoft structure layout details here from
2237         its former home in extend.texi.
2238         * doc/extend.texi (x86 Variable Attributes): Replace detailed
2239         discussion with pointer to its new location.  Add cross-reference
2240         to corresponding type attributes.
2241         (x86 Type Attributes): Add cross-references to command-line options
2242         and variable attributes.
2243
2244 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
2245
2246         PR middle-end/68134
2247         * targhooks.c (default_get_mask_mode): Filter out
2248         scalar modes returned by mode_for_vector.
2249
2250 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2251
2252         PR target/68143
2253         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
2254         offset from dstbase and use it appropriately in
2255         adjust_automodify_address.
2256         (arm_block_set_aligned_vect): Likewise.
2257
2258 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2259
2260         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
2261         (MULTILIB_DIRNAMES): Adjust accordingly.
2262
2263 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
2264
2265         * config/aarch64/aarch64-cores.def (cortex-a35): New.
2266         * config/aarch64/aarch64.c (cortexa35_tunings): New.
2267         * config/aarch64/aarch64-tune.md: Regenerate.
2268         * doc/invoke.texi (-mcpu): Add Cortex-A35
2269
2270 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
2271
2272         PR target/68263
2273         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
2274         to 32 for IAMCU.
2275         * config/i386/sse.md (*mov<mode>_internal): Always enable
2276         AVX and SSE unaligned moves for IAMCU.
2277
2278 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
2279
2280         * tree-if-conv.c: Include varasm.h
2281         (ref_DR_map): Define.
2282         (baseref_DR_map): Like wise
2283         (struct ifc_dr): Add new tree predicate field.
2284         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
2285         (memrefs_read_or_written_unconditionally): Remove.
2286         (write_memrefs_written_at_least_once): Remove.
2287         (ifcvt_memrefs_wont_trap): Use hash maps to query
2288         unconditional read/written information.
2289         (if_convertible_loop_p_1):  Initialize hash maps and predicates
2290         before hashing data references and delete hashmaps at the end.
2291
2292 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
2293
2294         PR 56036
2295         * doc/invoke.texi (Optimize Options): Move @end table to the right
2296         place.
2297
2298 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
2299
2300         PR 65129
2301         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
2302         return value.
2303
2304 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
2305
2306         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
2307         128-bit types, just types that fit in a single vector.
2308         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
2309
2310 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
2311
2312         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
2313         in the user documentation.
2314         (define_peephole2, define_split): Similarly.
2315
2316 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
2317
2318         * lto-streamer-out.c (write_global_references): Adjust integer type.
2319         (lto_output_decl_state_refs): Likewise.
2320
2321 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2322
2323         * config/arm/arm-cores.def (cortex-a35): New.
2324         * config/arm/arm.c (arm_cortex_a35_tune): New.
2325         * config/arm/arm-tables.opt: Regenerate.
2326         * config/arm/arm-tune.md: Regenerate.
2327         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
2328         * config/arm/t-aprofile: Likewise.
2329         * doc/invoke.texi (-mcpu): Likewise.
2330
2331 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
2332
2333         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
2334         and qdf24xx and xgene1 to match -march=armv8-a.
2335
2336 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
2337
2338         PR rtl-optimization/68330
2339         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
2340         of LSHIFTRT by a non-zero constant integer.
2341
2342 2015-11-16  Richard Biener  <rguenther@suse.de>
2343
2344         PR tree-optimization/68306
2345         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
2346         bogus copying from verify_data_ref_alignment and use continue
2347         instead of return.
2348
2349 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
2350             Kaz Kojima  <kkojima@gcc.gnu.org>
2351
2352         PR target/68277
2353         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
2354         operands[2].
2355         (*addsi3): Add another insn_and_split variant for reload.
2356
2357 2015-11-16  Richard Biener  <rguenther@suse.de>
2358
2359         PR middle-end/68117
2360         * cfgexpand.c (pass_expand::execute): Destroy the edge
2361         redirection var map before setting RTL CFG hooks.
2362
2363 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
2364
2365         * config/i386/sse.md (reduc_splus_v8df): Rename to...
2366         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
2367
2368         (reduc_splus_v4df): Rename to...
2369         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
2370
2371         (reduc_splus_v2df): Rename to...
2372         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
2373
2374         (reduc_splus_v16sf): Rename to...
2375         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
2376
2377         (reduc_splus_v8sf): Rename to...
2378         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
2379
2380         (reduc_splus_v4sf): Rename to...
2381         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
2382
2383         (reduc_<code>_<mode>, all 3 variants): Rename each to...
2384         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
2385
2386         (reduc_umin_v8hf): Rename to...
2387         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
2388
2389 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
2390
2391         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
2392         without additional conditions.
2393         * doc/extend.texi (@item simd): New.
2394
2395 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2396
2397         * passes.c (first_pass_instance): Remove variable.
2398         (execute_todo): Remove setting of first_pass_instance.
2399         * tree-pass.h (first_pass_instance): Remove declaration.
2400
2401 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2402
2403         * passes.def: Add arg to pass_ccp pass instantiation.
2404         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
2405         instead of first_pass_instance.
2406         (do_ssa_ccp): Add and handle param nonzero_p.
2407         (pass_ccp::pass_ccp): Initialize nonzero_p.
2408         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
2409         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
2410         (pass_ccp::nonzero_p): New private member.
2411
2412 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2413
2414         * passes.def: Add arg to pass_object_sizes pass instantiation.
2415         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
2416         insert_min_max_p.
2417         (pass_object_sizes::set_pass_param): New member function.  Set
2418         insert_min_max_p.
2419         (pass_object_sizes::insert_min_max_p): New private member.
2420         (pass_object_sizes::execute): Use insert_min_max_p instead of
2421         first_pass_instance.
2422
2423 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2424
2425         * passes.def: Add arg to pass_dominator pass instantiation.
2426         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
2427         of comment.
2428         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
2429         may_peel_loop_headers_p.
2430         (pass_dominator::set_pass_param): New member function.  Set
2431         may_peel_loop_headers_p.
2432         (pass_dominator::may_peel_loop_headers_p): New private member.
2433         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
2434         first_pass_instance.
2435
2436 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2437
2438         * passes.def: Add arg to pass_reassoc pass instantiation.
2439         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
2440         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
2441         of first_pass_instance.
2442         (execute_reassoc): Add and handle insert_powi_p parameter.
2443         (pass_reassoc::insert_powi_p): New private member.
2444         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
2445         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
2446         (pass_reassoc::execute): Call execute_reassoc with extra arg.
2447
2448 2015-11-16  Tom de Vries  <tom@codesourcery.com>
2449
2450         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
2451         * gen-pass-instances.awk (handle_line): Same.
2452         * pass_manager.h (class pass_manager): Define and undefine
2453         NEXT_PASS_WITH_ARG.
2454         * passes.c (opt_pass::set_pass_param): New function.
2455         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
2456         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
2457         * tree-pass.h (gimple_opt::set_pass_param): Declare.
2458         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
2459         warn_array_bounds_p parameter.
2460         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
2461         (pass_vrp::set_pass_param): New function.
2462         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
2463         (pass_vrp::warn_array_bounds_p): New private member.
2464
2465 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2466
2467         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
2468         (output_probe_stack_range): Rotate the loop and simplify.
2469
2470 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2471
2472         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
2473         (output_probe_stack_range): Rotate the loop and simplify.
2474
2475 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2476
2477         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
2478         an lea instruction when possible.
2479         (output_adjust_stack_and_probe): Rotate the loop and simplify.
2480         (ix86_emit_probe_stack_range): Adjust.
2481         (output_probe_stack_range): Rotate the loop and simplify.
2482
2483 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2484
2485         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
2486         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
2487         with appropriate pragma GCC target.
2488
2489 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2490
2491         PR target/65837
2492         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
2493         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
2494
2495 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
2496
2497         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
2498         (cortexa57_tunings): Use it.
2499
2500 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2501
2502         PR target/65837
2503         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
2504         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
2505         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
2506         undefine __ARM_FP.
2507         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
2508         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
2509         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
2510         * doc/extend.texi (-mfpu=): Describe attribute.
2511
2512 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2513
2514         PR target/65837
2515         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
2516         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
2517         arm_init_neon_builtins.
2518         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
2519         (arm_init_neon_builtins_internal)
2520         (arm_init_crypto_builtins_internal):
2521         Test and set neon_set_p, neon_crypto_set_p.
2522         (neon_set_p, neon_crypto_set_p): New static booleans.
2523
2524 2015-11-16  Christian Bruel  <christian.bruel@st.com>
2525
2526         PR target/65837
2527         * config/arm/arm.c (arm_fpu_desc): Remove.
2528         (all_fpus): Make global.
2529         (arm_option_override): Use FPU TARGET accessors.
2530         (arm_declare_function_name): Likewise.
2531         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
2532         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
2533         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
2534         (TARGET_NEON): Likewise.
2535         (all_fpus): Declare extern.
2536         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
2537         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
2538
2539 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2540
2541         PR middle-end/68366
2542         * sdbout.c: Include emit-rtl.h and function.h.
2543
2544 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
2545
2546         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
2547         Remove support for FreeBSD 5 and earlier.
2548
2549 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2550
2551         * configure: Regenerate.
2552         * configure.ac: Always define ENABLE_OFFLOADING.
2553         * cgraph.c (cgraph_node::create): Adjust.
2554         * gcc.c (process_command): Likewise.
2555         * omp-low.c (create_omp_child_function): Likewise.
2556         (expand_omp_target): Likewise.
2557         * varpool.c (varpool_node::get_create): Likewise.
2558
2559 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2560
2561         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
2562         * df-scan.c (df_get_exit_block_use_set): Adjust.
2563         * except.c (expand_eh_return): Likewise.
2564
2565 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2566
2567         * config/i386/i386.h (TARGET_PECOFF): Remove define.
2568         * defaults.h (TARGET_PECOFF): New default definition.
2569         * varasm.c (handle_vtv_comdat_section): Adjust.
2570
2571 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2572
2573         * defaults.h: New definition of SDB_DEBUGGING_INFO.
2574         * doc/tm.texi: Regenerate.
2575         * doc/tm.texi.in: Adjust.
2576         * final.c (rest_of_clean_state): Remove check if
2577         SDB_DEBUGGING_INFO is defined.
2578         * function.c (number_blocks): Likewise.
2579         * output.h: Likewise.
2580         * sdbout.c: Likewise.
2581         * toplev.c (process_options): Likewise.
2582
2583 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2584
2585         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
2586         (enum sdb_masks): Likewise.
2587         * sdbout.c (plain_type_1): Likewise.
2588         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
2589
2590 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
2591
2592         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
2593         internal calls - 0 if ordered simd and 1 for ordered threads simd.
2594         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
2595         argument is 1, replace it with GOMP_ordered_* call instead of removing
2596         it.
2597
2598 2015-11-13  Rich Felker <dalias@libc.org>
2599
2600         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
2601         address loading hack for FDPIC targets.
2602
2603 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
2604             Jeff Law  <law@redhat.com>
2605
2606         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
2607         * common.opt (-fsplit-paths): New flag controlling path splitting.
2608         * doc/invoke.texi (fsplit-paths): Document.
2609         * opts.c (default_options_table): Add -fsplit-paths to -O2.
2610         * passes.def: Add split_paths pass.
2611         * timevar.def (TV_SPLIT_PATHS): New timevar.
2612         * tracer.c: Include "tracer.h"
2613         (ignore_bb_p): No longer static.
2614         (transform_duplicate): New function, broken out of tail_duplicate.
2615         (tail_duplicate): Use transform_duplicate.
2616         * tracer.h (ignore_bb_p): Declare
2617         (transform_duplicate): Likewise.
2618         * tree-pass.h (make_pass_split_paths): Declare.
2619         * gimple-ssa-split-paths.c: New file.
2620
2621 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
2622             Marek Polacek  <polacek@redhat.com>
2623             Jason Merrill  <jason@redhat.com>
2624
2625         * convert.c (maybe_fold_build1_loc): New.
2626         (maybe_fold_build2_loc): New.
2627         (convert_to_pointer_1): Split out from convert_to_pointer.
2628         (convert_to_pointer_nofold): New.
2629         (convert_to_real_1): Split out from convert_to_real.
2630         (convert_to_real_nofold): New.
2631         (convert_to_integer_1): Split out from convert_to_integer.
2632         (convert_to_integer_nofold): New.
2633         (convert_to_complex_1): Split out from convert_to_complex.
2634         (convert_to_complex_nofold): New.
2635         * convert.h: Declare new functions.
2636         * tree-complex.c (create_one_component_var): Break up line to
2637         avoid sequence point issues.
2638
2639 2015-11-13  Jason Merrill  <jason@redhat.com>
2640
2641         * fold-const.c (fold_convert_const): Fold changing cv-quals on
2642         VECTOR_CST.
2643
2644         * hash-map.h (hash_map::empty): New.
2645
2646 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2647
2648         * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
2649         (oacc_loop_fixed_partitions): Correct return type to bool.
2650         (oacc_loop_auto_partitions): New.
2651         (oacc_loop_partition): Take mask argument, call
2652         oacc_loop_auto_partitions.
2653         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
2654
2655 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2656
2657         * config/rs6000/constraints.md (we constraint): New constraint for
2658         64-bit power9 vector support.
2659         (wL constraint): New constraint for the element in a vector that
2660         can be addressed by the MFVSRLD instruction.
2661
2662         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
2663         declaration.
2664         (convert_int_to_float128): Likewise.
2665         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
2666         hardware support for IEEE 128-bit floating point.
2667         (rs6000_expand_float128_convert): Likewise.
2668         (convert_float128_to_int): Likewise.
2669         (convert_int_to_float128): Likewise.
2670
2671         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
2672         ISA 3.0 hardware IEEE 128-bit floating point.
2673         (UNSPEC_IEEE128_MOVE): Likewise.
2674         (UNSPEC_IEEE128_CONVERT): Likewise.
2675         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
2676         (Ff): Add support for DImode.
2677         (Fv): Likewise.
2678         (any_fix code iterator): New and updated iterators for IEEE
2679         128-bit floating point hardware support.
2680         (any_float code iterator): Likewise.
2681         (s code attribute): Likewise.
2682         (su code attribute): Likewise.
2683         (az code attribute): Likewise.
2684         (uns code attribute): Likewise.
2685         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
2686         floating point hardware support.
2687         (abs<mode>2, FLOAT128 iterator): Likewise.
2688         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
2689         floating point hardware.
2690         (sub<mode>3, IEEE128 iterator): Likewise.
2691         (mul<mode>3, IEEE128 iterator): Likewise.
2692         (div<mode>3, IEEE128 iterator): Likewise.
2693         (copysign<mode>3, IEEE128 iterator): Likewise.
2694         (sqrt<mode>2, IEEE128 iterator): Likewise.
2695         (neg<mode>2, IEEE128 iterator): Likewise.
2696         (abs<mode>2, IEEE128 iterator): Likewise.
2697         (nabs<mode>2, IEEE128 iterator): Likewise.
2698         (fma<mode>4_hw, IEEE128 iterator): Likewise.
2699         (fms<mode>4_hw, IEEE128 iterator): Likewise.
2700         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
2701         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
2702         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
2703         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
2704         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
2705         (fix_fixuns code attribute): Likewise.
2706         (float_floatuns code attribute): Likewise.
2707         (fix<uns>_<mode>si2_hw): Likewise.
2708         (fix<uns>_<mode>di2_hw): Likewise.
2709         (float<uns>_<mode>si2_hw): Likewise.
2710         (float<uns>_<mode>di2_hw): Likewise.
2711         (xscvqp<su>wz_<mode>): Likewise.
2712         (xscvqp<su>dz_<mode>): Likewise.
2713         (xscv<su>dqp_<mode): Likewise.
2714         (ieee128_mfvsrd): Likewise.
2715         (ieee128_mfvsrwz): Likewise.
2716         (ieee128_mtvsrw): Likewise.
2717         (ieee128_mtvsrd): Likewise.
2718         (trunc<mode>df2_odd): Likewise.
2719         (cmp<mode>_h): Likewise.
2720         (128-bit GPR splitters): Don't split a 128-bit move that is a
2721         direct move between GPR and vector registers using ISA 3.0 direct
2722         move instructions.
2723         (maddld4): Add support for the ISA 3.0 integer multiply-add
2724         instruction.
2725
2726         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
2727         debugging.
2728         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
2729         constraint.  Disable the VSX<->GPR direct move helpers if we have
2730         the MFVSRLD and MTVSRDD instructions.
2731         (rs6000_secondary_reload_simple_move): Add support for doing
2732         vector direct moves directly without additional scratch registers
2733         if we have ISA 3.0 instructions.
2734         (rs6000_secondary_reload_direct_move): Update comments.
2735         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
2736         instructions.
2737
2738         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
2739         direct move instructions.
2740         (vsx_movti_64bit): Likewise.
2741         (vsx_extract_<mode>): Likewise.
2742
2743         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
2744         macros for ISA 3.0 direct move instructions.
2745         (TARGET_DIRECT_MOVE_128): Likewise.
2746         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
2747         instruction.
2748
2749         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
2750         constraints.  Update wa documentation to say not to use %x<n> on
2751         instructions that only take Altivec registers.
2752
2753 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2754
2755         * Makefile.in (OBJS): Add gcc-rich-location.o.
2756         * diagnostic.c (diagnostic_append_note): Pass line_table to
2757         rich_location ctor.
2758         (emit_diagnostic): Likewise.
2759         (inform): Likewise.
2760         (inform_n): Likewise.
2761         (warning): Likewise.
2762         (warning_at): Likewise.
2763         (warning_n): Likewise.
2764         (pedwarn): Likewise.
2765         (permerror): Likewise.
2766         (error): Likewise.
2767         (error_n): Likewise.
2768         (error_at): Likewise.
2769         (sorry): Likewise.
2770         (fatal_error): Likewise.
2771         (internal_error): Likewise.
2772         (internal_error_no_backtrace): Likewise.
2773         (source_range::debug): Likewise.
2774         * gcc-rich-location.c: New file.
2775         * gcc-rich-location.h: New file.
2776         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
2777         (warning_at): Likewise.
2778         * gimple.h (gimple_set_block): Use set_block function.
2779         * input.c (dump_line_table_statistics): Dump stats on how many
2780         ranges were optimized vs how many needed ad-hoc table.
2781         (write_digit_row): Add "map" param; use its range_bits
2782         to calculate the per-character offset.
2783         (dump_location_info): Print the range and column bits for each
2784         ordinary map.  Use the range bits to calculate the per-character
2785         offset.  Pass the map as a new param to the various calls to
2786         write_digit_row.  Eliminate uses of
2787         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
2788         * print-tree.c (print_node): Print any source range information.
2789         * rtl-error.c (diagnostic_for_asm): Likewise.
2790         * toplev.c (general_init): Initialize line_table's
2791         default_range_bits.
2792         * tree-cfg.c (move_block_to_fn): Likewise.
2793         (move_block_to_fn): Likewise.
2794         * tree-inline.c (copy_phis_for_bb): Likewise.
2795         * tree.c (tree_set_block): Likewise.
2796         (get_pure_location): New function.
2797         (set_source_range): New functions.
2798         (set_block): New function.
2799         (set_source_range): New functions.
2800         * tree.h (CAN_HAVE_RANGE_P): New.
2801         (EXPR_LOCATION_RANGE): New.
2802         (EXPR_HAS_RANGE): New.
2803         (get_expr_source_range): New inline function.
2804         (DECL_LOCATION_RANGE): New.
2805         (set_source_range): New decls.
2806         (get_decl_source_range): New inline function.
2807
2808 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
2809
2810         PR tree-optimization/67682
2811         * tree-vect-slp.c (vect_split_slp_store_group): New.
2812         (vect_analyze_slp_instance): During basic block SLP, recurse on
2813         subgroups if vect_build_slp_tree fails after 1st vector.
2814
2815 2015-11-13  Christian Bruel  <christian.bruel@st.com>
2816
2817         PR target/65837
2818         * config/arm/arm.c (arm_option_override): Move NEON check...
2819         (arm_option_check_internal): here
2820         (arm_file_start): Move .fpu print...
2821         (arm_declare_function_name): here
2822         (arm_option_print): Dump current fpu name.
2823         * config/arm/arm.opt (arm_fpu_index): Mark Save.
2824
2825 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
2826             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2827
2828         * combine.c (subst): Don't substitute or simplify when
2829         handling register-wise widening multiply.
2830         (force_to_mode): Likewise.
2831
2832 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
2833
2834         PR tree-optimization/68264
2835         * tree-call-cdce.c (gen_one_condition): Update commentary.
2836         (gen_conditions_for_pow_int_base): Invert the sense of the tests
2837         passed to gen_one_condition.
2838         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
2839         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
2840         using EDGE_FALSE_VALUE for edges to the call block and
2841         EDGE_TRUE_VALUE for the others.
2842
2843 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2844
2845         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
2846         complex types.
2847
2848 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2849
2850         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
2851
2852 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2853
2854         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
2855         len_of_prefix.
2856
2857 2015-11-13  Tom de Vries  <tom@codesourcery.com>
2858
2859         * gen-pass-instances.awk (handle_line): Add args_str variable.
2860
2861 2015-11-13  Martin Liska  <mliska@suse.cz>
2862
2863         * graphite-poly.c (free_scop): Release scop->drs vector.
2864         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
2865         Release dom vector.
2866         (try_generate_gimple_bb): Use vNULL as a default initialization
2867         for vectors.
2868
2869 2015-11-13  Martin Liska  <mliska@suse.cz>
2870
2871         PR ipa/68311
2872         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
2873         Replace array initialization (using a variable post-increment)
2874         that possible triggers multiple unsequenced modifications
2875         with a pair of pushes to a vector.
2876
2877 2015-11-13  Richard Biener  <rguenther@suse.de>
2878
2879         PR tree-optimization/68306
2880         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
2881         loop related checks ...
2882         (vect_verify_datarefs_alignment): ... here.
2883         (vect_slp_analyze_and_verify_node_alignment): Compute and
2884         verify alignment of the single DR that it matters.
2885         * tree-vect-stmts.c (vectorizable_store): Add an assert.
2886         (vectorizable_load): Add a comment.
2887         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
2888         for determining load cost.
2889
2890 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2891
2892         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
2893         mix of boolean and integer vectors in a single statement.
2894         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
2895         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
2896         determine constant type.
2897         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
2898         for loop invariants.
2899
2900 2015-11-13  Alan Hayward <alan.hayward@arm.com>
2901
2902         PR tree-optimization/66558
2903         * tree-vect-loop.c (is_integer_induction):Add.
2904         (vectorizable_reduction): Add integer induction checks.
2905
2906 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
2907
2908         Revert [ARM] Remove neon-testgen.ml and generated tests.
2909
2910         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
2911
2912         [ARM] Remove neon-testgen.ml and generated tests.
2913
2914         * config/arm/neon-testgen.ml: Remove.
2915
2916 2015-11-13  Richard Biener  <rguenther@suse.de>
2917
2918         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
2919         Signal fatal failure if early checks fail.
2920         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
2921         do not bother testing further vector sizes.
2922
2923 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
2924
2925         * config/i386/predicates.md (misaligned_operand): Return true if
2926         operand is aligned to less than its natural alignmnet.
2927
2928 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2929
2930         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
2931         (vec_cmpu@var{m}@var{n}): New item.
2932         (vcond@var{m}@var{n}): Specify comparison is signed.
2933         (vcondu@var{m}@var{n}): New item.
2934         (vcond_mask_@var{m}@var{n}): New item.
2935         (maskload@var{m}@var{n}): New item.
2936         (maskstore@var{m}@var{n}): New item.
2937
2938 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2939
2940         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
2941         types of stored value and storage are compatible.
2942
2943 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
2944
2945         * gcc.c (POST_LINK_SPEC): Define if not already defined.
2946         (LINK_COMMAND_SPEC): Use post_link.
2947         (post_link_spec): New, initialize to POST_LINK_SPEC.
2948         (post_link): Initialize new static spec.
2949         * doc/tm.texi.in (POST_LINK_SPEC): Document.
2950         * doc/tm.texi: Regenerated.
2951
2952 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2953
2954         PR driver/67613
2955         * Makefile.in (GCC_OBJS): Add spellcheck.o.
2956         (OBJS): Add spellcheck-tree.o.
2957         * gcc.c: Include "spellcheck.h".
2958         (suggest_option): New function.
2959         (driver::handle_unrecognized_options): Call suggest_option to
2960         provide a hint about misspelled options.
2961         * spellcheck.c: Update file comment.
2962         (levenshtein_distance): Convert 4-param implementation from static
2963         to extern scope.  Remove note about unit tests from leading
2964         comment for const char * implementation.  Move tree
2965         implementation to...
2966         * spellcheck-tree.c: New file.
2967         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
2968
2969 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2970
2971         * Makefile.in (OBJS): Add spellcheck.o.
2972         * spellcheck.c: New file.
2973         * spellcheck.h: New file.
2974
2975 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
2976
2977         * config/ft32/ft32.md (*sne): New insn pattern.
2978
2979 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
2980
2981         * cprop.c (is_too_expensive): Remove.
2982         (gcse.h): Include.
2983         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
2984         is_too_expensive.
2985         * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
2986         * gcse.c (is_too_expensive): Rename to ...
2987         (gcse_or_cprop_is_too_expensive): ... this.
2988         Expand warning to add required size of max-gcse-memory.
2989         (one_pre_gcse_pass): Use it.
2990         (one_code_hoisting_pass): Use it.
2991         * params.def (max-gcse-memory): Increase from 50MB to 128MB.
2992
2993 2015-11-12  James Norris  <jnorris@codesourcery.com>
2994             Joseph Myers  <joseph@codesourcery.com>
2995
2996         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
2997         GF_OMP_TARGET_KIND_OACC_DECLARE.
2998         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
2999         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3000         * gimplify.c (oacc_declare_returns): New.
3001         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
3002         (device_resident_p): New function.
3003         (oacc_default_clause): Handle device_resident clause.
3004         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
3005         (gimplify_expr): Handle OACC_DECLARE.
3006         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
3007         * omp-low.c (expand_omp_target): Handle
3008         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
3009         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
3010         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
3011         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
3012         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
3013         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
3014         GOMP_MAP_DEVICE_RESIDENT.
3015
3016 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
3017
3018         [ARM] Remove neon-testgen.ml and generated tests.
3019
3020         * config/arm/neon-testgen.ml: Remove.
3021
3022 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
3023
3024         * config/aarch64/aarch64-cores.def (qdf24xx): New.
3025         * config/aarch64/aarch64-tune.md: Regenerated.
3026         * config/arm/arm-cores.def (qdf24xx): New.
3027         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
3028         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
3029         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
3030         (ARM Options/-mtune): Likewise.
3031
3032 2015-11-12  Martin Liska  <mliska@suse.cz>
3033
3034         * config/i386/i386.c (ix86_valid_target_attribute_p):
3035         Finalize options at the of the function.
3036         * gcc.c (driver_get_configure_time_options): Call newly
3037         introduced init_opts_obstack.
3038         * lto-wrapper.c (main): Likewise.
3039         * opts.c (init_opts_obstack): New function.
3040         (init_options_struct): Call newly introduced init_opts_obstack.
3041         * opts.h (init_options_struct): Declare.
3042
3043 2015-11-12  Martin Liska  <mliska@suse.cz>
3044
3045         PR ipa/68035
3046         * ipa-icf.c (void sem_item::set_hash): New function.
3047         (sem_function::get_hash): Use renamed m_hash member variable.
3048         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
3049         (sem_item::update_hash_by_local_refs): Likewise.
3050         (sem_variable::get_hash): Use renamed m_hash member variable.
3051         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
3052         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
3053         (sem_item_optimizer::build_graph): As the hash value of an item
3054         is lazy initialized, force the calculation.
3055         * ipa-icf.h (set_hash): Declare new function and rename hash member
3056         variable to m_hash.
3057
3058 2015-11-12  Richard Biener  <rguenther@suse.de>
3059
3060         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
3061         Rename to vect_slp_analyze_instance_dependence.
3062         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
3063         Remove WAR special-case.
3064         (vect_slp_analyze_node_dependences): Instead add more specific
3065         code here, not relying on other instances being vectorized.
3066         (vect_slp_analyze_instance_dependence): Adjust accordingly.
3067         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
3068         vertical space in dump files.
3069         (vect_print_slp_tree): Likewise.
3070         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
3071         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
3072         not vectorized stmts until after dependence analysis removed
3073         instances.  Merge alignment and dependence checks.
3074         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
3075         flag on all stmts.
3076
3077 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
3078
3079         * config/aarch64/aarch64-protos.h (tune_params): Add new members
3080         "max_case_values" and "cache_line_size".
3081         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
3082         function.
3083         (aarch64_override_options_internal): Tune heuristics based on new
3084         members in "tune_params".
3085         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3086
3087 2015-11-12  Richard Biener  <rguenther@suse.de>
3088
3089         PR tree-optimization/68306
3090         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
3091         relevant and vectorizable checks here.
3092         (vect_verify_datarefs_alignment): Add relevant check here.
3093
3094 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3095
3096         * gimplify.c (oacc_default_clause): New.
3097         (omp_notice_variable): Call it.
3098
3099 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3100
3101         PR tree-optimization/68305
3102         * tree-vect-slp.c (vect_get_constant_vectors): Support
3103         COND_EXPR with SSA_NAME as a condition.
3104
3105 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3106
3107         * config/visium/visium-protos.h (notice_update_cc): Delete.
3108         (print_operand): Likewise.
3109         (print_operand_address): Likewise.
3110
3111 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3112
3113         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
3114         FUNCTION_VALUE_REGNO_P): Remove.
3115         * config/alpha/alpha-protos.h (function_value): Remove.
3116         * config/alpha/alpha.c (function_value): Rename to...
3117         (alpha_function_value_1): ... this.  Make static.
3118         (alpha_function_value, alpha_libcall_value,
3119         alpha_function_value_regno_p): New functions.
3120         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3121         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3122
3123 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3124
3125         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3126         * config/alpha/alpha.c (alpha_memory_latency): Make static.
3127         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
3128         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3129
3130 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3131
3132         PR target/67265
3133         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
3134         assertion on the CFA register.
3135
3136 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3137
3138         * expr.c (do_store_flag): Expand vector comparison as
3139         VEC_COND_EXPR if vector comparison is not supported by target.
3140
3141 2015-11-12  Renlin Li  <renlin.li@arm.com>
3142
3143         * config/arm/arm.md (addsi3_compare_op2): Make the order of
3144         assembly pattern consistent with constraint order.
3145
3146 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3147
3148         * gen-pass-instances.awk (handle_line): Simplify match regexp.
3149
3150 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3151
3152         * gen-pass-instances.awk (handle_line): Simplify init of
3153         postfix_starts_at.
3154
3155 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3156
3157         * gen-pass-instances.awk (handle_line): Rename var where to
3158         call_starts_at.
3159
3160 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
3161
3162         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
3163         do not expand to rtl.
3164
3165 2015-11-12  Richard Biener  <rguenther@suse.de>
3166
3167         PR tree-optimization/58497
3168         * tree-vect-generic.c: Include gimplify.h.
3169         (tree_vec_extract): Lookup constant/constructor DEFs.
3170         (do_cond): Unshare cond.
3171
3172 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
3173
3174         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
3175         combined insn if the alignment of vector mode memory operand
3176         is less than ssememalign.
3177
3178 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3179
3180         * gen-pass-instances.awk (handle_line): Print parentheses and
3181         pass_name explicitly.
3182
3183 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3184
3185         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
3186         and postfix vars.
3187
3188 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3189
3190         * gen-pass-instances.awk (handle_line): Add comments.
3191
3192 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3193
3194         * gen-pass-instances.awk (handle_line): Rename len_of_end to
3195         len_of_close.
3196
3197 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3198
3199         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
3200
3201 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3202
3203         * gen-pass-instances.awk (handle_line): Restructure using early-out.
3204
3205 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3206
3207         * gen-pass-instances.awk (handle_line): Unify semicolon use.
3208
3209 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3210
3211         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
3212
3213 2015-11-12  Tom de Vries  <tom@codesourcery.com>
3214
3215         * gen-pass-instances.awk: Add emacs indent setting.
3216
3217 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3218
3219         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
3220         to match.pd.
3221         Move Convert A/(B/C) to (A/B)*C to match.pd.
3222         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
3223         Move Optimize (X & (-A)) / A where A is a power of 2, to
3224         X >> log2(A) to match.pd.
3225
3226         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
3227         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
3228         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
3229         New simplifier.
3230         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
3231
3232 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
3233
3234         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
3235         variable.
3236         (neon_vst2_lane<mode>): Likewise.
3237         (neon_vld3_lane<mode>): Likewise.
3238         (neon_vst3_lane<mode>): Likewise.
3239         (neon_vld4_lane<mode>): Likewise.
3240         (neon_vst4_lane<mode>): Likewise.
3241
3242 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
3243             Sebastian Pop  <s.pop@samsung.com>
3244
3245         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3246         New member codegen_error
3247         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
3248         early return.
3249         (translate_isl_ast_node_user): Early return in case of error.
3250         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
3251         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
3252         (add_parameters_to_ivs_params): Remove macro.
3253         (graphite_regenerate_ast_isl): Add if_region pointer to region.
3254         * graphite-poly.c (new_poly_dr): Remove macro.
3255         (print_pdr): Same.
3256         (new_gimple_poly_bb): Same.
3257         (free_gimple_poly_bb): Same.
3258         (print_scop_params): Same.
3259         * graphite-poly.h (struct poly_dr): Same.
3260         (struct poly_bb): Add new_bb.
3261         (gbb_from_bb): Remove dead code.
3262         (pbb_from_bb): Same.
3263         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
3264         (parameter_index_in_region): Same.
3265         (find_scop_parameters): Same.
3266         (build_cross_bb_scalars_def): New.
3267         (build_cross_bb_scalars_use): New.
3268         (graphite_find_cross_bb_scalar_vars): New
3269         (try_generate_gimple_bb): Reads and Writes.
3270         (build_alias_set): Move.
3271         (gather_bbs::before_dom_children): Gather bbs visited.
3272         (build_scops): call build_alias_set.
3273         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
3274         (remove_simple_copy_phi): Delete.
3275         (remove_invariant_phi): Delete.
3276         (simple_copy_phi_p): Delete.
3277         (reduction_phi_p): Delete.
3278         (isl_id_for_dr): Remove unused param.
3279         (parameter_index_in_region_1): Remove macro usage.
3280         (set_scop_parameter_dim): Same.
3281         (add_param_constraints): Same.
3282         (add_conditions_to_constraints): Same
3283         (build_scop_iteration_domain): Same.
3284         (pdr_add_alias_set): Comment.
3285         (add_scalar_version_numbers): New.
3286         (build_poly_dr): ISL id.
3287         (build_scop_drs): Move.
3288         (build_poly_sr_1): Same.
3289         (insert_stmts): Remove.
3290         (build_poly_sr): New.
3291         (new_pbb_from_pbb): Delete.
3292         (insert_out_of_ssa_copy_on_edge): Delete.
3293         (create_zero_dim_array): Delete.
3294         (scalar_close_phi_node_p): Delete.
3295         (propagate_expr_outside_region): Delete.
3296         (rewrite_close_phi_out_of_ssa): Delete.
3297         (rewrite_phi_out_of_ssa): Delete.
3298         (rewrite_degenerate_phi): Delete.
3299         (rewrite_reductions_out_of_ssa): Delete.
3300         (rewrite_cross_bb_scalar_dependence): Delete.
3301         (handle_scalar_deps_crossing_scop_limits):
3302         (rewrite_cross_bb_scalar_deps): Delete.
3303         (build_poly_scop): Remove calls to out-of-ssa functions.
3304         * graphite.c (graphite_transform_loops): Early return in case of
3305         codegen error.
3306         * sese.c (debug_rename_map_1): Delete.
3307         (debug_rename_map): Delete.
3308         (sese_record_loop): Remove macro.
3309         (build_sese_loop_nests): Same.
3310         (new_sese_info): Same.
3311         (free_sese_info): Same.
3312         (sese_insert_phis_for_liveouts):
3313         (is_loop_closed_ssa_use): New.
3314         (number_of_phi_nodes): New.
3315         (bb_contains_loop_close_phi_nodes): New.
3316         (bb_contains_loop_phi_nodes): New.
3317         (phi_uses_name): New.
3318         (is_valid_rename):
3319         (get_rename): Add old_bb and loop_phi for more precise matching of
3320         exprs.
3321         (set_rename): Pass region.
3322         (later_of_the_two): New.
3323         (gsi_insert_earliest): New.
3324         (collect_all_ssa_names): New.
3325         (substitute_ssa_name): New.
3326         (rename_all_uses): New.
3327         (get_rename_from_scev): New.
3328         (rename_uses): Pass old_bb for more precise matching of exprs.
3329         (get_def_bb_for_const): New.
3330         (get_new_name): New.
3331         (get_loc): New.
3332         (get_edges): New.
3333         (copy_loop_phi_args): New.
3334         (copy_loop_phi_nodes): New.
3335         (get_loop_init_value): New.
3336         (find_init_value): New.
3337         (find_init_value_close_phi): New.
3338         (copy_loop_close_phi_args): New.
3339         (copy_loop_close_phi_nodes): New.
3340         (add_phi_arg_for_new_expr): New.
3341         (copy_cond_phi_args): New.
3342         (copy_cond_phi_nodes): New.
3343         (copy_phi_nodes): New.
3344         (should_copy_to_new_region): New.
3345         (set_rename_for_each_def): New.
3346         (graphite_copy_stmts_from_block): Early return in case of error.
3347         (copy_bb_and_scalar_dependences): Same.
3348         * sese.h (vec_find): New.
3349         (SESE_PARAMS): Delete.
3350         (SESE_LOOPS): Delete.
3351         (SESE_LOOP_NEST): Delete.
3352         (sese_contains_loop): Remove macro usage.
3353         (sese_nb_params): Same.
3354         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
3355
3356 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3357
3358         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
3359         isl_union_map_add_map on every pbb->schedule.
3360
3361 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3362
3363         * tree-parloops.c (create_parallel_loop): Return void.
3364
3365 2015-11-11  Tom de Vries  <tom@codesourcery.com>
3366
3367         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
3368         block only when needed.
3369
3370 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
3371
3372         * config/alpha/alpha-protos.h (print_operand): Remove.
3373         (print_operand_address): Remove.
3374         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
3375         (PRINT_OPERAND_ADDRESS): Remove.
3376         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
3377         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
3378         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
3379         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
3380         (print_operand_address): Rename to...
3381         (alpha_print_operand_address): ...this and make static.
3382         (print_operand): Rename to...
3383         (alpha_print_operand): ...this and make static.
3384         (alpha_print_operand_punct_valid_p): New static function.
3385
3386 2015-11-11  Richard Biener  <rguenther@suse.de>
3387
3388         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
3389         Declare.
3390         (vect_analyze_data_refs_alignment): Make loop vect specific.
3391         (vect_verify_datarefs_alignment): Likewise.
3392         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
3393         Add missing continue.
3394         (vect_compute_data_ref_alignment): Export.
3395         (vect_compute_data_refs_alignment): Merge into...
3396         (vect_analyze_data_refs_alignment): ... this.
3397         (verify_data_ref_alignment): Split out from ...
3398         (vect_verify_datarefs_alignment): ... here.
3399         (vect_slp_analyze_and_verify_node_alignment): New function.
3400         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
3401         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
3402         misplaced checks on alignment.
3403         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
3404         alignment analysis after SLP discovery and do it per instance.
3405         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
3406         bother to re-try using different vector sizes.
3407
3408 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3409             Cesar Philippidis  <cesar@codesourcery.com>
3410
3411         * gimplify.c (enum omp_region_type): Add ORT_ACC,
3412         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
3413         (gimple_add_tmp_var): Add ORT_ACC checks.
3414         (gimplify_var_or_parm_decl): Likewise.
3415         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
3416         (omp_add_variable): Look in outer contexts for openacc and allow
3417         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
3418         (omp_notice_variable, omp_is_private, omp_check_private): Add
3419         ORT_ACC checks.
3420         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
3421         Permit private openacc reductions.
3422         (gimplify_oacc_cache): Specify ORT_ACC.
3423         (gimplify_omp_workshare): Adjust OpenACC region types.
3424         (gimplify_omp_target_update): Likewise.
3425         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
3426         (lower-rec_input_clauses): Don't handle openacc firstprivate
3427         references here.
3428         (lower_omp_target): Emit initializers for openacc firstprivate vars.
3429
3430 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3431
3432         PR target/67265
3433         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
3434         frame pointer for stack checking if non-call exceptions aren't used.
3435         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
3436
3437 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
3438
3439         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
3440         [LA]SHIFTRT.
3441
3442 2015-11-11  Martin Liska  <mliska@suse.cz>
3443             Richard Biener  <rguenther@suse.de>
3444
3445         PR rtl-optimization/68287
3446         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
3447         number of elements.
3448
3449 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
3450
3451         * config/mips/mips.c (mips_breakable_sequence_p): New function.
3452         (mips_break_sequence): New function.
3453         (mips_reorg_process_insns): Use them. Use compact branches in selected
3454         situations.
3455
3456 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
3457
3458         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
3459
3460 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
3461             Jim Wilson  <wilson@gcc.gnu.org>
3462
3463         PR target/67305
3464         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
3465         be true and eliminable registers mentioned.
3466
3467 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
3468
3469         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
3470         options.
3471         * config/arc/arc-opts.h: Add ARCv2 CPUs.
3472         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
3473         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
3474         situation, and store instructions with large offsets.
3475         (arc_secondary_reload_conv): New function.
3476         (arc_init): Add ARCv2 options.
3477         (arc_conditional_register_usage): Select the proper register usage
3478         for ARCv2 processors.
3479         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
3480         architecture.
3481         (arc_compute_function_type): Likewise.
3482         (arc_print_operand): Handle new ARCv2 punctuation characters.
3483         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
3484         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
3485         function.
3486         (arc_reorg, arc_hazard): Use it.
3487         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
3488         (ASM_SPEC): Add ARCv2 options.
3489         (TARGET_NORM): ARC HS has norm instructions by default.
3490         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
3491         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
3492         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
3493         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
3494         Likewise.
3495         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
3496         (TARGET_LP_WR_INTERLOCK): Likewise.
3497         * config/arc/arc.md
3498         (commutative_binary_mult_comparison_result_used, movsicc_insn)
3499         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
3500         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
3501         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
3502         Use it for ARCv2.
3503         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
3504         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
3505         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
3506         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
3507         (extzvsi): New pattern.
3508         * config/arc/arc.opt: New ARCv2 options.
3509         * config/arc/arcEM.md: New file.
3510         * config/arc/arcHS.md: Likewise.
3511         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
3512         values.
3513         (Cm2): A signed 9-bit integer constant constraint.
3514         (C62): An unsigned 6-bit integer constant constraint.
3515         (C16): A signed 16-bit integer constant constraint.
3516         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
3517         (short_const_int_operand): New predicate.
3518         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
3519         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
3520         -mcode-density and -mdiv-rem.
3521
3522 2015-11-11  Julia Koval  <julia.koval@intel.com>
3523
3524         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
3525
3526 2015-11-11  Julia Koval  <julia.koval@intel.com>
3527
3528         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
3529
3530 2015-11-11  Martin Liska  <mliska@suse.cz>
3531
3532         * gimple-ssa-strength-reduction.c (create_phi_basis):
3533         Use auto_vec.
3534         * passes.c (release_dump_file_name): New function.
3535         (pass_init_dump_file): Used from this function.
3536         (pass_fini_dump_file): Likewise.
3537         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
3538         * var-tracking.c (vt_initialize): Use pool_allocator.
3539
3540 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
3541             Jiong Wang      <jiong.wang@arm.com>
3542
3543         PR tree-optimization/68234
3544         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
3545         node which estimiated to be VR_VARYING initially.
3546
3547 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
3548
3549         * regname.c (scan_rtx_reg): Check the matching number of consecutive
3550         registers when tying chains.
3551         (build_def_use): Move terminated_this_insn earlier in the function.
3552
3553 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
3554
3555         * configure.ac: Use = with test and not ==.
3556         * configure: Regenerated.
3557
3558 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
3559
3560         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
3561         machine asserts.  Update defines for 64 bit.
3562
3563 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3564
3565         PR target/63870
3566         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
3567         lane number.
3568         (neon_vst1_lane<mode>): Likewise.
3569         (neon_vld2_lane<mode>): Likewise.
3570         (neon_vst2_lane<mode>): Likewise.
3571         (neon_vld3_lane<mode>): Likewise.
3572         (neon_vst3_lane<mode>): Likewise.
3573         (neon_vld4_lane<mode>): Likewise.
3574         (neon_vst4_lane<mode>): Likewise.
3575
3576 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3577
3578         PR target/63870
3579         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
3580         qualifier_struct_load_store_lane_index.
3581         (arm_storestruct_lane_qualifiers) Likewise.
3582         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
3583         big-endian.
3584         (neon_vst1_lane<mode>) Likewise.
3585         (neon_vld2_lane<mode>) Likewise.
3586         (neon_vst2_lane<mode>) Likewise.
3587         (neon_vld3_lane<mode>) Likewise.
3588         (neon_vst3_lane<mode>) Likewise.
3589         (neon_vld4_lane<mode>) Likewise.
3590         (neon_vst4_lane<mode>) Likewise.
3591
3592 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
3593
3594         PR target/63870
3595         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
3596         qualifier_struct_load_store_lane_index.
3597         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3598         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
3599         argument qualifiers.
3600         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
3601         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
3602
3603 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3604
3605         * config/nvptx/nvptx.opt (moptimize): New flag.
3606         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
3607         default.
3608         (nvptx_optimize_inner): New.
3609         (nvptx_process_pars): Call it when optimizing.
3610         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
3611
3612 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3613
3614         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3615         Remove redundant code.
3616
3617 2015-11-10  Jeff Law  <law@redhat.com>
3618
3619         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
3620         call to output_address.
3621         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
3622         Add unnamed machine_mode argument.
3623
3624 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3625
3626         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
3627         default to 64-bit.
3628
3629 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3630
3631         * config/i386/i386.md (*movabs<mode>_1): Add explicit
3632         size directives for -masm=intel.
3633         (*movabs<mode>_2): Ditto.
3634
3635 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3636
3637         * config/i386/i386.c (ix86_print_operand): Remove dead code that
3638         tried to avoid (%rip) for call operands.
3639
3640 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
3641
3642         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
3643         argument.  Do not use RIP relative addressing when no_rip is set.
3644         (ix86_print_operand): Update call to ix86_print_operand_address_as.
3645         (ix86_print_operand_address): Ditto.
3646         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
3647         absolute movabs operand 0.  Add square braces for -masm=intel.
3648         (*movabs<mode>_2): Ditto for operand 1.
3649
3650 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3651
3652         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
3653         combine_vcvtf2i pattern.
3654
3655 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3656
3657         * config/arm/arm.c (neon_valid_immediate): Remove integer
3658         CONST_DOUBLE handling.  It should never occur.
3659
3660 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
3661
3662         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
3663         (ATOMIC_LDOP): Likewise.
3664         (atomic_ldop): Likewise.
3665         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
3666         (ATOMIC_LDOP): Likewise.
3667         (atomic_ldop): Likewise.
3668
3669 2015-11-10  Martin Liska  <mliska@suse.cz>
3670
3671         * alloc-pool.h (allocate_raw): New function.
3672         (operator new (size_t, object_allocator<T> &a)): Use the
3673         function instead of object_allocator::allocate).
3674
3675 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3676
3677         * config/i386/sse.md (HALFMASKMODE): New attribute.
3678         (DOUBLEMASKMODE): New attribute.
3679         (vec_pack_trunc_qi): New.
3680         (vec_pack_trunc_<mode>): New.
3681         (vec_unpacks_lo_hi): New.
3682         (vec_unpacks_lo_si): New.
3683         (vec_unpacks_lo_di): New.
3684         (vec_unpacks_hi_hi): New.
3685         (vec_unpacks_hi_<mode>): New.
3686
3687 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3688
3689         * optabs.c (expand_binop_directly): Allow scalar mode for
3690         vec_pack_trunc_optab.
3691         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
3692         boolean vector producers from pattern sequence when computing VF.
3693         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
3694         vect_recog_mask_conversion_pattern.
3695         (search_type_for_mask): Choose the smallest
3696         type if different size types are mixed.
3697         (build_mask_conversion): New.
3698         (vect_recog_mask_conversion_pattern): New.
3699         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
3700         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
3701         load with pattern.
3702         (vectorizable_conversion): Support boolean vectors.
3703         (free_stmt_vec_info): Allow patterns for statements with no lhs.
3704         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
3705
3706 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3707
3708         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
3709         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
3710         Cast mask to FP mode if required.
3711         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
3712         (vcond_mask_<mode><avx512fmaskmodelower>): New.
3713         (vcond_mask_<mode><sseintvecmodelower>): New.
3714         (vcond_mask_<mode><sseintvecmodelower>): New.
3715         (vcond_mask_v2div2di): New.
3716         (vcond_mask_<mode><sseintvecmodelower>): New.
3717         (vcond_mask_<mode><sseintvecmodelower>): New.
3718
3719 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3720
3721         * optabs-query.h (get_vcond_mask_icode): New.
3722         * optabs-tree.c (expand_vec_cond_expr_p): Use
3723         get_vcond_mask_icode for VEC_COND_EXPR with mask.
3724         * optabs.c (expand_vec_cond_mask_expr): New.
3725         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
3726         * optabs.def (vcond_mask_optab): New.
3727         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
3728         generate redundant comparison for COND_EXPR.
3729         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
3730         as a condition.
3731         (vectorizable_condition): Likewise.
3732         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
3733         cond_exp with no embedded comparison.
3734         (vect_build_slp_tree_1): Likewise.
3735
3736 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3737
3738         * config/i386/sse.md (maskload<mode>): Rename to ...
3739         (maskload<mode><sseintvecmodelower>): ... this.
3740         (maskstore<mode>): Rename to ...
3741         (maskstore<mode><sseintvecmodelower>): ... this.
3742         (maskload<mode><avx512fmaskmodelower>): New.
3743         (maskstore<mode><avx512fmaskmodelower>): New.
3744
3745 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3746
3747         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
3748         (expand_MASK_STORE): Adjust to maskstore optab changes.
3749         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
3750          Adjust to maskload, maskstore optab changes.
3751         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
3752         * optabs.def (maskload_optab): Transform into convert optab.
3753         (maskstore_optab): Likewise.
3754         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
3755         can_vec_mask_load_store_p signature change.
3756         (predicate_mem_writes): Use boolean mask.
3757         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
3758         can_vec_mask_load_store_p signature change.  Allow invariant masks.
3759         (vectorizable_operation): Ignore type precision for boolean vectors.
3760
3761 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3762
3763         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
3764         (const_vector_mask_from_tree): New.
3765         (const_vector_from_tree): Use const_vector_mask_from_tree
3766         for boolean vectors.
3767         * optabs-query.h (get_vec_cmp_icode): New.
3768         * optabs-tree.c (expand_vec_cmp_expr_p): New.
3769         * optabs-tree.h (expand_vec_cmp_expr_p): New.
3770         * optabs.c (vector_compare_rtx): Add OPNO arg.
3771         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
3772         (expand_vec_cmp_expr): New.
3773         * optabs.def (vec_cmp_optab): New.
3774         (vec_cmpu_optab): New.
3775         * optabs.h (expand_vec_cmp_expr): New.
3776         * tree-vect-generic.c (expand_vector_comparison): Add vector
3777         comparison optabs check.
3778         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
3779         operations for VF.  Add mask type computation.
3780         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
3781         (vectorizable_comparison): New.
3782         (vect_analyze_stmt): Add vectorizable_comparison.
3783         (vect_transform_stmt): Likewise.
3784         (vect_init_vector): Support boolean vector invariants.
3785         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3786         (vectorizable_condition): Directly provide vectype for invariants
3787         used in comparison.
3788         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
3789         (enum vect_var_kind): Add vect_mask_var.
3790         (enum stmt_vec_info_type): Add comparison_vec_info_type.
3791         (vectorizable_comparison): New.
3792         (vect_get_vec_def_for_operand): Add VECTYPE arg.
3793         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
3794         (vect_create_destination_var): Likewise.
3795         * tree-vect-patterns.c (check_bool_pattern): Check fails
3796         if we can vectorize comparison directly.
3797         (search_type_for_mask): New.
3798         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
3799         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
3800         comparison statements.
3801         (vect_get_constant_vectors): Support boolean vector constants.
3802         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
3803         (ix86_expand_int_vec_cmp): New.
3804         (ix86_expand_fp_vec_cmp): New.
3805         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
3806         op_true and op_false.
3807         (ix86_int_cmp_code_to_pcmp_immediate): New.
3808         (ix86_fp_cmp_code_to_pcmp_immediate): New.
3809         (ix86_cmp_code_to_pcmp_immediate): New.
3810         (ix86_expand_mask_vec_cmp): New.
3811         (ix86_expand_fp_vec_cmp): New.
3812         (ix86_expand_int_sse_cmp): New.
3813         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
3814         (ix86_expand_int_vec_cmp): New.
3815         (ix86_get_mask_mode): New.
3816         (TARGET_VECTORIZE_GET_MASK_MODE): New.
3817         * config/i386/sse.md (avx512fmaskmodelower): New.
3818         (vec_cmp<mode><avx512fmaskmodelower>): New.
3819         (vec_cmp<mode><sseintvecmodelower>): New.
3820         (vec_cmpv2div2di): New.
3821         (vec_cmpu<mode><avx512fmaskmodelower>): New.
3822         (vec_cmpu<mode><sseintvecmodelower>): New.
3823         (vec_cmpuv2div2di): New.
3824
3825 2015-11-10  Richard Biener  <rguenther@suse.de>
3826
3827         PR tree-optimization/68240
3828         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
3829         properly.
3830         (visit_phi): For PHIs with just a single executable edge
3831         take its value directly.
3832         (expressions_equal_p): Handle VN_TOP properly.
3833
3834 2015-11-10  Richard Biener  <rguenther@suse.de>
3835
3836         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
3837         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
3838         conservatively.
3839
3840 2015-11-10  Richard Biener  <rguenther@suse.de>
3841
3842         PR tree-optimization/56118
3843         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
3844         cost favor vectorized version.
3845
3846 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3847
3848         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
3849         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
3850         (neg_not_op): New code attribute.
3851
3852 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3853
3854         * ifcvt.c (noce_try_inverse_constants): New function.
3855         (noce_process_if_block): Call it.
3856         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
3857         * optabs.def (negcc_optab, notcc_optab): Declare.
3858         * optabs.c (emit_conditional_neg_or_complement): New function.
3859         * doc/tm.texi (Standard Names): Document negcc, notcc names.
3860
3861 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3862
3863         PR rtl-optimization/68236
3864         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
3865         if insn_queue doesn't exist.
3866         (haifa_sched_finish): Reset insn_queue to NULL.
3867
3868 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
3869
3870         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
3871         (build_def_use): Initialize terminated_this_insn.
3872         (find_best_rename_reg): Pick and check register from the tied chain.
3873         (regrename_do_replace): Mark head as renamed.
3874         (struct du_head *terminated_this_insn). New static variable.
3875         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
3876         * regrename.h (struct du_head): Add tied_chain, renamed members.
3877
3878 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3879
3880         PR bootstrap/68256
3881         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
3882         Return false.
3883
3884 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3885
3886         PR target/57845
3887         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
3888         not promote the mode for aggregate types.
3889
3890 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3891
3892         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
3893         * omp-low.c (build_oacc_routine_dims): New.
3894
3895 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3896
3897         * config/rs6000/constraints.md (wF constraint): New constraints
3898         for power9/toc fusion.
3899         (wG constraint): Likewise.
3900
3901         * config/rs6000/predicates.md (u6bit_cint_operand): New
3902         predicate, recognize 0..63.
3903         (upper16_cint_operand): New predicate for power9 and toc fusion.
3904         (fpr_reg_operand): Likewise.
3905         (toc_fusion_or_p9_reg_operand): Likewise.
3906         (toc_fusion_mem_raw): Likewise.
3907         (toc_fusion_mem_wrapped): Likewise.
3908         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
3909         address range.
3910         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
3911         instead.
3912         (fusion_addis_mem_combo_load): Add support for power9 fusion of
3913         floating point loads, floating point stores, and gpr stores.
3914         (fusion_addis_mem_combo_store): Likewise.
3915         (fusion_offsettable_mem_operand): Likewise.
3916
3917         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
3918         (emit_fusion_load_store): Likewise.
3919         (fusion_p9_p): Likewise.
3920         (expand_fusion_p9_load): Likewise.
3921         (expand_fusion_p9_store): Likewise.
3922         (emit_fusion_p9_load): Likewise.
3923         (emit_fusion_p9_store): Likewise.
3924         (fusion_wrap_memory_address): Likewise.
3925
3926         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
3927         elements for power9 fusion.
3928         (rs6000_debug_print_mode): Rework debug information to print more
3929         information about fusion.
3930         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
3931         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
3932         offsettable memory address.
3933         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
3934         (emit_fusion_gpr_load): Move most of the code from
3935         emit_fusion_gpr_load into emit_fusion-addis that handles both
3936         power8 and power9 fusion.
3937         (emit_fusion_addis): Likewise.
3938         (emit_fusion_load_store): Likewise.
3939         (fusion_wrap_memory_address): Add support for TOC fusion.
3940         (fusion_split_address): Likewise.
3941         (fusion_p9_p): Add support for power9 fusion.
3942         (expand_fusion_p9_load): Likewise.
3943         (expand_fusion_p9_store): Likewise.
3944         (emit_fusion_p9_load): Likewise.
3945         (emit_fusion_p9_store): Likewise.
3946
3947         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
3948         new instructions in ISA 3.0.
3949         (TARGET_CTZ): Likewise.
3950         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
3951         (TARGET_TOC_FUSION_FP): Likewise.
3952
3953         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
3954         fusion unspecs.
3955         (UNSPEC_FUSION_ADDIS): Likewise.
3956         (QHSI mode iterator): New iterator for power9 fusion.
3957         (GPR_FUSION): Likewise.
3958         (FPR_FUSION): Likewise.
3959         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
3960         (umod<mode>3): Likewise.
3961         (divmod peephole): Likewise.
3962         (udivmod peephole): Likewise.
3963         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
3964         instructions.
3965         (ctz<mode>2_h): Likewise.
3966         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
3967         (ashdi3_extswsli_dot): Likewise.
3968         (ashdi3_extswsli_dot2): Likewise.
3969         (power9 fusion splitter): New power9/toc fusion support.
3970         (toc_fusionload_<mode>): Likewise.
3971         (toc_fusionload_di): Likewise.
3972         (fusion_gpr_load_<mode>): Update predicate function.
3973         (power9 fusion peephole2s): New power9/toc fusion support.
3974         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
3975         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
3976         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3977         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3978         (fusion_p9_<mode>_constant): Likewise.
3979
3980 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
3981
3982         * optabs.c (prepare_libcall_arg): New function.
3983         (expand_fixed_convert): Add call to prepare_libcall_arg.
3984
3985 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
3986
3987         * sched-int.h (dump_rgn_dependencies_dot): Declare
3988         * sched-rgn.c (dump_rgn_dependencies_dot): New function
3989         * print-rtl.h (print_insn): Add prototype
3990
3991         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
3992         * common.opt (-fsched-verbose): Set default value to 1.
3993         * invoke.texi (-fsched-verbose): Update the option's description.
3994
3995 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3996
3997         * config/visium/visium.h (PRINT_OPERAND): Delete.
3998         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3999         (PRINT_OPERAND_ADDRESS): Likewise.
4000         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
4001         to...
4002         (visium_print_operand_punct_valid_p): ...this.  New function.
4003         (TARGET_PRINT_OPERAND): Define to...
4004         (print_operand): Rename to...
4005         (visium_print_operand): ...this.
4006         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
4007         (visium_output_address): Rename to...
4008         (visium_print_operand_address): ...this.
4009         (print_operand_address): Delete.
4010
4011 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4012
4013         PR middle-end/68259
4014         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
4015         Check that the type of the first operand is an aggregate type.
4016
4017 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4018
4019         * omp-low.c: Fix some OpenACC comment typos.
4020         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
4021         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
4022         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
4023
4024 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
4025
4026         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
4027
4028 2015-11-09  Jeff Law  <law@redhat.com>
4029
4030         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
4031         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
4032         Fix comment typo.
4033
4034 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4035             Peter Bergner  <bergner@vnet.ibm.com>
4036
4037         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
4038         ISA 3.0 (power9).
4039         (-mpower9-vector): Likewise.
4040         (-mpower9-dform): Likewise.
4041         (-mpower9-minmax): Likewise.
4042         (-mtoc-fusion): Likewise.
4043         (-mmodulo): Likewise.
4044         (-mfloat128-hardware): Likewise.
4045
4046         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
4047         mask for ISA 3.0 (power9).
4048         (POWERPC_MASKS): Add new ISA 3.0 switches.
4049         (power9 cpu): Add power9 cpu.
4050
4051         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
4052         (ASM_CPU_SPEC): Likewise.
4053         (EXTRA_SPECS): Likewise.
4054
4055         * config/rs6000/rs6000-opts.h (enum processor_type): Add
4056         PROCESSOR_POWER9.
4057
4058         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
4059         (rs6000_debug_reg_global): Add support for power9 fusion.
4060         (rs6000_setup_reg_addr_masks): Cache mode size.
4061         (rs6000_option_override_internal): Until real power9 tuning is
4062         added, use -mtune=power8 for -mcpu=power9.
4063         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
4064         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
4065         of Altivec registers.
4066         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
4067         (rs6000_loop_align): Add support for power9 cpu.
4068         (rs6000_file_start): Likewise.
4069         (rs6000_adjust_cost): Likewise.
4070         (rs6000_issue_rate): Likewise.
4071         (insn_must_be_first_in_group): Likewise.
4072         (insn_must_be_last_in_group): Likewise.
4073         (force_new_group): Likewise.
4074         (rs6000_register_move_cost): Likewise.
4075         (rs6000_opt_masks): Likewise.
4076
4077         * config/rs6000/rs6000.md (cpu attribute): Add power9.
4078         * config/rs6000/rs6000-tables.opt: Regenerate.
4079
4080         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4081         _ARCH_PWR9 if power9 support is available.
4082
4083         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
4084         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
4085
4086         * configure.ac: Determine if the assembler supports the ISA 3.0
4087         instructions.
4088         * config.in (HAVE_AS_POWER9): Likewise.
4089         * configure: Regenerate.
4090
4091         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
4092         switches.
4093
4094 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4095
4096         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
4097         Remove integer CONST_DOUBLE handling.  It should never occur.
4098
4099 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4100
4101         PR target/68129
4102         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
4103         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
4104         Delete VOIDmode case.  Assert that mode is not VOIDmode.
4105         * config/aarch64/predicates.md (const0_operand): Remove const_double
4106         match.
4107
4108 2015-11-09  Martin Liska  <mliska@suse.cz>
4109
4110         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
4111         body_info release function.
4112         * ipa-prop.c (ipa_release_body_info): New function.
4113         (ipa_analyze_node): Call the function.
4114         (ipa_node_params::~ipa_node_params): Release known_csts.
4115         * ipa-prop.h (ipa_release_body_info): Declare.
4116
4117 2015-11-09  Martin Liska  <mliska@suse.cz>
4118
4119         * gcc.c (record_temp_file): Release name string.
4120         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
4121         * lra-lives.c (free_live_range_list): Utilize
4122         lra_live_range_pool for allocation and deallocation.
4123         (create_live_range): Likewise.
4124         (copy_live_range): Likewise.
4125         (lra_merge_live_ranges): Likewise.
4126         (remove_some_program_points_and_update_live_ranges): Likewise.
4127         (lra_create_live_ranges_1): Release point_freq_vec that can
4128         be not freed from previous iteration of the function.
4129         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
4130         * tree-sra.c (sra_deinitialize): Release all vectors in
4131         base_access_vec.
4132         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
4133         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
4134         Release edge_info for a removed edge.
4135         (thread_through_all_blocks): Free region vector.
4136         * tree-ssa.h (free_dom_edge_info): Declare function extern.
4137
4138 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
4139
4140         * optabs.c (expand_vec_cond_expr): Always get sign from type.
4141         * tree.c (wide_int_to_tree): Support negative values for boolean.
4142         (build_nonstandard_boolean_type): Use signed type for booleans.
4143
4144 2015-11-09  Richard Biener  <rguenther@suse.de>
4145
4146         PR tree-optimization/68248
4147         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
4148
4149 2015-11-09  Richard Biener  <rguenther@suse.de>
4150
4151         PR tree-optimization/56118
4152         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
4153         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
4154         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
4155         function.
4156         (vect_slp_analyze_data_ref_dependences): Instead of computing
4157         all dependences of the region DRs just analyze the code motions
4158         SLP vectorization will perform.  Remove SLP instances that
4159         cannot have their store/load motions applied.
4160         (vect_analyze_data_refs): Allow DRs without a vectype
4161         in BB vectorization.
4162
4163 2015-11-09  Julian Brown  <julian@codesourcery.com>
4164
4165         * final.c (output_asm_insn): Pass VOIDmode to output_address.
4166         (output_address): Add MODE argument. Pass to print_operand_address
4167         hook.
4168         * targhooks.c (default_print_operand_address): Add MODE argument.
4169         * targhooks.h (default_print_operand_address): Update prototype.
4170         * output.h (output_address): Update prototype.
4171         * target.def (print_operand_address): Add MODE argument.
4172         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
4173         output_address.
4174         (print_operand): Pass access mode to output_address.
4175         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
4176         argument.
4177         (mcore_print_operand): Update calls to mcore_print_operand_address.
4178         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
4179         output_address.
4180         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
4181         output_address.
4182         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
4183         global.
4184         (tilegx_print_operand): Don't set above global. Update calls to
4185         output_address.
4186         (tilegx_print_operand_address): Add MODE argument. Use instead of
4187         output_memory_reference_mode global.
4188         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
4189         (frv_print_operand): Pass mode to frv_print_operand_address calls.
4190         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
4191         output_address.
4192         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
4193         (cris_print_operand): Pass mode to output_address calls.
4194         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
4195         * config/aarch64/aarch64.h (aarch64_print_operand)
4196         (aarch64_print_operand_address): Remove prototypes.
4197         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
4198         global.
4199         (aarch64_print_operand): Make static. Update calls to output_address.
4200         (aarch64_print_operand_address): Add MODE argument. Use instead of
4201         aarch64_memory_reference_mode global.
4202         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
4203         hooks.
4204         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4205         Delete macro definitions.
4206         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
4207         * config/xtensa/xtensa.c (print_operand): Pass mode in
4208         output_address calls.
4209         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
4210         argument.
4211         (h83000_print_operand): Update calls to h8300_print_operand_address
4212         and output_address.
4213         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
4214         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
4215         global.
4216         (tilepro_print_operand): Pass mode to output_address.
4217         (tilepro_print_operand_address): Add MODE argument. Use instead of
4218         output_memory_reference_mode.
4219         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
4220         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
4221         to output_address calls.
4222         (nvptx_print_operand_address): Add MODE argument.
4223         * config/alpha/alpha.c (print_operand): Pass mode argument in
4224         output_address calls.
4225         * config/m68k/m68k.c (print_operand): Pass mode argument in
4226         output_address call.
4227         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
4228         (avr_print_operand): Update calls to avr_print_operand_address.
4229         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
4230         argument. Update calls to output_address.
4231         (sparc_print_operand): Pass mode to output_address.
4232         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
4233         argument.
4234         (iq2000_print_operand): Pass mode in output_address calls.
4235         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
4236         MODE argument.
4237         (xstormy16_print_operand): Pass mode to
4238         xstormy16_print_operand_address calls.
4239         * config/mips/mips.c (mips_print_operand): Update calls to
4240         output_address.
4241         (mips_print_operand_address): Add MODE argument.
4242         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
4243         to output_address.
4244         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
4245         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
4246         output_address.
4247         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
4248         (rx_print_operand): Update calls to output_address,
4249         rx_print_operand_address.
4250         * config/nds32/nds32.c (nds32_print_operand): Update calls to
4251         output_address.
4252         (nds32_print_operand_address): Add MODE argument.
4253         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
4254         output_address calls.
4255         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
4256         output_address call.
4257         (c6x_print_address_operand): Update calls to output_address.
4258         (c6x_print_operand_address): Pass mode to above.
4259         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
4260         (v850_print_operand): Pass mode to v850_print_operand_address,
4261         output_address.
4262         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
4263         (mmix_print_operand): Pass mode in output_address calls.
4264         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
4265         (sh_print_operand): Pass mem mode to output_address,
4266         sh_print_operand_address.
4267         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
4268         (cr16_print_operand): Pass mode to output_address,
4269         cr16_print_operand_address.
4270         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
4271         output_address.
4272         * config/microblaze/microblaze.c (print_operand): Pass mode to
4273         output_address.
4274         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
4275         output_address.
4276         (nios2_print_operand_address): Add MODE argument. Update call to
4277         nios2_print_operand_address.
4278         * config/s390/s390.c (print_operand): Pass mode to output_address.
4279         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
4280         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
4281         output_address.
4282         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
4283         Use instead of output_memory_reference_mode.
4284         (output_memory_reference_mode): Delete global.
4285         (arm_print_operand): Pass mem mode to output_address.
4286         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
4287         (m32r_print_operand): Pass mode to output_address.
4288         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
4289         argument.
4290         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
4291         * config/i386/i386.c (ix86_print_operand): Pass mode to
4292         output_address calls.
4293         (ix86_print_operand_address): Add MODE argument.
4294
4295 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4296
4297         PR middle-end/68251
4298         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
4299         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
4300         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
4301         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4302
4303 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4304
4305         PR rtl-optimization/67749
4306         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
4307         case before emitting the two blocks.  Instead modify the register
4308         in the corresponding final insn of the basic block.
4309
4310 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4311
4312         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
4313         assembler syntax.
4314         Support Solaris ld.
4315         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
4316
4317         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
4318         HAVE_INITFINI_ARRAY_SUPPORT.
4319         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
4320
4321         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
4322         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
4323         Don't check HAVE_AS_SPARC_NOBITS.
4324         Heed SECTION_NOTYPE.
4325
4326         * configure: Regenerate.
4327         * config.in: Regenerate.
4328
4329 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4330
4331         PR middle-end/68253
4332         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
4333
4334 2015-11-09  Richard Henderson  <rth@redhat.com>
4335
4336         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
4337         __SEG_GS, __SEG_TLS.
4338         (ix86_register_pragmas): Register address spaces __seg_fs,
4339         __seg_gs, __seg_tls.
4340         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
4341         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
4342         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
4343         * config/i386/i386.c (ix86_decompose_address): Likewise.
4344         (ix86_legitimate_address_p): Likewise.
4345         (memory_address_length): Likewise.  Check mem address space too.
4346         (ix86_print_operand): Use ix86_print_operand_address_as.
4347         (ix86_print_operand_address_as): Rename from
4348         ix86_print_operand_address, add new addr_space_t parameter.
4349         Validate that either the parameter or the ix86_address segment
4350         is default address space.  Handle ADDR_SPACE_SEG_TLS.
4351         (ix86_print_operand_address): New.
4352         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
4353         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
4354         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
4355         (ix86_addr_space_zero_address_valid): New.
4356         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4357         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
4358         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
4359         * config/i386/predicates.md (address_no_seg_operand): Likewise.
4360         (vsib_address_operand): Likewise.
4361         (address_mpx_no_base_operand): Likewise.
4362         (address_mpx_no_index_operand): Likewise.
4363         * doc/extend.texi (x86 Named Address Spaces): New section.
4364
4365         * config/i386/i386.c (ix86_check_no_addr_space): New.
4366         (decide_alg): Add have_as parameter.
4367         (alg_usable_p): Likewise; disable rep algorithms if set.
4368         (ix86_expand_set_or_movmem): Notice if either MEM has a
4369         non-default address space.
4370         (ix86_expand_strlen): Likewise.
4371         * config/i386/i386.md (strmov, strset): Likewise.
4372         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
4373         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
4374         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
4375         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
4376         *cmpstrnqi_1, *strlenqi_1): Likewise.
4377
4378         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
4379         (*movabs<mode>_2): Likewise.
4380
4381         * dwarf2out.c (modified_type_die): Pass the address space number
4382         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
4383         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
4384         * targhooks.c (default_addr_space_debug): New.
4385         * targhooks.h (default_addr_space_debug): Declare.
4386         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
4387         * doc/tm.texi: Rebuild.
4388
4389         * gimple.c (check_loadstore): Return false when 0 is a valid address.
4390         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
4391         null when 0 is valid in the source address space.
4392         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
4393         * targhooks.c (default_addr_space_zero_address_valid): New.
4394         * targhooks.h (default_addr_space_zero_address_valid): Declare.
4395         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
4396         * doc/tm.texi: Rebuild.
4397
4398         * cselib.c (add_mem_for_addr): Compare address spaces when
4399         matching memories.
4400         (cselib_lookup_mem): Likewise.
4401         * fold-const.c (operand_equal_p): Check address spaces of
4402         pointer types before checking integer constants.
4403
4404         PR tree-opt/66768
4405         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
4406         the correct type for the base.
4407
4408 2015-11-09  Jeff Law  <law@redhat.com>
4409
4410         * tree-into-ssa.c (names_to_release): No longer static.
4411         * tree-into-ssa.h (names_to_release): Declare.
4412         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
4413         (release_free_names_and_compact_live_names): New function extracted
4414         from pass_release_ssa_names::execute.
4415         (pass_release_ssa_names::execute): Use it.
4416
4417 2015-11-09  Alan Modra  <amodra@gmail.com>
4418
4419         * gensupport.c (add_mnemonic_string): Make len param a size_t.
4420         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
4421         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
4422         return value.
4423
4424 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
4425
4426         PR rtl-optimization/68182
4427         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
4428         branch with only one successor just like unconditional branches.
4429
4430 2015-11-08  Jeff Law  <law@redhat.com>
4431
4432         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
4433         non-FSM path has no edges marked with EDGE_DFS_BACK.
4434         (ssa_redirect_edges): No longer call mark_loop_for_removal.
4435         (thread_single_edge, def_split_header_continue_p): Remove.
4436         (bb_ends_with_multiway_branch): Likewise.
4437         (thread_through_loop_header): Remove cases of threading from
4438         latch through the header.  Simplify knowing we won't thread
4439         the latch.
4440         (thread_through_all_blocks): Simplify knowing that only the FSM
4441         threader needs to handle backedges.
4442
4443 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4444
4445         * doc/extend.texi (type attributes): Document scalar_storage_order.
4446         (Structure-Packing Pragmas): Rename into...
4447         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
4448         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
4449         (Warnings): Document -Wno-scalar-storage-order.
4450         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
4451         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
4452         extract_bit_field and store_bit_field.
4453         (initialize_argument_information): Adjust call to store_expr.
4454         (load_register_parameters): Adjust call to extract_bit_field.
4455         * expmed.c (check_reverse_storage_order_support): New function.
4456         (check_reverse_float_storage_order_support): Likewise.
4457         (flip_storage_order): Likewise.
4458         (store_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 movstrict instruction if REVERSE is true.
4462         Pass REVERSE to store_fixed_bit_field.
4463         (store_bit_field): Add REVERSE parameter and pass to it to above.
4464         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
4465         store_split_bit_field and store_fixed_bit_field_1.
4466         (store_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         (store_split_bit_field): Add REVERSE parameter and pass it to
4469         store_fixed_bit_field.  Adjust the target offset if it is true.
4470         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
4471         of the value if it is true.  Pass REVERSE to recursive call after
4472         adjusting the target offset.
4473         Do not use extraction or subreg instruction if REVERSE is true.
4474         Pass REVERSE to extract_fixed_bit_field.
4475         (extract_bit_field): Add REVERSE parameter and pass to it to above.
4476         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
4477         extract_split_bit_field and extract_fixed_bit_field_1.
4478         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
4479         order of the value if it is true and adjust the target offset.
4480         (extract_split_bit_field): Add REVERSE parameter and pass it to
4481         extract_fixed_bit_field.  Adjust the target offset if it is true.
4482         * expmed.h (flip_storage_order): Declare.
4483         (store_bit_field): Adjust prototype.
4484         (extract_bit_field): Likewise.
4485         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
4486         (emit_group_store): Adjust call to store_bit_field.
4487         (copy_blkmode_from_reg): Likewise.
4488         (copy_blkmode_to_reg): Likewise.
4489         (write_complex_part): Likewise.
4490         (read_complex_part): Likewise.
4491         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
4492         that it isn't true if the target is a register.
4493         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
4494         and flip the storage order of the value.
4495         <BIT_IOR_EXPR>: Flip the storage order of the value.
4496         (get_bit_range): Adjust call to get_inner_reference.
4497         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
4498         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
4499         with reverse storage order.
4500         (store_expr_with_bounds): Add REVERSE parameter and pass it to
4501         recursive calls and call to store_bit_field.  Force the value into a
4502         register if it is true and then flip the storage order of the value.
4503         (store_expr): Add REVERSE parameter and pass it to above.
4504         (categorize_ctor_elements_1): Adjust call to
4505         initializer_constant_valid_p.
4506         (store_constructor_field): Add REVERSE parameter and pass it to
4507         recursive calls and call to store_field.
4508         (store_constructor): Add REVERSE parameter and pass it to calls to
4509         store_constructor_field and store_expr.  Set it to true for an
4510         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
4511         (store_field): Add REVERSE parameter and pass it to recursive calls
4512         and calls to store_expr and store_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.
4515         (get_inner_reference): Add PREVERSEP parameter and set it to true
4516         upon encoutering a reference with reverse storage order.
4517         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
4518         (expand_constructor): Adjust call to store_constructor.
4519         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
4520         of the union type to store_expr in the MEM case and assert that it
4521         isn't set in the REG case.  Adjust call to store_field.
4522         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
4523         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
4524         get_inner_reference and extract_bit_field. Temporarily flip the
4525         storage order of the value with record type and integral mode and
4526         adjust the shift if it is true.  Flip the storage order of the value
4527         at the end if it is true.
4528         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
4529         get_inner_reference.  Do not fetch an inner reference if it is true.
4530         * expr.h (store_expr_with_bounds): Ajust prototype.
4531         (store_expr): Likewise.
4532         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
4533         REF_REVERSE_STORAGE_ORDER on the reference according to it.
4534         (optimize_bit_field_compare): Deal with reverse storage order.
4535         Adjust calls to get_inner_reference and make_bit_field_ref.
4536         (decode_field_reference): Add PREVERSEP parameter and adjust call to
4537         get_inner_reference.
4538         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
4539         to decode_field_reference and make_bit_field_ref.
4540         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
4541         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
4542         (fold_comparison): Adjust call to get_inner_reference.
4543         (split_address_to_core_and_offset): Adjust call to
4544         get_inner_reference.
4545         * gimple-expr.c (useless_type_conversion_p): Return false for array
4546         types with different TYPE_REVERSE_STORAGE_ORDER flag.
4547         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
4548         REF_REVERSE_STORAGE_ORDER flag.
4549         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
4550         * output.h (assemble_real): Adjust prototype.
4551         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
4552         * stor-layout.c (finish_record_layout): Propagate the
4553         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
4554         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
4555         (TYPE_SATURATING): Adjust.
4556         (REF_REVERSE_STORAGE_ORDER): Document.
4557         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
4558         set it to true upon encoutering a reference with reverse storage order.
4559         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
4560         * tree-inline.c (remap_gimple_op_r): Propagate the
4561         REF_REVERSE_STORAGE_ORDER flag.
4562         (copy_tree_body_r): Likewise.
4563         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
4564         store_expr.
4565         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
4566         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
4567         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
4568         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
4569         REF_REVERSE_STORAGE_ORDER flag.
4570         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
4571         (gimple_canonical_types_compatible_p): Likewise.
4572         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
4573         (TYPE_SATURATING): Adjust.
4574         (REF_REVERSE_STORAGE_ORDER): New flag.
4575         (reverse_storage_order_for_component_p): New inline predicate.
4576         (storage_order_barrier_p): Likewise.
4577         (get_inner_reference): Adjust prototype.
4578         * varasm.c: Include expmed.h.
4579         (assemble_variable_contents): Adjust call to output_constant.
4580         (assemble_real): Add REVERSE parameter.  Flip the storage
4581         order of the value if REVERSE is true.
4582         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
4583         (assemble_constant_contents): Adjust call to output_constant.
4584         (output_constant_pool_2): Adjust call to assemble_real.
4585         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
4586         TYPE_REVERSE_STORAGE_ORDER.
4587         (initializer_constant_valid_p): Add REVERSE parameter.
4588         (output_constant): Add REVERSE parameter.
4589         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
4590         <REAL_TYPE>: Adjust call to assemble_real.
4591         <COMPLEX_TYPE>: Pass it to recursive calls.
4592         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
4593         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
4594         (struct oc_local_state): Add REVERSE field.
4595         (output_constructor_array_range): Adjust calls to output_constant.
4596         (output_constructor_regular_field): Likewise.
4597         (output_constructor_bitfield): Adjust call to output_constructor.
4598         Flip the storage order of the value if REVERSE is true.
4599         (output_constructor): Add REVERSE parameter.  Set it to true for an
4600         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
4601         output_constructor_bitfield.
4602         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
4603         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
4604         * builtins.c (get_object_alignment_2): Likewise.
4605         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
4606         and get_ref_base_and_extent.
4607         * dbxout.c (dbxout_expand_expr): Likewise.
4608         * dwarf2out.c (add_var_loc_to_decl): Likewise.
4609         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
4610         (loc_list_from_tree): Likewise.
4611         (fortran_common): Likewise.
4612         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
4613         get_ref_base_and_extent.
4614         (get_base_constructor): Likewise.
4615         (fold_const_aggregate_ref_1): Likewise.
4616         * gimple-laddress.c (pass_laddress::execute): Adjust call to
4617         get_inner_reference.
4618         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
4619         get_inner_reference and bail out on reverse storage order.
4620         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
4621         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
4622         build_ref_for_offset.
4623         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
4624         get_ref_base_and_extent.
4625         (ipa_polymorphic_call_context): Likewise.
4626         (extr_type_from_vtbl_ptr_store): Likewise.
4627         (check_stmt_for_type_change): Likewise.
4628         (get_dynamic_type): Likewise.
4629         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
4630         get_ref_base_and_extent.
4631         (compute_complex_assign_jump_func): Likewise.
4632         (get_ancestor_addr_info): Likewise.
4633         (compute_known_type_jump_func): Likewise.
4634         (determine_known_aggregate_parts): Likewise.
4635         (ipa_get_adjustment_candidate): Likewise.
4636         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
4637         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
4638         (build_ref_for_offset): Adjust prototype.
4639         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
4640         get_inner_reference.
4641         * tree-affine.c (tree_to_aff_combination): Adjust call to
4642         get_inner_reference.
4643         (get_inner_reference_aff): Likewise.
4644         * tree-data-ref.c (split_constant_offset_1): Likewise.
4645         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
4646         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
4647         get_inner_reference.
4648         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
4649         (dump_access): Print new fields.
4650         (create_access): Adjust call to get_ref_base_and_extent and set the
4651         REVERSE flag according to the result.
4652         (completely_scalarize_record): Set the REVERSE flag.
4653         (scalarize_elem): Add REVERSE parameter.
4654         (build_access_from_expr_1): Preserve storage order barriers.
4655         (build_accesses_from_assign): Likewise.
4656         (build_ref_for_offset): Add REVERSE parameter and set the
4657         REF_REVERSE_STORAGE_ORDER flag accordingly.
4658         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
4659         the REF_REVERSE_STORAGE_ORDER flag if there are components.
4660         (analyze_access_subtree): Likewise.
4661         (create_artificial_child_access): Set the REVERSE flag.
4662         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
4663         (turn_representatives_into_adjustments): Propagate REVERSE flag.
4664         (ipa_sra_check_caller): Adjust call to get_inner_reference.
4665         * tree-ssa-alias.c (ao_ref_base): Adjust call to
4666         get_ref_base_and_extent.
4667         (aliasing_component_refs_p): Likewise.
4668         (stmt_kills_ref_p_1): Likewise.
4669         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4670         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
4671         Return true if reverse storage order.
4672         <BIT_FIELD_REF>: Likewise.
4673         <COMPONENT_REF>: Likewise.
4674         <ARRAY_REF>: Likewise.
4675         <ARRAY_RANGE_REF>: Likewise.
4676         (split_address_cost): Likewise.  Bail out if reverse storage order.
4677         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
4678         get_inner_reference.  Bail out if reverse storage order.
4679         (bswap_replace): Adjust call to get_inner_reference.
4680         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
4681         the REF_REVERSE_STORAGE_ORDER flag.
4682         <BIT_FIELD_REF>: Likewise.
4683         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
4684         barriers.
4685         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
4686         to the REF_REVERSE_STORAGE_ORDER flag.
4687         <BIT_FIELD_REF>: Likewise.
4688         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
4689         (contains_storage_order_barrier_p): New predicate.
4690         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
4691         Punt on storage order barriers if necessary.
4692         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
4693         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
4694         call to get_ref_base_and_extent.
4695         (do_structure_copy): Likewise.
4696         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
4697         get_inner_reference.
4698         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
4699         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
4700         * ubsan.c (instrument_bool_enum_load): Likewise.
4701         (instrument_object_size): Likewise.
4702         * var-tracking.c (track_expr_p): Adjust call to
4703         get_ref_base_and_extent.
4704         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
4705         get_inner_reference.
4706         * config/s390/s390.c (s390_expand_atomic): Adjust call to
4707         store_bit_field.
4708         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
4709         extract_bit_field.
4710         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
4711
4712 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
4713
4714         * config/sparc/sparc.opt (mfix-at697f): Add final period.
4715
4716 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
4717
4718         PR rtl-optimization/67864
4719         * common/config/i386/i386-common.c (ix86_option_optimization_table)
4720         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
4721         at -Os and up.
4722
4723 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4724
4725         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
4726         internal functions.
4727
4728 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4729
4730         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
4731         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
4732
4733 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4734
4735         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
4736         * internal-fn.c: Don't undef it here.
4737         * tree-core.h: Likewise.
4738
4739 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4740
4741         * builtins.c (fold_builtin_nan): Delete.
4742         (fold_builtin_memcmp): Remove case where both arguments are constant.
4743         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
4744         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
4745         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
4746         * fold-const-call.c: Include fold-const.h.
4747         (host_size_t_cst_p): New function.
4748         (build_cmp_result, fold_const_builtin_nan): Likewise.
4749         (fold_const_call_1): New function, split out from...
4750         (fold_const_call): ...here (for all three interfaces).  Handle
4751         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
4752
4753 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4754
4755         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
4756         (fold_builtin_1): Don't call them.
4757         * fold-const-call.c: Include tm.h.
4758         (fold_const_call_ss): New variant for integer-to-integer folds.
4759         (fold_const_call): Call it.
4760
4761 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4762
4763         * builtins.c (fold_builtin_classify): Move constant cases to...
4764         * fold-const-call.c (fold_const_call_ss): ...here.
4765
4766 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4767
4768         * builtins.h (c_getstr): Move to...
4769         * fold-const.h (c_getstr): ...here.
4770         * builtins.c (c_getstr): Move to...
4771         * fold-const.c (c_getstr): ...here.
4772
4773 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4774
4775         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
4776         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
4777
4778 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
4779
4780         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
4781         the dominance info; free it if we can't.
4782         (pass_call_cdce::execute): Don't free the dominance info here.
4783
4784 2015-11-06  Jeff Law <law@redhat.com>
4785
4786         * tree-ssa-threadedge.c (dummy_simplify): Remove.
4787         (thread_around_empty_blocks): Remove backedge_seen_p argument.
4788         If we thread to a backedge, then return false.  Update recursive
4789         call to eliminate backedge_seen_p argument.
4790         (thread_through_normal_block): Remove backedge_seen_p argument.
4791         Remove backedge_seen_p argument from calls to
4792         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
4793         If we thread to a backedge, then return 0.
4794         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
4795         pass it to thread_through_normal_block or thread_through_empty_blocks.
4796         For joiner handling, if we see a backedge, do not try normal
4797         threading.
4798
4799 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4800
4801         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
4802         * graphite-poly.c (new_scop): Initialize original_schedule.
4803         (free_scop): Free original_schedule.
4804         * graphite-poly.h (struct scop): Add field original_schedule.
4805         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
4806         (build_poly_scop): Call build_scop_original_schedule.
4807
4808 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4809
4810         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
4811         (build_pbb_minimal_scattering_polyhedrons): New.
4812         (build_scop_scattering): Remove.
4813         (build_scop_minimal_scattering): New.
4814         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
4815         (build_poly_scop): Call build_scop_minimal_scattering.
4816
4817 2015-11-06  Jeff Law <law@redhat.com>
4818
4819         * cfg-flags.def (IGNORE): New edge flag.
4820         * tree-vrp.c (identify_jump_threads): Mark and clear edges
4821         scheduled for removal with EDGE_IGNORE around call into
4822         jump threader.  Do no thread across edges with EDGE_IGNORE,
4823         but do allow threading across those with EDGE_DFS_BACK.
4824
4825 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
4826
4827         * doc/md.texi (multi-alternative constraints): Don't document
4828         alternatives inherently tied to reload for the user documentation.
4829
4830 2015-11-06  Michael Collison  <michael.collison@linaro.org>
4831             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4832
4833         Revert:
4834         2015-08-01  Michael Collison  <michael.collison@linaro.org
4835                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4836
4837         * config/arm/arm.md (*arm_smin_cmp): New pattern.
4838         (*arm_umin_cmp): Likewise.
4839
4840 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
4841
4842         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
4843         * omp-low.c (check_omp_nesting_restrictions): Update for the
4844         various new OpenMP 4.5 nesting restrictions, clarified
4845         nesting glossary, closely nested region relationship clarified
4846         to mean explicit or implicit parallel regions (target/teams),
4847         use %</%> or %qs where appropriate.
4848
4849 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4850             Sebastian Pop  <s.pop@samsung.com>
4851
4852         * graphite-scop-detection.c (loop_is_valid_scop): Call
4853         optimize_loop_nest_for_speed_p.
4854
4855 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4856             Sebastian Pop  <s.pop@samsung.com>
4857
4858         * graphite-optimize-isl.c (optimize_isl): Call
4859         isl_options_set_schedule_maximize_band_depth.
4860
4861 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
4862             Sebastian Pop  <s.pop@samsung.com>
4863
4864         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
4865         and exit edges should not be a part of irreducible loop.
4866         (scop_detection::can_represent_loop_1): Loops should not be
4867         irreducible.
4868         (scop_detection::harmful_stmt_in_region): All the basic block
4869         should belong to reducible loops.
4870
4871 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
4872
4873         * config/aarch64/aarch64-simd-builtins.def: Update builtins
4874         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
4875         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
4876         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
4877         (aarch64_tbx4v8qi): Rename to...
4878         aarch64_tbx4<mode>): ... this.
4879         (aarch64_qtbl3<mode>): New pattern.
4880         (aarch64_qtbx3<mode>): New pattern.
4881         (aarch64_qtbl4<mode>): New pattern.
4882         (aarch64_qtbx4<mode>): New pattern.
4883         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
4884         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
4885         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
4886         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
4887         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
4888         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
4889         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
4890         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
4891         functions.
4892
4893 2015-11-06  Mike Stump  <mikestump@comcast.net>
4894
4895         PR debug/66728
4896         * dwarf2out.c (get_full_len): Return a value based upon the actual
4897         precision needed for the value.
4898         (add_const_value_attribute): Use a maximal wide-int for
4899         CONST_WIDE_INTs, not VOIDmode.
4900         (output_die): Don't ever output NULL with printf.
4901
4902         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
4903         BLKmode nor VOIDmode values.
4904
4905 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
4906
4907         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
4908         and "range2".
4909         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
4910         * diagnostic-core.h (warning_at_rich_loc): New declaration.
4911         (error_at_rich_loc): New declaration.
4912         (permerror_at_rich_loc): New declaration.
4913         (inform_at_rich_loc): New declaration.
4914         * diagnostic-show-locus.c (adjust_line): Delete.
4915         (struct point_state): New struct.
4916         (class colorizer): New class.
4917         (class layout_point): New class.
4918         (class layout_range): New class.
4919         (struct line_bounds): New.
4920         (class layout): New class.
4921         (colorizer::colorizer): New ctor.
4922         (colorizer::~colorizer): New dtor.
4923         (layout::layout): New ctor.
4924         (layout::print_source_line): New method.
4925         (layout::print_annotation_line): New method.
4926         (layout::get_state_at_point): New method.
4927         (layout::get_x_bound_for_row): New method.
4928         (diagnostic_show_locus): Reimplement in terms of class layout.
4929         (diagnostic_print_caret_line): Delete.
4930         * diagnostic.c (diagnostic_initialize): Replace
4931         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
4932         (diagnostic_set_info_translated): Convert param from location_t
4933         to rich_location *.  Eliminate calls to set_location on the
4934         message in favor of storing the rich_location ptr there.
4935         (diagnostic_set_info): Convert param from location_t to
4936         rich_location *.
4937         (diagnostic_build_prefix): Break out array into...
4938         (diagnostic_kind_color): New variable.
4939         (diagnostic_get_color_for_kind): New function.
4940         (diagnostic_report_diagnostic): Colorize the option_text
4941         using the color for the severity.
4942         (diagnostic_append_note): Update for change in signature of
4943         diagnostic_set_info.
4944         (diagnostic_append_note_at_rich_loc): New function.
4945         (emit_diagnostic): Update for change in signature of
4946         diagnostic_set_info.
4947         (inform): Likewise.
4948         (inform_at_rich_loc): New function.
4949         (inform_n): Update for change in signature of diagnostic_set_info.
4950         (warning): Likewise.
4951         (warning_at): Likewise.
4952         (warning_at_rich_loc): New function.
4953         (warning_n): Update for change in signature of diagnostic_set_info.
4954         (pedwarn): Likewise.
4955         (permerror): Likewise.
4956         (permerror_at_rich_loc): New function.
4957         (error): Update for change in signature of diagnostic_set_info.
4958         (error_n): Likewise.
4959         (error_at): Likewise.
4960         (error_at_rich_loc): New function.
4961         (sorry): Update for change in signature of diagnostic_set_info.
4962         (fatal_error): Likewise.
4963         (internal_error): Likewise.
4964         (internal_error_no_backtrace): Likewise.
4965         (source_range::debug): New function.
4966         * diagnostic.h (struct diagnostic_info): Eliminate field
4967         "override_column".  Add field "richloc".
4968         (struct diagnostic_context): Add field "colorize_source_p".
4969         (diagnostic_override_column): Delete.
4970         (diagnostic_set_info): Convert param from location_t to
4971         rich_location *.
4972         (diagnostic_set_info_translated): Likewise.
4973         (diagnostic_append_note_at_rich_loc): New function.
4974         (diagnostic_num_locations): New function.
4975         (diagnostic_expand_location): Get the location from the
4976         rich_location.
4977         (diagnostic_print_caret_line): Delete.
4978         (diagnostic_get_color_for_kind): New declaration.
4979         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
4980         (error_cb): Update for change in signature of "error" callback.
4981         (fatal_at): Likewise.
4982         (warning_at): Likewise.
4983         * input.c (linemap_client_expand_location_to_spelling_point): New.
4984         * pretty-print.c (text_info::set_range): New method.
4985         (text_info::get_location): New method.
4986         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
4987         (struct text_info): Eliminate "locations" array in favor of
4988         "m_richloc", a rich_location *.
4989         (textinfo::set_location): Add a "caret_p" param, and reimplement
4990         in terms of a call to set_range.
4991         (textinfo::get_location): Eliminate inline implementation in favor of
4992         an out-of-line reimplementation.
4993         (textinfo::set_range): New method.
4994         * rtl-error.c (diagnostic_for_asm): Update for change in signature
4995         of diagnostic_set_info.
4996         * tree-diagnostic.c (default_tree_printer): Update for new
4997         "caret_p" param for textinfo::set_location.
4998         * tree-pretty-print.c (percent_K_format): Likewise.
4999
5000 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5001
5002         Properly apply.
5003         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5004         * config/aarch64/aarch64.c
5005         (aarch64_can_use_per_function_literal_pools_p): New.
5006         (aarch64_use_blocks_for_constant_p): Adjust declaration
5007         and use aarch64_can_use_function_literal_pools_p.
5008         (aarch64_select_rtx_section): Update.
5009
5010 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5011
5012         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
5013         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
5014         (arm_output_multireg_pop): Likewise.
5015         (output_move_double):  Likewise.
5016         (output_move_quad):  Likewise.
5017         (output_return_instruction): Likewise.
5018         (arm_print_operand): Remove support for %( and %. print modifiers.
5019         (arm_output_shift): Make unified asm.
5020         (arm_declare_function_name): Likewise.
5021         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
5022         (ASM_APP_OFF): Adjust.
5023         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
5024         (ASM_OUTPUT_REG_POP): Likewise.
5025         * config/arm/arm.md: Adjust uses of %., %(, %)
5026         * config/arm/sync.md: Likewise.
5027         * config/arm/thumb2.md: Likewise.
5028         * config/arm/ldmstm.md: Regenerate.
5029         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
5030         * doc/invoke.texi (masm-unified-syntax): Update documentation.
5031
5032 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
5033
5034         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
5035
5036 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5037
5038         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
5039         add OEP_MATCH_SIDE_EFFECTS.
5040         * fold-const.c (operand_equal_p): Update documentation; handle
5041         OEP_MATCH_SIDE_EFFECTS.
5042         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
5043         OEP_MATCH_SIDE_EFFECTS.
5044
5045 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
5046             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5047
5048         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
5049         * config/aarch64/aarch64-protos.h: Declare.
5050         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
5051         frsqrts.
5052         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
5053         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
5054         code when applicable.
5055         * config/aarch64/aarch64.md: Added enum entries.
5056         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
5057
5058 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
5059
5060         PR ipa/68057
5061         PR ipa/68220
5062         * ipa-polymorphic-call.c
5063         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
5064         issue when offset is out of range.
5065         (contains_type_p): Fix out of range check, clear dynamic flag.
5066
5067 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
5068
5069         * config.gcc (e6500): Fix cpu_is_64bit typo.
5070
5071 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
5072
5073         * tree-sra.c (completely_scalarize): Properly handle negative array
5074         indices using offset_int.
5075
5076 2015-11-06  Richard Biener  <rguenther@suse.de>
5077
5078         * alloc-pool.h (object_allocator::allocate): Default-initialize
5079         object.
5080
5081 2015-11-06  Richard Biener  <rguenther@suse.de>
5082
5083         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
5084         * lra.c (init_reg_info): Truncate copy_vec instead of
5085         re-allocating a new one and leaking the old.
5086         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
5087         bb_infos vec.
5088         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
5089         * postreload-gcse.c (free_mem): Free modify_mem_list and
5090         canon_modify_mem_list.
5091
5092 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
5093
5094         PR tree-optimization/68145
5095         * tree-vect-stmts.c (vectorizable_operation): Fix
5096         determination for booleans.
5097
5098 2015-11-06  Tom de Vries  <tom@codesourcery.com>
5099
5100         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
5101         cond_jump, instead of split after last nondebug insn before cond_jump.
5102         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
5103         returning.
5104
5105 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5106
5107         PR target/68088
5108         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
5109         subregs from accumulator and make sure it's a register.
5110
5111 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
5112
5113         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
5114         low part to scalar.
5115         (reduc_uplus_<mode>): Remove.
5116         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
5117         loongson_extract_lo_<mode>.
5118         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
5119         reduc_smax_<mode>, reduc_smax_<mode>, use vec
5120         loongson_extract_lo_<mode>.
5121         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
5122
5123 2015-11-06  Richard Biener  <rguenther@suse.de>
5124
5125         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
5126         members.
5127         (vect_stmt_in_region_p): Declare.
5128         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
5129         (destroy_bb_vec_info): Likewise.
5130         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
5131         (vect_get_and_check_slp_defs): Likewise.
5132         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
5133         (vect_slp_bb): Likewise.
5134         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
5135         in terms of vect_stmt_in_region_p.
5136         (vect_pattern_recog): Iterate over the BB region.
5137         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
5138         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
5139         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
5140         * config/i386/i386.c: Include gimple-iterator.h.
5141         * config/aarch64/aarch64.c: Likewise.
5142
5143 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
5144
5145         PR rtl-optimization/67753
5146         PR rtl-optimization/64164
5147         * function.c (assign_parm_setup_block): Avoid allocating a
5148         stack slot if we don't have an ABI-reserved one.  Emit the
5149         copy to target_reg in the conversion seq if the copy from
5150         entry_parm is in it too.  Don't use the conversion seq to copy
5151         a PARALLEL to a REG or a CONCAT.
5152
5153 2015-11-06  Richard Biener  <rguenther@suse.de>
5154
5155         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
5156         equal_keys.
5157
5158 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
5159             Thomas Schwinge  <thomas@codesourcery.com>
5160             James Norris  <jnorris@codesourcery.com>
5161
5162
5163         * gimplify.c (gimplify_scan_omp_clauses): Add support for
5164         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
5165         (gimplify_adjust_omp_clauses): Likewise.
5166         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
5167         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
5168         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
5169         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
5170         (omp_clause_code_name): Likewise.
5171         (walk_tree_1): Handle OMP_CLAUSE_TILE.
5172         * tree.h (OMP_TILE_LIST): New macro.
5173
5174 2015-11-05  Martin Sebor  <msebor@redhat.com>
5175
5176         PR c++/67942
5177         * doc/invoke.texi (-Wplacement-new): Document new option.
5178
5179 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
5180
5181         PR tree-optimization/65963
5182         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
5183         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
5184
5185 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
5186
5187         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
5188         (noce_convert_multiple_sets): Likewise.
5189         (noce_process_if_block): Call them.
5190
5191 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5192
5193         * gimple-fold.c: Include omp-low.h.
5194         (fold_internal_goacc_dim): New.
5195         (gimple_fold_call): Call it.
5196
5197 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
5198             Ilya Verbin  <ilya.verbin@intel.com>
5199
5200         * builtin-types.def
5201         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
5202         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
5203         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
5204         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
5205         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
5206         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
5207         (struct cgraph_simd_clone_arg): Adjust comment.
5208         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
5209         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
5210         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
5211         to GOMP_target_data_ext.
5212         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
5213         to GOMP_target_update_ext.
5214         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
5215         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
5216         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
5217         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
5218         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
5219         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
5220         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
5221         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
5222         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
5223         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
5224         * tree-core.h (enum omp_clause_schedule_kind): Add
5225         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
5226         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
5227         OMP_CLAUSE_SCHEDULE_LAST value.
5228         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
5229         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
5230         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
5231         OMP_FOR_CHECK.  Remove comment.
5232         * tree-pretty-print.c (dump_omp_clause): Handle
5233         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
5234         Simplify.  Print schedule clause modifiers.
5235         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
5236         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
5237         cases.
5238         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
5239         (omp_default_clause): Tweak for
5240         private/firstprivate/is_device_ptr variables on target
5241         construct and use_device_ptr on target data.
5242         (omp_check_private): Likewise.
5243         (omp_notice_variable): For references check whether what it refers
5244         to has mappable type, rather than the reference itself.
5245         (omp_is_private): Diagnose linear iteration variables on non-simd
5246         constructs.
5247         (omp_no_lastprivate): Return true only for Fortran.
5248         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
5249         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
5250         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
5251         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
5252         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
5253         lastprivate and linear when combined with distribute.  Gimplify
5254         variable low-bound for array reduction.  Look through
5255         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
5256         reductions.
5257         (gimplify_adjust_omp_clauses_1): For implicit references to
5258         variables with reference type and when not ref to scalar or
5259         ref to pointer, map what they refer to using tofrom and
5260         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
5261         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
5262         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
5263         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
5264         Diagnose the same var on both firstprivate and lastprivate on
5265         distribute construct.
5266         (gimplify_omp_for): Fix up handling of predetermined
5267         lastprivate or linear iter vars when combined with distribute.
5268         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
5269         functions.
5270         (gimplify_omp_workshare): Call optimize_target_teams.
5271         * omp-low.c (struct omp_region): Add sched_modifiers field.
5272         (struct omp_for_data): Likewise.
5273         (omp_any_child_fn_dumped): New variable.
5274         (extract_omp_for_data): Fill in sched_modifiers, and mask out
5275         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
5276         from sched_kind.
5277         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
5278         bits of OMP_CLAUSE_SCHED_KIND.
5279         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
5280         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
5281         for array section reductions.
5282         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
5283         for distribute parallel for, if there are lastprivate clauses on the
5284         for.
5285         (lower_rec_input_clauses): Handle non-zero low-bound on array
5286         section reductions.
5287         (lower_reduction_clauses): Likewise.
5288         (lower_send_clauses): Look through POINTER_PLUS_EXPR
5289         for array section reductions.
5290         (expand_parallel_call): Use nonmonotonic entrypoints for
5291         nonmonotonic: dynamic/guided.
5292         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
5293         child_fn if current_function_decl has assembler name set, but child_fn
5294         does not.  Dump the header and IL of the child function when not in SSA
5295         form.
5296         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
5297         arguments to BUILT_IN_GOMP_TARGET.
5298         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
5299         Initialize the extra _looptemp_ clause to fd->loop.n2.
5300         (expand_omp_for): Use nonmonotonic entrypoints for
5301         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
5302         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
5303         again if we have dumped any child functions.
5304         (lower_omp_for_lastprivate): Determine the right count variable
5305         for distribute simd, or distribute parallel for{, simd}.
5306         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
5307         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
5308         support.
5309         (simd_clone_clauses_extract): Handle variable step
5310         for references and arguments passed by reference.
5311         (simd_clone_mangle): Mangle ref/uval/val variable steps.
5312         (simd_clone_adjust_argument_types): Handle
5313         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
5314         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
5315         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
5316         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
5317         (simd_clone_linear_addend): New function.
5318         (simd_clone_adjust): Handle variable step like similarly
5319         to constant step, use simd_clone_linear_addend to determine
5320         the actual step at runtime.
5321
5322 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
5323
5324         * target.def (goacc.dim_limit): New hook.
5325         * targhooks.h (default_goacc_dim_limit): Declare.
5326         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
5327         * doc/tm.texi: Rebuilt.
5328         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
5329         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
5330         (default_goacc_dim_limit): New.
5331         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5332         (nvptx_goacc_dim_limit) New.
5333         (TARGET_GOACC_DIM_LIMIT): Override.
5334         * tree-vrp.c: Include omp-low.h, target.h.
5335         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
5336         IFN_GOACC_DIM_POS.
5337
5338 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5339
5340         * tree-vect-generic.c (do_compare): Use -1 for true
5341         result instead of 1.
5342
5343 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5344
5345         * config/aarch64/aarch64.c
5346         (aarch64_can_use_per_function_literal_pools_p): New.
5347         (aarch64_use_blocks_for_constant_p): Adjust declaration
5348         and use aarch64_can_use_function_literal_pools_p.
5349         (aarch64_select_rtx_section): Update.
5350
5351 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5352
5353         * targhooks.c (default_get_mask_mode): Use BLKmode in
5354         case target doesn't support required vector mode.
5355         * stor-layout.c (layout_type); Check for BLKmode.
5356
5357 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5358             Sebastian Pop  <s.pop@samsung.com>
5359
5360         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
5361         Remove use of parameter_rename_map.
5362         (copy_def): Remove.
5363         (copy_internal_parameters): Remove.
5364         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
5365         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
5366         (free_sese_info): Do not free parameter_rename_map.
5367         (set_rename): Do not use parameter_rename_map.
5368         (rename_uses): Update call to set_rename.
5369         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
5370         * sese.h (parameter_rename_map_t): Remove.
5371         (struct sese_info_t): Remove field parameter_rename_map.
5372
5373 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
5374             Sebastian Pop  <s.pop@samsung.com>
5375
5376         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
5377         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
5378         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
5379         anonymous namespace.
5380         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
5381         (isl_id_for_pbb): Use a buffer of size 10.
5382         (isl_id_for_ssa_name): Same.
5383         * sese.c (set_rename): Add more dumps.
5384
5385 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5386
5387         * omp-low.c (struct omp_context): Remove reduction_map field.
5388         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
5389         (new_omp_context, delete_omp_context, scan_omp_target): Remove
5390         reduction_map handling.
5391         (lower_omp_target): Remove obsolete openacc reduction handling.
5392
5393 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5394
5395         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
5396
5397 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5398             Cesar Philippidis  <cesar@codesourcery.com>
5399
5400         * config/nvptx/nvptx.c: Include gimple headers.
5401         (worker_red_size, worker_red_align, worker_red_name,
5402         worker_red_sym): New.
5403         (nvptx_option_override): Initialize worker reduction buffer.
5404         (nvptx_file_end): Write out worker reduction buffer var.
5405         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
5406         nvptx_expand_cmp_swap): New builtin expanders.
5407         (enum nvptx_builtins): New.
5408         (nvptx_builtin_decls): New.
5409         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
5410         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
5411         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
5412         nvptx_lockless_update): New helpers.
5413         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
5414         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
5415         (nvptx_goacc_reduction): New.
5416         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
5417         TARGET_BUILTIN_DECL): Override.
5418         (TARGET_GOACC_REDUCTION): Override.
5419
5420 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5421             Cesar Philippidis  <cesar@codesourcery.com>
5422
5423         * internal-fn.def (GOACC_REDUCTION): New.
5424         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
5425         * internal-fn.c (expand_GOACC_REDUCTION): New.
5426         * target.def (goacc.reduction): New OpenACC hook.
5427         * targhooks.h (default_goacc_reduction): Declare.
5428         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
5429         * doc/tm.texi: Rebuilt.
5430         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
5431         scan_sharing_clauses): Remove oacc reduction handling here.
5432         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
5433         (oacc_lower_reduction_var_helper): Delete.
5434         (lower_oacc_reductions): New.
5435         (lower_reduction_clauses): Don't handle OpenACC reductions here.
5436         (lower_oacc_head_tail): Call lower_oacc_reductions.
5437         (oacc_gimple_assign, oacc_init_reduction_array,
5438         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
5439         oacc_process_reduction_data): Delete.
5440         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
5441         dummy OpenACC gang reduction for reductions at outer level.
5442         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
5443         (default_goacc_reduction): New.
5444         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
5445
5446 2015-11-04  Martin Liska  <mliska@suse.cz>
5447
5448         * cgraphunit.c (cgraph_node::expand_thunk): Call
5449         allocate_struct_function before init_function_start.
5450         (cgraph_node::expand): Use push_cfun and pop_cfun.
5451         * config/i386/i386.c (ix86_code_end): Call
5452         allocate_struct_function before init_function_start.
5453         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
5454         * function.c (init_function_start): Move preamble to all
5455         callers.
5456         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
5457         (execute_one_pass): Handle newly added TODO_discard_function.
5458         (execute_pass_list_1): Terminate if cfun equals to NULL.
5459         (execute_pass_list): Do not push and pop cfun, expect that
5460         cfun is set.
5461         * tree-pass.h (TODO_discard_function): Define.
5462
5463 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
5464
5465         * cfganal.c (inverted_post_order_compute): Remove conditional
5466         compilation, use flag_checking.
5467         * config.in: Regenerate.
5468         * configure: Regenerate.
5469         * configure.ac: Remove ENABLE_CHECKING.
5470         * genconditions.c: Do not #undef ENABLE_CHECKING.
5471         * sese.h (bb_in_region): Comment out broken check.
5472         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
5473         conditional compilation, use flag_checking.
5474
5475 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5476
5477         PR tree-optimization/67742
5478         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
5479         field.
5480         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
5481         (create_variable_info_for_1): Add and handle handle_param parameter.
5482         Add restrict handling.
5483         (create_variable_info_for): Call create_variable_info_for_1 with extra
5484         arg.
5485         (make_param_constraints): Drop restrict_name parameter.  Ignore
5486         vi->only_restrict_pointers.
5487         (intra_create_variable_infos): Call create_variable_info_for_1 with
5488         extra arg.  Remove restrict handling.  Call make_param_constraints with
5489         one fewer arg.
5490
5491 2015-11-04  Tom de Vries  <tom@codesourcery.com>
5492
5493         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
5494         variable.
5495
5496 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5497
5498         * config/arm/coff.h: Remove.
5499
5500 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5501
5502         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
5503         check for aggregate types and beef up comment for mode check.
5504
5505 2015-11-03  Richard Biener  <rguenther@suse.de>
5506
5507         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
5508         data references here.
5509         * tree-vect-loop.c: Include cgraph.h.
5510         (vect_analyze_loop_2): Collect data references here.
5511         * tree-vect-slp.c (find_bb_location): Inline ...
5512         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
5513         Factor in vect_slp_transform_bb.
5514         (vect_slp_transform_bb): Removed.
5515         (vect_slp_analyze_bb_1): Collect data references here.
5516         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
5517         vect_slp_bb.
5518         * tree-vectorizer.h (vect_slp_bb): Declare.
5519         (vect_slp_analyze_bb): Remove.
5520         (vect_slp_transform_bb): Remove.
5521         (find_bb_location): Remove.
5522         (vect_analyze_data_refs): Remove stmt count reference parameter.
5523
5524 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
5525
5526         * multiple_target.c (create_dispatcher_calls): Add target check
5527         on ifunc.
5528         (create_target_clone): Change assembler name for versioned declarations.
5529
5530 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
5531             Chung-Lin Tang  <cltang@codesourcery.com>
5532
5533         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
5534         * omp-low.c (check_omp_nesting_restrictions): Allow
5535         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
5536         contexts.
5537
5538 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
5539
5540         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
5541         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
5542         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
5543         builtin.
5544         (vmulxq_f32): Likewise.
5545         (vmulx_f64): New.
5546         (vmulxq_f64): Rewrite to call fmulx builtin.
5547         (vmulxs_f32): Likewise.
5548         (vmulxd_f64): Likewise.
5549         (vmulx_lane_f32): Remove.
5550         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
5551
5552 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
5553
5554         * config/aarch64/aarch64.md (*movhf_aarch64): Use
5555         aarch64_reg_or_fp_zero for second operand.
5556
5557 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
5558
5559         * gimple-expr.c: Include hash-set.h and rtl.h.
5560         (mark_addressable_queue): New var.
5561         (mark_addressable): Factor actual marking into...
5562         (mark_addressable_1): ... this.  Queue it up during expand.
5563         (mark_addressable_2): New.
5564         (flush_mark_addressable_queue): New.
5565         * gimple-expr.h (flush_mark_addressable_queue): Declare.
5566         * cfgexpand.c: Include gimple-expr.h.
5567         (pass_expand::execute): Flush mark_addressable queue.
5568
5569 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
5570
5571         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
5572         bb_no_side_effects_p tests...
5573         (tree_ssa_ifcombine_bb): ... here.
5574
5575         PR tree-optimization/68083
5576         * tree-ssa-ifcombine.c: Include tree-ssa.h.
5577         (bb_no_side_effects_p): Test for undefined uses too.
5578         * tree-ssa.c (gimple_uses_undefined_value_p): New.
5579         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
5580
5581 2015-11-02  Jeff Law <law@redhat.com>
5582
5583         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
5584         cases where the loop latch edge is in the middle of an FSM path.
5585
5586 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5587
5588         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
5589         (make_param_constraints): ... this.  Add and handle restrict_name
5590         parameter.  Handle is_full_var case.
5591         (intra_create_variable_infos): Use make_param_constraints.
5592
5593 2015-11-03  Tom de Vries  <tom@codesourcery.com>
5594
5595         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
5596         make_copy_constraint call with make_constraint_from call.
5597
5598 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
5599
5600         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
5601         PIE executables.
5602
5603 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
5604
5605         * builtins.h (fold_fma): Move to fold-const-call.h.
5606         * builtins.c: Include fold-const-call.h.
5607         (mathfn_built_in_2): New function, split out from...
5608         (mathfn_built_in_1): ...here.
5609         (do_real_to_int_conversion, fold_const_builtin_pow)
5610         (fold_const_builtin_logb, fold_const_builtin_significand)
5611         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
5612         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
5613         (fold_builtin_sincos): Use fold_const_call to handle constants.
5614         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
5615         checks for ERROR_MARK.  Use fold_const_call to handle constant
5616         folds for math functions.
5617         (fold_fma): Move to fold-const-call.c.
5618         * fold-const.c: Include fold-const-call.h.
5619         * Makefile.in (OBJS): Add fold-const-call.o.
5620         (PLUGIN_HEADERS): Add fold-const-call.h.
5621         * realmpfr.h (real_from_mpfr): Allow the format to be specified
5622         directly.
5623         * realmpfr.c (real_from_mpfr): Likewise.
5624         * fold-const-call.h, fold-const-call.c: New files.
5625
5626 2015-11-02  Julian Brown  <julian@codesourcery.com>
5627
5628         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
5629         brackets and semicolon.
5630
5631 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
5632
5633         Revert:
5634         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
5635
5636         PR tree-optimization/65963
5637         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
5638         LSHIFT_EXPRs as equivalent MULT_EXPRs.
5639
5640 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
5641
5642         PR middle-end/68166
5643         * fold-const.c: Include "md5.h".
5644
5645 2015-11-01  Jeff Law <law@redhat.com>
5646
5647         * vmsdbgout.c: Revert unused header file reduction patch.
5648
5649         * config/mcore/mcore.c: Include regs.h.
5650
5651 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5652
5653         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
5654
5655 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
5656
5657         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
5658         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
5659         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
5660
5661 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
5662
5663         * ggc-common.c: Restore needed header for checking=release.
5664
5665 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5666
5667         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
5668
5669 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5670
5671         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
5672         existing varinfo for arguments.
5673
5674 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5675
5676         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
5677         create_function_info_for.  Dump constraints generated during
5678         create_function_info_for. Move intra_create_variable_infos call and
5679         function-return-values-escape bit to ...
5680         (create_function_info_for): ... here, and merge
5681         intra_create_variable_infos call with argument loop.  Add and handle
5682         nonlocal_p parameter.
5683
5684 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5685
5686         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
5687         updating is alap, and seperated from preceding code.  Make sure
5688         insert_vi_for_tree is seperated from surrounding code.
5689
5690 2015-10-31  Tom de Vries  <tom@codesourcery.com>
5691
5692         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
5693
5694 2015-10-30  Jeff Law <law@redhat.com>
5695             Nathan Sidwell  <nathan@acm.org>
5696
5697         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
5698         args.
5699         (MOVE_MAX): Set to 8.
5700
5701 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
5702
5703         * cgraph.c: Include context.h for offloading.
5704         * varpool.c: Include context.h and omp-low.h.
5705
5706 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
5707
5708         * rtl.h (contains_symbol_ref_p): Declare.
5709         (SYMBOL_REF_P): Define.
5710         * rtlanal.c (contains_symbol_ref_p: New function.
5711         * lra-constraints.c (contains_symbol_ref_p): Remove.
5712         * var-tracking.c (contains_symbol_ref): Remove.
5713         (track_expr_p): Use contains_symbol_ref_p instead of
5714         contains_symbol_ref.
5715
5716 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5717
5718         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
5719         * fold-const.c (get_array_ctor_element_at_index): New.
5720         (fold): Remove binary-search through CONSTRUCTOR, call previous.
5721
5722         * fold-const.h (get_array_ctor_element_at_index): New.
5723
5724 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
5725
5726         * Makefile.in (OBJS): Add multiple_target.o.
5727         * attrib.c (make_attribute): Moved from config/i386/i386.c
5728         * config/i386/i386.c (make_attribute): Deleted.
5729         * multiple_target.c (create_dispatcher_calls): New.
5730         (get_attr_len): Ditto.
5731         (get_attr_str): Ditto.
5732         (separate_attrs): Ditto.
5733         (is_valid_asm_symbol): Ditto.
5734         (create_new_asm_name): Ditto.
5735         (create_target_clone): Ditto.
5736         (expand_target_clones): Ditto.
5737         (ipa_target_clone): Ditto.
5738         (ipa_dispatcher_calls): Ditto.
5739         * passes.def (pass_target_clone): Two new ipa passes.
5740         * tree-pass.h (make_pass_target_clone): Ditto.
5741         * doc/extend.texi (target_clones): New attribute description.
5742
5743 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
5744
5745         PR rtl-optimization/68106
5746         * lra-remat.c (input_regno_present_p): Process hard regs
5747         explicitly present in machine description insns.
5748         (call_used_input_regno_present_p): Ditto.
5749         (calculate_gen_cands): Ditto.
5750         (do_remat): Ditto.
5751
5752 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
5753
5754         * config/arm/neon-testgen.ml: Fix comment typo.
5755
5756 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5757
5758         * rtlanal.c (reg_set_p): Expand function comment.
5759
5760 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
5761
5762         * alias.c: Remove unused headers.
5763         * asan.c: Likewise.
5764         * attribs.c: Likewise.
5765         * auto-inc-dec.c: Likewise.
5766         * auto-profile.c: Likewise.
5767         * bb-reorder.c: Likewise.
5768         * bitmap.c: Likewise.
5769         * bt-load.c: Likewise.
5770         * builtins.c: Likewise.
5771         * caller-save.c: Likewise.
5772         * calls.c: Likewise.
5773         * ccmp.c: Likewise.
5774         * cfg.c: Likewise.
5775         * cfganal.c: Likewise.
5776         * cfgbuild.c: Likewise.
5777         * cfgcleanup.c: Likewise.
5778         * cfgexpand.c: Likewise.
5779         * cfghooks.c: Likewise.
5780         * cfgloop.c: Likewise.
5781         * cfgloopanal.c: Likewise.
5782         * cfgloopmanip.c: Likewise.
5783         * cfgrtl.c: Likewise.
5784         * cgraph.c: Likewise.
5785         * cgraphbuild.c: Likewise.
5786         * cgraphclones.c: Likewise.
5787         * cgraphunit.c: Likewise.
5788         * cilk-common.c: Likewise.
5789         * combine-stack-adj.c: Likewise.
5790         * combine.c: Likewise.
5791         * compare-elim.c: Likewise.
5792         * convert.c: Likewise.
5793         * coverage.c: Likewise.
5794         * cppbuiltin.c: Likewise.
5795         * cprop.c: Likewise.
5796         * cse.c: Likewise.
5797         * cselib.c: Likewise.
5798         * data-streamer-in.c: Likewise.
5799         * data-streamer-out.c: Likewise.
5800         * data-streamer.c: Likewise.
5801         * dbxout.c: Likewise.
5802         * dce.c: Likewise.
5803         * ddg.c: Likewise.
5804         * debug.c: Likewise.
5805         * df-core.c: Likewise.
5806         * df-problems.c: Likewise.
5807         * df-scan.c: Likewise.
5808         * dfp.c: Likewise.
5809         * dojump.c: Likewise.
5810         * dominance.c: Likewise.
5811         * domwalk.c: Likewise.
5812         * double-int.c: Likewise.
5813         * dse.c: Likewise.
5814         * dumpfile.c: Likewise.
5815         * dwarf2asm.c: Likewise.
5816         * dwarf2cfi.c: Likewise.
5817         * dwarf2out.c: Likewise.
5818         * emit-rtl.c: Likewise.
5819         * except.c: Likewise.
5820         * explow.c: Likewise.
5821         * expmed.c: Likewise.
5822         * expr.c: Likewise.
5823         * final.c: Likewise.
5824         * fixed-value.c: Likewise.
5825         * fold-const.c: Likewise.
5826         * function.c: Likewise.
5827         * fwprop.c: Likewise.
5828         * gcse.c: Likewise.
5829         * generic-match-head.c: Likewise.
5830         * ggc-common.c: Likewise.
5831         * gimple-builder.c: Likewise.
5832         * gimple-expr.c: Likewise.
5833         * gimple-fold.c: Likewise.
5834         * gimple-iterator.c: Likewise.
5835         * gimple-low.c: Likewise.
5836         * gimple-match-head.c: Likewise.
5837         * gimple-pretty-print.c: Likewise.
5838         * gimple-ssa-isolate-paths.c: Likewise.
5839         * gimple-ssa-strength-reduction.c: Likewise.
5840         * gimple-streamer-in.c: Likewise.
5841         * gimple-streamer-out.c: Likewise.
5842         * gimple-walk.c: Likewise.
5843         * gimple.c: Likewise.
5844         * gimplify-me.c: Likewise.
5845         * gimplify.c: Likewise.
5846         * godump.c: Likewise.
5847         * graph.c: Likewise.
5848         * graphds.c: Likewise.
5849         * haifa-sched.c: Likewise.
5850         * hw-doloop.c: Likewise.
5851         * ifcvt.c: Likewise.
5852         * init-regs.c: Likewise.
5853         * internal-fn.c: Likewise.
5854         * ipa-chkp.c: Likewise.
5855         * ipa-comdats.c: Likewise.
5856         * ipa-cp.c: Likewise.
5857         * ipa-devirt.c: Likewise.
5858         * ipa-icf-gimple.c: Likewise.
5859         * ipa-icf.c: Likewise.
5860         * ipa-inline-analysis.c: Likewise.
5861         * ipa-inline-transform.c: Likewise.
5862         * ipa-inline.c: Likewise.
5863         * ipa-polymorphic-call.c: Likewise.
5864         * ipa-profile.c: Likewise.
5865         * ipa-prop.c: Likewise.
5866         * ipa-pure-const.c: Likewise.
5867         * ipa-ref.c: Likewise.
5868         * ipa-reference.c: Likewise.
5869         * ipa-split.c: Likewise.
5870         * ipa-utils.c: Likewise.
5871         * ipa-visibility.c: Likewise.
5872         * ipa.c: Likewise.
5873         * ira-build.c: Likewise.
5874         * ira-color.c: Likewise.
5875         * ira-conflicts.c: Likewise.
5876         * ira-costs.c: Likewise.
5877         * ira-emit.c: Likewise.
5878         * ira-lives.c: Likewise.
5879         * ira.c: Likewise.
5880         * jump.c: Likewise.
5881         * langhooks.c: Likewise.
5882         * lcm.c: Likewise.
5883         * lists.c: Likewise.
5884         * loop-doloop.c: Likewise.
5885         * loop-init.c: Likewise.
5886         * loop-invariant.c: Likewise.
5887         * loop-iv.c: Likewise.
5888         * loop-unroll.c: Likewise.
5889         * lower-subreg.c: Likewise.
5890         * lra-assigns.c: Likewise.
5891         * lra-coalesce.c: Likewise.
5892         * lra-constraints.c: Likewise.
5893         * lra-eliminations.c: Likewise.
5894         * lra-lives.c: Likewise.
5895         * lra-remat.c: Likewise.
5896         * lra-spills.c: Likewise.
5897         * lra.c: Likewise.
5898         * lto-cgraph.c: Likewise.
5899         * lto-compress.c: Likewise.
5900         * lto-opts.c: Likewise.
5901         * lto-section-in.c: Likewise.
5902         * lto-section-out.c: Likewise.
5903         * lto-streamer-in.c: Likewise.
5904         * lto-streamer-out.c: Likewise.
5905         * lto-streamer.c: Likewise.
5906         * mcf.c: Likewise.
5907         * mode-switching.c: Likewise.
5908         * modulo-sched.c: Likewise.
5909         * optabs.c: Likewise.
5910         * opts-global.c: Likewise.
5911         * passes.c: Likewise.
5912         * plugin.c: Likewise.
5913         * postreload-gcse.c: Likewise.
5914         * postreload.c: Likewise.
5915         * predict.c: Likewise.
5916         * print-tree.c: Likewise.
5917         * profile.c: Likewise.
5918         * real.c: Likewise.
5919         * realmpfr.c: Likewise.
5920         * recog.c: Likewise.
5921         * ree.c: Likewise.
5922         * reg-stack.c: Likewise.
5923         * regcprop.c: Likewise.
5924         * reginfo.c: Likewise.
5925         * regrename.c: Likewise.
5926         * regstat.c: Likewise.
5927         * reload.c: Likewise.
5928         * reload1.c: Likewise.
5929         * reorg.c: Likewise.
5930         * resource.c: Likewise.
5931         * rtl-chkp.c: Likewise.
5932         * rtl-error.c: Likewise.
5933         * rtlanal.c: Likewise.
5934         * rtlhooks.c: Likewise.
5935         * sanopt.c: Likewise.
5936         * sched-deps.c: Likewise.
5937         * sched-ebb.c: Likewise.
5938         * sched-rgn.c: Likewise.
5939         * sdbout.c: Likewise.
5940         * sel-sched-dump.c: Likewise.
5941         * sel-sched-ir.c: Likewise.
5942         * sel-sched.c: Likewise.
5943         * sese.c: Likewise.
5944         * shrink-wrap.c: Likewise.
5945         * simplify-rtx.c: Likewise.
5946         * stack-ptr-mod.c: Likewise.
5947         * statistics.c: Likewise.
5948         * stmt.c: Likewise.
5949         * stor-layout.c: Likewise.
5950         * store-motion.c: Likewise.
5951         * stringpool.c: Likewise.
5952         * symtab.c: Likewise.
5953         * target-globals.c: Likewise.
5954         * targhooks.c: Likewise.
5955         * toplev.c: Likewise.
5956         * tracer.c: Likewise.
5957         * trans-mem.c: Likewise.
5958         * tree-affine.c: Likewise.
5959         * tree-call-cdce.c: Likewise.
5960         * tree-cfg.c: Likewise.
5961         * tree-cfgcleanup.c: Likewise.
5962         * tree-chkp-opt.c: Likewise.
5963         * tree-chkp.c: Likewise.
5964         * tree-chrec.c: Likewise.
5965         * tree-complex.c: Likewise.
5966         * tree-data-ref.c: Likewise.
5967         * tree-dfa.c: Likewise.
5968         * tree-diagnostic.c: Likewise.
5969         * tree-dump.c: Likewise.
5970         * tree-eh.c: Likewise.
5971         * tree-emutls.c: Likewise.
5972         * tree-if-conv.c: Likewise.
5973         * tree-inline.c: Likewise.
5974         * tree-into-ssa.c: Likewise.
5975         * tree-iterator.c: Likewise.
5976         * tree-loop-distribution.c: Likewise.
5977         * tree-nested.c: Likewise.
5978         * tree-nrv.c: Likewise.
5979         * tree-object-size.c: Likewise.
5980         * tree-outof-ssa.c: Likewise.
5981         * tree-parloops.c: Likewise.
5982         * tree-phinodes.c: Likewise.
5983         * tree-predcom.c: Likewise.
5984         * tree-pretty-print.c: Likewise.
5985         * tree-profile.c: Likewise.
5986         * tree-scalar-evolution.c: Likewise.
5987         * tree-sra.c: Likewise.
5988         * tree-ssa-address.c: Likewise.
5989         * tree-ssa-alias.c: Likewise.
5990         * tree-ssa-ccp.c: Likewise.
5991         * tree-ssa-coalesce.c: Likewise.
5992         * tree-ssa-copy.c: Likewise.
5993         * tree-ssa-dce.c: Likewise.
5994         * tree-ssa-dse.c: Likewise.
5995         * tree-ssa-forwprop.c: Likewise.
5996         * tree-ssa-ifcombine.c: Likewise.
5997         * tree-ssa-live.c: Likewise.
5998         * tree-ssa-loop-ch.c: Likewise.
5999         * tree-ssa-loop-im.c: Likewise.
6000         * tree-ssa-loop-ivcanon.c: Likewise.
6001         * tree-ssa-loop-ivopts.c: Likewise.
6002         * tree-ssa-loop-manip.c: Likewise.
6003         * tree-ssa-loop-niter.c: Likewise.
6004         * tree-ssa-loop-prefetch.c: Likewise.
6005         * tree-ssa-loop-unswitch.c: Likewise.
6006         * tree-ssa-loop.c: Likewise.
6007         * tree-ssa-math-opts.c: Likewise.
6008         * tree-ssa-operands.c: Likewise.
6009         * tree-ssa-phiopt.c: Likewise.
6010         * tree-ssa-phiprop.c: Likewise.
6011         * tree-ssa-pre.c: Likewise.
6012         * tree-ssa-propagate.c: Likewise.
6013         * tree-ssa-reassoc.c: Likewise.
6014         * tree-ssa-scopedtables.c: Likewise.
6015         * tree-ssa-sink.c: Likewise.
6016         * tree-ssa-strlen.c: Likewise.
6017         * tree-ssa-structalias.c: Likewise.
6018         * tree-ssa-tail-merge.c: Likewise.
6019         * tree-ssa-ter.c: Likewise.
6020         * tree-ssa-threadupdate.c: Likewise.
6021         * tree-ssa-uncprop.c: Likewise.
6022         * tree-ssa-uninit.c: Likewise.
6023         * tree-ssa.c: Likewise.
6024         * tree-ssanames.c: Likewise.
6025         * tree-stdarg.c: Likewise.
6026         * tree-streamer-in.c: Likewise.
6027         * tree-streamer-out.c: Likewise.
6028         * tree-streamer.c: Likewise.
6029         * tree-switch-conversion.c: Likewise.
6030         * tree-tailcall.c: Likewise.
6031         * tree-vect-data-refs.c: Likewise.
6032         * tree-vect-generic.c: Likewise.
6033         * tree-vect-loop-manip.c: Likewise.
6034         * tree-vect-loop.c: Likewise.
6035         * tree-vect-patterns.c: Likewise.
6036         * tree-vect-slp.c: Likewise.
6037         * tree-vect-stmts.c: Likewise.
6038         * tree-vectorizer.c: Likewise.
6039         * tree-vrp.c: Likewise.
6040         * tree.c: Likewise.
6041         * tsan.c: Likewise.
6042         * ubsan.c: Likewise.
6043         * value-prof.c: Likewise.
6044         * var-tracking.c: Likewise.
6045         * varasm.c: Likewise.
6046         * varpool.c: Likewise.
6047         * vmsdbgout.c: Likewise.
6048         * vtable-verify.c: Likewise.
6049         * web.c: Likewise.
6050         * wide-int-print.cc: Likewise.
6051         * wide-int.cc: Likewise.
6052         * xcoffout.c: Likewise.
6053
6054 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
6055
6056         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
6057         between pass numbering and execution order.
6058
6059 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6060
6061         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
6062         check for dependencies.
6063
6064 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6065
6066         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
6067         CDI_DOMINATORS.
6068
6069 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6070
6071         * real.h (format_helper): New.
6072         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
6073         (real_from_target, real_nan, real_2expN, real_value_truncate)
6074         (significand_size, real_from_string2, exact_real_inverse)
6075         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
6076         (real_round, real_isinteger, real_from_integer): Replace
6077         machine_mode arguments with format_helper arguments.
6078         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
6079         (real_from_integer, real_nan, real_2expN, real_convert)
6080         (real_value_truncate, exact_real_truncate, real_to_target)
6081         (real_from_target, significand_size, real_powi, real_trunc)
6082         (real_floor, real_ceil, real_round, real_isinteger): Replace
6083         machine_mode arguments with format_helper arguments.
6084         (real_to_target_fmt, real_from_target_fmt): Delete.
6085         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
6086         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
6087         argument with real_format.
6088         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
6089
6090 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6091
6092         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
6093         (fixed_to_decimal, fixed_convert_from_real)
6094         (real_convert_from_fixed): Fix mode arguments to real_2expN.
6095
6096 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
6097
6098         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
6099         SCALAR_FLOAT_MODE_P.
6100
6101 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
6102
6103         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
6104         (completely_scalarize): Comment zero-length arrays.
6105         (get_access_replacement): Correct comment re. precondition.
6106
6107 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6108
6109         * config/i386/i386.c (get_builtin_code_for_version): Set priority
6110         for PROCESSOR_ZNVER1.
6111         (enum processor_model): Add M_AMDFAM17H_znver1.
6112         (struct arch_names_table): Likewise.
6113         * doc/extend.texi: ADD znver1.
6114
6115 2015-10-30  Richard Biener  <rguenther@suse.de>
6116
6117         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
6118         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
6119         zeros to be folded to VECTOR_CSTs.
6120         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
6121         * fold-const.c (fold): Use build_vector_from_ctor.
6122
6123 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
6124
6125         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
6126         "mov %0.h[0], %1.h[0] to "neon_move".
6127         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
6128         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
6129         "mov_imm".
6130         (*cmovsi_insn_uxtw): Likewise.
6131
6132 2015-10-30  Tom de Vries  <tom@codesourcery.com>
6133
6134         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
6135         unsigned, and initialize, and use initial value instead of hardcoded
6136         constant.  Add generic constraints dumping section.  Don't dump global
6137         initializers constraints dumping section if empty.  Don't update
6138         variable from if unused.
6139
6140 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6141
6142         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
6143         flag_checking and/or CHECKING_P to eliminate conditional compilation
6144         on ENABLE_CHECKING.
6145         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
6146         * config/bfin/bfin.c (hwloop_optimize): Likewise.
6147         * config/i386/i386.c (ix86_print_operand_address): Likewise.
6148         (output_387_binary_op): Likewise.
6149         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
6150         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
6151         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
6152         Likewise.
6153         * config/rs6000/rs6000.h: Likewise.
6154         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
6155
6156 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6157
6158         * config/sh/sh.opt (mfdpic): Add missing period.
6159
6160 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6161
6162         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6163         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
6164         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6165         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
6166         mcore_base_register_rtx_p, mcore_legitimate_index_p,
6167         mcore_legitimate_address_p): New functions.
6168         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6169
6170 2015-10-29  Jeff Law  <law@redhat.com>
6171
6172         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
6173         method.
6174         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
6175         * tree-ssa-threadedge.c
6176         (record_temporary_equivalences_from_stmts_at_dest): Remove
6177         backedge_seen argument and associated code which invalidated
6178         equivalences based on the value of that argument.
6179         (thread_through_normal_block): Corresponding changes.
6180
6181 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6182
6183         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
6184         function earlier in the file.
6185         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
6186         df_regs_ever_live_p.
6187
6188 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6189
6190         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
6191         by ignoring it.
6192
6193 2015-10-29  Richard Henderson  <rth@redhat.com>
6194
6195         PR target/68124
6196         PR rtl-opt/67609
6197         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
6198         sse check to the exact conditions of PR 67609.
6199
6200 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6201
6202         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
6203         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
6204         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
6205         of the traditional names that TFmode uses for handling IEEE
6206         extended double. If -mfloat128, add KFmode functions for all of
6207         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
6208         make TFmode use the same emulation functions as KFmode.
6209         (init_float128_ibm): Likewise.
6210         (init_float128_ieee): Likewise.
6211         (rs6000_generate_compare): For IEEE 128-bit floating point
6212         comparisons, call the unordered comparison function instead of the
6213         ordered comparison function.
6214         (rs6000_expand_float128_convert): Deal with operands that are
6215         memory operands. Restructure the code to use a switch statement on
6216         the mode. Add support for TFmode defaulting to either IBM extended
6217         double or IEEE 128-bit floating point. If the underlying types are
6218         the same, use a move instead of a conversion function.
6219         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
6220         use for IEEE 128-bit floating point constants with -mfloat128.
6221         (rs6000_c_mode_for_suffix): Likewise.
6222         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
6223         128-bit floating point with IBM extended double floating point.
6224         (rs6000_invalid_binary_op): Likewise.
6225         (rs6000_gen_le_vsx_permute): On little endian systems generate a
6226         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
6227         types that can go in vector registers.
6228         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
6229         point types that can go in vector registers on little endian
6230         PowerPC systems.
6231         (mark_swaps_for_removal): Likewise.
6232         (rs6000_analyze_swaps): Likewise.
6233         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
6234
6235         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
6236         rework IEEE 128-bit floating point insns to deal with TFmode being
6237         either IBM extended double or IEEE 128-bit floating point.
6238         (IFKF): Likewise.
6239         (IBM128): Update iterator to add condition that the mode is IBM
6240         extended double.
6241         (IEEE128): New iterator for IEEE 128-bit floating point.
6242         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
6243         (FLOAT128): Likewise.
6244         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
6245         iterator.
6246         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
6247         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
6248         instead of hard coding TFmode or KFmode.
6249         (negtf2_internal): Likewise.
6250         (neg<mode>2_internal): Likewise.
6251         (abs<mode>2): Likewise.
6252         (abstf2_internal): Likewise.
6253         (abs<mode>2_internal): Likewise.
6254         (ieee_128bit_neg<mode>2): Likewise.
6255         (ieee_128bit_neg<mode>2_internal): Likewise.
6256         (ieee_128bit_abs<mode>2): Likewise.
6257         (ieee_128bit_abs<mode>2_internal): Likewise.
6258         (ieee_128bit_nabs<mode>2): Likewise.
6259         (ieee_128bit_nabs<mode>2_internal): Likewise.
6260         (extendiftf2): Add explicit conversions between 128-bit floating
6261         point types. Drop the old conversions that had become unwieldy.
6262         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
6263         (extendifkf2): Likewise.
6264         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
6265         (extendtfkf2): Likewise.
6266         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
6267         (trunciftf2): Likewise.
6268         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
6269         (truncifkf2): Likewise.
6270         (float<SDI:mode><IFKF:mode>2): Likewise.
6271         (trunckftf2): Likewise.
6272         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
6273         (trunctfif2): Likewise.
6274         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
6275         (extenddftf2): Rework 128-bit floating point conversions to
6276         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
6277         KFmode expanders into one function.
6278         (extenddf<mode>2): Likewise.
6279         (extenddftf2_fprs): Likewise.
6280         (extenddf<mode>2_fprs): Likewise.
6281         (extenddftf2_vsx): Likewise.
6282         (extenddf<mode>2_vsx): Likewise.
6283         (extendsftf2): Likewise.
6284         (extendsf<mode>2): Likewise.
6285         (trunctfdf2): Likewise.
6286         (trunc<mode>df2): Likewise.
6287         (trunctfdf2_internal1): Likewise.
6288         (trunc<mode>df2_internal1): Likewise.
6289         (trunctfdf2_internal2): Likewise.
6290         (trunc<mode>df2_internal2): Likewise.
6291         (trunctfsf2): Likewise.
6292         (trunc<mode>sf2): Likewise.
6293         (trunctfsf2_fprs): Likewise.
6294         (trunc<mode>sf2_fprs): Likewise.
6295         (floatsit2f): Likewise.
6296         (floatsi<mode>2): Likewise.
6297         (fix_trunc_helper): Likewise.
6298         (fix_trunc_helper<mode>): Likewise.
6299         (fix_trunctfsi2): Likewise.
6300         (fix_trunc<mode>si2): Likewise.
6301         (fix_trunctfsi2_fprs): Likewise.
6302         (fix_trunc<mode>si2_fprs): Likewise.
6303         (fix_trunctfsi2_internal): Likewise.
6304         (fix_trunc<mode>si2_internal): Likewise.
6305         (fix_trunctfdi2): Likewise.
6306         (fix_trunc<mode>di2): Likewise.
6307         (fixuns_trunctf<mode>2): Likewise.
6308         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6309         (floatditf2): Likewise.
6310         (floatdi<mode>2): Likewise.
6311         (floatuns<mode>tf2): Likewise.
6312         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
6313         (cmptf_internal1): Use a mode iterator to add support for both
6314         types (IFmode, TFmode) that support IBM extended double.
6315         (cmp<mode>_internal1): Likewise.
6316         (cmptf_internal2): Likewise.
6317         (cmp<mode>_internal2): Likewise.
6318
6319         * doc/extend.texi (Floating Types): Document __ibm128 and
6320         __float128 on PowerPC.
6321
6322         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6323         -mfloat128 and -mno-float128.
6324
6325 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
6326
6327         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
6328         floating point modes that can go in vector registers.
6329         (MODES_TIEABLE_P): Move tests for vector modes before tests for
6330         scalar floating point, so that IEEE 128-bit floating point that
6331         can go in vector registers bind with vectors and not FP.
6332         (struct rs6000_args): Add libcall field.
6333
6334         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
6335         and -mfloat128-software switches.  Replace them with a binary
6336         -mfloat128 switch.
6337         (-mfloat128): Likewise.
6338
6339         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
6340         128-bit floating point types in GPRs, even if the appropriate
6341         option enabling the type was not used.
6342         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
6343         debugging.
6344         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
6345         pre-decrement on IEEE 128-bit floating point values.
6346         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
6347         is IEEE 128-bit floating point.
6348         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
6349         128-bit floating point types that can go in vector registers.
6350         (rs6000_option_override_internal): Change -mfloat128-none and
6351         -mfloat128-software to -mfloat128, and move code to be near other
6352         VSX option handling.
6353         (rs6000_option_override_internal): Disable -mfloat128 if we don't
6354         have the Altivec ABI.
6355         (rs6000_init_builtins): Don't make TFmode use either IFmode or
6356         KFmode floating point nodes. Instead, have three separate nodes.
6357         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
6358         eventually moving the long double default to IEEE 128-bit floating
6359         point.
6360         (rs6000_opt_masks): Add -mfloat128.
6361         (struct rs6000_opt_var): Fix typo in comment.
6362         (init_cumulative_args): Initialize libcall field in
6363         CUMULATIVE_ARGS.
6364         (rs6000_function_arg): Treat library functions as if they had
6365         prototypes to prevent IEEE 128-bit support functions from passing
6366         arguments in both GPRs and vector registers.
6367         (rs6000_arg_partial_bytes): Likewise.
6368
6369         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
6370         an option that can be turned on via -mcpu=<xxx>.
6371
6372         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
6373         longer used.
6374
6375         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6376         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
6377         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
6378         double is IBM extended double.
6379
6380         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
6381         SUBREGs.
6382
6383 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
6384
6385         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
6386         * genconditions.c: Define CHECKING_P in the generated code.
6387         * genextract.c: Use flag_checking in insn_extract.
6388         * gengtype.c (main): Remove conditional compilation.
6389         * gengtype.h: Likewise.
6390
6391 2015-10-29  Jeff Law  <law@redhat.com>
6392
6393         PR tree-optimization/67892
6394         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
6395         in comment.
6396         (thread_through_normal_block): If we have seen a backedge, then
6397         do nothing.  No longer call find_jump_threads_backwards here.
6398         (thread_across_edge): Use find_jump_threads_backwards to find
6399         jump threads if the old style threader was not successful.
6400         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
6401         gsi_last_nondebug_bb.  Return NULL if the block does not end
6402         with a control statement.
6403         (find_jump_threads_backwards): Setup code moved here from
6404         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
6405         single edge argument instead of name & block.
6406         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
6407         prototype.
6408
6409 2015-10-29  Tom de Vries  <tom@codesourcery.com>
6410
6411         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
6412         types.
6413
6414 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
6415
6416         * omp-low.c (lower_omp_target): Remove unreachable code & merge
6417         ifs.
6418
6419 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
6420
6421         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
6422
6423 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6424
6425         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6426         guard_bb0 and use guard_bb throughout.
6427
6428 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
6429
6430         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
6431         unnecessary label.
6432
6433 2015-10-29  Richard Biener  <rguenther@suse.de>
6434
6435         PR middle-end/68142
6436         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
6437         overflow.
6438
6439 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
6440
6441         * alias.c: Reorder #include statements and remove duplicates.
6442         * asan.c: Likewise.
6443         * attribs.c: Likewise.
6444         * auto-inc-dec.c: Likewise.
6445         * auto-profile.c: Likewise.
6446         * bb-reorder.c: Likewise.
6447         * bt-load.c: Likewise.
6448         * builtins.c: Likewise.
6449         * caller-save.c: Likewise.
6450         * calls.c: Likewise.
6451         * ccmp.c: Likewise.
6452         * cfg.c: Likewise.
6453         * cfganal.c: Likewise.
6454         * cfgbuild.c: Likewise.
6455         * cfgcleanup.c: Likewise.
6456         * cfgexpand.c: Likewise.
6457         * cfghooks.c: Likewise.
6458         * cfgloop.c: Likewise.
6459         * cfgloopanal.c: Likewise.
6460         * cfgloopmanip.c: Likewise.
6461         * cfgrtl.c: Likewise.
6462         * cgraph.c: Likewise.
6463         * cgraphbuild.c: Likewise.
6464         * cgraphclones.c: Likewise.
6465         * cgraphunit.c: Likewise.
6466         * cilk-common.c: Likewise.
6467         * combine-stack-adj.c: Likewise.
6468         * combine.c: Likewise.
6469         * compare-elim.c: Likewise.
6470         * convert.c: Likewise.
6471         * coverage.c: Likewise.
6472         * cppbuiltin.c: Likewise.
6473         * cprop.c: Likewise.
6474         * cse.c: Likewise.
6475         * cselib.c: Likewise.
6476         * data-streamer-in.c: Likewise.
6477         * data-streamer-out.c: Likewise.
6478         * data-streamer.c: Likewise.
6479         * dbxout.c: Likewise.
6480         * dce.c: Likewise.
6481         * ddg.c: Likewise.
6482         * debug.c: Likewise.
6483         * df-core.c: Likewise.
6484         * df-problems.c: Likewise.
6485         * df-scan.c: Likewise.
6486         * dfp.c: Likewise.
6487         * dojump.c: Likewise.
6488         * dominance.c: Likewise.
6489         * double-int.c: Likewise.
6490         * dse.c: Likewise.
6491         * dumpfile.c: Likewise.
6492         * dwarf2asm.c: Likewise.
6493         * dwarf2cfi.c: Likewise.
6494         * dwarf2out.c: Likewise.
6495         * emit-rtl.c: Likewise.
6496         * except.c: Likewise.
6497         * explow.c: Likewise.
6498         * expmed.c: Likewise.
6499         * expr.c: Likewise.
6500         * final.c: Likewise.
6501         * fixed-value.c: Likewise.
6502         * fold-const.c: Likewise.
6503         * function.c: Likewise.
6504         * fwprop.c: Likewise.
6505         * gcse.c: Likewise.
6506         * generic-match-head.c: Likewise.
6507         * ggc-common.c: Likewise.
6508         * gimple-builder.c: Likewise.
6509         * gimple-expr.c: Likewise.
6510         * gimple-fold.c: Likewise.
6511         * gimple-iterator.c: Likewise.
6512         * gimple-low.c: Likewise.
6513         * gimple-match-head.c: Likewise.
6514         * gimple-pretty-print.c: Likewise.
6515         * gimple-ssa-isolate-paths.c: Likewise.
6516         * gimple-ssa-strength-reduction.c: Likewise.
6517         * gimple-streamer-in.c: Likewise.
6518         * gimple-streamer-out.c: Likewise.
6519         * gimple-walk.c: Likewise.
6520         * gimple.c: Likewise.
6521         * gimplify-me.c: Likewise.
6522         * gimplify.c: Likewise.
6523         * godump.c: Likewise.
6524         * graph.c: Likewise.
6525         * graphite-poly.c: Likewise.
6526         * haifa-sched.c: Likewise.
6527         * hw-doloop.c: Likewise.
6528         * ifcvt.c: Likewise.
6529         * incpath.c: Likewise.
6530         * init-regs.c: Likewise.
6531         * internal-fn.c: Likewise.
6532         * ipa-chkp.c: Likewise.
6533         * ipa-comdats.c: Likewise.
6534         * ipa-cp.c: Likewise.
6535         * ipa-devirt.c: Likewise.
6536         * ipa-icf-gimple.c: Likewise.
6537         * ipa-icf.c: Likewise.
6538         * ipa-inline-analysis.c: Likewise.
6539         * ipa-inline-transform.c: Likewise.
6540         * ipa-inline.c: Likewise.
6541         * ipa-polymorphic-call.c: Likewise.
6542         * ipa-profile.c: Likewise.
6543         * ipa-prop.c: Likewise.
6544         * ipa-pure-const.c: Likewise.
6545         * ipa-ref.c: Likewise.
6546         * ipa-reference.c: Likewise.
6547         * ipa-split.c: Likewise.
6548         * ipa-utils.c: Likewise.
6549         * ipa-visibility.c: Likewise.
6550         * ipa.c: Likewise.
6551         * ira-build.c: Likewise.
6552         * ira-color.c: Likewise.
6553         * ira-conflicts.c: Likewise.
6554         * ira-costs.c: Likewise.
6555         * ira-emit.c: Likewise.
6556         * ira-lives.c: Likewise.
6557         * ira.c: Likewise.
6558         * jump.c: Likewise.
6559         * langhooks.c: Likewise.
6560         * lcm.c: Likewise.
6561         * lists.c: Likewise.
6562         * loop-doloop.c: Likewise.
6563         * loop-init.c: Likewise.
6564         * loop-invariant.c: Likewise.
6565         * loop-iv.c: Likewise.
6566         * loop-unroll.c: Likewise.
6567         * lower-subreg.c: Likewise.
6568         * lra-assigns.c: Likewise.
6569         * lra-coalesce.c: Likewise.
6570         * lra-constraints.c: Likewise.
6571         * lra-eliminations.c: Likewise.
6572         * lra-lives.c: Likewise.
6573         * lra-remat.c: Likewise.
6574         * lra-spills.c: Likewise.
6575         * lra.c: Likewise.
6576         * lto-cgraph.c: Likewise.
6577         * lto-compress.c: Likewise.
6578         * lto-opts.c: Likewise.
6579         * lto-section-in.c: Likewise.
6580         * lto-section-out.c: Likewise.
6581         * lto-streamer-in.c: Likewise.
6582         * lto-streamer-out.c: Likewise.
6583         * lto-streamer.c: Likewise.
6584         * mode-switching.c: Likewise.
6585         * modulo-sched.c: Likewise.
6586         * omp-low.c: Likewise.
6587         * optabs.c: Likewise.
6588         * opts-global.c: Likewise.
6589         * passes.c: Likewise.
6590         * plugin.c: Likewise.
6591         * postreload-gcse.c: Likewise.
6592         * postreload.c: Likewise.
6593         * predict.c: Likewise.
6594         * print-tree.c: Likewise.
6595         * profile.c: Likewise.
6596         * real.c: Likewise.
6597         * realmpfr.c: Likewise.
6598         * recog.c: Likewise.
6599         * ree.c: Likewise.
6600         * reg-stack.c: Likewise.
6601         * regcprop.c: Likewise.
6602         * reginfo.c: Likewise.
6603         * regrename.c: Likewise.
6604         * regstat.c: Likewise.
6605         * reload.c: Likewise.
6606         * reload1.c: Likewise.
6607         * reorg.c: Likewise.
6608         * resource.c: Likewise.
6609         * rtl-chkp.c: Likewise.
6610         * rtl-error.c: Likewise.
6611         * rtlanal.c: Likewise.
6612         * rtlhooks.c: Likewise.
6613         * sanopt.c: Likewise.
6614         * sched-deps.c: Likewise.
6615         * sched-ebb.c: Likewise.
6616         * sched-rgn.c: Likewise.
6617         * sese.c: Likewise.
6618         * shrink-wrap.c: Likewise.
6619         * simplify-rtx.c: Likewise.
6620         * stack-ptr-mod.c: Likewise.
6621         * statistics.c: Likewise.
6622         * stmt.c: Likewise.
6623         * stor-layout.c: Likewise.
6624         * store-motion.c: Likewise.
6625         * stringpool.c: Likewise.
6626         * symtab.c: Likewise.
6627         * target-globals.c: Likewise.
6628         * targhooks.c: Likewise.
6629         * toplev.c: Likewise.
6630         * tracer.c: Likewise.
6631         * trans-mem.c: Likewise.
6632         * tree-affine.c: Likewise.
6633         * tree-call-cdce.c: Likewise.
6634         * tree-cfg.c: Likewise.
6635         * tree-cfgcleanup.c: Likewise.
6636         * tree-chkp-opt.c: Likewise.
6637         * tree-chkp.c: Likewise.
6638         * tree-chrec.c: Likewise.
6639         * tree-complex.c: Likewise.
6640         * tree-data-ref.c: Likewise.
6641         * tree-dfa.c: Likewise.
6642         * tree-diagnostic.c: Likewise.
6643         * tree-dump.c: Likewise.
6644         * tree-eh.c: Likewise.
6645         * tree-emutls.c: Likewise.
6646         * tree-if-conv.c: Likewise.
6647         * tree-inline.c: Likewise.
6648         * tree-into-ssa.c: Likewise.
6649         * tree-iterator.c: Likewise.
6650         * tree-loop-distribution.c: Likewise.
6651         * tree-nested.c: Likewise.
6652         * tree-nrv.c: Likewise.
6653         * tree-object-size.c: Likewise.
6654         * tree-outof-ssa.c: Likewise.
6655         * tree-parloops.c: Likewise.
6656         * tree-phinodes.c: Likewise.
6657         * tree-predcom.c: Likewise.
6658         * tree-pretty-print.c: Likewise.
6659         * tree-profile.c: Likewise.
6660         * tree-scalar-evolution.c: Likewise.
6661         * tree-sra.c: Likewise.
6662         * tree-ssa-address.c: Likewise.
6663         * tree-ssa-alias.c: Likewise.
6664         * tree-ssa-ccp.c: Likewise.
6665         * tree-ssa-coalesce.c: Likewise.
6666         * tree-ssa-copy.c: Likewise.
6667         * tree-ssa-dce.c: Likewise.
6668         * tree-ssa-dom.c: Likewise.
6669         * tree-ssa-dse.c: Likewise.
6670         * tree-ssa-forwprop.c: Likewise.
6671         * tree-ssa-ifcombine.c: Likewise.
6672         * tree-ssa-live.c: Likewise.
6673         * tree-ssa-loop-ch.c: Likewise.
6674         * tree-ssa-loop-im.c: Likewise.
6675         * tree-ssa-loop-ivcanon.c: Likewise.
6676         * tree-ssa-loop-ivopts.c: Likewise.
6677         * tree-ssa-loop-manip.c: Likewise.
6678         * tree-ssa-loop-niter.c: Likewise.
6679         * tree-ssa-loop-prefetch.c: Likewise.
6680         * tree-ssa-loop-unswitch.c: Likewise.
6681         * tree-ssa-loop.c: Likewise.
6682         * tree-ssa-math-opts.c: Likewise.
6683         * tree-ssa-operands.c: Likewise.
6684         * tree-ssa-phiopt.c: Likewise.
6685         * tree-ssa-phiprop.c: Likewise.
6686         * tree-ssa-pre.c: Likewise.
6687         * tree-ssa-propagate.c: Likewise.
6688         * tree-ssa-reassoc.c: Likewise.
6689         * tree-ssa-sccvn.c: Likewise.
6690         * tree-ssa-scopedtables.c: Likewise.
6691         * tree-ssa-sink.c: Likewise.
6692         * tree-ssa-strlen.c: Likewise.
6693         * tree-ssa-structalias.c: Likewise.
6694         * tree-ssa-tail-merge.c: Likewise.
6695         * tree-ssa-ter.c: Likewise.
6696         * tree-ssa-threadedge.c: Likewise.
6697         * tree-ssa-threadupdate.c: Likewise.
6698         * tree-ssa-uncprop.c: Likewise.
6699         * tree-ssa-uninit.c: Likewise.
6700         * tree-ssa.c: Likewise.
6701         * tree-ssanames.c: Likewise.
6702         * tree-stdarg.c: Likewise.
6703         * tree-streamer-in.c: Likewise.
6704         * tree-streamer-out.c: Likewise.
6705         * tree-streamer.c: Likewise.
6706         * tree-switch-conversion.c: Likewise.
6707         * tree-tailcall.c: Likewise.
6708         * tree-vect-data-refs.c: Likewise.
6709         * tree-vect-generic.c: Likewise.
6710         * tree-vect-loop-manip.c: Likewise.
6711         * tree-vect-loop.c: Likewise.
6712         * tree-vect-patterns.c: Likewise.
6713         * tree-vect-slp.c: Likewise.
6714         * tree-vect-stmts.c: Likewise.
6715         * tree-vectorizer.c: Likewise.
6716         * tree-vrp.c: Likewise.
6717         * tree.c: Likewise.
6718         * tsan.c: Likewise.
6719         * ubsan.c: Likewise.
6720         * value-prof.c: Likewise.
6721         * var-tracking.c: Likewise.
6722         * varasm.c: Likewise.
6723         * varpool.c: Likewise.
6724         * vtable-verify.c: Likewise.
6725         * web.c: Likewise.
6726         * wide-int-print.cc: Likewise.
6727         * wide-int.cc: Likewise.
6728         * xcoffout.c: Likewise.
6729
6730 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
6731
6732         * Makefile.in (NO_PIE_CFLAGS): New.
6733         (NO_PIE_FLAG): Likewise.
6734         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6735         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6736         (BUILD_NO_PIE_CFLAGS): Likewise.
6737         (BUILD_NO_PIE_FLAG): Likewise.
6738         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
6739         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
6740         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
6741         $(BUILD_NO_PIE_CFLAGS).
6742         (BUILD_CXXFLAGS): Likewise.
6743         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
6744         $(BUILD_NO_PIE_FLAG).
6745         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
6746         (BUILD_NO_PIE_FLAG): Likewise.
6747         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
6748         (NO_PIE_FLAG_FOR_BUILD): Likewise.
6749         * configure: Regenerated.
6750
6751 2015-10-29  Richard Biener  <rguenther@suse.de>
6752
6753         PR middle-end/56956
6754         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
6755         unsigned conditonal negation to ABS_EXPR.
6756
6757 2015-10-29  Richard Biener  <rguenther@suse.de>
6758
6759         * gimple-match-head.c (gimple_simplify): Remove premature checking
6760         of builtin_decl_implicit of function calls we simplify.
6761
6762 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
6763
6764         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
6765         (get_computation_cost_at): Ditto.
6766         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
6767         and inv_expr_id.
6768
6769 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6770
6771         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
6772         superfluous code.
6773
6774 2015-10-28  Jason Merrill  <jason@redhat.com>
6775
6776         * Makefile.in (TAGS): Include libcpp and libiberty.
6777
6778 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6779
6780         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
6781         (extract_omp_for_data): Remove OpenACC special handling of
6782         chunking.
6783
6784         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
6785         (struct parallel): Update comment.
6786         (nvptx_reorg): Likewise.
6787         (nvptx_neuter): Cleanup whitespace.
6788
6789 2015-10-28  Richard Henderson  <rth@redhat.com>
6790
6791         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
6792
6793 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6794
6795         PR target/67839
6796         * config/avr/predicates.md (low_io_address_operand): Don't
6797         consider MODE when computing upper bound.
6798         (io_address_operand): Likewise.
6799
6800 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
6801
6802         * fold-const.c (operand_equal_p): Do not verify that types are
6803         compatible for MEM_REFs.
6804
6805 2015-10-28  Richard Biener  <rguenther@suse.de>
6806
6807         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
6808         in simplifying VEC_COND_EXPR conditions.
6809
6810 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6811
6812         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
6813         into vi_next of a full_var.
6814
6815 2015-10-28  Tom de Vries  <tom@codesourcery.com>
6816
6817         * tree-ssa-structalias.c (new_var_info, make_heapvar)
6818         (make_constraint_from_restrict, make_constraint_from_global_restrict)
6819         (create_function_info_for, create_variable_info_for_1)
6820         (create_variable_info_for): Add and handle add_id parameter.
6821         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
6822         (init_base_vars): Add extra argument to calls to new_var_info.
6823         (get_vi_for_tree): Add extra argument to call to
6824         create_variable_info_for.
6825         (process_constraint, do_deref, process_all_all_constraints): Add extra
6826         argument to calls to new_scalar_tmp_constraint_exp.
6827         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
6828         argument to calls to make_heapvar.
6829         (make_restrict_var_constraints): Add extra argument to call to
6830         make_constraint_from_global_restrict.
6831         (intra_create_variable_infos): Add extra argument to call to
6832         create_variable_info_for_1.
6833         (ipa_pta_execute): Add extra argument to call to
6834         create_function_info_for.
6835
6836 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6837
6838         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
6839         (sibcall_value): Likewise.
6840
6841 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
6842
6843         * config/nvptx/nvptx.h (struct machine_function): Add
6844         axis_predicate.
6845         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
6846         nvptx_expand_oacc_join): Declare.
6847         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
6848         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
6849         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
6850         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
6851         UNSPECV_JOINING, UNSPECV_JOIN): New.
6852         (BITS, BITD): New mode iterators.
6853         (br_true_uni, br_false_uni): New.
6854         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
6855         (oacc_dim_size, oacc_dim_pos): New.
6856         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
6857         (oacc_fork, oacc_join): New.
6858         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
6859         (worker_load<mode>, worker_store<mode>): New.
6860         (nvptx_barsync): New.
6861         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
6862         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
6863         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
6864         worker_bcast_sym): New.
6865         (nvptx_option_override): Initialize worker broadcast buffer.
6866         (nvptx_emit_forking, nvptx_emit_joining): New.
6867         (nvptx_init_axis_predicate): New.
6868         (nvptx_declare_function_name): Init axis predicates.
6869         (nvptx_expand_call): Add fork/join markers around routine call.
6870         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
6871         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
6872         (nvptx_gen_vcast): New.
6873         (struct wcast_data_t): New.
6874         (enum propagate_mask): New.
6875         (nvptx_gen_wcast): New.
6876         (nvptx_print_operand): Add 'S' case.
6877         (struct parallel): New.
6878         (parallel::parallel, parallel::~parallel): New.
6879         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
6880         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
6881         nvptx_find_par, nvptx_discover_pars): New.
6882         (nvptx_propagate): New.
6883         (vprop_gen, nvptx_vpropagate): New.
6884         (wprop_gen, nvptx_wpropagate): New.
6885         (nvptx_wsync): New.
6886         (nvptx_single, nvptx_skip_par): New.
6887         (nvptx_process_pars, nvptx_neuter_pars): New.
6888         (ntptx_reorg): Split blocks, generate parallel structure, apply
6889         neutering.
6890         (nvptx_cannot_copy_insn_p): New.
6891         (nvptx_file_end): Emit worker broadcast decl.
6892         (nvptx_goacc_fork_join): New.
6893         (TARGET_CANNOT_COPY_INSN_P): Override.
6894         (TARGET_GOACC_FORK_JOIN): Override.
6895
6896 2015-10-28  Richard Biener  <rguenther@suse.de>
6897
6898         * fold-const.c (negate_expr_p): Adjust the division case to
6899         properly avoid introducing undefined overflow.
6900         (fold_negate_expr): Likewise.
6901
6902 2015-10-28  Richard Biener  <rguenther@suse.de>
6903
6904         PR tree-optimization/65962
6905         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6906         Avoid creating loop carried dependences also for outer loops
6907         of the loop a use to replace is in.
6908
6909 2015-10-28  Richard Biener  <rguenther@suse.de>
6910
6911         * common.opt (fchecking): New flag controlling flag_checking.
6912         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
6913         * timevar.c (timer::print): Adjust output.
6914         * doc/invoke.texi (fchecking): Document.
6915
6916 2015-10-28  Richard Biener  <rguenther@suse.de>
6917
6918         PR middle-end/68067
6919         * fold-const.c (negate_expr_p): We cannot negate plus or minus
6920         if overflow is not wrapping.  Likewise multiplication unless
6921         one operand is constant and not power of two.
6922         (fold_negate_expr): Adjust accordingly.
6923
6924 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6925
6926         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
6927         fields.
6928         (is_oacc_parallel, is_oacc_kernels): New.
6929         (enclosing_target_ctx): May return NULL.
6930         (ctx_in_oacc_kernels_region): New.
6931         (check_oacc_kernel_gwv): New.
6932         (oacc_loop_or_target_p): Delete.
6933         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
6934         operands.  Strip reductions fro kernels.
6935         (scan_omp_target): Don't calculate gwv mask.
6936         (lower_oacc_head_mark, lower_oacc_loop_marker,
6937         lower_oacc_head_tail): New.
6938         (struct oacc_collapse): New.
6939         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
6940         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6941         Remove OpenACC handling.
6942         (expand_oacc_for): New.
6943         (expand_omp_for): Call expand_oacc_for.
6944         (lower_omp_for): Call lower_oacc_head_tail.
6945
6946 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
6947
6948         * attribs.c (check_attribute_tables): New function, broken out from...
6949         (init_attributes): Use it.
6950         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
6951         gcc_checking_assert and checking_* functions to eliminate
6952         ENABLE_CHECKING conditionals.
6953         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
6954         (pass_expand::execute): Likewise.
6955         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
6956         * cgraphunit.c (mark_functions_to_output): Likewise.
6957         (cgraph_node::expand_thunk): Likewise.
6958         (symbol_table::compile): Likewise.
6959         * ddg.c (add_cross_iteration_register_deps): Likewise.
6960         (create_ddg_all_sccs): Likewise.
6961         * df-core.c (df_finish_pass, df_analyze): Likewise.
6962         * diagnostic-core.h: Likewise.
6963         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
6964         * dominance.c (calculate_dominance_info): Likewise.
6965         * dwarf2out.c (add_AT_die_ref): Likewise.
6966         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
6967         (loc_list_from_tree, gen_lexical_block_die): Likewise.
6968         gen_type_die_with_usage, gen_type_die): Likewise.
6969         (dwarf2out_decl): Likewise.
6970         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
6971         * except.c (duplicate_eh_regions): Likewise.
6972         * fwprop.c (register_active_defs, update_df_init): Likewise.
6973         (fwprop_init, fwprop_done): Likewise.
6974         (update_uses): Likewise.
6975         * ggc-page.c (ggc_grow): Likewise.
6976         * gimplify.c (gimplify_body): Likewise.
6977         (gimplify_hasher::equal): Likewise.
6978         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
6979         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
6980         Likewise.
6981         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
6982         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
6983         * hash-table.h (::find_empty_slot_for_expand): Likewise.
6984         * ifcvt.c (if_convert): Likewise.
6985         * ipa-cp.c (ipcp_propagate_stage): Likewise.
6986         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
6987         (odr_type_p, odr_types_equivalent_p): Likewise.
6988         (add_type_duplicate, get_odr_type): Likewise.
6989         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
6990         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6991         (sem_item_optimizer::verify_classes): Likewise.
6992         (sem_item_optimizer::traverse_congruence_split): Likewise.
6993         (sem_item_optimizer::checking_verify_classes): New.
6994         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
6995         method.
6996         * cfgrtl.c (commit_edge_insertions): Likewise.
6997         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
6998         (rtl_flow_call_edges_add): Likewise.
6999         * cgraph.c (symbol_table::create_edge): Likewise.
7000         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
7001         * cgraph.h (symtab_node): Likewise.
7002         (symtab_node::checking_verify_symtab_nodes): Define.
7003         (cgraph_node::checking_verify_cgraph_nodes): Define.
7004         * cfghooks.h (checking_verify_flow_info): Define.
7005         * cfgloop.h (checking_verify_loop_structure): Define.
7006         * dominance.h (checking_verify_dominators): Define.
7007         * et-forest.c: Fix comment.
7008         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
7009         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7010         ENABLE_CHECKING conditionals.
7011         * ipa-inline-transform.c (save_inline_function_body): Likewise.
7012         * ipa-inline.c (inline_small_functions): Likewise.
7013         (early_inliner): Likewise.
7014         * ipa-inline.h (estimate_edge_growth): Likewise.
7015         * ipa-visibility.c (function_and_variable_visibility): Likewise.
7016         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
7017         (ipa_single_use): Likewise.
7018         * ira-int.h: Likewise.
7019         * ira.c (ira): Likewise.
7020         * loop-doloop.c (doloop_optimize_loops): Likewise.
7021         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
7022         * loop-invariant.c (move_loop_invariants): Likewise.
7023         * lra-assigns.c (lra_assign): Likewise.
7024         * lra-constraints.c (lra_constraints): Likewise.
7025         * lra-eliminations.c (lra_eliminate): Likewise.
7026         * lra-int.h (struct lra_reg): Likewise.
7027         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
7028         (lra_create_live_ranges_1): Likewise.
7029         * lra-remat.c (create_remat_bb_data): Likewise.
7030         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
7031         (lra): Likewise.
7032         (check_rtl): Always define. Remove incorrect guard around
7033         extract_constrain_insn call.
7034         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
7035         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7036         ENABLE_CHECKING conditionals.
7037         * lto-streamer-out.c (DFS::DFS): Likewise.
7038         (lto_output): Likewise.
7039         * lto-streamer.c (lto_streamer_init): Likewise.
7040         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
7041         expand_omp_target, execute_expand_omp): Likewise.
7042         (lower_omp_target): Likewise.
7043         * passes.c (execute_function_todo): Likewise.
7044         (execute_todo, execute_one_pass): Likewise.
7045         (verify_curr_properties): Always define.
7046         * predict.c (tree_estimate_probability: Use flag_checking,
7047         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
7048         ENABLE_CHECKING conditionals.
7049         (propagate_freq): Likewise.
7050         * pretty-print.c (pp_format): Likewise.
7051         * real.c (real_to_decimal_for_mode): Likewise.
7052         * recog.c (split_all_insns): Likewise.
7053         * regcprop.c (kill_value_one_regno): Likewise.
7054         (copy_value): Likewise.
7055         (validate_value_data): Define unconditionally.
7056         * reload.c: Fix comment.
7057         * timevar.c: Include options.h
7058         * tree-ssa.h (checking_verify_ssa): Define.
7059         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
7060         * sched-deps.c (CHECK): Remove unused macro.
7061         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
7062         gcc_checking_assert and checking_* functions to eliminate
7063         ENABLE_CHECKING conditionals.
7064         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
7065         * sel-sched.c (struct moveop_static_params): Likewise.
7066         (find_best_reg_for_expr, move_cond_jump): Likewise.
7067         (move_op_orig_expr_not_found): Likewise.
7068         (code_motion_process_successors, move_op): Likewise.
7069         * ssa-iterators.h (first_readonly_imm_use): Likewise.
7070         (next_readonly_imm_use): Likewise.
7071         * store-motion.c (compute_store_table): Likewise.
7072         * symbol-summary.h (function_summary::function_summary): Likewise.
7073         * target.h (cumulative_args_t): Likewise.
7074         (get_cumulative_args, pack_cumulative_args): Likewise.
7075         * timevar.c: (timer::print): Likewise.
7076         * trans-mem.c (ipa_tm_execute): Likewise.
7077         * tree-cfg.c (move_stmt_op): Likewise.
7078         (move_sese_region_to_fn): Likewise.
7079         (gimple_flow_call_edges_add): Likewise.
7080         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
7081         Likewise.
7082         * tree-eh.c (remove_unreachable_handlers): Likewise.
7083         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
7084         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
7085         * tree-into-ssa.c (update_ssa): Likewise.
7086         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
7087         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
7088         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
7089         * tree-predcom.c (suitable_component_p): Likewise.
7090         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
7091         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
7092         * tree-ssa-live.c (verify_live_on_entry): Likewise.
7093         * tree-ssa-live.h (register_ssa_partition): Likewise.
7094         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
7095         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
7096         (tree_transform_and_unroll_loop): Likewise.
7097         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7098         * tree-ssa-operands.c (get_expr_operands): Likewise.
7099         * tree-ssa-propagate.c (replace_exp_1): Likewise.
7100         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
7101         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7102         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
7103         * tree-ssanames.c (release_ssa_name_fn): Likewise.
7104         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
7105         * tree-vect-loop-manip.c
7106         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7107         (slpeel_checking_verify_cfg_after_peeling): Likewise.
7108         (vect_do_peeling_for_loop_bound): Likewise.
7109         (vect_do_peeling_for_alignment): Likewise.
7110         * tree-vrp.c (supports_overflow_infinity): Likewise.
7111         (set_value_range): Likewise.
7112         * tree.c (free_lang_data_in_cgraph): Likewise.
7113         * value-prof.c (gimple_remove_histogram_value): Likewise.
7114         (free_hist): Likewise.
7115         * var-tracking.c (canonicalize_values_star): Likewise.
7116         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
7117
7118 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7119
7120         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
7121         IFN_GOACC_LOOP): New.
7122         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
7123         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
7124         IFN_UNIQUE_OACC_TAIL_MARK.
7125         (enum ifn_goacc_loop_kind): New.
7126         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
7127         IFN_UNIQUE_OACC_JOIN cases.
7128         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
7129         (expand_GOACC_LOOP): New.
7130         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
7131         * omp-low.c: Include gimple-pretty-print.h.
7132         (struct oacc_loop): New.
7133         (enum oacc_loop_flags): New.
7134         (oacc_thread_numbers): New.
7135         (oacc_xform_loop): New.
7136         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
7137         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
7138         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
7139         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
7140         oacc_loop_discovery): New.
7141         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
7142         oacc_loop_process): New.
7143         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
7144         (execute_oacc_device_lower): Discover & process loops.  Process
7145         internal fns.
7146         * target.def (goacc.fork_join): Change sense of hook, clarify
7147         documentation.
7148         * doc/tm.texi: Regenerated.
7149
7150 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7151
7152         * target-insns.def (oacc_fork, oacc_join): Define.
7153         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
7154         (goacc.fork_join): New GOACC hook.
7155         * targhooks.h (default_goacc_fork_join): Declare.
7156         * omp-low.c (default_goacc_forkjoin): New.
7157         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
7158         * doc/tm.texi: Regenerate.
7159
7160 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7161
7162         * omp-low.c (oacc_init_rediction_array): New.
7163         (oacc_initialize_reduction_data): Initialize array.
7164
7165 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7166
7167         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
7168
7169 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
7170
7171         * internal-fn.c (expand_UNIQUE): New.
7172         * internal-fn.h (enum ifn_unique_kind): New.
7173         * internal-fn.def (IFN_UNIQUE): New.
7174         * target-insns.def (unique): Define.
7175         * gimple.h (gimple_call_internal_unique_p): New.
7176         * gimple.c (gimple_call_same_target_p): Check internal fn
7177         uniqueness.
7178         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
7179         * tree-ssa-threadedge.c
7180         (record_temporary_equivalences_from_stmts): Likewise.
7181         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
7182
7183 2015-10-27  Richard Henderson  <rth@redhat.com>
7184
7185         PR rtl-opt/67609
7186         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
7187         narrowing subregs on SSE and MMX registers.
7188         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
7189         appear to be sub-words of multi-register pseudos must be rejected.
7190         * doc/tm.texi: Regenerate.
7191
7192 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7193
7194         PR target/68102
7195         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
7196         operands[0] is a reg before taking its REGNO in split condition.
7197         (*movdi_aarch64): Likewise.
7198
7199 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7200
7201         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
7202         Handle floating point inner modes properly.
7203
7204 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
7205
7206         * tree-vect-looop.c
7207         (vectorizable_live_operation): Change iterator.
7208
7209 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7210             Aditya Kumar  <aditya.k7@samsung.com>
7211
7212         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
7213           function to schedule based on isl_schedule_node.
7214         (get_schedule_map_st): New schedule optimizer based on
7215         isl_schedule_node.
7216         (scop_get_domains): New. Return the isl_union_set containing the
7217         domains of all the pbbs.
7218         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
7219
7220 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7221
7222         PR target/67215
7223         * calls.c (prepare_call_address): Don't handle -fno-plt here.
7224         * config/i386/i386.c (ix86_expand_call): Generate indirect call
7225         via GOT for -fno-plt.  Support indirect call via GOT for x32.
7226         * config/i386/predicates.md (sibcall_memory_operand): Allow
7227         GOT memory operand.
7228
7229 2015-10-27  Richard Biener  <rguenther@suse.de>
7230
7231         PR tree-optimization/68104
7232         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7233         strided access check ...
7234         (vect_compute_data_refs_alignment): ... here.
7235
7236 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
7237             Joseph Myers  <joseph@codesourcery.com>
7238             Mark Shinwell  <shinwell@codesourcery.com>
7239             Andrew Stubbs  <ams@codesourcery.com>
7240             Rich Felker <dalias@libc.org>
7241
7242         * config.gcc: Handle --enable-fdpic.
7243         * config/sh/constraints.md (Ccl): New constraint.
7244         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
7245         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
7246         __SH_FDPIC__.
7247         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
7248         library functions.
7249         * config/sh/sh-protos.h (function_symbol_result): New struct.
7250         (function_symbol): Return function_symbol_result.
7251         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
7252         declarations.
7253         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
7254         target hook.
7255         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
7256         (sh_option_override): Force -fPIC if FDPIC is in effect.
7257         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
7258         UNSPEC_GOTOFFFUNCDESC cases.
7259         (prepare_move_operands): Use FDPIC initial GOT register for
7260         TLS-related GOT access; inhibit cross-section address offset constants
7261         for FDPIC.
7262         (sh_assemble_integer): New function.
7263         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
7264         PC-relative call sites.
7265         (expand_ashiftrt): Adapt invocation of function_symbol.
7266         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
7267         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
7268         UNSPEC_GOTOFFFUNCDESC.
7269         (legitimize_pic_address): Resolve function symbols to function
7270         descriptors for FDPIC.  Do not use GOT-relative addressing for local
7271         data that may be read-only on FDPIC.
7272         (sh_emit_storesi, sh_emit_storehi): New functions.
7273         (sh_trampoline_init): Generate FDPIC trampolines.
7274         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
7275         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
7276         (sh_output_mi_thunk): Generate FDPIC call.
7277         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
7278         FDPIC, generate call site labels to use PC-relative addressing rather
7279         than GOT-relative addressing.
7280         (sh_conditional_register_usage): Make PIC register fixed and call used
7281         when FDPIC is in effect.
7282         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
7283         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
7284         sh_get_fdpic_reg_initial_val): New functions.
7285         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
7286         Handle -mfdpic.
7287         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
7288         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
7289         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
7290         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
7291         FDPIC_SELF_SPECS.
7292         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
7293         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
7294         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
7295         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
7296         constants.
7297         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
7298         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
7299         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
7300         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
7301         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
7302         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
7303         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
7304         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
7305         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
7306         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
7307         block_move_real, block_lump_real, block_move_real_i4,
7308         block_lump_real_i4): Add support for FDPIC calls.
7309         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
7310         call_value_pop): Adjust for new function_symbol signature.
7311         * config/sh/sh.opt (-mfdpic): New option.
7312         * doc/install.texi (Options specification): Document --enable-fdpic.
7313         * doc/invoke.texi (SH Options): Document -mfdpic.
7314
7315
7316 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
7317
7318         PR tree-optimization/65963
7319         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
7320         LSHIFT_EXPRs as equivalent MULT_EXPRs.
7321
7322 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7323
7324         PR target/67929
7325         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
7326         * config/arm/constraints.md (Dp): Update callsite.
7327         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
7328
7329 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7330
7331         * builtins.c (fold_builtin_load_exponent): Rename to...
7332         (fold_const_builtin_load_exponent): ...this and only handle
7333         constant arguments.
7334         (fold_builtin_2): Update accordingly.
7335         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
7336
7337 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7338
7339         * builtins.c (fold_builtin_logb): Rename to...
7340         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
7341         (fold_builtin_significand): Rename to...
7342         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
7343         (fold_builtin_1): Update accordingly.
7344
7345 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7346
7347         * builtins.c (fold_builtin_fmin_fmax): Delete.
7348         (fold_builtin_2): Handle constant fmin and fmax arguments here.
7349         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
7350
7351 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
7352
7353         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
7354         for register extension into sign and zero register extension.
7355         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
7356         for sign and zero register extension.
7357         (cortexa57_addrcost_table): Likewise.
7358         (xgene1_addrcost_table): Likewise.
7359
7360 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7361
7362         * fold-const.c (fold_minmax): Delete.
7363         (fold_binary_loc): Don't call it.
7364         * match.pd: Add rules previously handled by fold_minmax.
7365
7366 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7367
7368         * builtins.c (fold_builtin_fma): Remove constant handling.
7369         (fold_builtin_3): Handle constant fma arguments here.
7370
7371 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7372
7373         * builtins.c (fold_builtin_fabs): Remove constant handling.
7374         (fold_builtin_abs): Likewise.
7375
7376 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7377
7378         * builtins.c (fold_builtin_copysign): Delete.
7379         (fold_builtin_2): Handle constant copysign arguments here.
7380         * match.pd: Add rules previously handled by fold_builtin_copysign.
7381
7382 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7383
7384         * builtins.c (fold_builtin_signbit): Delete.
7385         (fold_builtin_2): Handle constant signbit arguments here.
7386         * match.pd: Add rules previously handled by fold_builtin_signbit.
7387
7388 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7389
7390         * match.pd: Handle sqrt(x) cmp 0 specially.
7391
7392 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
7393
7394         * tree-vect-generic.c (expand_vector_operations_1): Check
7395         optab type before using it.
7396
7397 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7398
7399         * config/aarch64/aarch64-protos.h
7400         (struct tune_params): Add autoprefetcher_model field.
7401         * config/aarch64/aarch64.c: Include params.h
7402         (generic_tunings): Specify autoprefetcher_model value.
7403         (cortexa53_tunings): Likewise.
7404         (cortexa57_tunings): Likewise.
7405         (cortexa72_tunings): Likewise.
7406         (thunderx_tunings): Likewise.
7407         (xgene1_tunings): Likewise.
7408         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
7409         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
7410         (aarch64_override_options_internal): Set
7411         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
7412
7413 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7414
7415         * builtins.c (fold_builtin_exponent): Delete.
7416         (fold_builtin_2): Handle constant expN arguments here.
7417         * match.pd: Fold expN(logN(x)) -> x.
7418
7419 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7420
7421         * builtins.c (fold_builtin_powi): Delete.
7422         (fold_builtin_2): Handle constant powi arguments here.
7423         * match.pd: Add rules previously handled by fold_builtin_powi.
7424
7425 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7426
7427         * builtins.c (fold_builtin_pow): Delete in favor of...
7428         (fold_const_builtin_pow): ...this new function.  Only handle constant
7429         arguments.
7430         (fold_builtin_2): Update accordingly.
7431         * match.pd: Add rules previously handled by fold_builtin_pow.
7432
7433 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7434
7435         * builtins.c (fold_builtin_hypot): Delete.
7436         (fold_builtin_2): Handle constant hypot arguments here.
7437         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
7438         hypot(x, x) to fabs(x)*sqrt(2).
7439
7440 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7441
7442         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
7443         instead of make_ssa_name if not yet in SSA form.
7444
7445 2015-10-27  Richard Biener  <rguenther@suse.de>
7446
7447         * cfg.c (free_edge): Add function argument and use it instead of cfun.
7448         (clear_edges): Likewise.
7449         * cfg.h (clear_edges): Adjust prototype.
7450         * cfgexpand.c (pass_expand::execute): Adjust.
7451         * cfgloop.c (release_recorded_exits): Add function argument and use
7452         it instead of cfun.
7453         * cfgloop.h (release_recorded_exits): Adjust prototype.
7454         (loops_state_satisfies_p): Add overload with function argument.
7455         (loops_state_set): Likewise.
7456         (loops_state_clear): Likewise.
7457         (struct loop_iterator): Add function argument to constructor
7458         and iterator and use it instead of cfun.
7459         (FOR_EACH_LOOP_FN): New macro.
7460         (loop_optimizer_finalize): Add overload with function argument.
7461         * loop-init.c (loop_optimizer_init): Adjust.
7462         (fix_loop_structure): Likewise.
7463         (loop_optimizer_finaliz): Add function argument and use it
7464         instead of cfun.
7465         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
7466         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
7467         * cgraph.c (release_function_body): Do not push/pop cfun.
7468         * final.c (rest_of_clean_state): Adjust.
7469         * graphite.c (graphite_finalize): Likewise.
7470         * tree-ssa-copy.c (fini_copy_prop): Likewise.
7471         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
7472         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
7473         (tree_unroll_loops_completely): Likewise.
7474         (pass_complete_unrolli::execute): Likewise.
7475         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
7476         Add function argument and use it instead of cfun.
7477         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
7478         Adjust prototype.
7479         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
7480         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
7481         instead of cfun.
7482         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
7483         * tree-ssanames.c (fini_ssanames): Add function argument and use it
7484         instead of cfun.
7485         * tree-ssanames.c (fini_ssanames): Adjust prototype.
7486         * tree-vrp.c (execute_vrp): Adjust.
7487         * value-prof.c (free_histograms): Add function argument and use it
7488         instead of cfun.
7489         * value-prof.h (free_histograms): Adjust prototype.
7490
7491 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
7492
7493         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
7494         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
7495         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
7496
7497 2015-10-27  Tom de Vries  <tom@codesourcery.com>
7498
7499         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
7500         field_type.
7501
7502 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
7503
7504         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
7505         (inv_can_prop_to_addr_use): New function.
7506         (record_use): Call can_prop_to_addr_uses, set the new field.
7507         (get_inv_cost): Count cost if inv can't be propagated into its
7508         address uses.
7509
7510 2015-10-26  Doug Evans  <dje@google.com>
7511
7512         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
7513
7514 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
7515
7516         * match.pd (fold_widened_comparison): Apply simplifications to all
7517         integral types.
7518
7519 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
7520
7521         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
7522         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
7523         * doc/tm.texi: Regenerated.
7524         * reorg.c (dbr_schedule): Use new hook.
7525         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
7526
7527 2015-10-26  Jeff Law  <law@redhat.com>
7528
7529         PR tree-optimization/68013
7530         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7531         Make sure the first block in the path is in VISITED_BBs.
7532
7533 2015-10-26  Richard Biener  <rguenther@suse.de>
7534         Dominik Vogt  <vogt@linux.vnet.ibm.com>
7535
7536         PR middle-end/67443
7537         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
7538         Properly prune ref->ref for accesses outside of ref.
7539
7540 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7541
7542         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
7543         new statements to be inserted if inplace.  Allow calls to have
7544         nonempty sequences.
7545
7546 2015-10-26  Richard Biener  <rguenther@suse.de>
7547
7548         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
7549         (do_valueize): New function.
7550         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
7551         replace_uses_by.
7552         * tree-ssa-threadedge.c: Remove builtins.h include, include
7553         gimple-fold.h
7554         (fold_assignment_stmt): Remove.
7555         (threadedge_valueize): New function.
7556         (record_temporary_equivalences_from_stmts): Use
7557         gimple_fold_stmt_to_constant_1, note additional cleanup
7558         opportunities.
7559
7560 2015-10-26  Richard Biener  <rguenther@suse.de>
7561
7562         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
7563         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
7564
7565 2015-10-26  Alan Hayward <alan.hayward@arm.com>
7566
7567         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
7568         VEC_COND_EXPR types.
7569
7570 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7571
7572         * auto-inc-dec.c (insert_move_insn_before): Delete.
7573         (attempt_change): Remember to cost the simple move in the
7574         FORM_PRE_ADD and FORM_POST_ADD cases.
7575
7576 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
7577
7578         PR target/68091
7579         * config/sh/sh.c (sh_vector_mode_supported_p): Use
7580         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
7581
7582 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7583
7584         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
7585         factored out of ...
7586         (intra_create_variable_infos): ... here.
7587
7588 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7589
7590         * tree-ssa-structalias.c (intra_create_variable_infos): Add
7591         restrict_pointer_p and recursive_restrict_p variables.
7592
7593 2015-10-26  Tom de Vries  <tom@codesourcery.com>
7594
7595         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
7596         get_vi_for_tree call.
7597
7598 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7599
7600         PR middle-end/67989
7601         * optabs.c (expand_atomic_compare_and_swap): Handle case when
7602         ptarget_oval or ptarget_bool are const0_rtx.
7603
7604 2015-10-26  Christian Bruel  <christian.bruel@st.com>
7605
7606         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
7607         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
7608         * cp/method.c (implicitly_declare_fn): Likewise.
7609         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
7610         * java/class.c (add_method_1): Likewise.
7611
7612 2015-10-26  Richard Biener  <rguenther@suse.de>
7613
7614         * alloc-pool.h (base_pool_allocator): Use placement new.
7615         (base_pool_allocator::remove): Likewise.  Compute size outside of
7616         flag_checking.
7617
7618 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7619
7620         * builtins.c (do_real_to_int_conversion): New function.
7621         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
7622         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
7623         arguments here.
7624         * match.pd: Add rules previously handled by fold_fixed_mathfn
7625         and fold_builtin_int_roundingfn.
7626
7627 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
7628
7629         * match.pd: Use macros to define built-in operator lists.
7630
7631 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
7632             Richard Biener  <rguenther@suse.de>
7633
7634         * genmatch.c (dt_simplify::gen): Skip captures that are
7635         part of the result.
7636         (parser::parse_expr): Allow captures in results too.
7637         * builtins.c (fold_builtin_cexp): Delete.
7638         (fold_builtin_1): Handle constant cexp arguments here.
7639         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
7640
7641 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
7642
7643         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
7644         conditional compilation.
7645         (base_pool_allocator::remove): Use flag_checking.
7646
7647 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
7648
7649         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
7650
7651         PR middle-end/68079
7652         * dojump.c (do_compare_and_jump): Canonicalize both function and
7653         method types.
7654
7655 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
7656
7657         PR target/68084
7658         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
7659         for =@ccae.
7660
7661 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7662
7663         PR ipa/pr67600
7664         * ipa-polymorphic-call.c
7665         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
7666         instance offset with offset of outer type.
7667
7668 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7669
7670         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
7671
7672 2015-10-23  Caroline Tice  <cmtice@google.com>
7673
7674         (from Richard Biener
7675         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
7676         call to iterative_hash_host_wide_int.
7677
7678 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7679
7680         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
7681         Define as yes.
7682
7683 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7684
7685         * tree-vect-generic.c (expand_vector_operations_1): Check
7686         optab exists before use it.
7687
7688 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7689
7690         * tree-vect-generic.c (expand_vector_condition): Avoid
7691         uninitialized variable warning.
7692
7693 2015-10-23  Jeff Law  <law@redhat.com>
7694
7695         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
7696         here.  Instead...
7697         (execute_todo): Call it here.
7698         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
7699         statistics
7700         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
7701
7702 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7703             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7704
7705         * config.gcc (enable_secureplt): Add *-linux*-musl*.
7706
7707 2015-10-23  Jeff Law  <law@redhat.com>
7708
7709         PR tree-optimization/67830
7710         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
7711         Explicitly verify the mask has no bits outside the type of
7712         the innermost operands.
7713
7714 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
7715             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7716
7717         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
7718         (MUSL_DYNAMIC_LINKER64): Define.
7719         (GNU_USER_DYNAMIC_LINKER32): Update.
7720         (GNU_USER_DYNAMIC_LINKER64): Update.
7721         (CHOOSE_DYNAMIC_LINKER): Update.
7722
7723         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
7724         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
7725         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
7726         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
7727         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
7728         (CHOOSE_DYNAMIC_LINKER): Update.
7729         (INCLUDE_DEFAULTS): Redefine.
7730
7731         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
7732
7733 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7734
7735         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
7736         comparing addresses.
7737
7738 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
7739
7740         * fold-const.c (operand_equal_p): Handle matching of vector
7741         constructors.
7742
7743 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
7744
7745         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
7746
7747 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
7748             Andrew Pinski  <apinski@cavium.com>
7749
7750         PR rtl-optimization/67736
7751         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
7752         of gen_lowpart.
7753
7754 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7755
7756         PR middle-end/68066
7757         * tree.c (build_truth_vector_type): Support BLK mode
7758         returned for boolean vector.
7759
7760 2015-10-23  Alan Hayward <alan.hayward@arm.com>
7761
7762         PR tree-optimization/65947
7763         * tree-vect-loop.c
7764         (vect_is_simple_reduction_1): Find condition reductions.
7765         (vect_model_reduction_cost): Add condition reduction costs.
7766         (get_initial_def_for_reduction): Add condition reduction initial var.
7767         (vect_create_epilog_for_reduction): Add condition reduction epilog.
7768         (vectorizable_reduction): Condition reduction support.
7769         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
7770         * doc/sourcebuild.texi (Vector-specific attributes): Document
7771         vect_max_reduc
7772
7773 2015-10-23  Richard Biener  <rguenther@suse.de>
7774
7775         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
7776         and builtins.def.
7777
7778 2015-10-23  Richard Biener  <rguenther@suse.de>
7779             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7780
7781         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
7782         into (A ^ B) - B to match.pd
7783         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
7784
7785         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
7786         New simplifier.
7787         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
7788         New simplifier.
7789         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
7790         New simplifier.
7791         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
7792         New simplifier.
7793         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
7794         INTEGER_CST@1)): New simplifier.
7795
7796 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
7797
7798         * builtins.c (integer_valued_real_p): Move to fold-const.c.
7799         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
7800         (fold_builtin_ceil, fold_builtin_round): Delete.
7801         (fold_builtin_1): Handle constant trunc, floor, ceil and round
7802         arguments here.
7803         * convert.c (convert_to_real): Remove narrowing of rounding
7804         functions.
7805         * fold-const.h (integer_valued_real_unary_p)
7806         (integer_valued_real_binary_p, integer_valued_real_call_p)
7807         (integer_valued_real_single_p, integer_valued_real_p): Declare.
7808         * fold-const.c (tree_single_nonnegative_warnv_p): Move
7809         name_registered_for_update_p check to SSA_NAME case statement.
7810         Don't call tree_simple_nonnegative_warnv_p for SSA names.
7811         (integer_valued_real_unary_p, integer_valued_real_binary_p)
7812         (integer_valued_real_call_p, integer_valued_real_single_p)
7813         (integer_valued_real_invalid_p): New functions.
7814         (integer_valued_real_p): Move from fold-const.c and rework
7815         to call the functions above.  Handle SSA names.
7816         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
7817         * gimple-fold.c (gimple_assign_integer_valued_real_p)
7818         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
7819         (gimple_stmt_integer_valued_real_p): New functions.
7820         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
7821         Fold f(x)->x for the same f if x is known to be integer-valued.
7822         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
7823         the result.  Canonicalize floor(x) as trunc(x) if x is
7824         nonnegative.
7825
7826 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7827
7828         * tree-ssa-structalias.c (intra_create_variable_infos): Use
7829         make_constraint_from.
7830
7831 2015-10-23  Tom de Vries  <tom@codesourcery.com>
7832
7833         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
7834         setting of is_full_var in case of a single field.
7835
7836 2015-10-22  Martin Sebor  <msebor@redhat.com>
7837
7838         PR driver/68043
7839         * config/i386/i386.opt: Add missing periods to the ends of sentences.
7840         * config/msp430/msp430.opt: Same.
7841
7842 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7843
7844         * doc/extend.exp (Global Register Variables): Rewrite.
7845
7846 2015-10-22  Jeff Law  <law@redhat.com>
7847
7848         * genattrtab.c (main): If we do not have any annul-true or annul-false
7849         slots, then write out a dummy eligible_for_annul_true or
7850         eligible_for_annul_false as needed.
7851
7852 2015-10-22  Nick Clifton  <nickc@redhat.com>
7853
7854         * config/msp430/msp430.opt: Add -msilicon-errata and
7855         -msilicon-errata-warn.
7856         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
7857         assembler.
7858         * doc/invoke.texi: Document new options.
7859
7860 2015-10-22  Richard Biener  <rguenther@suse.de>
7861
7862         PR tree-optimization/58497
7863         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
7864         (expand_vector_operations_1): Use it.  Lower operations on
7865         all uniform vectors to scalar operations if the HW supports it.
7866
7867 2015-10-22  Richard Biener  <rguenther@suse.de>
7868
7869         PR tree-optimization/19049
7870         PR tree-optimization/65962
7871         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
7872         to strided accesses if single-element interleaving doesn't work.
7873
7874 2015-10-22  Richard Biener  <rguenther@suse.de>
7875
7876         PR middle-end/68046
7877         PR middle-end/61893
7878         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
7879         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
7880         (expand_unop): Likewise.
7881
7882 2015-10-22  Richard Biener  <rguenther@suse.de>
7883
7884         * fold-const.c (fold_addr_of_array_ref_difference): Properly
7885         convert operands before folding a MINUS_EXPR.
7886         (fold_binary_loc): Move simplification of MINUS_EXPR on
7887         converted POINTER_PLUS_EXPRs ...
7888         * match.pd: ... here.
7889
7890 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7891
7892         * builtins.c (fold_builtin_tan): Delete.
7893         (fold_builtin_1): Handle constant tan arguments here.
7894         * match.pd: Simplify (tan (atan x)) to x.
7895
7896 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
7897
7898         * builtins.c (fold_builtin_cproj): Delete.
7899         (fold_builtin_1): Handle constant arguments here.
7900         (build_complex_cproj): Move and rename to...
7901         * tree.c: (build_complex_inf): ...this.
7902         * tree.h (build_complex_inf): Declare.
7903         * match.pd: Fold cproj(x)->x if x has no infinity.
7904         Use build_complex_inf for existing cproj rules.
7905
7906 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7907
7908         PR target/68015
7909         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
7910         already have a comparison result.
7911
7912 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7913
7914         PR target/63304
7915         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
7916         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
7917         (aarch64_classify_address): Likewise.
7918         (aarch64_secondary_reload): Likewise.
7919         (aarch64_override_options_after_change_1): Adjust.
7920         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
7921         Use aarch64_nopcrelative_literal_loads.
7922         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
7923         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
7924         Declare.
7925
7926 2015-10-21  Martin Sebor  <msebor@redhat.com>
7927
7928         PR driver/68043
7929         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
7930         (print_filtered_help): Reference aliased option's name and encourage
7931         readers to use it in preference to the alias if the former is not
7932         documented.  Mention when using an option is diagnosed.
7933         * gcc.c (display_help): End each sentence with a period.
7934
7935         * common.opt: End each sentence that describes an option with
7936         a period.
7937         * config/aarch64/aarch64.opt: Same.
7938         * config/alpha/alpha.opt: Same.
7939         * config/arc/arc.opt: Same.
7940         * config/arm/arm.opt: Same.
7941         * config/avr/avr.opt: Same.
7942         * config/bfin/bfin.opt: Same.
7943         * config/c6x/c6x.opt: Same.
7944         * config/cr16/cr16.opt: Same.
7945         * config/cris/cris.opt: Same.
7946         * config/cris/linux.opt: Same.
7947         * config/darwin.opt: Same.
7948         * config/epiphany/epiphany.opt: Same.
7949         * config/fr30/fr30.opt: Same.
7950         * config/frv/frv.opt: Same.
7951         * config/ft32/ft32.opt: Same.
7952         * config/g.opt: Same.
7953         * config/h8300/h8300.opt: Same.
7954         * config/i386/cygming.opt: Same.
7955         * config/i386/djgpp.opt: Same.
7956         * config/i386/i386.opt: Same.
7957         * config/i386/interix.opt: Same.
7958         * config/i386/mingw-w64.opt: Same.
7959         * config/i386/mingw.opt: Same.
7960         * config/ia64/ia64.opt: Same.
7961         * config/ia64/ilp32.opt: Same.
7962         * config/iq2000/iq2000.opt: Same.
7963         * config/linux.opt: Same.
7964         * config/lm32/lm32.opt: Same.
7965         * config/lynx.opt: Same.
7966         * config/m32c/m32c.opt: Same.
7967         * config/m32r/m32r.opt: Same.
7968         * config/m68k/ieee.opt: Same.
7969         * config/m68k/m68k.opt: Same.
7970         * config/mcore/mcore.opt: Same.
7971         * config/mep/mep.opt: Same.
7972         * config/microblaze/microblaze.opt: Same.
7973         * config/mips/mips.opt: Same.
7974         * config/mmix/mmix.opt: Same.
7975         * config/mn10300/mn10300.opt: Same.
7976         * config/moxie/moxie.opt: Same.
7977         * config/msp430/msp430.opt: Same.
7978         * config/nios2/elf.opt: Same.
7979         * config/nios2/nios2.opt: Same.
7980         * config/nvptx/nvptx.opt: Same.
7981         * config/pa/pa-hpux.opt: Same.
7982         * config/pa/pa-hpux1010.opt: Same.
7983         * config/pa/pa-hpux1111.opt: Same.
7984         * config/pa/pa-hpux1131.opt: Same.
7985         * config/pa/pa.opt: Same.
7986         * config/pa/pa64-hpux.opt: Same.
7987         * config/pdp11/pdp11.opt: Same.
7988         * config/rl78/rl78.opt: Same.
7989         * config/rs6000/476.opt: Same.
7990         * config/rs6000/aix64.opt: Same.
7991         * config/rs6000/darwin.opt: Same.
7992         * config/rs6000/linux64.opt: Same.
7993         * config/rs6000/rs6000.opt: Same.
7994         * config/rs6000/sysv4.opt: Same.
7995         * config/s390/s390.opt: Same.
7996         * config/s390/tpf.opt: Same.
7997         * config/sh/sh.opt: Same.
7998         * config/sol2.opt: Same.
7999         * config/sparc/long-double-switch.opt: Same.
8000         * config/sparc/sparc.opt: Same.
8001         * config/spu/spu.opt: Same.
8002         * config/stormy16/stormy16.opt: Same.
8003         * config/tilegx/tilegx.opt: Same.
8004         * config/tilepro/tilepro.opt: Same.
8005         * config/v850/v850.opt: Same.
8006         * config/vax/vax.opt: Same.
8007         * config/visium/visium.opt: Same.
8008         * config/vms/vms.opt: Same.
8009         * config/vxworks.opt: Same.
8010         * config/xtensa/xtensa.opt: Same.
8011
8012 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8013             Sebastian Pop  <s.pop@samsung.com>
8014
8015         * graphite-scop-detection.c (parameter_index_in_region): Update call to
8016         invariant_in_sese_p_rec.
8017         * graphite-sese-to-poly.c (extract_affine): Same.
8018         * sese.c (invariant_in_sese_p_rec): Pass in an extra
8019         parameter has_vdefs.
8020         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
8021         variable depends on virtual definitions in the current region.
8022         * sese.h (invariant_in_sese_p_rec): Update declaration.
8023
8024 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8025             Sebastian Pop  <s.pop@samsung.com>
8026
8027         * graphite-scop-detection.c (build_scops): Do not handle scops
8028         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
8029         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
8030
8031 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
8032
8033         * config.in: Regenerate.
8034         * configure: Regenerate.
8035         * configure.ac (CHECKING_P): Define.
8036         * system.h: Use CHECKING_P.
8037
8038 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8039
8040         PR ipa/67056
8041         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
8042         is negative we don't know the type.
8043         (check_stmt_for_type_change): Skip constructors of non-polymorphic
8044         types as those won't help devirutalization.
8045
8046 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8047
8048         * fold-const.c (operand_equal_p): Add code matching empty constructors.
8049
8050 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8051
8052         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
8053         comments.
8054         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
8055         Add comments on sign of the result.
8056         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
8057         Recurse on operand #1 instead of operand #0.
8058         <CEIL_MOD_EXPR>: Do not recurse.
8059         <ROUND_MOD_EXPR>: Likewise.
8060
8061 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8062
8063         * cfgrtl.c (pass_free_cfg::execute): Adjust.
8064         * final.c (dbr_sequence_length): Always define.
8065         (shorten_branches): Adjust.
8066         * genattr-common.c (main): Always define DELAY_SLOTS.
8067         * genattr.c (main): Unconditionally declare functions and define
8068         macros related to delay slots.
8069         * genattrtab.c (write_eligible_delay): Adjust.
8070         (main): Always write out delay slot functions.
8071         * opts.c (default_options_table): Adjust.
8072         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
8073         (redirect_with_delay_list_safe_p): Likewise.
8074         (fill_simple_delay_slots): Likewise.
8075         (fill_slots_from_thread): Likewise.
8076         (make_return_insns): Likewise.
8077         (dbr_schedule): Likewise.
8078         (rest_of_handle_delay_slots): Likewise.
8079         (pass_delay_slots::gate): Likewise.
8080         * toplev.c (process_options): Likewise.
8081
8082 2015-10-21  Richard Henderson  <rth@redhat.com>
8083
8084         * targhooks.c (default_addr_space_pointer_mode): Remove check
8085         for generic address space.
8086         (default_addr_space_address_mode): Likewise.
8087         (default_addr_space_valid_pointer_mode): Likewise.
8088         (default_addr_space_legitimate_address_p): Likewise.
8089         (default_addr_space_legitimize_address): Likewise.
8090         * target.def (addr_space.pointer_mode): Update documentation
8091         of default behavior.
8092         (addr_space.address_mode): Likewise.
8093         * tm.texi: Update.
8094
8095         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
8096         address spaces.
8097
8098 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8099
8100         * builtins.c (fold_builtin_cabs): Delete.
8101         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8102         * match.pd: Add rules previously handled by fold_builtin_cabs.
8103
8104 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8105
8106         * fold-const.h (fold_strip_sign_ops): Delete.
8107         * fold-const.c (fold_strip_sign_ops): Likewise.
8108         (fold_unary_loc, fold_binary_loc): Remove calls to it.
8109         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
8110         (fold_builtin_ccos): Delete.
8111         (fold_builtin_pow): Don't call fold_strip_sign_ops.
8112         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
8113         Remove fndecl argument.
8114         (fold_builtin_1): Update calls accordingly.  Handle constant
8115         cos, cosh, ccos and ccosh here.
8116
8117 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8118
8119         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
8120         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
8121         * common.opt (fssa-backprop): New option.
8122         * fold-const.h (negate_mathfn_p): Declare.
8123         * fold-const.c (negate_mathfn_p): Make public.
8124         * timevar.def (TV_TREE_BACKPROP): New.
8125         * tree-pass.h (make_pass_backprop): Declare.
8126         * passes.def (pass_backprop): Add.
8127         * gimple-ssa-backprop.c: New file.
8128
8129 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8130             Sebastian Pop  <s.pop@samsung.com>
8131
8132         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
8133         Do not call create_empty_if_region_on_edge when cond_expr is true.
8134         (translate_isl_ast_node_for): Check whether a guard has been generated.
8135
8136 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8137
8138         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
8139         (operator=): Removed.
8140         (dr_info): Make alias_set number the last argument with default
8141         value of invalid_alias_set.
8142         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
8143         of dr_info.
8144         (rewrite_reductions_out_of_ssa): Iterate only through the
8145         basic blocks which are inside region.
8146         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
8147         * sese.h (struct sese_l): Removed assignment operator.
8148         (split_region_for_bb): Removed dead code.
8149
8150 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
8151
8152         * graphite-poly.h (struct dr_info): Removed conversion constructor.
8153         (struct scop): Renamed scop::region to scop::scop_info
8154         (scop_set_region): Same.
8155         (SCOP_REGION): Removed
8156         (SCOP_CONTEXT): Removed.
8157         (POLY_SCOP_P): Removed.
8158         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
8159         Rename scop->region to scop->scop_info.
8160         (add_parameters_to_ivs_params): Same.
8161         (graphite_regenerate_ast_isl): Same.
8162         * graphite-poly.c (new_scop): Same.
8163         (free_scop): Same.
8164         (print_scop_params): Same.
8165         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
8166         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
8167         (dot_all_scops_1): Rename scop->region to scop->scop_info.
8168         (scop_detection::nb_pbbs_in_loops): Same.
8169         (find_scop_parameters): Same.
8170         (try_generate_gimple_bb): Same.
8171         (gather_bbs::before_dom_children): Same.
8172         (gather_bbs::after_dom_children): Same.
8173         (build_scops): Same.
8174         * graphite-sese-to-poly.c (build_scop_scattering): Same.
8175         (extract_affine_chrec): Same.
8176         (extract_affine): Same.
8177         (set_scop_parameter_dim): Same.
8178         (build_loop_iteration_domains): Same.
8179         (create_pw_aff_from_tree): Same.
8180         (add_param_constraints): Same.
8181         (build_scop_iteration_domain): Same.
8182         (build_scop_drs): Same.
8183         (analyze_drs_in_stmts): Same.
8184         (insert_out_of_ssa_copy_on_edge): Same.
8185         (rewrite_close_phi_out_of_ssa):Same.
8186         (rewrite_reductions_out_of_ssa):Same.
8187         (handle_scalar_deps_crossing_scop_limits):Same.
8188         (rewrite_cross_bb_scalar_deps):Same.
8189         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
8190         (build_poly_scop):Same.
8191         (build_alias_set): Use pointer to dr_info.
8192         * graphite.c (print_graphite_scop_statistics):
8193         (graphite_transform_loops):
8194         * sese.h (struct sese_l): Remove conversion constructor.
8195
8196 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8197
8198         PR middle-end/67966
8199         * tree.c (verify_type): Verify that TYPE_MODE match
8200         between TYPE_CANONICAL and type.
8201         * expr.c (store_expr_with_bounds): Revert my previous change.
8202         * expmed.c (store_bit_field_1): Revert prevoius change.
8203         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
8204         to match for all types.
8205
8206 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
8207
8208         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
8209         nesting.
8210
8211 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8212
8213         * doc/tm.texi: Regenerated.
8214         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
8215         * stor-layout.c (layout_type): Use mode to get vector mask size.
8216         * target.def (get_mask_mode): New.
8217         * targhooks.c (default_get_mask_mode): New.
8218         * targhooks.h (default_get_mask_mode): New.
8219         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
8220         for boolean vector.
8221         * tree.c (MAX_BOOL_CACHED_PREC): New.
8222         (nonstandard_boolean_type_cache): New.
8223         (build_nonstandard_boolean_type): New.
8224         (make_vector_type): Vector mask has no canonical type.
8225         (build_truth_vector_type): New.
8226         (build_same_sized_truth_vector_type): New.
8227         (truth_type_for): Support vector masks.
8228         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
8229         (build_truth_vector_type): New.
8230         (build_same_sized_truth_vector_type): New.
8231         (build_nonstandard_boolean_type): New.
8232         * tree-cfg.c (verify_gimple_comparison) Require boolean
8233         vector type for vector comparison.
8234         (verify_gimple_assign_ternary): Likewise.
8235         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
8236         condition operand.
8237         * tree-vect-stmts.c (vectorizable_condition): Use boolean
8238         vector type for vector comparison.
8239         * tree-vect-generic.c (elem_op_func): Add new operand to hold
8240         vector type.
8241         (do_unop): Adjust to modified function type.
8242         (do_binop): Likewise.
8243         (do_plus_minus): Likewise.
8244         (do_negate); Likewise.
8245         (expand_vector_piecewise): Likewise.
8246         (do_cond): Likewise.
8247         (do_compare): Use comparison instead of condition.
8248         (expand_vector_divmod): Use boolean vector type for comparison.
8249         (expand_vector_operations_1): Skip scalar mask operations.
8250
8251 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8252
8253         * omp-low.c (simd_clone_create): Set in_other_partition
8254         for created clones.
8255
8256 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
8257
8258         * doc/extend.exp (Local Register Variables): Rewrite.
8259
8260 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
8261
8262         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
8263         and x*x in cases where the operands are sign ops.  Extend these
8264         rules to handle copysign as a sign op (including for cos, cosh
8265         and pow, which already treated negate and abs as sign ops).
8266
8267 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
8268
8269         PR target/68018
8270         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
8271         for 64-bit MS_ABI targets also when default incoming stack boundary
8272         is overriden.
8273
8274 2015-10-21  Richard Biener  <rguenther@suse.de>
8275
8276         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
8277         cond stmts, enhanced and split out from ...
8278         (vn_phi_eq): ... here.
8279
8280 2015-10-21  Richard Biener  <rguenther@suse.de>
8281
8282         PR middle-end/68031
8283         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
8284         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
8285         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
8286         make sure they are not registered for update.
8287
8288 2015-10-21  Richard Biener  <rguenther@suse.de>
8289
8290         PR tree-optimization/68026
8291         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
8292         unsigned VARYING values.
8293
8294 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
8295
8296         * asan.c (asan_emit_stack_protection): Don't pass local stack to
8297         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
8298         NULL and use local stack than.
8299         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
8300         in addition to __asan_init.
8301         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
8302         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
8303         * asan.h (asan_intercepted_p): Handle new string builtins.
8304         * ubsan.c (ubsan_use_new_style_p): New function.
8305         (ubsan_instrument_float_cast): If location is unknown, assign
8306         input_location to loc. Propagate loc to ubsan_create_data if
8307         ubsan_use_new_style_p returned true.
8308
8309 2015-10-21  Jeff Law  <law@redhat.com>
8310
8311         * Makefile.in (OBJS): Remove sched-vis.c
8312         * sched-vis.c: Removed.  Code moved into...
8313         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
8314         * rtl.h: Remove prototypes for functions now living in print-rtl.c
8315         * print-rtl.h Add prototypes for new functions in print-rtl.c.
8316         * auto-inc-dec.c: Include print-rtl.h
8317         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
8318         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
8319
8320         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
8321         ATTRIBUTE_UNUSED.
8322
8323 2015-10-21  Richard Biener  <rguenther@suse.de>
8324             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8325
8326         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
8327         to match.pd.
8328 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
8329 about signed left shift stronger and clarify the cases when they're
8330 broken.
8331         Move (a * (1 << b)) is (a << b) to match.pd.
8332         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
8333         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
8334         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
8335
8336         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
8337         New simplifier.
8338         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
8339         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
8340         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
8341         : New simplifier.
8342         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
8343         New simplifier.
8344         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
8345
8346 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
8347             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8348             Alan Modra  <amodra@gmail.com>
8349
8350         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
8351         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
8352         (LINK_SPEC): Add %(link_secure_plt).
8353         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
8354         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
8355
8356 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
8357             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8358
8359         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
8360         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
8361
8362 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8363
8364         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
8365         New function.
8366         (fusion_load_store): Use it.
8367         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
8368         ldp and stp in VD modes.
8369         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
8370         (store_pair<mode>, VD): Likewise.
8371
8372 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8373
8374         PR rtl-optimization/67609
8375         * lra-splill.c (lra_final_code_change): Don't remove all
8376         sub-registers.
8377
8378 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8379
8380         * simplify-rtx.c (simplify_binary_operation): If either operand was
8381         a constant pool reference use them if all other simplifications failed.
8382
8383 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8384
8385         * config/aarch64/aarch64.md
8386         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
8387         * config/aarch64/aarch64-simd.md
8388         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
8389         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
8390         (aarch64_fpconst_pow_of_2): New function.
8391         (aarch64_vec_fpconst_pow_of_2): Likewise.
8392         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
8393         prototype.
8394         (aarch64_vec_fpconst_pow_of_2): Likewise.
8395         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
8396         (aarch64_fp_vec_pow2): Likewise.
8397
8398 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
8399
8400         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
8401         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
8402         * config/alpha/alpha.c (alpha_function_arg_advance): Update
8403         ALPHA_ARG_SIZE usage.
8404         (alpha_arg_partial_bytes): Ditto.
8405
8406 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8407
8408         PR target/66810
8409         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
8410         error_mark_node decls.
8411
8412 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8413
8414         PR target/67963
8415         PR target/67985
8416         * common/config/i386/i386-common.c (ix86_handle_option): Remove
8417         OPT_miamcu handling.
8418         * config/i386/i386.c (PTA_NO_80387): New macro.
8419         (processor_alias_table): Add PTA_NO_80387 to lakemont.
8420         (ix86_option_override_internal): Update MASK_80387 from
8421         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
8422         SSE math only if 80387 is supported.  Don't change
8423         MASK_FLOAT_RETURNS.
8424         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
8425         80387 is supported.
8426         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
8427         if TARGET_80387 is true and TARGET_IAMCU is false.
8428         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
8429         is true and TARGET_IAMCU_P is false.
8430
8431 2015-10-20  Richard Biener  <rguenther@suse.de>
8432
8433         PR tree-optimization/68017
8434         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
8435
8436 2015-10-20  Martin Liska  <mliska@suse.cz>
8437
8438         * cgraphclones.c (cgraph_node::create_virtual_clone):
8439         Verify cgraph_node.local.versionable instead of calling
8440         tree_versionable_function_p.
8441         * ipa-cp.c (determine_versionability): Save the information
8442         to ipa_node_params summary.
8443         (ipcp_versionable_function_p): Use it.
8444         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
8445         (ipcp_generate_summary): Do not compute cgraph_node
8446         versionability.
8447         * ipa-inline-analysis.c (inline_generate_summary): Compute
8448         versionability for all cgraph nodes.
8449         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
8450         ipa_node_params::versionability.
8451         * ipa-prop.h (struct ipa_node_params): Declare it.
8452
8453 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8454
8455         PR other/67868
8456         * varasm.c (assemble_variable): Move special vtv handling to..
8457         (handle_vtv_comdat_sections): .. here. New function.
8458         (output_object_block): Handle vtv sections.
8459
8460 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8461
8462         PR target/66912
8463         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
8464
8465 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
8466
8467         * doc/extend.texi: Update documentation WRT inline functions.
8468
8469 2015-10-20  Alan Modra  <amodra@gmail.com>
8470
8471         PR go/66870
8472         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
8473         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8474         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
8475
8476 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
8477
8478         PR rtl-optimization/66790
8479         * df.h (DF_MIR): New macro.
8480         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
8481         (DF_MIR_INFO_BB): New macro.
8482         (DF_MIR_IN, DF_MIR_OUT): New macros.
8483         (struct df_mir_bb_info): New.
8484         (df_mir): New macro.
8485         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
8486         declarations.
8487         (df_mir_get_bb_info): New.
8488         * df-problems.c (struct df_mir_problem_data): New.
8489         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
8490         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
8491         df_mir_confluence_0, df_mir_confluence_n,
8492         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
8493         df_mir_bottom_dump, df_mir_verify_solution_start,
8494         df_mir_verify_solution_end): New.
8495         (problem_MIR): New.
8496         (df_mir_add_problem, df_mir_simulate_one_insn): New.
8497         * timevar.def (TV_DF_MIR): New.
8498         * ree.c: Include bitmap.h
8499         (add_removable_extension): Add an INIT_REGS parameter.  Use it
8500         to skip zero-extensions that may get an uninitialized register.
8501         (find_removable_extensions): Compute must-initialized registers
8502         using the MIR dataflow problem. Update the call to
8503         add_removable_extension.
8504         (find_and_remove_re): Call df_mir_add_problem.
8505
8506 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
8507
8508         * common/config/mn10300/mn10300-common.c
8509         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
8510         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
8511
8512 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
8513
8514         * doc/extend.texi (Explicit Register Variables): Simplify and
8515         avoid unnecessary and confusion abbreviations.  Update cross
8516         references.
8517         doc/implement-c.tex: Update cross reference.
8518
8519 2015-10-19  Jeff Law  <law@redhat.com>
8520
8521         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
8522         that create irreducible loops unless the path elimiantes a multiway
8523         branch.
8524
8525 2015-10-19  Richard Biener  <rguenther@suse.de>
8526
8527         PR tree-optimization/67975
8528         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
8529         * tree-cfg.c (extract_true_false_controlled_edges): Split out
8530         core worker from ...
8531         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
8532         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
8533         instead of block number for PHIs with two or one args.
8534         (vn_phi_eq): Compare edge predicates of PHIs that are in different
8535         blocks.
8536
8537 2015-10-19  Richard Biener  <rguenther@suse.de>
8538
8539         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
8540         (gimple_stmt_nonnegative_warnv_p): Use it.
8541         * match.pd (CPROJ): New operator list.
8542         (cproj (complex ...)): Move simplifications from ...
8543         * builtins.c (fold_builtin_cproj): ... here.
8544
8545 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8546
8547         * config/i386/i386.c (ix86_expand_vector_move): Use
8548         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
8549         alignment.
8550
8551 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8552
8553         * doc/invoke.texi: Replace @optindex with @opindex.
8554
8555 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
8556
8557         PR target/67995
8558         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
8559         arch= is set,  clear all bits in x_ix86_isa_flags, except for
8560         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
8561
8562 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
8563
8564         PR middle-end/68002
8565         * common.opt (fkeep-static-functions): New option.
8566         * doc/invoke.texi: Document it.
8567         * cgraphunit.c (cgraph_node::finalize_function): Use it.
8568
8569 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8570
8571         * sched-int.h (struct autopref_multipass_data_): Remove offset
8572         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
8573         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
8574         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
8575         (autopref_rank_data): New function.
8576         (autopref_rank_for_schedule): Use it.
8577         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
8578
8579 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
8580
8581         PR other/65800
8582         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
8583
8584 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8585
8586         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
8587         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
8588         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
8589         (STANDARD_STARTFILE_PREFIX_1): New.
8590         (STANDARD_STARTFILE_PREFIX_2): New.
8591
8592 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8593
8594         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
8595         (darwin_driver_init): Note a version-min when provided on the c/l.
8596         * config/darwin.h (%darwin_minversion): Remove.
8597         * config/i386/darwin.h: Likewise.
8598         * config/rs6000/darwin.h: Likewise.
8599         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
8600         rather than an arbitrary constant.
8601
8602 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8603
8604         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
8605         PPC, detect conflicts between -arch and multilib settings.  Detect
8606         and warn about conflicts between multiple -arch definitions.
8607
8608 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
8609
8610         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
8611
8612 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8613
8614         * lra-constraints.c (add_next_usage_insn): Change argument type
8615         from rtx to rtx_insn *.
8616
8617 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
8618
8619         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
8620         for Lakemont.
8621
8622 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
8623
8624         * config/tilepro/gen-mul-tables.cc: Adjust include files.
8625         * config/tilegx/mul-tables.c: Regenerate.
8626         * config/tilepro/mul-tables.c: Regenerate.
8627
8628         * config/tilegx/tilegx-c.c: Adjust include files.
8629         * config/tilegx/tilegx.c: Likewise.
8630         * config/tilepro/tilepro-c.c: Likewise.
8631         * config/tilepro/tilepro.c: Likewise.
8632         * config/aarch64/aarch64-builtins.c: Likewise.
8633         * config/aarch64/aarch64.c: Likewise.
8634         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8635         * config/alpha/alpha.c: Likewise.
8636         * config/arc/arc.c: Likewise.
8637         * config/arm/aarch-common.c: Likewise.
8638         * config/arm/arm-builtins.c: Likewise.
8639         * config/arm/arm-c.c: Likewise.
8640         * config/arm/arm.c: Likewise.
8641         * config/avr/avr-c.c: Likewise.
8642         * config/avr/avr-devices.c: Likewise.
8643         * config/avr/avr-log.c: Likewise.
8644         * config/avr/avr.c: Likewise.
8645         * config/bfin/bfin.c: Likewise.
8646         * config/c6x/c6x.c: Likewise.
8647         * config/cr16/cr16.c: Likewise.
8648         * config/cris/cris.c: Likewise.
8649         * config/darwin-c.c: Likewise.
8650         * config/darwin-driver.c: Likewise.
8651         * config/darwin.c: Likewise.
8652         * config/default-c.c: Likewise.
8653         * config/epiphany/epiphany.c: Likewise.
8654         * config/epiphany/mode-switch-use.c: Likewise.
8655         * config/epiphany/resolve-sw-modes.c: Likewise.
8656         * config/fr30/fr30.c: Likewise.
8657         * config/frv/frv.c: Likewise.
8658         * config/ft32/ft32.c: Likewise.
8659         * config/glibc-c.c: Likewise.
8660         * config/h8300/h8300.c: Likewise.
8661         * config/i386/host-cygwin.c: Likewise.
8662         * config/i386/host-mingw32.c: Likewise.
8663         * config/i386/i386-c.c: Likewise.
8664         * config/i386/i386.c: Likewise.
8665         * config/i386/msformat-c.c: Likewise.
8666         * config/i386/winnt-cxx.c: Likewise.
8667         * config/i386/winnt-stubs.c: Likewise.
8668         * config/i386/winnt.c: Likewise.
8669         * config/ia64/ia64-c.c: Likewise.
8670         * config/ia64/ia64.c: Likewise.
8671         * config/iq2000/iq2000.c: Likewise.
8672         * config/lm32/lm32.c: Likewise.
8673         * config/m32c/m32c-pragma.c: Likewise.
8674         * config/m32c/m32c.c: Likewise.
8675         * config/m32r/m32r.c: Likewise.
8676         * config/mcore/mcore.c: Likewise.
8677         * config/mep/mep-pragma.c: Likewise.
8678         * config/mep/mep.c: Likewise.
8679         * config/microblaze/microblaze-c.c: Likewise.
8680         * config/microblaze/microblaze.c: Likewise.
8681         * config/mips/mips-tables.opt
8682         * config/mips/mips.c: Likewise.
8683         * config/mmix/mmix.c: Likewise.
8684         * config/mn10300/mn10300.c: Likewise.
8685         * config/moxie/moxie.c: Likewise.
8686         * config/msp430/msp430-c.c: Likewise.
8687         * config/msp430/msp430.c: Likewise.
8688         * config/nds32/nds32-cost.c: Likewise.
8689         * config/nds32/nds32-fp-as-gp.c: Likewise.
8690         * config/nds32/nds32-intrinsic.c: Likewise.
8691         * config/nds32/nds32-isr.c: Likewise.
8692         * config/nds32/nds32-md-auxiliary.c: Likewise.
8693         * config/nds32/nds32-memory-manipulation.c: Likewise.
8694         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8695         * config/nds32/nds32-predicates.c: Likewise.
8696         * config/nds32/nds32.c: Likewise.
8697         * config/nios2/nios2.c: Likewise.
8698         * config/nvptx/mkoffload.c: Likewise.
8699         * config/nvptx/nvptx.c: Likewise.
8700         * config/pa/pa.c: Likewise.
8701         * config/pdp11/pdp11.c: Likewise.
8702         * config/rl78/rl78-c.c: Likewise.
8703         * config/rl78/rl78.c: Likewise.
8704         * config/rs6000/host-darwin.c: Likewise.
8705         * config/rs6000/rs6000-c.c: Likewise.
8706         * config/rs6000/rs6000-linux.c: Likewise.
8707         * config/rs6000/rs6000.c: Likewise.
8708         * config/rx/rx.c: Likewise.
8709         * config/s390/s390-c.c: Likewise.
8710         * config/s390/s390.c: Likewise.
8711         * config/sh/sh-c.c: Likewise.
8712         * config/sh/sh-mem.cc: Likewise.
8713         * config/sh/sh.c: Likewise.
8714         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8715         * config/sh/sh_treg_combine.cc: Likewise.
8716         * config/sol2-c.c: Likewise.
8717         * config/sol2-cxx.c: Likewise.
8718         * config/sol2-stubs.c: Likewise.
8719         * config/sol2.c: Likewise.
8720         * config/sparc/sparc-c.c: Likewise.
8721         * config/sparc/sparc.c: Likewise.
8722         * config/spu/spu-c.c: Likewise.
8723         * config/spu/spu.c: Likewise.
8724         * config/stormy16/stormy16.c: Likewise.
8725         * config/v850/v850-c.c: Likewise.
8726         * config/v850/v850.c: Likewise.
8727         * config/vax/vax.c: Likewise.
8728         * config/visium/visium.c: Likewise.
8729         * config/vms/vms-c.c: Likewise.
8730         * config/vms/vms.c: Likewise.
8731         * config/vxworks.c: Likewise.
8732         * config/winnt-c.c: Likewise.
8733         * config/xtensa/xtensa.c: Likewise.
8734
8735 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8736
8737         PR target/67745
8738         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
8739         (FUNCTION_BOUNDARY_P): New macro:
8740         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
8741         New hook.
8742         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
8743         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
8744         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
8745         * function.c (allocate_struct_function): Call
8746         relayout_function hook.
8747         * passes.c (rest_of_decl_compilation): Likewise.
8748
8749 2015-10-16  Christian Bruel  <christian.bruel@st.com>
8750
8751         PR target/67745
8752         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
8753         * config/arm/arm.c (arm_option_override_internal): Call
8754         arm_override_options_after_change_1.
8755         (arm_override_options_after_change): New function.
8756         (arm_override_options_after_change_1): Likewise.
8757         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
8758
8759 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8760
8761         Revert:
8762         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8763         empty constructors.
8764
8765 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8766
8767         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
8768         argument is an ADDR_EXPR.
8769
8770 2015-10-16  Richard Biener  <rguenther@suse.de>
8771
8772         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
8773         and get rid of force_gimple_operand_gsi.
8774         (gimple_fold_builtin_memory_chk): Likewise.
8775         (gimple_fold_builtin_stxcpy_chk): Likewise.
8776         (rewrite_to_defined_overflow): Likewise.
8777         (gimple_convert_to_ptrofftype): New function.
8778         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
8779
8780 2015-10-16  Richard Biener  <rguenther@suse.de>
8781
8782         * tree-nested.h (build_addr): Adjust prototype.
8783         * tree-nested.c (build_addr): Remove context argument and use
8784         mark_addressable.
8785         (get_static_chain): Adjust calls to build_addr.
8786         (convert_nl_goto_reference): Likewise.
8787         (convert_tramp_reference_op): Likewise.
8788         (finalize_nesting_tree_1): Likewise.
8789         * value-prof.c (gimple_ic): Likewise.
8790         * gimple-low.c (lower_builtin_setjmp): Likewise.
8791         * tree-parloops.c (take_address_of): Likewise.
8792         (create_call_for_reduction_1): Likewise.
8793         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
8794         (gimple_gen_ic_func_profiler): Likewise.
8795
8796 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8797
8798         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
8799         empty constructors.
8800
8801 2015-10-16  Michael Collison  <michael.collison@linaro.org>
8802             Andrew Pinski <andrew.pinski@caviumnetworks.com>
8803
8804         * match.pd ((x < y) && (x < z) -> x < min (y,z),
8805         (x > y) and (x > z) -> x > max (y,z))
8806
8807 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
8808             Szabolcs Nagy  <szabolcs.nagy@arm.com>
8809
8810         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
8811         (DYNAMIC_LINKER): Renamed to ...
8812         (GLIBC_DYNAMIC_LINKER): This.
8813         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
8814
8815 2015-10-15  Marek Polacek  <polacek@redhat.com>
8816
8817         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
8818         gimple_call_builtin instead of is_gimple_call.
8819
8820 2015-10-15  Richard Biener  <rguenther@suse.de>
8821
8822         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
8823
8824 2015-10-15  Richard Biener  <rguenther@suse.de>
8825
8826         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
8827         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
8828         * tree-vect-loop.c (get_initial_def_for_induction): Drop
8829         use of force_gimple_operand in favor of gimple_build.
8830         Use vect_get_new_ssa_name.
8831         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
8832         (vectorizable_mask_load_store): Likewise.
8833         (vectorizable_call): Likewise.
8834         (vectorizable_store): Likewise.
8835         (vectorizable_load): Likewise.
8836         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
8837
8838 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
8839
8840         PR tree-optimization/67945
8841         * tree-pass.h (PROP_gimple_opt_math): New property flag.
8842         * generic-match-head.c (canonicalize_math_p): New function.
8843         * gimple-match-head.c: Include tree-pass.h.
8844         (canonicalize_math_p): New function.
8845         * match.pd: Group math built-in rules into simplifications
8846         and canonicalizations.  Guard the latter with canonicalize_math_p.
8847         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
8848         PROP_gimple_opt_math property.
8849
8850 2015-10-15  Marek Polacek  <polacek@redhat.com>
8851
8852         PR tree-optimization/67953
8853         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
8854
8855 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
8856
8857         * config.gcc: Recognize "." in architecture base name for AArch64.
8858
8859 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8860
8861         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
8862         ROUND_UP macro.
8863         * config/mips/mips.c (mips_setup_incoming_varargs): Use
8864         ROUND_DOWN to calculate off.
8865         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
8866         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
8867         rounded_size.
8868
8869 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8870
8871         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
8872
8873 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
8874             Torvald Riegel  <triegel@redhat.com>
8875
8876         PR target/67281
8877         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
8878         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8879         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
8880         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
8881         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
8882         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
8883         trechkpt, treclaim, tsr, ttest): New define_expands.
8884         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8885         __TM_FENCE__ for htm.
8886         * doc/extend.texi: Update documentation for htm builtins.
8887
8888 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
8889
8890         PR target/67967
8891         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
8892         REG_CFA_EXPRESSION to aligned SSE stores.
8893
8894 2015-10-14  Jeff Law  <law@redhat.com>
8895
8896         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
8897         num_threaded_edges for successful FSM threads too.
8898
8899 2015-10-14  Richard Biener  <rguenther@suse.de>
8900
8901         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
8902         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
8903         (vect_get_vec_def_for_operand): Remove unused parameter.
8904         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
8905         (vect_create_epilog_for_reduction): Likewise.
8906         (vectorizable_reduction): Likewise.
8907         (vectorizable_live_operation): Likewise.
8908         * tree-vect-patterns.c (type_conversion_p): Likewise.
8909         (vect_recog_vector_vector_shift_pattern): Likewise.
8910         (check_bool_pattern): Likewise.
8911         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8912         (vect_analyze_slp_cost_1): Likewise.
8913         * tree-vect-stmts.c (process_use): Likewise.
8914         (vect_get_vec_def_for_operand): Do not handle reductions.
8915         (vect_get_vec_defs): Adjust.
8916         (vectorizable_mask_load_store): Likewise.
8917         (vectorizable_call): Likewise.
8918         (vectorizable_simd_clone_call): Likewise.
8919         (vect_get_loop_based_defs): Likewise.
8920         (vectorizable_conversion): Likewise.
8921         (vectorizable_assignment): Likewise.
8922         (vectorizable_shift): Likewise.
8923         (vectorizable_operation): Likewise.
8924         (vectorizable_store): Likewise.
8925         (vectorizable_load): Likewise.
8926         (vect_is_simple_cond): Likewise.
8927         (vectorizable_condition): Likewise.
8928         (vect_is_simple_use): Remove unused parameters.
8929         (vect_is_simple_use_1): Adjust and rename.
8930
8931 2015-10-14  Richard Biener  <rguenther@suse.de>
8932
8933         PR tree-optimization/67915
8934         * match.pd: Handle comparisons of addresses of STRING_CSTs.
8935         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
8936         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
8937         stmt folding in favor of GIMPLE one.
8938
8939 2015-10-14  Marek Polacek  <polacek@redhat.com>
8940
8941         PR tree-optimization/67815
8942         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
8943         (reassociate_bb): Call it.
8944
8945 2015-10-14  Richard Biener  <rguenther@suse.de>
8946
8947         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8948         Reset info at start.
8949         (vect_analyze_group_access_1): Add debug print.
8950         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
8951         (vect_compute_single_scalar_iteration_cost): ... to this.
8952         (vect_analyze_loop_2): Adjust.
8953         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
8954         * tree-vectorizer.h: ... here.
8955         (add_stmt_info_to_vec): Remove.
8956         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
8957
8958 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8959
8960         * targhooks.c (default_target_option_pragma_parse): Do not warn if
8961         called on behalf of "#pragma GCC pop_options".
8962
8963 2015-10-14  Tom de Vries  <tom@codesourcery.com>
8964
8965         * cfganal.c (verify_no_unreachable_blocks): New function.
8966         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
8967         verify_no_unreachable_blocks.
8968         cfganal.h (verify_no_unreachable_blocks): Declare.
8969
8970 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
8971
8972         * common.opt: Add flag_checking.
8973         * system.h (CHECKING_P): Define.
8974
8975 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
8976             Aldy Hernandez  <aldyh@redhat.com>
8977             Ilya Verbin  <ilya.verbin@intel.com>
8978
8979         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
8980         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
8981         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
8982         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
8983         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
8984         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
8985         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
8986         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
8987         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
8988         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
8989         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
8990         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
8991         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
8992         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
8993         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
8994         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
8995         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
8996         (struct cgraph_simd_clone_arg): Adjust comment.
8997         * coretypes.h (struct gomp_ordered): New forward decl.
8998         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
8999         set critical clauses to it.
9000         (gimple_build_omp_ordered): Return gomp_ordered * instead of
9001         gimple *.  Add CLAUSES argument, set ordered clauses to it.
9002         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
9003         GIMPLE_OMP_ORDERED.
9004         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
9005         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
9006         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
9007         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
9008         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
9009         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
9010         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
9011         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
9012         renumber
9013         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
9014         (gomp_critical): Add clauses field.
9015         (gomp_ordered): New struct.
9016         (is_a_helper <gomp_ordered *>::test): New inline.
9017         (gimple_build_omp_critical): Add CLAUSES argument.
9018         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
9019         instead of gimple *.
9020         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
9021         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
9022         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
9023         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
9024         inline functions.
9025         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
9026         (dump_gimple_omp_target): Handle enter data and exit data.
9027         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
9028         (dump_gimple_omp_critical): Print clauses.
9029         (dump_gimple_omp_ordered): New function.
9030         (dump_gimple_omp_task): Handle taskloop.
9031         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
9032         GIMPLE_OMP_ORDERED.
9033         * gimple-walk.c (walk_gimple_op): Walk clauses on
9034         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
9035         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
9036         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
9037         (struct gimplify_omp_ctx): Add loop_iter_var,
9038         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
9039         and target_firstprivatize_array_bases fields.
9040         (delete_omp_context): Release loop_iter_var.
9041         (gimplify_bind_expr): Handle ORT_NONE.
9042         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
9043         ORT_COMBINED_TARGET.
9044         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
9045         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
9046         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
9047         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
9048         ctx->target_map_scalars_firstprivate.
9049         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
9050         data sharing clauses.  For data sharing clause with VLA decl
9051         on omp target/target data don't add firstprivate for the pointer.
9052         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
9053         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
9054         the addition of ORT_COMBINED_TARGET.
9055         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
9056         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
9057         pointers as zero length array sections and
9058         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
9059         data sharing.
9060         (omp_check_private): Handle omp_member_access_dummy_var vars.
9061         (find_decl_expr): New function.
9062         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
9063         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
9064         Handle OMP_CLAUSE_GANG separately.  Handle
9065         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9066         clauses.  Diagnose linear clause on combined
9067         distribute {, parallel for} simd construct, unless it is the loop
9068         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
9069         Handle map clauses with COMPONENT_REF.  Initialize
9070         ctx->target_map_scalars_firstprivate,
9071         ctx->target_firstprivatize_array_bases and
9072         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
9073         linear clause even to target region if combined.  Remove
9074         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
9075         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
9076         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
9077         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
9078         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
9079         For linear clause on worksharing loop combined with parallel add
9080         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
9081         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
9082         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
9083         taskloop if needed.
9084         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
9085         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
9086         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
9087         GOMP_MAP_POINTER.
9088         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
9089         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
9090         in target body.  Handle removal of struct mapping if struct is not
9091         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
9092         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
9093         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
9094         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
9095         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
9096         clause appear together.  Handle
9097         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
9098         clause if it has map-type-modifier always.  Handle
9099         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
9100         clauses.
9101         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
9102         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
9103         callers.
9104         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
9105         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
9106         iterators in doacross loops.
9107         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
9108         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
9109         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
9110         for the addition of ORT_COMBINED_TARGET.
9111         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
9112         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
9113         and OMP_TARGET_EXIT_DATA.
9114         (gimplify_omp_ordered): New function.
9115         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
9116         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
9117         Gimplify clauses on OMP_CRITICAL.
9118         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
9119         expand_GOMP_SIMD_ORDERED_END): New functions.
9120         * internal-fn.def (GOMP_SIMD_ORDERED_START,
9121         GOMP_SIMD_ORDERED_END): New internal functions.
9122         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
9123         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
9124         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
9125         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
9126         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
9127         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
9128         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
9129         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
9130         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
9131         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
9132         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
9133         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
9134         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
9135         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
9136         adjust type.
9137         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
9138         GOMP_target_data_41, adjust type.
9139         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
9140         GOMP_target_update_41, adjust type.
9141         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
9142         field.
9143         (struct omp_for_data): Add ordered and simd_schedule fields.
9144         (omp_member_access_dummy_var, unshare_and_remap_1,
9145         unshare_and_remap, is_taskloop_ctx): New functions.
9146         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
9147         (extract_omp_for_data): Handle taskloops and doacross loops
9148         and simd schedule modifier.
9149         (omp_adjust_chunk_size): New function.
9150         (get_ws_args_for): Use it.
9151         (lookup_sfield): Change first argument to splay_tree_key,
9152         add overload with first argument tree.
9153         (maybe_lookup_field): Likewise.
9154         (use_pointer_for_field): Handle omp_member_access_dummy_var.
9155         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
9156         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
9157         (build_outer_var_ref): Add LASTPRIVATE argument, handle
9158         taskloops and omp_member_access_dummy_var vars.
9159         (build_sender_ref): Change first argument to splay_tree_key,
9160         add overload with first argument tree.
9161         (install_var_field): For mask & 8 use &DECL_UID as key instead
9162         of the tree itself.
9163         (fixup_child_record_type): Const qualify *.omp_data_i.
9164         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
9165         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
9166         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
9167         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
9168         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
9169         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
9170         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
9171         kinds.
9172         (add_taskreg_looptemp_clauses): New function.
9173         (scan_omp_parallel): Use it.
9174         (scan_omp_task): Likewise.
9175         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9176         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
9177         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9178         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
9179         sandwiched taskloop constructs.  Type check
9180         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
9181         region.  Diagnose depend(source) or depend(sink:...) on
9182         target constructs or task/taskloop.
9183         (handle_simd_reference): Use get_name.
9184         (lower_rec_input_clauses): Likewise.  Ignore all
9185         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
9186         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
9187         before passing it to omp_clause_{default,copy}_ctor.  Handle
9188         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
9189         lastprivate_firstprivate flag for linear that needs copyin and
9190         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
9191         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
9192         on taskloop lookup decl in outer context.  Pass true to
9193         build_outer_var_ref lastprivate argument.  Handle
9194         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
9195         outside of outer taskloop for.
9196         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
9197         OMP_CLAUSE_DECL.
9198         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
9199         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
9200         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
9201         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
9202         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
9203         abstract origin.  Handle omp_member_access_dummy_var vars.
9204         (expand_parallel_call): Use expand_omp_build_assign.
9205         (expand_task_call): Handle taskloop construct expansion.  Add
9206         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
9207         integers.  Add priority argument to GOMP_task* calls.  Or in
9208         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
9209         GOMP_task call.
9210         (expand_omp_build_assign): Add prototype.  Add AFTER
9211         argument, if true emit statements after *GSI_P and continue linking.
9212         (expand_omp_taskreg): Adjust expand_task_call caller.
9213         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
9214         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
9215         zero_iter2_bb and first_zero_iter2 arguments, handle computation
9216         of counts even for ordered loops.
9217         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
9218         (expand_omp_ordered_source, expand_omp_ordered_sink,
9219         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
9220         functions.
9221         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
9222         clauses on worksharing loop.  Handle DOACROSS loop expansion.
9223         (expand_omp_for_static_nochunk): Handle linear clauses on
9224         worksharing loop.  Adjust expand_omp_for_init_counts
9225         callers.
9226         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
9227         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
9228         expand_omp_for_init_counts callers.
9229         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
9230         functions.
9231         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
9232         Handle doacross loops.
9233         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9234         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
9235         GOMP_target_{41,update_41,enter_exit_data} libcalls.
9236         (expand_omp): Don't expand ordered depend constructs here, record
9237         ord_stmt instead for later expand_omp_for_generic.
9238         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9239         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9240         clause as stand-alone directive.
9241         (lower_omp_ordered_clauses): New function.
9242         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
9243         don't lower anything.
9244         (lower_omp_for_lastprivate): Use last _looptemp_ clause
9245         on taskloop for comparison.
9246         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
9247         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
9248         expansion for linear adjustments.
9249         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
9250         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
9251         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
9252         to tree * pointing to the stmt's clauses.
9253         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
9254         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
9255         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
9256         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
9257         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
9258         clauses.  Always use short kind and 8-bit align shift.
9259         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
9260         (struct lower_omp_regimplify_operands_data): New type.
9261         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
9262         New functions.
9263         (lower_omp_1): Use lower_omp_regimplify_operands instead of
9264         gimple_regimplify_operands.
9265         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
9266         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
9267         clause as stand-alone directive.
9268         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
9269         (simd_clone_mangle): Mangle the various linear kinds
9270         per the new ABI.
9271         (simd_clone_adjust_argument_types): Handle
9272         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
9273         (simd_clone_init_simd_arrays): Don't do anything for uval.
9274         (simd_clone_adjust): Handle
9275         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9276         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
9277         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
9278         * omp-low.h (omp_member_access_dummy_var): New prototype.
9279         * passes.def (pass_simduid_cleanup): Schedule another copy of the
9280         pass after all optimizations.
9281         * tree.c (omp_clause_code_name): Add entries for
9282         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9283         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9284         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
9285         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
9286         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
9287         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
9288         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9289         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
9290         clauses.
9291         * tree-core.h (enum omp_clause_linear_kind): New.
9292         (struct tree_omp_clause): Change type of map_kind
9293         from unsigned char to unsigned int.  Add subcode.if_modifier
9294         and subcode.linear_kind fields.
9295         (enum omp_clause_code): Add
9296         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
9297         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
9298         (OMP_CLAUSE_REDUCTION): Document
9299         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9300         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
9301         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
9302         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
9303         operand.
9304         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
9305         operand.
9306         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
9307         codes.
9308         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
9309         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
9310         char.
9311         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
9312         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
9313         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
9314         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
9315         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
9316         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
9317         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
9318         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
9319         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
9320         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
9321         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
9322         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
9323         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
9324         * tree-inline.c (remap_gimple_stmt): Handle clauses on
9325         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
9326         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
9327         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
9328         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9329         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9330         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
9331         (convert_local_omp_clauses): Likewise.
9332         * tree-pretty-print.c (dump_omp_clause): Handle
9333         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
9334         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
9335         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
9336         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
9337         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
9338         GOMP_MAP_FORCE_DEALLOC.  Handle
9339         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
9340         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
9341         and clauses on OMP_ORDERED and OMP_CRITICAL.
9342         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
9343         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
9344         (vectorize_loops): Adjust comments.
9345         (pass_simduid_cleanup::execute): Likewise.
9346         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9347         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
9348         * wide-int.h (wi::gcd): New.
9349
9350 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9351
9352         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
9353         (ix86_function_arg_advance): Ditto.
9354         (ix86_function_arg): Ditto.
9355         (ix86_gimplify_va_arg): Ditto.
9356         (ix86_class_max_nregs): Ditto.
9357         (inline_memory_move_cost): Ditto.
9358         (ix86_set_reg_reg_cost): Ditto.
9359         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
9360
9361 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
9362
9363         PR middle-end/67912
9364         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
9365
9366 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
9367
9368         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
9369         ROUND_UP macro and UNITS_PER_WORD * 2.
9370         * config/sparc/sparc.c (sparc_compute_frame_size):
9371         Use ROUND_UP and ROUND_DOWN macros where applicable.
9372         (function_arg_record_value, function_arg_record_value_1)
9373         (function_arg_record_value_1): Ditto.
9374         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
9375         alignment to double-word.
9376         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
9377         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
9378         rounded_size.
9379
9380 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
9381
9382         * rtl.h (print_insn): Fix prototype.
9383
9384 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9385
9386         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
9387         -1.  Add assert that returned entry matches phi argument.
9388         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
9389         free_stmt_vec_info_vec ...
9390         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
9391         with -1.
9392
9393 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
9394
9395         PR tree-optimization/67909, 67947
9396         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
9397         really skip the inner loop.
9398
9399 2015-10-13  Jeff Law  <law@redhat.com>
9400
9401         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9402         Allow single block jump threading paths.
9403
9404 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9405
9406         PR tree-optimization/67476
9407         * doc/invoke.texi (@item parloops-schedule): New item.
9408         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
9409         * tree-parloops.c: Include params-enum.h.
9410         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
9411
9412 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9413
9414         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
9415         * params-enum.h: New file.
9416         * opts.c (handle_param): Handle case that param arg is a string.
9417         * params-list.h: Handle DEFPARAMENUM5 in params.def.
9418         * params.c (find_param): New function, factored out of ...
9419         (set_param_value): ... here.
9420         (param_string_value_p): New function.
9421         * params.h (struct param_info): Add value_names field.
9422         (find_param, param_string_value_p): Declare.
9423
9424 2015-10-13  Tom de Vries  <tom@codesourcery.com>
9425
9426         PR tree-optimization/67476
9427         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
9428
9429 2015-10-13  Richard Biener  <rguenther@suse.de>
9430
9431         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
9432         the data dependence vector.
9433         (vect_peeling_hash_insert): Get the peeling hash table as argument.
9434         (vect_peeling_hash_get_lowest_cost): Likewise.
9435         (vect_enhance_data_refs_alignment): Adjust.
9436         (struct _vect_peel_info, struct _vect_peel_extended_info,
9437         struct peel_info_hasher): Move from ...
9438         * tree-vectorizer.h: ... here.
9439         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
9440         (LOOP_VINFO_PEELING_HTAB): Likewise.
9441         (struct _loop_vec_info): Remove min_profitable_iters and
9442         peeling_htab members.
9443         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
9444         here.
9445         (destroy_loop_vec_info): Adjust.
9446         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
9447         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
9448         to estimate alias versioning cost.
9449         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
9450
9451 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
9452
9453         * real.h (real_isinteger): Declare.
9454         * real.c (real_isinteger): New function.
9455         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
9456         if y is an even integer.
9457
9458 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9459
9460         revert:
9461         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9462         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9463         counts when these are more informative.
9464
9465 2015-10-12  Jeff Law  <law@redhat.com>
9466
9467         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
9468         (fsm_find_control_stmt_paths): Change name of first argument to
9469         more accurately relfect what it really is.  Handle simplification
9470         of GIMPLE_COND after finding a thread path for NAME.
9471         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
9472         nontrivial conditions to be handled by FSM threader.
9473         (thread_through_normal_block): Extract the name to looup via
9474         FSM threader from COND_EXPR.
9475
9476         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
9477         restriction that traced SSA_NAME is a user variable.
9478
9479 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9480
9481         PR tree-optimization/67476
9482         * omp-low.c (expand_omp_for_generic): Add missing phis.
9483
9484 2015-10-12  Tom de Vries  <tom@codesourcery.com>
9485
9486         PR tree-optimization/67476
9487         * omp-low.c (expand_omp_for_generic): Handle simple latch.
9488
9489 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
9490
9491         * config/aarch64/aarch64-simd-builtins.def: Update builtins
9492         tables: add tbl3 and tbx4.
9493         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
9494         (aarch64_tbx4v8qi): New.
9495         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
9496         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
9497         Rewrite using builtin functions.
9498         * config/aarch64/iterators.md (UNSPEC_TBX): New.
9499
9500 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9501
9502         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
9503         ROUND_UP macro.
9504         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
9505         Use ROUND_UP and ROUND_DOWN macros where applicable.
9506         (rs6000_darwin64_record_arg_flush): Ditto.
9507         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
9508         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
9509         rounded_size.
9510
9511 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
9512
9513         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
9514         (AARCH64_ROUND_DOWN): Ditto.
9515         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
9516
9517 2015-10-12  Richard Biener  <rguenther@suse.de>
9518
9519         PR ipa/67783
9520         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
9521         code that analyzes IVs on each stmt but in a cheaper way avoiding
9522         quadratic behavior.
9523
9524 2015-10-12  Nick Clifton  <nickc@redhat.com>
9525
9526         * config/msp430/msp430.c (msp430_mcu_names): Rename to
9527         msp430_mcu_data, add fields for ISA and hardware multiply
9528         support.  Import latest data from the devices.csv file.
9529         (msp430_override_option): Use the data from the new array.
9530         (msp430_use_f5_series_hwmult): Likewise.
9531         (use_32bit_hwmult): Likewise.
9532         (msp430_no_hwmult): Likewise.
9533         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
9534         MCU names.
9535         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
9536         not recognised then no hardware multiply support is assumed and
9537         that only the MSP430 ISA is allowed.
9538
9539 2015-10-12  Richard Biener  <rguenther@suse.de>
9540
9541         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
9542         related code ...
9543         (vect_analyze_loop_2): ... here.
9544
9545 2015-10-11  Jason Merrill  <jason@redhat.com>
9546
9547         PR c++/67557
9548         * expr.c (store_field): Call store_constructor directly when
9549         storing a CONSTRUCTOR into a target smaller than its type.
9550         Guard against unsafe bitwise copy.
9551
9552 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9553
9554         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
9555         counts when these are more informative.
9556
9557 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9558
9559         * tree-profile.c (tree_profiling): Do not clear
9560         pure/const when not instrumenting.
9561         (pass tree_profile): Add dump of symtab.
9562
9563 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
9564
9565         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
9566         addresses.
9567         (fold_addr_of_array_ref_difference): Likewise.
9568
9569 2015-10-11  Jeff Law  <law@redhat.com>
9570
9571         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
9572         tree-ssa-threadbackward.c.
9573         (fsm_find_control_statement_thread_paths): Likewise.
9574         (thread_through_normal_block): Break out FSM bits and move them
9575         into a new function in tree-ssa-threadbackward.c.  Call new function
9576         instead.
9577         Minimize header file usage.
9578         * tree-ssa-threadbackward.h: New file.
9579         * tree-ssa-threadbackward.c: Likewise.
9580         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
9581
9582 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
9583
9584         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
9585
9586 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
9587
9588         PR rtl-optimization/67864
9589         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
9590         fallthrough edges for conditional jumps.  Don't sort candidate
9591         edges if not optimizing for speed.
9592
9593 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9594
9595         * defaults.h (REVERSE_CONDITION): New default definition.
9596         * jump.c (reversed_comparison_code_parts): Adjust.
9597
9598 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9599
9600         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
9601         check HARD_FRAME_POINTER_IS_ARG_POINTER.
9602
9603 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9604
9605         * defaults.h (FRAME_ADDR_RTX): New default definition.
9606         * builtins.c (expand_builtin_return_addr): Adjust.
9607
9608 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9609
9610         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
9611         * builtins.c (expand_builtin_return_addr): Adjust.
9612
9613 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9614
9615         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
9616         * builtins.c (expand_builtin_return_addr): Adjust.
9617         * doc/tm.texi: Likewise.
9618         * doc/tm.texi.in: Likewise.
9619         * except.c (expand_builtin_unwind_init): Likewise.
9620
9621 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9622
9623         * builtins.c (expand_builtin_return_addr): Adjust.
9624         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
9625
9626 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9627
9628         * tree.c (type_with_interoperable_signedness): New.
9629         (gimple_canonical_types_compatible_p): Use it.
9630         * tree.h (type_with_interoperable_signedness): Declare
9631
9632 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
9633
9634         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
9635         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
9636         when OEP_ADDRESS_OF is se.
9637
9638 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9639             Sebastian Pop  <s.pop@samsung.com>
9640
9641         * graphite-dependences.c (scop_get_dependences): Add dump of the
9642         data dependence graph.
9643         * graphite-poly.c (print_isl_union_map): New.
9644         (debug_isl_union_map): New.
9645         * graphite-poly.h (print_isl_union_map): Declare.
9646         (debug_isl_union_map): Declare.
9647
9648 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
9649             Sebastian Pop  <s.pop@samsung.com>
9650
9651         * graphite-poly.c (print_iteration_domain): Remove verbosity.
9652         Remove OpenScop formatting.
9653         (print_iteration_domains): Same.
9654         (debug_iteration_domain): Same.
9655         (debug_iteration_domains): Same.
9656         (print_pdr): Same.
9657         (debug_pdr): Same.
9658         (dump_gbb_cases): Same.
9659         (dump_gbb_conditions): Same.
9660         (print_pdrs): Same.
9661         (debug_pdrs): Same.
9662         (print_pbb_body): Same.
9663         (print_pbb): Same.
9664         (print_scop_params): Same.
9665         (print_scop_context): Same.
9666         (print_scop): Same.
9667         (debug_pbb_domain): Same.
9668         (debug_pbb): Same.
9669         (debug_scop_context): Same.
9670         (debug_scop): Same.
9671         (debug_scop_params): Same.
9672         * graphite-poly.h: Same.
9673         * graphite.c (graphite_transform_loops): Same.
9674
9675 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9676
9677         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
9678         call that isn't needed.
9679
9680 2015-10-09  Jeff Law  <law@redhat.com>
9681
9682         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
9683         rather than moving each name to the freelist individually.
9684
9685 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
9686
9687         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
9688         * frame-header-opt.c: New file.
9689         * config/mips/mips-proto.h (mips_register_frame_header_opt):
9690         Add prototype.
9691         * config/mips/mips.c (mips_compute_frame_info): Check
9692         optimize_call_stack flag.
9693         (mips_option_override): Register new frame_header_opt pass.
9694         (mips_frame_info, mips_int_mask, mips_shadow_set,
9695         machine_function): Move these types to...
9696         * config/mips/mips.h: here.
9697         (machine_function): Add does_not_use_frame_header and
9698         optimize_call_stack fields.
9699         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
9700         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
9701         Document new flags.
9702         * config/mips/mips.opt (mframe-header-opt): Add new option.
9703
9704 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
9705
9706         * config/i386/i386.c
9707         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
9708         ROUND_DOWN where applicable.
9709
9710 2015-10-09  Jeff Law  <law@redhat.com>
9711
9712         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
9713         correct statement.
9714
9715 2015-10-09  Renlin Li  <renlin.li@arm.com>
9716
9717         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
9718         operands[0] and operands[2].
9719         (neon_vtrn<mode>_insn): Likewise.
9720         (neon_vzip<mode>_insn): Likewise.
9721
9722 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9723
9724         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
9725         ((X & C2) << C1): Expand to...
9726         (X {&,^,|} C2 << C1): ...This.
9727         ((X & C2) >> C1): Expand to...
9728         (X {&,^,|} C2 >> C1): ...This.
9729
9730 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
9731
9732         PR target/67895
9733         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
9734         Adjust embedded rounding/SAE specifier position.
9735         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
9736         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
9737         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
9738         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
9739         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
9740         Likewise.
9741         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
9742
9743 2015-10-09  Martin Jambor  <mjambor@suse.cz>
9744
9745         tree-optimization/67794
9746         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
9747         between types of state,ents but accept original definitions as a
9748         parameter.
9749         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
9750         iterate over definitions.
9751
9752 2015-10-09  James Norris  <jnorris@codesourcery.com>
9753
9754         * config/rs6000/rs6000.c (rs6000_offload_options): New.
9755         (TARGET_OFFLOAD_OPTIONS): New.
9756
9757 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
9758
9759         PR middle-end/67891
9760         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
9761
9762         PR middle-end/67766
9763         * function.c (expand_function_end): Move return value
9764         promotion past the handling of PARALLELs and CONCATs.
9765
9766         PR rtl-optimization/67828
9767         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
9768         (tree_may_unswitch_on): Don't unswitch on expressions
9769         involving undefined values.
9770
9771 2015-10-09  Richard Biener  <rguenther@suse.de>
9772
9773         * genmatch.c (print_operand): Fix formatting.
9774         (dt_node::append_simplify): Warn for multiple simplifiers
9775         that match the same pattern.
9776         * match.pd (log (exp @0)): Remove duplicates.
9777
9778 2015-10-09  Richard Biener  <rguenth@suse.de>
9779
9780         PR target/67366
9781         * gimple-fold.c (optabs-query.h): Include
9782         (gimple_fold_builtin_memory_op): Allow unaligned stores
9783         when movmisalign_optabs are available.
9784
9785 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9786
9787         PR target/67366
9788         * config/arm/arm.md (movmisalign<mode>): New.
9789         * config/arm/iterators.md (HSI): New.
9790
9791 2015-10-09  Richard Biener  <rguenther@suse.de>
9792
9793         PR tree-optimization/67891
9794         * gimple-match.h (gimple_simplified_result_is_gimple_val):
9795         New helper.
9796         (gimple_resimplify1): Declare.
9797         (gimple_resimplify2): Likewise.
9798         (gimple_resimplify3): Likewise.
9799         * gimple-match-head.c (gimple_resimplify1): Export.
9800         (gimple_resimplify2): Likewise.
9801         (gimple_resimplify3): Likewise.
9802         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
9803         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
9804         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
9805         to avoid creating stmts without VN info.
9806
9807 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
9808
9809         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
9810         of availability.
9811
9812 2015-10-08  Jeff Law  <law@redhat.com>
9813
9814         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
9815         and release_ssa_name in two places.
9816         (gimple_stringop_fixed_value): Similarly.
9817
9818         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
9819         release_defs.
9820
9821         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
9822         unlink_stmt_vdef and release_ssa_name_fn.
9823
9824         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
9825         release_defs.
9826
9827 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9828
9829         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
9830         SSE register save area to 16 bytes only if the incoming stack
9831         boundary is no less than 16 bytes.
9832
9833 2015-10-08  Jeff Law  <law@redhat.com>
9834
9835         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
9836         release_ssa_name.  Fix typo in comment.
9837
9838 2015-10-08  Nathan Sidwell  <nathan@acm.org>
9839
9840         * config/nvptx/nvptx.h (struct machine_function): Add comment.
9841         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
9842         may return pointer as well as in memory.
9843         (nvptx_output_return): Likewise.
9844
9845 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9846
9847         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
9848         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
9849         * match.pd: Add rules previously handled by fold_builtin_sqrt
9850         and fold_builtin_cbrt.
9851
9852 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
9853
9854         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
9855         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
9856         * fold-const.h (tree_unary_nonnegative_warnv_p)
9857         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9858         (tree_expr_nonnegative_warnv_p): Add depth parameters.
9859         * fold-const.c: Include gimple-fold.h and params.h.
9860         (tree_ssa_name_nonnegative_warnv_p): New function.
9861         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
9862         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
9863         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
9864         Add a depth parameter and increment it for recursive calls to
9865         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
9866         to handle SSA names.
9867         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
9868         (gimple_stmt_nonnegative_warnv_p): Declare.
9869         * tree-vrp.c (remove_range_assertions): Remove assert that condition
9870         cannot be proven false.
9871         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
9872         (gimple_stmt_nonnegative_warnv_p): Move to...
9873         * gimple-fold.c: ...here.  Add depth parameters and pass them
9874         down to the tree routines.  Accept statements that aren't
9875         assignments or calls but just return false for them.
9876         (gimple_val_nonnegative_real_p): Delete.
9877         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
9878         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
9879         Check HONOR_NANs first.
9880
9881 2015-10-08  Martin Jambor  <mjambor@suse.cz>
9882
9883         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
9884         unnecessary MIN.
9885
9886 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9887
9888         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
9889         in the tail of outer-loop.
9890
9891 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
9892
9893         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
9894         return UI_NONE.
9895
9896 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
9897
9898         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
9899         "cfghooks.h", add prototypes for introduced new functions.
9900         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
9901         checks on ability of loop unswitching to tree_unswitch_single_loop;
9902         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
9903         on innermost loop check.
9904         (tree_unswitch_single_loop): Add all required checks on ability of
9905         loop unswitching under zero recursive level guard.
9906         (tree_unswitch_outer_loop): New function.
9907         (find_loop_guard): Likewise.
9908         (empty_bb_without_guard_p): Likewise.
9909         (used_outside_loop_p): Likewise.
9910         (get_vop_from_header): Likewise.
9911         (hoist_guard): Likewise.
9912         (check_exit_phi): Likewise.
9913
9914 2015-10-08  Marek Polacek  <polacek@redhat.com>
9915
9916         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
9917         ops element.
9918
9919 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9920
9921         PR c/65345
9922         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
9923         create_tmp_var_raw instead of create_tmp_var.
9924
9925 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
9926
9927         * expr.c (store_expr_with_bounds): Handle aggregate moves from
9928         BLKmode.
9929         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
9930         to define gimple type system; compare aggregates only by size.
9931
9932 2015-10-07  Jeff Law  <law@redhat.com>
9933
9934         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
9935         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
9936         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
9937         unnecessarily.
9938
9939 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9940             Sebastian Pop  <s.pop@samsung.com>
9941
9942         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
9943         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
9944         (generate_isl_schedule): Same.
9945         * graphite-optimize-isl.c (scop_get_domains): Same.
9946         (apply_schedule_map_to_scop): Same.
9947         * graphite-poly.c (print_iteration_domains): Same.
9948         (remove_gbbs_in_scop): Same.
9949         (new_scop): Same.
9950         (free_scop): Same.
9951         (print_scop): Same.
9952         * graphite-poly.h (struct scop): Rename bbs to pbbs.
9953         (SCOP_BBS): Remove.
9954         * graphite-scop-detection.c (compare_bb_depths): Remove.
9955         (graphite_sort_dominated_info): Remove.
9956         (try_generate_gimple_bb): Move out of scop_detection.
9957         (all_non_dominated_preds_marked_p): Remove.
9958         (build_scop_bbs_1): Remove.
9959         (build_scop_bbs): Remove.
9960         (nb_pbbs_in_loops): Do not use SCOP_BBS.
9961         (find_scop_parameters): Same.
9962         (sese_dom_walker): Rename gather_bbs.
9963         (before_dom_children): Call try_generate_gimple_bb and collect gbb
9964         and pbb.
9965         (build_scops): Call gather_bbs.
9966         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
9967         (add_conditions_to_constraints): Same.
9968         (build_scop_iteration_domain): Same.
9969         (build_scop_drs): Same.
9970         (new_pbb_from_pbb): Same.
9971         * sese.c (new_sese_info): Create bbs.
9972         * sese.h (struct sese_info_t): Add bbs.
9973
9974 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
9975
9976         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
9977         encoding in 64-bit mode.
9978
9979 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
9980
9981         PR target/66697
9982         * config/i386/i386.c (ix86_option_override_internal): Always use
9983         8-byte minimum stack boundary in 64-bit mode.
9984         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
9985         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
9986         Add a REG_CFA_EXPRESSION note if needed.
9987         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
9988         (ix86_handle_force_align_arg_pointer_attribute): New.
9989         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
9990         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
9991         with ix86_handle_force_align_arg_pointer_attribute.
9992         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
9993
9994 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9995             Sebastian Pop  <s.pop@samsung.com>
9996
9997         * graphite-scop-detection.c (parameter_index_in_region): Remove
9998         use of SESE_ADD_PARAMS.
9999         (find_scop_parameters): Same.
10000         * sese.c (new_sese_info): Same.
10001         * sese.h (struct sese_info_t): Remove add_params.
10002         (SESE_ADD_PARAMS): Remove.
10003
10004 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
10005             Sebastian Pop  <s.pop@samsung.com>
10006
10007         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
10008         an sese_info_p.
10009         (copy_def): Same.
10010         (copy_internal_parameters): Same.
10011         (translate_isl_ast_to_gimple): Use an sese_l.
10012         (build_iv_mapping): Same.
10013         * graphite-poly.c (new_sese): Rename new_sese_info.
10014         (free_sese): Rename free_sese_info.
10015         * graphite-poly.h (struct scop): Use an sese_info_p.
10016         (scop_set_region): Same.
10017         * graphite-scop-detection.c (struct sese_l): Moved...
10018         (get_entry_bb): Moved...
10019         (get_exit_bb): Moved...
10020         (parameter_index_in_region_1): Use an sese_info_p.
10021         (parameter_index_in_region): Same.
10022         (scan_tree_for_params): Same.
10023         (find_params_in_bb): Same.
10024         (sese_dom_walker): Use an sese_l.
10025         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
10026         (reduction_phi_p): Same.
10027         (parameter_index_in_region_1): Use an sese_info_p.
10028         (propagate_expr_outside_region): Use an sese_l.
10029         * graphite.c: Replace uses of SCOP_REGION.
10030         * sese.c (sese_record_loop): Use an sese_info_p.
10031         (build_sese_loop_nests): Same.
10032         (sese_build_liveouts_use): Same.
10033         (sese_build_liveouts_bb): Same.
10034         (sese_build_liveouts_bb): Same.
10035         (sese_bad_liveouts_use): Same.
10036         (sese_reset_debug_liveouts_bb): Same.
10037         (sese_build_liveouts): Same.
10038         (new_sese): Renamed new_sese_info.
10039         (free_sese): Renamed free_sese_info.
10040         (set_rename): Use an sese_info_p.
10041         (graphite_copy_stmts_from_block): Same.
10042         (copy_bb_and_scalar_dependences): Same.
10043         (outermost_loop_in_sese_1): Use an sese_l.
10044         (outermost_loop_in_sese): Same.
10045         (if_region_set_false_region): Use an sese_info_p.
10046         (move_sese_in_condition): Same.
10047         (scalar_evolution_in_region): Use an sese_l.
10048         * sese.h (struct sese_l): ... here.
10049         (SESE_ENTRY): Remove.
10050         (SESE_ENTRY_BB): Remove.
10051         (SESE_EXIT): Remove.
10052         (SESE_EXIT_BB): Remove.
10053         (sese_contains_loop): Use an sese_info_p.
10054         (sese_nb_params): Same.
10055         (bb_in_sese_p): Use an sese_l.
10056         (stmt_in_sese_p): Same.
10057         (defined_in_sese_p): Same.
10058         (loop_in_sese_p): Same.
10059         (sese_loop_depth): Same.
10060         (struct ifsese_s): Use an sese_info_p.
10061         (gbb_loop_at_index): Use an sese_l.
10062         (nb_common_loops): Same.
10063         (scev_analyzable_p): Same.
10064
10065 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10066
10067         * config/i386/i386.c (ix86_conditional_register_usage): Use
10068         CALL_USED_REGISTERS_MASK.
10069         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
10070
10071 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10072
10073         PR bootstrap/67385
10074         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
10075         * configure: Regenerated.
10076
10077 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
10078
10079         PR target/67850
10080         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
10081         (ix86_set_current_function): This.
10082         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
10083
10084 2015-10-07  Richard Biener  <rguenther@suse.de>
10085
10086         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
10087         (vinfo_for_stmt): Adjust.
10088         (set_vinfo_for_stmt): Likewise.
10089         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
10090         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
10091         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
10092         of inner loop.
10093         (vect_analyze_loop_1): Remove.
10094         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
10095         inner loop when vectorizing an outer loop by splitting out from ...
10096         (vect_analyze_loop_form): ... here.
10097
10098 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10099
10100         PR c/65345
10101         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
10102         Use create_tmp_var_raw instead of create_tmp_var.
10103
10104 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
10105
10106         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
10107         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
10108         * real.c (CACHED_FRACTION): New helper macro.
10109         (dconst_third_ptr): Use it.
10110         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
10111         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
10112         dconst_sixth.
10113         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
10114
10115 2015-10-06  Jeff Law  <law@redhat.com>
10116
10117         PR tree-optimization/67816
10118         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
10119         from remove_jump_threads_starting_at.  Accept an edge rather than
10120         a basic block.
10121         * tree-ssa-threadupdate.c (removed_edges): New hash table.
10122         (remove_jump_threads_including): Note edges that get removed from
10123         the CFG for later pruning of jump threading paths including them.
10124         (thread_through_all_blocks): Remove paths which include edges that
10125         have been removed.
10126         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
10127         on each outgoing edges when optimizing away a control statement.
10128
10129 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10130
10131         * reorg.c (emit_delay_sequence): Store list of delay slot insns
10132         in a vector instead of rtx_insn_list.
10133         (add_to_delay_list): Likewise.
10134         (delete_from_delay_slot): Likewise.
10135         (optimize_skip): Likewise.
10136         (redirect_with_delay_list_safe_p): Likewise.
10137         (check_annul_list_true_false): Likewise.
10138         (steal_delay_list_from_target): Likewise.
10139         (steal_delay_list_from_fallthrough): Likewise.
10140         (redundant_insn): Likewise.
10141         (fill_simple_delay_slots): Likewise.
10142         (fill_slots_from_thread): Likewise.
10143         (fill_eager_delay_slots): Likewise.
10144         (relax_delay_slots): Likewise.
10145
10146 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
10147
10148         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
10149         For -mgpopt=local, also exclude unintialized common symbols.
10150         * doc/invoke.texi (Nios II Options): Document the change.
10151
10152 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10153
10154         * config/aarch64/iterators.md (vwcore): Add missing cases for
10155          V4HF/V8HF modes.
10156
10157 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10158             Sebastian Pop  <s.pop@samsung.com>
10159
10160         * graphite-poly.c (new_scop): Initialize drs.
10161         * graphite-poly.h (struct dr_info): New.
10162         (struct scop): Add drs.
10163         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
10164         (pdr_add_memory_accesses): Same.
10165         (build_poly_dr): Same.
10166         (build_alias_set): Same.
10167         (build_scop_drs): Same.
10168         (build_pbb_drs): Remove.
10169         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
10170         * tree-data-ref.h (data_reference): Remove 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 (free_data_refs_aux): Remove.
10176         (free_gimple_poly_bb): Do not call free_data_refs_aux.
10177         * graphite-poly.h (struct base_alias_pair): Remove.
10178         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
10179         base_alias_pair and dr->aux.
10180         (build_alias_set): Same.
10181         * tree-data-ref.c (create_data_ref): Initialize alias_set.
10182         * tree-data-ref.h (data_reference): Add alias_set.
10183
10184 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
10185             Sebastian Pop  <s.pop@samsung.com>
10186
10187         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
10188         Do not set PDR_BASE_OBJECT_SET.
10189         * graphite-poly.h (poly_dr): Same.
10190         (PDR_BASE_OBJECT_SET): Remove.
10191         (new_poly_dr): Update decl.
10192         * graphite-sese-to-poly.c (build_poly_dr): Update call to
10193         new_poly_dr.
10194         (write_alias_graph_to_ascii_dimacs): Remove.
10195         (write_alias_graph_to_ascii_dot): Remove.
10196         (write_alias_graph_to_ascii_ecc): Remove.
10197         (dr_same_base_object_p): Remove.
10198         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
10199         code.
10200         (build_base_obj_set_for_drs): Remove.
10201         (dump_alias_graphs): Remove.
10202         (build_scop_drs): Remove dead code.
10203
10204 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10205             Peter Bergner  <bergner@vnet.ibm.com>
10206
10207         PR target/67808
10208         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
10209         allow registers, but provide insns for the combiner to create for
10210         loads from memory. Separate VSX code from non-VSX code. For
10211         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
10212         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
10213         so that registers come before memory operations. Drop support from
10214         converting DFmode to TFmode, if the DFmode value is in a GPR
10215         register.
10216         (extenddftf2_fprs): Likewise.
10217         (extenddftf2_internal): Likewise.
10218         (extenddftf2_vsx): Likewise.
10219         (extendsftf2): In the expander, only allow registers, but provide
10220         insns for the combiner to create for stores and loads.
10221
10222 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10223
10224         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
10225         from the decl parameter.
10226
10227 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
10228
10229         PR 67861
10230         * gimple-fold.c (gimple_fold_builtin): Add break after
10231         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
10232
10233 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
10234
10235         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
10236         to scop->isl_context.
10237
10238 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10239
10240         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
10241         (output_probe_stack_range): Rotate the loop and simplify.
10242         (thumb1_expand_prologue): Tweak sorry message.
10243         * config/arm/arm.md (probe_stack): Use bare string.
10244
10245 2015-10-06  Nick Clifton  <nickc@redhat.com>
10246
10247         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
10248
10249 2015-10-06  Nick Clifton  <nickc@redhat.com>
10250
10251         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
10252         (ATTR_PERSIST): New constant.
10253         (msp430_data_attr): New function - verifies an attribute that only
10254         applies to variables.
10255         (msp430_attributes): Add noinit and persistent attributes.
10256         (noinit_section): New variable.
10257         (presis_section): New variable.
10258         (TARGET_ASM_INIT_SECTIONS): Define.
10259         (msp430_init_sections): New function - initialises the noinit and
10260         persist section variables.
10261         (msp430_select_section): Add support for noinit and persist
10262         attributes.
10263         (msp430_section_type_flags): Likewise.
10264         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
10265         and persistent attributes.
10266
10267 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10268             Sebastian Pop  <s.pop@samsung.com>
10269
10270         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
10271         (no_violations): Remove.
10272         (subtract_commutative_associative_deps): Remove.
10273         (compute_deps): Do not call subtract_commutative_associative_deps.
10274         (transform_is_safe): Remove.
10275         (graphite_legal_transform): Remove.
10276         * graphite-poly.h (graphite_legal_transform): Remove.
10277
10278 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
10279
10280         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
10281         which are in this region are passed so gcc_assert and remove redundant
10282         computation.
10283         * sese.c (sese_build_liveouts): Pass only those bbs which are not
10284         in region.
10285         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
10286         gcc_assert on that and remove unnecessary computation.
10287         (sese_build_liveouts_use): Same.
10288
10289 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10290
10291         * graphite-dependences.c (scop_get_reads): Renamed scop->context
10292         to scop->param_context.
10293         (scop_get_must_writes): Same.
10294         (scop_get_may_writes): Same.
10295         (scop_get_original_schedule): Same.
10296         (scop_get_transformed_schedule): Same.
10297         (subtract_commutative_associative_deps): Same.
10298         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
10299         (generate_isl_context): Same.
10300         (generate_isl_schedule): Same.
10301         (scop_to_isl_ast): Same.
10302         (graphite_regenerate_ast_isl): Same.
10303         * graphite-optimize-isl.c (scop_get_domains): Same.
10304         (optimize_isl): Renamed scop->context to scop->param_context.
10305         * graphite-poly.c (new_poly_bb): Change the type of argument to
10306         gimple_poly_bb_p.
10307         (new_scop): Renamed scop->context to scop->param_context.
10308         (free_scop): Same.
10309         (print_scop_context): Same.
10310         * graphite-poly.h (new_poly_dr): Change the type of argument from
10311         void* to data_reference_p.
10312         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
10313         (new_poly_bb): Change the type of argument from void* to
10314         gimple_poly_bb_p.
10315         (pbb_set_black_box): Same.
10316         (struct scop): Rename context to param_context, ctx to isl_context.
10317         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
10318         Move declarations closer to assignment.
10319         (find_params_in_bb): Same.
10320         (find_scop_parameters): Same.
10321         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
10322         Global to be used for statement IDs.
10323         (isl_id_for_pbb): Use ssa_name_version_typesize.
10324         (simple_copy_phi_p): Move declarations closer to assignment.
10325         (build_pbb_scattering_polyhedrons): Same.
10326         (build_scop_scattering): Same.
10327         (isl_id_for_ssa_name): Same.
10328         (extract_affine_name): Same.
10329         (extract_affine_int): Same.
10330         (extract_affine): Same.
10331         (set_scop_parameter_dim): Use renamed member.
10332         (build_loop_iteration_domains): Same.
10333         (add_param_constraints): Same.
10334         (build_scop_iteration_domain): Same.
10335         (pdr_add_data_dimensions): Same.
10336         (build_poly_dr): Same.
10337         (build_scop_drs): Move declarations closer to assignment.
10338         (analyze_drs_in_stmts): Same.
10339         (insert_out_of_ssa_copy): Same.
10340         (insert_out_of_ssa_copy_on_edge): Same.
10341         (propagate_expr_outside_region): Same.
10342         (rewrite_phi_out_of_ssa): Same.
10343         (rewrite_degenerate_phi): Same.
10344         (rewrite_reductions_out_of_ssa): Same.
10345         (rewrite_cross_bb_scalar_dependence): Same.
10346         (handle_scalar_deps_crossing_scop_limits): Same.
10347         (rewrite_cross_bb_scalar_deps): Same.
10348         * graphite.c (graphite_transform_loops): Use renamed member.
10349
10350 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
10351
10352         PR c/65345
10353         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
10354         create_tmp_var_raw instead of create_tmp_var.
10355
10356 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10357
10358         PR c/65345
10359         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
10360         Use create_tmp_var_raw instead of create_tmp_var.
10361
10362 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
10363
10364         PR target/67849
10365         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
10366         split for upper-bank registers when target does not support
10367         AVX512VL.
10368         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
10369         split when target does not support AVX512VL.
10370
10371 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
10372
10373         PR c/65345
10374         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
10375         Adjust to use create_tmp_var_raw instead of create_tmp_var.
10376
10377 2015-10-06  Nick Clifton  <nickc@redhat.com>
10378
10379         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
10380         multiplication.
10381
10382 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10383
10384         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
10385         (case ${target}): Add znver1.
10386         * config/i386/cpuid.h(bit_CLZERO):  Define.
10387         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
10388         -march=native recognize znver1 processors.
10389         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10390         znver1, clzero def_and_undef.
10391         * config/i386/i386.c (struct processor_costs znver1_cost): New.
10392         (m_znver1): New definition.
10393         (m_AMD_MULTIPLE): Includes m_znver1.
10394         (processor_target_table): Add znver1 entry.
10395         (ix86_target_string) : Add clzero entry.
10396         (static const char *const cpu_names): Add znver1 entry.
10397         (ix86_option_override_internal): Add znver1 instruction sets.
10398         (PTA_CLZERO) :  New definition.
10399         (ix86_option_override_internal): Handle new clzerooption.
10400         (ix86_issue_rate): Add znver1.
10401         (ix86_adjust_cost): Add znver1.
10402         (ia32_multipass_dfa_lookahead): Add znver1.
10403         (has_dispatch): Add znver1.
10404         * config/i386/i386.h (TARGET_znver1): New definition.
10405         (TARGET_CLZERO): Define.
10406         (TARGET_CLZERO_P): Define.
10407         (struct ix86_size_cost): Add TARGET_ZNVER1.
10408         (enum processor_type): Add PROCESSOR_znver1.
10409         * config/i386/i386.md (define_attr "cpu"): Add znver1.
10410         (set_attr znver1_decode): New definitions for znver1.
10411         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
10412         (mclzero): New.
10413         * config/i386/mmx.md (set_attr znver1_decode): New definitions
10414         for znver1.
10415         * config/i386/sse.md (set_attr znver1_decode): Likewise.
10416         * config/i386/x86-tune.def:  Add znver1 tunings.
10417         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
10418         * doc/invoke.texi: Add details about znver1
10419
10420 2015-10-06  Richard Biener  <rguenther@suse.de>
10421
10422         PR tree-optimization/67859
10423         * tree-ssa-pre.c (create_expression_by_pieces): Properly
10424         discard not inserted stmts.
10425
10426 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
10427
10428         * doc/extend.texi (Template Instantiation): Reorder options and
10429         de-emphasize -frepo.
10430         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
10431         example instead of -frepo.
10432
10433 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10434
10435         PR c/65345
10436         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
10437         use create_tmp_var_raw rather than create_tmp_var.
10438
10439 2015-10-06  Richard Biener  <rguenther@suse.de>
10440
10441         * tree-vectorizer.h (vec_info): New base class for...
10442         (_loop_vec_info): ... this and ...
10443         (_bb_vec_info): ... this.
10444         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
10445         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
10446         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
10447         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
10448         vect_destroy_datarefs): Adjust interface to take a vec_info *
10449         rather than both a loop_vec_info and a bb_vec_info argument.
10450         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
10451         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
10452         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
10453         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
10454         accordingly.
10455         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
10456         (destroy_loop_vec_info, vect_analyze_loop_2,
10457         vect_is_simple_reduction_1, get_initial_def_for_induction,
10458         vect_create_epilog_for_reduction, vectorizable_reduction,
10459         vectorizable_live_operation, vect_transform_loop): Adjust.
10460         * tree-vect-patterns.c (type_conversion_p,
10461         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
10462         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
10463         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
10464         check_bool_pattern, vect_recog_bool_pattern,
10465         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
10466         * tree-vect-slp.c (vect_get_and_check_slp_defs,
10467         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
10468         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
10469         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
10470         (new_bb_vec_info): Initialize base classs.
10471         * tree-vect-stmts.c (record_stmt_cost, process_use,
10472         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
10473         vectorizable_mask_load_store, vectorizable_call,
10474         vectorizable_simd_clone_call, vectorizable_conversion,
10475         vectorizable_assignment, vectorizable_shift,
10476         vectorizable_operation, vectorizable_store,
10477         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
10478         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
10479         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
10480
10481 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10482
10483         PR c/65345
10484         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
10485         create_tmp_var_raw rather than create_tmp_var.
10486
10487 2015-10-05  Marek Polacek  <polacek@redhat.com>
10488
10489         * tree-ssa-loop-im.c
10490         (move_computations_dom_walker::before_dom_children): Don't set
10491         SSA_NAME_ANTI_RANGE_P.
10492         * tree-ssa-phiopt.c (value_replacement): Likewise.
10493
10494 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10495             Sebastian Pop  <s.pop@samsung.com>
10496
10497         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
10498
10499 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10500             Sebastian Pop  <s.pop@samsung.com>
10501
10502         * graphite-poly.c (new_gimple_poly_bb): ... here.
10503         (free_data_refs_aux): ... here.
10504         (free_gimple_poly_bb): ... here.
10505         (remove_gbbs_in_scop): ... here.
10506         (new_scop): Call new_sese.
10507         (free_scop): Call remove_gbbs_in_scop and free_sese.
10508         * graphite-poly.h (base_alias_pair): ... here.
10509         (new_gimple_poly_bb): Declare.
10510         (free_gimple_poly_bb): Declare.
10511         * graphite-scop-detection.c (parameter_index_in_region_1):
10512         (parameter_index_in_region): ... here.
10513         (scan_tree_for_params): ... here.
10514         (find_params_in_bb): ... here.
10515         (find_scop_parameters): ... here.
10516         (build_scops): Call find_scop_parameters.
10517         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
10518         (free_scops): Move...
10519         (single_pred_cond_non_loop_exit): Move...
10520         (sese_dom_walker::before_dom_children): Move...
10521         (sese_dom_walker::after_dom_children): Move...
10522         (build_poly_scop): Move...
10523         * graphite-sese-to-poly.h (base_alias_pair): Move...
10524         * graphite.c (free_scops): ... here.
10525
10526 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
10527             Sebastian Pop  <s.pop@samsung.com>
10528
10529         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
10530         (trivially_empty_bb_p): Move...
10531         (same_close_phi_node): Move...
10532         (new_gimple_poly_bb): Move...
10533         (compare_bb_depths): Move...
10534         (graphite_sort_dominated_info): Move...
10535         (remove_duplicate_close_phi): Move...
10536         (make_close_phi_nodes_unique): Move...
10537         (canonicalize_loop_closed_ssa): Move...
10538         (canonicalize_loop_closed_ssa_form): Move...
10539         (loop_ivs_can_be_represented): Move...
10540         (single_pred_cond_non_loop_exit): Move...
10541         (graphite_can_represent_init): Move...
10542         (graphite_can_represent_scev): Move...
10543         (stmt_has_simple_data_refs_p): Move...
10544         (stmt_has_side_effects):  Move...
10545         (graphite_can_represent_stmt): Move...
10546         (scop_detection): ... here.
10547         (sese_dom_walker): ... and here.
10548         (build_scops): Call all moved functions.
10549         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
10550         (all_non_dominated_preds_marked_p): Move...
10551         (build_scop_bbs_1): Move...
10552         (build_scop_bbs): Move...
10553         (set_scop_parameter_dim): Move...
10554         (nb_pbbs_in_loops): Move...
10555         (build_poly_scop): Do not call all the moved functions.
10556
10557 2015-10-05  Martin Jambor  <mjambor@suse.cz>
10558             Jan Hubicka  <hubicka@ucw.cz>
10559
10560         * ipa-cp.c (ipcp_alignment_lattice): New type.
10561         (ipcp_param_lattices): Use the above to represent alignment.
10562         (ipcp_alignment_lattice::print): New function.
10563         (print_all_lattices): Use it to print alignment information.
10564         (ipcp_alignment_lattice::top_p): New function.
10565         (ipcp_alignment_lattice::bottom_p): Likewise.
10566         (ipcp_alignment_lattice::set_to_bottom): Likewise.
10567         (ipcp_alignment_lattice::meet_with_1): Likewise.
10568         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
10569         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
10570         (initialize_node_lattices): Likewise.
10571         (propagate_alignment_accross_jump_function): Work with the new class
10572         for alignment lattices.
10573         (propagate_constants_accross_call): Pass only the alignment lattice to
10574         propagate_alignment_accross_jump_function.
10575         (ipcp_store_alignment_results): Work with the new class for alignment
10576         lattices.
10577
10578 2015-10-05  Marek Polacek  <polacek@redhat.com>
10579
10580         PR tree-optimization/67821
10581         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
10582
10583 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
10584
10585         PR other/65021
10586         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
10587         function to...
10588         (mkoffload_cleanup): ... this.  Adjust all users.
10589         (maybe_unlink): Look at save_temps and verbose flags instead of
10590         debug flag.
10591         (main): Parse "-save-temps" flag.
10592         (generate_target_descr_file, generate_target_offloadend_file)
10593         (generate_host_descr_file, prepare_target_image): Pass it on.
10594         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
10595         (mkoffload_cleanup): New function.
10596         (maybe_unlink): Look at save_temps and verbose flags instead of
10597         debug flag.
10598         (main): Instead of calling utils_cleanup, register atexit handler
10599         for mkoffload_cleanup.
10600         (main): Parse "-save-temps" flag.
10601         (compile_native, main): Pass it on.
10602         * lto-wrapper.c (compile_offload_image): Likewise.
10603
10604 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10605
10606         * gimple.h (gimple_op_ptr): Require a non const gimple *.
10607         (gimple_assign_lhs_ptr): Likewise.
10608         (gimple_assign_rhs1_ptr): Likewise.
10609         (gimple_assign_rhs2_ptr): Likewise.
10610         (gimple_assign_rhs3_ptr): Likewise.
10611         (gimple_call_lhs_ptr): Likewise.
10612         (gimple_call_fn_ptr): Likewise.
10613         (gimple_call_chain_ptr): Likewise.
10614                 (gimple_call_arg_ptr): Likewise.
10615                 (gimple_cond_lhs_ptr): Likewise.
10616         (gimple_cond_rhs_ptr): Likewise.
10617         (gimple_switch_index_ptr): Likewise.
10618         (gimple_return_retval_ptr): Likewise.
10619
10620 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10621
10622         * gimple.h (gimple_asm_input_op_ptr): Remove.
10623         (gimple_asm_output_op_ptr): Likewise.
10624
10625 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10626
10627         * gimple.h (gimple_location_ptr): Remove.
10628         * tree-vrp.c (check_all_array_refs): Adjust.
10629
10630 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10631
10632         * tree-ssa-operands.c (build_uses): store tree * instead of
10633         tree.
10634         (finalize_ssa_uses): Adjust.
10635         (append_use): Likewise.
10636         (verify_ssa_operands): Likewise.
10637
10638 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10639
10640         * real.h (build_real_truncate): Declare.
10641         * tree.c (build_real_truncate): New function.
10642         (strip_float_extensions): Use it.
10643         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
10644         (fold_builtin_hypot, fold_builtin_pow): Likewise.
10645         * match.pd: Likewise.
10646
10647 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
10648            Jiong Wang  <jiong.wang@arm.com>
10649
10650         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
10651
10652 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10653
10654         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
10655         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
10656         (aarch64_print_operand, aarch64_float_const_representable_p)
10657         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
10658         instead of REAL_VALUE_FROM_CONST_DOUBLE.
10659         * config/arc/arc.c (arc_print_operand): Likewise.
10660         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
10661         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
10662         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
10663         Likewise.
10664         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
10665         (consttable_16): Likewise.
10666         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
10667         * config/avr/avr.c (avr_print_operand): Likewise.
10668         * config/bfin/bfin.md: Likewise (in a define_split).
10669         * config/c6x/c6x.md: Likewise (in a define_split).
10670         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
10671         (cr16_print_operand): Likewise.
10672         * config/cris/cris.c (cris_print_operand): Likewise.
10673         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
10674         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10675         (fr30_const_double_is_zero): Likewise.
10676         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
10677         * config/frv/frv.md: Likewise (in a define_split).
10678         * config/frv/predicates.md (int_2word_operand): Likewise.
10679         * config/h8300/h8300.c (h8300_print_operand): Likewise.
10680         * config/i386/i386.c (standard_80387_constant_p): Likewise.
10681         (ix86_print_operand, ix86_split_to_parts): Likewise.
10682         * config/i386/i386.md: Likewise (in a define_split).
10683         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
10684         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
10685         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
10686         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
10687         (print_operand): Likewise.
10688         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
10689         * config/mep/mep.md: Likewise (in define_split).
10690         * config/microblaze/microblaze.c (microblaze_const_double_ok)
10691         (print_operand): Likewise.
10692         * config/mips/mips.md (consttable_float): Likewise.
10693         * config/mmix/mmix.c (mmix_intval): Likewise.
10694         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10695         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
10696         * config/pa/pa.c (pa_singlemove_string): Likewise.
10697         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
10698         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
10699         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
10700         (output_toc): Likewise.
10701         * config/rs6000/rs6000.md: Likewise (in define_splits).
10702         * config/rx/rx.c (rx_print_operand): Likewise.
10703         * config/s390/s390.c (s390_output_pool_entry): Likewise.
10704         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10705         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
10706         (and also in define_splits).
10707         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
10708         (fp_high_losum_p): Likewise.
10709         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
10710         (*movsf_high): Likewise.
10711         * config/spu/spu.c (const_double_to_hwint): Likewise.
10712         * config/v850/v850.c (const_double_split): Likewise.
10713         * config/vax/vax.c (vax_float_literal): Likewise.
10714         * config/visium/visium.c (visium_expand_copysign): Likewise.
10715         * config/visium/visium.md: Likewise (in define_split).
10716         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10717         * config/xtensa/xtensa.c (print_operand): Likewise.
10718         (xtensa_output_literal): Likewise.
10719         * cprop.c (implicit_set_cond_p): Likewise.
10720         * dwarf2out.c (insert_float): Likewise.
10721         * expmed.c (expand_mult, make_tree): Likewise.
10722         * expr.c (compress_float_constant): Likewise.
10723         * rtlanal.c (split_double): Likewise.
10724         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10725         (simplify_const_unary_operation, simplify_binary_operation_1)
10726         (simplify_const_binary_operation): Likewise.
10727         (simplify_const_relational_operation): Likewise.
10728         * varasm.c (output_constant_pool_2): Likewise.
10729
10730 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10731
10732         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
10733         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10734         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
10735         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
10736         instead of CONST_DOUBLE_FROM_REAL_VALUE.
10737         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
10738         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
10739         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
10740         (ix86_emit_swsqrtsf): Likewise.
10741         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
10742         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
10743         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
10744         * config/pa/pa.c (pa_expand_builtin): Likewise.
10745         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
10746         (rs6000_scale_v2df): Likewise.
10747         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
10748         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
10749         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
10750         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
10751         (vec_ctul): Likewise.
10752         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
10753         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
10754         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
10755         * cse.c (fold_rtx): Likewise.
10756         * emit-rtl.c (immed_double_const): Likewise (in comments).
10757         (init_emit_once): Likewise.
10758         * expr.c (compress_float_constant, expand_expr_real_1)
10759         (const_vector_from_tree): Likewise.
10760         * optabs.c (expand_float, expand_fix): Likewise.
10761         * reg-stack.c (reg_to_stack): Likewise.
10762         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
10763         (simplify_const_unary_operation, simplify_binary_operation_1)
10764         (simplify_const_binary_operation, simplify_relational_operation)
10765         (simplify_immed_subreg): Likewise.
10766
10767 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10768
10769         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
10770         * doc/tm.texi: Regenerate.
10771         * real.h (REAL_ARITHMETIC): Delete.
10772         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
10773         (ix86_expand_round_sse4): Use real_arithmetic instead of
10774         REAL_ARITHMETIC.
10775         * config/i386/sse.md (round<mode>2): Likewise.
10776         * rtl.h (rtx_to_tree_code): Likewise (in comment).
10777         * explow.c (rtx_to_tree_code): Likewise (in comment).
10778         * match.pd: Likewise.
10779         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10780         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10781         (expand_pow_as_sqrts): Likewise.
10782         * tree-pretty-print.c (dump_generic_node): Remove code that
10783         was conditional on REAL_ARITHMETIC being undefined.
10784
10785 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10786
10787         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
10788         * doc/tm.texi: Regenerate.
10789         * real.h (real_less): Declare.
10790         (REAL_VALUES_LESS): Delete.
10791         * real.c (real_less): New function.
10792         (real_compare): Use it.
10793         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
10794         of REAL_VALUES_LESS.
10795         * config/microblaze/microblaze.c (microblaze_const_double_ok):
10796         Likewise.
10797         * fold-const.c (fold_convert_const_int_from_real): Likewise.
10798         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10799         (simplify_const_relational_operation): Likewise.
10800         * tree-call-cdce.c (check_pow): Likewise.
10801         (gen_conditions_for_pow_cst_base): Likewise.
10802
10803 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10804
10805         * real.h (REAL_VALUES_IDENTICAL): Delete.
10806         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
10807         instead of REAL_VALUES_IDENTICAL.
10808         * fold-const.c (operand_equal_p): Likewise.
10809         * ipa-icf.c (sem_variable::equals): Likewise.
10810         * tree-complex.c (some_nonzerop): Likewise.
10811         (expand_complex_multiplication): Likewise.
10812         * tree.c (simple_cst_equal): Likewise.
10813         * varasm.c (compare_constant): Likewise.
10814
10815 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
10816
10817         * real.h (real_equal): Declare.
10818         (REAL_VALUES_EQUAL): Delete.
10819         * real.c (real_equal): New function.
10820         (real_compare): Use it.
10821         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
10822         * doc/tm.texi: Regenerate.
10823         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
10824         real_equal instead of REAL_VALUES_EQUAL.
10825         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
10826         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
10827         (fp_const_from_val): Likewise.
10828         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
10829         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
10830         (floating_exact_log2): Likewise.
10831         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
10832         * config/vax/vax.c (vax_float_literal): Likewise.
10833         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
10834         * cprop.c (implicit_set_cond_p): Likewise.
10835         * expmed.c (expand_mult): Likewise.
10836         * fold-const.c (const_binop): Likewise.
10837         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
10838         (simplify_const_binary_operation): Likewise.
10839         (simplify_const_relational_operation): Likewise.
10840         * tree-call-cdce.c (check_pow): Likewise.
10841         (gen_conditions_for_pow_cst_base): Likewise.
10842         * tree-inline.c (estimate_num_insns): Likewise.
10843         * tree-ssa-dom.c (record_equality): Likewise.
10844         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
10845         (gimple_expand_builtin_pow): Likewise.
10846         (pass_optimize_widening_mul::execute): Likewise.
10847         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
10848         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10849         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
10850
10851 2015-10-05  Richard Biener  <rguenther@suse.de>
10852
10853         PR ipa/67783
10854         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
10855         consider loop header PHI defs as IVs.
10856
10857 2015-10-05  Richard Biener  <rguenther@suse.de>
10858
10859         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
10860         call handling ...
10861         (create_expression_by_pieces): ... here and build GIMPLE
10862         calls directly.  Use gimple_build API and avoid force_gimple_operand.
10863         (insert_into_preds_of_block): Simplify.
10864         (do_regular_insertion): Add comment.
10865
10866 2015-10-04  Jason Merrill  <jason@redhat.com>
10867
10868         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
10869
10870 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
10871
10872         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
10873         check for general register.
10874         (ix86_emit_save_regs): Ditto.
10875         (ix86_emit_save_regs_using_mov): Ditto.
10876         (ix86_emit_restore_regs_using_pop): Ditto.
10877         (ix86_emit_restore_regs_using_mov): Ditto.
10878
10879 2015-10-03  Marek Polacek  <polacek@redhat.com>
10880
10881         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
10882         (insn-dfatab.o): Likewise.
10883
10884 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
10885
10886         * config.gcc (xtensa*-*-uclinux*): New configuration.
10887         * config/xtensa/uclinux.h: New file.
10888         * config/xtensa/uclinux.opt: New file.
10889
10890 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
10891
10892         * doc/cpp.texi (Standard Predefined Macros): Document value of
10893         __cplusplus for C++14.
10894
10895 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
10896
10897         * gcc.c (process_command): Use spec_machine rather than
10898         spec_host_machine to build tooldir_prefix2.
10899
10900 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10901             Bernd Schmidt  <bernds@codesourcery.com>
10902
10903         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
10904         (Token, Stmt): Remove structs.
10905         (decls, vars, fns): Remove variables.
10906         (alloc_comment, append_stmt, is_keyword): Remove macros.
10907         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
10908         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
10909         (parse_init, parse_file): Remove functions.
10910         (read_file): Accept a pointer to a length and store into it.
10911         (process): Don't try to parse the input file, just write it out as
10912         a string, but looking for maps.  Also write out the length.
10913         (main): Don't use "-S" to compile PTX code.
10914
10915 2015-10-02  Jeff Law  <law@redhat.com>
10916
10917         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
10918         fixups.
10919
10920 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
10921
10922         PR target/67822
10923         * config/nvptx/mkoffload.c (main): Scan the argument vector for
10924         -fopenmp, and skip generating an offloading image if specified.
10925
10926 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
10927
10928         * system.h (ROUND_UP): New macro definition.
10929         (ROUND_DOWN): Ditto.
10930         * ggc-page.c (ROUND_UP): Remove local macro definition.
10931         (PAGE_ALIGN): Implement using ROUND_UP macro.
10932
10933         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
10934         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
10935         to align values.
10936         (ix86_compute_frame_layout): Ditto.
10937         (ix86_expand_prologue): Ditto.
10938         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
10939         to round down values.
10940         (expand_set_or_movmem_via_rep): Ditto.
10941
10942 2015-10-02  Marek Polacek  <polacek@redhat.com>
10943
10944         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
10945
10946 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
10947
10948         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
10949         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
10950         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
10951         (free_gimple_bb): Renamed free_gimple_poly_bb.
10952         (try_generate_gimple_bb): Hoist loop invariant code.
10953         (analyze_drs_in_stmts): Same.
10954         (build_scop_drs): Call renamed functions.
10955         (new_pbb_from_pbb): Same.
10956         (scop_ivs_can_be_represented): Delete as functionality now moved to
10957         graphite-scop-detection.c
10958         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
10959
10960 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
10961
10962         * graphite-scop-detection.c (stmt_has_side_effects): New function
10963           outlined from stmt_simple_for_scop_p.
10964         (graphite_can_represent_stmt): Same.
10965         (stmt_simple_for_scop_p): Moved code out of this function for better
10966         readability.
10967
10968 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10969
10970         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
10971         F_AVX512IFMA.
10972         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
10973
10974 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10975
10976         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
10977
10978 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
10979
10980         PR rtl-optimization/67756
10981         * lra-constraints.c (match_reload): Add a new parameter.  Use it
10982         for creating a pseudo with the same value.
10983         (curr_insn_transform): Pass a new argument to match_reload.
10984
10985 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10986
10987         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
10988         (expand_vec_perm_even_odd_1): Handle V64QImode.
10989         (ix86_expand_vec_perm_const_1): Try expansion with
10990         expand_vec_perm_even_odd_trunc as well.
10991         * config/i386/sse.md (VI124_AVX512F): Rename to ...
10992         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
10993         to V54QI.
10994         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
10995         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
10996         to V32HI and V16SI.
10997         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
10998         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
10999         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
11000         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
11001         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
11002         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
11003
11004 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
11005
11006         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
11007         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
11008
11009 2015-10-02  Jason Merrill  <jason@redhat.com>
11010
11011         PR c/59218
11012         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
11013         (diagnose_tm_1_op): Also diagnose volatile accesses in
11014         transaction_safe function.
11015
11016 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
11017
11018         * system.h (malloc.h): Don't include obsolete header.
11019
11020 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11021
11022         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
11023         (TLS_SECTION_ASM_FLAG): Delete.
11024
11025 2015-10-02  Marek Polacek  <polacek@redhat.com>
11026
11027         PR c/64249
11028         * doc/invoke.texi: Document -Wduplicated-cond.
11029         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
11030         (insn-dfatab.o): Likewise.
11031         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
11032         warning.
11033
11034 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
11035
11036         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
11037         sequences.
11038
11039 2015-10-02  Renlin Li  <renlin.li@arm.com>
11040
11041         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
11042
11043 2015-10-02  Renlin Li  <renlin.li@arm.com>
11044
11045         PR target/66776
11046         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
11047
11048 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11049
11050         PR rtl-optimization/67786
11051         PR rtl-optimization/67787
11052         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
11053         it modifies a reg used in the condition calculation.
11054
11055 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
11056
11057         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
11058         alternatives for reads from memory and moves from general-purpose
11059         registers.
11060         (*aarch64_combinez_be<mode>): Likewise.
11061
11062 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
11063
11064         PR target/51726
11065         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
11066         selectany within this function without need to keep attribute.
11067         (i386_pe_encode_section_info): Remove selectany-code.
11068
11069 2015-10-02  Richard Biener  <rguenther@suse.de>
11070
11071         * tree-ssa-sccvn.c (has_VN_INFO): New function.
11072         (free_scc_vn): Use it.
11073         (visit_use): Remove dead code and refactor to use gassign
11074         and use less indentation.
11075
11076 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11077
11078         PR target/67788
11079         PR target/67789
11080         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
11081         (rs6000_cannot_copy_insn_p): New function.
11082         * config/rs6000/rs6000.md (cannot_copy): New attribute.
11083         (load_toc_v4_PIC_1_normal): Set cannot_copy.
11084         (load_toc_v4_PIC_1_476): Ditto.
11085
11086 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11087
11088         * graphite-scop-detection.c (struct sese_l): New conversion constructor
11089         so that this type can be pushed into a vec.
11090         (class scop_builder): use sese_l to collect scops.
11091         (get_scops): New getter function.
11092         (remove_intersecting_scops): Use sese_l instead of scops_p.
11093         (intersects): Same.
11094         (add_scop): Same.
11095         (subsumes): Same.
11096         (remove_subscops): Same.
11097         (build_scops): Add scops to vec<scops_p> once all the scops have been
11098         detected.
11099
11100 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
11101
11102         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11103         Renamed type from gimple_bb_p to gimple_poly_bb_p.
11104         (translate_isl_ast_node_user): Same.
11105         * graphite-poly.c (new_poly_bb): Same.
11106         * graphite-poly.h (gbb_from_bb): Same.
11107         * sese.h: Same.
11108         * graphite-sese-to-poly.c (new_gimple_bb):
11109         gimple_bb_p -> gimple_poly_bb_p
11110         (build_scop_scattering): Same.
11111         (find_params_in_bb): Same.
11112         (add_conditions_to_domain): Same.
11113         (sese_dom_walker::before_dom_children): Same.
11114         (analyze_drs_in_stmts): Same.
11115         (new_pbb_from_pbb): Same.
11116         (free_data_refs_aux): New pointer to type base_alias_pair.
11117         * graphite-sese-to-poly.h: Same.
11118         * sese.c (if_region_set_false_region): Fixed Indentation.
11119         (move_sese_in_condition): Same.
11120
11121 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11122             Aditya Kumar  <aditya.k7@samsung.com>
11123
11124         PR tree-optimization/66980
11125         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
11126         when data reference analysis has failed.
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 (stmt_has_simple_data_refs_p): Call
11133         scev analysis on the same loop nest as analyze_drs_in_stmts.
11134         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
11135         renamed...
11136         (try_generate_gimple_bb): Call outermost_loop_in_sese.
11137         (analyze_drs_in_stmts): Same.
11138         * sese.c (outermost_loop_in_sese): ...here.
11139
11140 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
11141             Aditya Kumar  <aditya.k7@samsung.com>
11142
11143         PR tree-optimization/67754
11144         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
11145         recursion on the inner loops.
11146
11147 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11148
11149         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
11150         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
11151         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
11152         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
11153         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
11154
11155 2015-10-01  Marek Polacek  <polacek@redhat.com>
11156
11157         PR c/65345
11158         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
11159         create_tmp_var_raw rather than create_tmp_var.
11160
11161 2015-10-01  Marek Polacek  <polacek@redhat.com>
11162
11163         PR tree-optimization/67769
11164         * tree-ssa-phiopt.c (conditional_replacement): Call
11165         reset_flow_sensitive_info_in_bb.
11166         (minmax_replacement): Likewise.
11167         (abs_replacement): Likewise.
11168
11169 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
11170
11171         * builtins.c: Don't include gomp-constants.h.
11172         (fold_builtin_1): Don't fold acc_on_device here.
11173         * gimple-fold.c: Include gomp-constants.h.
11174         (gimple_fold_builtin_acc_on_device): New.
11175         (gimple_fold_builtin): Call it.
11176
11177 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
11178
11179         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
11180         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
11181
11182 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
11183
11184         * config/arm/aarch-common-protos.h
11185         (aarch_accumulator_forwarding): New.
11186         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11187         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
11188         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
11189         * config/arm/cortex-a53.md: Rewrite.
11190
11191 2015-10-01  Richard Biener  <rguenther@suse.de>
11192
11193         * gimple-match.h (mprts_hook): Declare.
11194         * gimple-match.head.c (mprts_hook): Define.
11195         (maybe_push_res_to_seq): Use new hook.
11196         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11197         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
11198         (vn_ssa_aux::has_constants): Remove.
11199         * tree-ssa-sccvn.c: Include gimple-match.h.
11200         (VN_INFO_GET): Assert we don't re-use SSA names.
11201         (vn_get_expr_for): Remove.
11202         (expr_has_constants): Likewise.
11203         (stmt_has_constants): Likewise.
11204         (simplify_binary_expression): Likewise.
11205         (simplify_unary_expression): Likewise.
11206         (vn_lookup_simplify_result): New hook.
11207         (visit_copy): Adjust.
11208         (visit_reference_op_call): Likewise.
11209         (visit_phi): Likewise.
11210         (visit_use): Likewise.
11211         (process_scc): Likewise.
11212         (init_scc_vn): Likewise.
11213         (visit_reference_op_load): Likewise.  Use match-and-simplify and
11214         a gimple seq for inserted expressions.
11215         (try_to_simplify): Remove GENERIC stmt combining code.
11216         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
11217         * tree-ssa-pre.c (eliminate_insert): Adjust.
11218         (eliminate_dom_walker::before_dom_children): Likewise.
11219
11220 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11221
11222         * doc/invoke.texi (Optimization Options): Add
11223         -freorder-blocks-algorithm=.
11224         (Optimize Options) <-O>: Add -freorder-blocks.
11225         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
11226         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
11227         <-freorder-blocks>: Also enabled at levels -O and -Os.
11228         <-freorder-blocks-algorithm=>: Document new option.
11229
11230 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11231
11232         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
11233         with flag_reorder_blocks_algorithm.
11234         * common.opt (freorder-blocks-algorithm=): New flag.
11235         (reorder_blocks_algorithm): New enum.
11236         * flag-types.h (reorder_blocks_algorithm): New enum.
11237         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
11238         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
11239
11240 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11241
11242         * bb-reorder.c: Add intro comment.
11243         (reorder_basic_blocks_software_trace_cache): Print a header to
11244         the dump file.
11245         (edge_order): New function.
11246         (reorder_basic_blocks_simple): New function.
11247         (reorder_basic_blocks): Choose between the STC and the simple
11248         algorithms (always choose the former).
11249
11250 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
11251
11252         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
11253         function, factored out from ...
11254         (reorder_basic_blocks): ... here.
11255
11256 2015-10-01  Tom de Vries  <tom@codesourcery.com>
11257
11258         * tree-cfg.c (dump_function_to_file): Dump function attributes using
11259         __attribute__(()) string.  Move dumping of function attributes to before
11260         function name.
11261
11262 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
11263
11264         PR target/66870
11265         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
11266         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
11267         based on gold linker version.
11268         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
11269         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
11270         * configure, config.in: Regenerate.
11271
11272 2015-10-01  Alan Modra  <amodra@gmail.com>
11273
11274         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
11275         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
11276         (rs6000_output_mi_thunk): Likewise.
11277
11278 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11279
11280         * config/nvptx/mkoffload.c (process): Change offload data format.
11281
11282 2015-09-30  Jeff Law  <law@redhat.com>
11283
11284         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
11285         with constant conditions.
11286         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
11287         (remove_ctrl_stmt_and_useless_edges): No longer static.
11288         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
11289         (remove_ctrl_stmt_and_useless_edges): Likewise.
11290
11291 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
11292             Cesar Philippidis  <cesar@codesourcery.com>
11293
11294         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
11295         (TARGET_GOACC_VALIDATE_DIMS): Override.
11296         * target.def (TARGET_GOACC): New target hook prefix.
11297         (validate_dims): New hook.
11298         * targhooks.h (default_goacc_validate_dims): New.
11299         * omp-low.c (oacc_validate_dims): New.
11300         (execute_oacc_device_lower): New.
11301         (default_goacc_validate_dims): New.
11302         (pass_data_oacc_device_lower): New.
11303         (pass_oacc_device_lower): New pass.
11304         (make_pass_oacc_device_lower): New.
11305         * tree-pass.h (make_pass_oacc_device_lower): Declare.
11306         * passes.def (pass_oacc_device_lower): Add it.
11307         * doc/tm.texi: Rebuilt.
11308         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
11309         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
11310
11311 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11312
11313         PR rtl-optimization/67037
11314         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
11315
11316 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
11317
11318         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
11319         * passes.c: Include tree-ssanames.h.
11320         (execute_function_todo): Flush the pending free SSA_NAMEs after
11321         eliminating unreachable basic blocks.
11322         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
11323         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
11324         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
11325         (flush_ssanames_freelist): New function.
11326         (release_ssaname_fn): Put released names on the queue.
11327         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
11328         * tree-ssanames.h (flush_ssanames_freelist): Declare.
11329
11330 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11331
11332         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
11333         (generate_target_descr_file, generate_target_offloadend_file)
11334         (generate_host_descr_file, prepare_target_image): Pass it on.
11335         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
11336         (compile_native, main): Pass it on.
11337         * lto-wrapper.c (compile_offload_image): Likewise.
11338
11339 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11340             Ilya Verbin  <ilya.verbin@intel.com>
11341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11342
11343         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
11344         (prepare_target_image, main): Refactor argv building to use
11345         obstacks.
11346
11347 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11348
11349         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
11350         * config/spu/spu.c (spu_expand_atomic_op): New function.
11351         * config/spu/spu.md (AINT): New mode iterator.
11352         (ATOMIC): New code iterator.
11353         (atomic_name, atomic_pred): New code predicates.
11354         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
11355         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
11356         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
11357         "atomic_<atomic_name>_fetch<mode>"): Likewise.
11358
11359 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
11360
11361         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
11362         debug insns.
11363         (scalar_chain::convert_reg): Likewise.
11364
11365 2015-09-30  Richard Biener  <rguenther@suse.de>
11366
11367         * builtins.c: Add comment that no new simplifications should
11368         be added here.
11369
11370 2015-09-30  Marek Polacek  <polacek@redhat.com>
11371
11372         PR tree-optimization/67690
11373         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
11374         reset_flow_sensitive_info_in_bb.
11375         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
11376         * tree-ssanames.c: Include "gimple-iterator.h".
11377         (reset_flow_sensitive_info_in_bb): New function.
11378         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
11379
11380 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
11381
11382         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
11383         variable, replacing it with...
11384         (offload_abi): ... this new variable.  Adjust all users.
11385         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
11386
11387 2015-09-30  Matthias Klose  <doko@ubuntu.com>
11388
11389         * configure.ac: Remove extraneous ;;.
11390         * configure: Regenerate.
11391
11392 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
11393
11394         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
11395         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
11396         predicate, disallow register for operand 2.
11397
11398 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
11399
11400         * graphite-dependences.c (scop_get_dependences): Moved in down
11401         in order to be visible to its caller.
11402         * graphite-poly.h: Removed compute_deps, and extend_schedule.
11403
11404 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11405             Aditya Kumar  <aditya.k7@samsung.com>
11406
11407         PR tree-optimization/67754
11408         * graphite-optimize-isl.c (optimize_isl): Call
11409         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
11410
11411 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11412
11413         * builtins.c (expand_builtin_acc_on_device): Delete.
11414         (expand_builtin): Don't call it.
11415         (fold_builtin_1): Fold acc_on_device.
11416
11417 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
11418
11419         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
11420         (ix86_nsaved_sseregs): Likewise.
11421
11422 2015-09-29  Jeff Law  <law@redhat.com>
11423
11424         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
11425         computation of unused value.
11426
11427         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
11428         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
11429         inline macro expansion.
11430
11431         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
11432
11433         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
11434         (gen_shl_sext): Likewise.
11435         * config/sh/sh.md (divsi3): Likewise.
11436         (imm->ext_dest_operand splitter): Likewise.
11437
11438 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
11439             Aditya Kumar  <aditya.k7@samsung.com>
11440
11441         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
11442         (nb_data_writes_in_bb): Remove.
11443         (split_pbb): Remove.
11444         (split_reduction_stmt): Remove.
11445         (is_reduction_operation_p): Remove.
11446         (phi_contains_arg): Remove.
11447         (follow_ssa_with_commutative_ops): Remove.
11448         (detect_commutative_reduction_arg): Remove.
11449         (detect_commutative_reduction_assign): Remove.
11450         (follow_inital_value_to_phi): Remove.
11451         (edge_initial_value_for_loop_phi): Remove.
11452         (initial_value_for_loop_phi): Remove.
11453         (used_outside_reduction): Remove.
11454         (detect_commutative_reduction): Remove.
11455         (translate_scalar_reduction_to_array_for_stmt): Remove.
11456         (remove_phi): Remove.
11457         (dr_indices_valid_in_loop): Remove.
11458         (close_phi_written_to_memory): Remove.
11459         (translate_scalar_reduction_to_array): Remove.
11460         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
11461         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
11462         (rewrite_commutative_reductions_out_of_ssa): Remove.
11463         (build_poly_scop): Remove call to
11464         rewrite_commutative_reductions_out_of_ssa.
11465
11466 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
11467
11468         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
11469         Add new insn types for vector load and store pairs.
11470         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
11471         types "neon_ldp{,_q}".
11472         * config/arm/cortex-a57.md (neon_load_c): Add insn types
11473         "neon_ldp{,_q}".
11474         (neon_store_complex): Add insn types "neon_stp{,_q}".
11475         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
11476         "neon_{ldp,stp}_q".
11477
11478 2015-09-29  Jeff Law  <law@redhat.com>
11479
11480         * config/rx/constraints.md (Int08): Fix undefined left shift
11481         behaviour.
11482         (Sint08, Sint16, Sint24): Likewise.
11483         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11484
11485         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
11486         behaviour.
11487
11488         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
11489         left shift behaviour.
11490         * config/msp430/constraints.md ('L' constraint): Similarly.
11491         ('Ys' constraint): Similarly.
11492
11493 2015-09-29  Richard Biener  <rguenther@suse.de>
11494
11495         PR tree-optimization/67170
11496         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
11497         the translate function pointer parameter to get the
11498         bool whether to disambiguate only by reference.
11499         (walk_non_aliased_vuses): Likewise.
11500         * tree-ssa-alias.c (maybe_skip_until): Adjust.
11501         (get_continuation_for_phi_1): Likewise.
11502         (get_continuation_for_phi): Likewise.
11503         (walk_non_aliased_vuses): Likewise.
11504         * tree-ssa-sccvn.c (const_parms): New bitmap.
11505         (vn_reference_lookup_3): Adjust for interface change.
11506         Disambiguate parameters pointing to readonly memory.
11507         (free_scc_vn): Free const_parms.
11508         (run_scc_vn): Initialize const_parms from a fn spec attribute.
11509
11510 2015-09-29  Richard Biener  <rguenther@suse.de>
11511
11512         PR tree-optimization/67741
11513         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
11514         builtin calls with correct signature.
11515
11516 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
11517
11518         PR target/65105
11519         * config/i386/i386.c: Include dbgcnt.h.
11520         (has_non_address_hard_reg): New.
11521         (convertible_comparison_p): New.
11522         (scalar_to_vector_candidate_p): New.
11523         (remove_non_convertible_regs): New.
11524         (scalar_chain): New.
11525         (scalar_chain::scalar_chain): New.
11526         (scalar_chain::~scalar_chain): New.
11527         (scalar_chain::add_to_queue): New.
11528         (scalar_chain::mark_dual_mode_def): New.
11529         (scalar_chain::analyze_register_chain): New.
11530         (scalar_chain::add_insn): New.
11531         (scalar_chain::build): New.
11532         (scalar_chain::compute_convert_gain): New.
11533         (scalar_chain::replace_with_subreg): New.
11534         (scalar_chain::replace_with_subreg_in_insn): New.
11535         (scalar_chain::emit_conversion_insns): New.
11536         (scalar_chain::make_vector_copies): New.
11537         (scalar_chain::convert_reg): New.
11538         (scalar_chain::convert_op): New.
11539         (scalar_chain::convert_insn): New.
11540         (scalar_chain::convert): New.
11541         (convert_scalars_to_vector): New.
11542         (pass_data_stv): New.
11543         (pass_stv): New.
11544         (make_pass_stv): New.
11545         (ix86_option_override): Created and register stv pass.
11546         (flag_opts): Add -mstv.
11547         (ix86_option_override_internal): Likewise.
11548         * config/i386/i386.md (SWIM1248x): New.
11549         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
11550         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
11551         (*anddi3_doubleword): New.
11552         (*zext<mode>_doubleword): New.
11553         (*zextsi_doubleword): New.
11554         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
11555         (*<code>di3_doubleword): New.
11556         * config/i386/i386.opt (mstv): New.
11557         * dbgcnt.def (stv_conversion): New.
11558
11559 2015-09-29  Tom de Vries  <tom@codesourcery.com>
11560
11561         * tree-cfg.c (dump_function_to_file): Dump function attributes.
11562
11563 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11564
11565         PR target/67716
11566         * config/sh/sh.c (sh_override_options_after_change): New.
11567         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
11568         (sh_option_override): Move align_loops, align_jumps and
11569         align_functions handling into sh_override_options_after_change.
11570
11571 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
11572
11573         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
11574         (nvptx_record_offload_symbol): Record function execution geometry.
11575         * config/nvptx/mkoffload.c (process): Include launch geometry in
11576         function data.
11577         * omp-low.c (oacc_launch_pack): New.
11578         (replace_oacc_fn_attrib): New.
11579         (set_oacc_fn_attrib): New.
11580         (get_oacc_fn_attrib): New.
11581         (expand_omp_target): Create keyed varargs for GOACC_parallel call
11582         generation.
11583         * omp-low.h (get_oacc_fn_attrib): Declare.
11584         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
11585         (DEF_FUNCTION_TYPE_VAR_11): Delete.
11586         * tree.h (OMP_CLAUSE_EXPR): New.
11587         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
11588
11589 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11590             Sebastian Pop  <s.pop@samsung.com>
11591
11592         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
11593
11594 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11595             Sebastian Pop  <s.pop@samsung.com>
11596
11597         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
11598         * graphite-scop-detection.c (struct sese_l): New type.
11599         (get_entry_bb): API for getting entry bb of SESE.
11600         (get_exit_bb): API for getting exit bb of SESE.
11601         (class debug_printer): New type.  Simple printer in debug mode.
11602         (trivially_empty_bb_p): New.  Return true when BB is empty or
11603         contains only debug instructions.
11604         (graphite_can_represent_expr): Call scalar_evoution_in_region
11605         instead of analyze_scalar_evolution.  Pass in scop instead of only
11606         the scop entry.
11607         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
11608         scop entry.
11609         (stmt_simple_for_scop_p): Same.
11610         (harmful_stmt_in_bb): Same.
11611         (graphite_can_represent_loop): Deleted.
11612         (struct scopdet_info): Deleted.
11613         (scopdet_basic_block_info): Deleted.
11614         (build_scops_1): Deleted.
11615         (bb_in_sd_region): Deleted.
11616         (find_single_entry_edge): Deleted.
11617         (find_single_exit_edge): Deleted.
11618         (create_single_entry_edge): Deleted.
11619         (sd_region_without_exit): Deleted.
11620         (create_single_exit_edge): Deleted.
11621         (unmark_exit_edges): Deleted.
11622         (mark_exit_edges): Deleted.
11623         (create_sese_edges): Deleted.
11624         (build_graphite_scops): Deleted.
11625         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
11626         (build_scops): Use the new scop_builder to build scops.
11627         (dot_all_scops_1): Use the new pretty printer.  Print loop father
11628         as well.
11629         (loop_body_is_valid_scop): New.  Return true if loop body is a
11630         valid scop.
11631         (class scop_builder): New.  Builds SCoPs for polyhedral
11632         optimizations.
11633         (scop_builder): New constructor.
11634         (static sese_l invalid_sese): sese_l with invalid edges.
11635         (get_sese): Get an sese (from a loop) if possible, invalid_sese
11636         otherwise.
11637         (get_nearest_dom_with_single_entry): Get nearest dominator of a
11638         basic_block with single entry.  Return NULL if we get to the
11639         beginning of a function.
11640         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
11641         a basic_block with single exit.  Return NULL if we get to the
11642         beginning of a function.
11643         (print_sese): Pretty-print SESE.
11644         (merge_sese): Merge two SESEs if possible and return the new SESE.
11645         (build_scop_depth): Start building the SCoP within a loop nest.
11646         (build_scop_breadth): Start building the SCoP at a single loop
11647         depth.  Merge adjacent SESEs if valid.
11648         (can_represent_loop_1): Returns true if Graphite can represent
11649         loop inside SCoP.  Helper for can_represent_loop.
11650         (can_represent_loop): Returns true if Graphite can represent LOOP
11651         and all its nested loops in SCoP.
11652         (loop_is_valid_scop): Returns true if LOOP and all its nests
11653         constitute a valid SCoP.
11654         (region_has_one_loop): Returns true of a region has only one loop.
11655         (add_scop): Add SCoP to the list of valid scops.  Removes an
11656         already existing scop if it intersects with or subsumed by this one.
11657         (harmful_stmt_in_region): Returns true if SCoP has any statment
11658         which cannot be represented by Graphite.
11659         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
11660         (remove_subscops): Remove any SCoP from the list of already found
11661         SCoPs, if subsumed by S1.
11662         (intersects): Return true if region bounded by SCoPs S1 and S2
11663         intersect.
11664         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
11665         * graphite.c (print_graphite_scop_statistics):
11666         (print_graphite_statistics): Print SCoP info while debugging.
11667         (graphite_initialize): Early exit in case number of loops in a
11668         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
11669         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11670         (graphite_finalize):
11671         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
11672         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
11673         (recompute_all_dominators): Recalculate POST_DOMINATORS.
11674         * tree-cfg.c (print_loops): Print the function name while printing
11675         loops.
11676
11677 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
11678             Sebastian Pop  <s.pop@samsung.com>
11679
11680         PR tree-optimization/67700
11681         * graphite-sese-to-poly.c (parameter_index_in_region): Call
11682         invariant_in_sese_p_rec.
11683         (extract_affine): Same.
11684         (rewrite_cross_bb_scalar_deps): Call update_ssa.
11685         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
11686         * sese.h (invariant_in_sese_p_rec): Declare.
11687
11688 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
11689
11690         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
11691
11692 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
11693
11694         Revert:
11695         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11696                     Jiong Wang  <jiong.wang@arm.com>
11697
11698         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11699         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11700         (REG_CLASS_NAMES): Likewise.
11701         (REG_CLASS_CONTENTS): Likewise.
11702         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11703         (aarch64_register_move_cost): Likewise.
11704         (aarch64_load_symref_appropriately): Invoke the new added pattern if
11705         possible.
11706         * config/aarch64/constraints.md (Uc0): New constraint.
11707
11708 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
11709
11710         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
11711
11712 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
11713
11714         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
11715         SECTION_EXCLUDE in XO mapping class.
11716
11717 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
11718
11719         PR target/54236
11720         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
11721         and handle ne and eq codes.
11722         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
11723         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
11724         CONST_INT_P.  Use reverse_condition.
11725         (sh_split_treg_set_expr): Likewise.
11726
11727 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
11728
11729         * config/arm/types.md (type): Add rotate_imm.
11730         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
11731         ROR immediate case.
11732         (*rorsi3_insn_uxtw): Likewise.
11733         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
11734         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
11735         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
11736
11737 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11738
11739         PR rtl-optimization/67481
11740         * ifcvt.c (contains_ccmode_rtx_p): New function.
11741         (insn_valid_noce_process_p): Use it.
11742
11743 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11744
11745         PR rtl-optimization/67456
11746         PR rtl-optimization/67464
11747         PR rtl-optimization/67465
11748         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
11749         move in the mode of x.  Handle combination of complex and simple
11750         block pairs as well as the case when one is empty.
11751
11752 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11753
11754         * doc/gimple.texi: Update references to gimple_statement_base.
11755         * gdbhooks.py: Likewise.
11756         * gimple.h: Likewise.
11757
11758 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11759
11760         * config/sparc/driver-sparc.c: map LEON to leon3
11761
11762 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11763
11764         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
11765           and make it inverse to change default
11766         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
11767           supervisor mode
11768         * doc/invoke.texi: Document change of default
11769
11770 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
11771
11772         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
11773         true on %f0 for a target without FPU.
11774         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
11775         without FPU.
11776         (untyped_return): Do not load %f0 for a target without FPU.
11777
11778 2015-09-28  Andrew Pinski  <apinski@cavium.com>
11779
11780         * config/aarch64/aarch64.md (prefetch):
11781         Change the predicate of operand 0 to register_operand.
11782
11783 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
11784
11785         * config/i386/predicates.md (register_sse4nonimm_operand): New
11786         predicate.
11787         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
11788         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
11789         Use register_sse4nonimm_operand as operand 0 predicate.
11790         (*vec_extractv8hi_sse2): Remove insn pattern.
11791         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
11792         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
11793
11794 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
11795             Kaz Kojima  <kkojima@gcc.gnu.org>
11796
11797         PR target/67391
11798         * config/sh/sh-protos.h (sh_lra_p): Declare.
11799         * config/sh/sh.c (sh_lra_p): Make non-static.
11800         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
11801         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
11802         Expand into addsi3_scr if operands[2] if needed.
11803         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
11804         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
11805         (addsi3_scr, *addsi3): New insn_and_split patterns.
11806
11807 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
11808
11809         PR rtl-optimization/64164
11810         PR tree-optimization/67312
11811         PR middle-end/67340
11812         PR middle-end/67490
11813         PR bootstrap/67597
11814         * cfgexpand.c (parm_in_stack_slot_p): Remove.
11815         (ssa_default_def_partition): Remove.
11816         (get_rtl_for_parm_ssa_default_def): Remove.
11817         (set_rtl): Check that RTL assignments match expectations.
11818         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
11819         default def location for params and results.  Record SSA names
11820         or types in REG and MEM attrs, respectively.
11821         (set_parm_rtl): New.
11822         (expand_one_ssa_partition): Drop logic that assigned MEMs with
11823         unassigned addresses.
11824         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
11825         deferred stack alloc vars.
11826         (expand_used_vars): Skip partitions holding parm default defs.
11827         Move adjust_one_expanded_partition_var loop...
11828         (pass_expand::execute): ... here.  Drop redundant assert.
11829         Adjust comments before the final loop over all ssa names.
11830         Require assigned rtl of parms and results to match exactly.
11831         Reset its attributes to match them, not any other variables in
11832         the same partition.
11833         (expand_debug_expr): Use entry value for PARM's default defs
11834         only iff they have zero nondebug uses.
11835         * cfgexpand.h (parm_in_stack_slot_p): Remove.
11836         (get_rtl_for_parm_ssa_default_def): Remove.
11837         (set_parm_rtl): Declare.
11838         * doc/invoke.texi: Improve wording.
11839         * explow.c (promote_decl_mode): Fix promote_function_mode for
11840         result decls not by reference.
11841         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
11842         bypass TYPE_MODE to get the actual vector mode.
11843         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
11844         2015-08-19's changes as follows.  Drop include of
11845         basic-block.h and df.h.
11846         (rtl_for_parm): Remove.
11847         (maybe_reset_rtl_for_parm): Remove.
11848         (parm_in_unassigned_mem_p): Remove.
11849         (use_register_for_decl): Add logic for RESULT_DECLs matching
11850         assign_parms' behavior.
11851         (split_complex_args): Revert.
11852         (assign_parms_augmented_arg_list): Revert.  Add comment
11853         referencing the logic above.
11854         (assign_parm_adjust_stack_rtl): Revert.
11855         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
11856         of SET_DECL_RTL.  Set up a REG if the parm demands so.
11857         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
11858         calls into a single set_parm_rtl.  Set up a temporary RTL
11859         temporarily for expand_assignment.
11860         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
11861         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
11862         (assign_bounds): Revert.
11863         (assign_parms): Revert.  Use set_parm_rtl.
11864         (allocate_struct_function): Relayout result and parms of
11865         non-abstruct functions.
11866         (expand_function_start): Revert.  Use set_parm_rtl.  If the
11867         result is not a hard reg, create a pseudo from the promoted
11868         mode of the default def.  Promote static chain mode.
11869         * tree-outof-ssa.c (remove_ssa_form): Drop unused
11870         partition_has_default_def.  Set up
11871         partitions_for_parm_default_defs.
11872         (finish_out_of_ssa): Remove partition_has_default_def.
11873         Release partitions_for_parm_default_defs.
11874         * tree-outof-ssa.h (struct ssaexpand): Remove
11875         partition_has_default_def.  Add
11876         partitions_for_parm_default_defs.
11877         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
11878         stor-layout.h.
11879         (build_ssa_conflict_graph): Fix conflict-detection of default
11880         defs of even unused default defs of params and results.
11881         (for_all_parms): New.
11882         (create_default_def): New.
11883         (register_default_def): New.
11884         (coalesce_with_default): New.
11885         (create_outofssa_var_map): Create default defs for all parms
11886         and results, and register their partitions.  Add GIMPLE_RETURN
11887         operands as coalesce candidates with results.  Add default
11888         defs of each parm or result as coalesce candidates with its
11889         other defs.  Mark each result def, and each default def of
11890         parms, as used_in_copy.
11891         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
11892         with the ssa names, even anonymous ones.  Drop
11893         parm_in_stack_slot_p calls.  Require same signedness and
11894         alignment.
11895         (coalesce_ssa_name): Add coalesce candidates for all defs of
11896         each parm and result, even unused ones.
11897         (parm_default_def_partition_arg): New type.
11898         (set_parm_default_def_partition): New.
11899         (get_parm_default_def_partitions): New.
11900         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
11901         * tree-ssa-live.c (partition_view_init): Regard unused defs of
11902         parms and results as used.
11903         (verify_live_on_entry): Don't error out just because they're
11904         not live.
11905
11906 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
11907
11908         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11909         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
11910         (output_fde): Don't output length for debug_frame on AIX.
11911         (output_call_frame_info): Don't output length for debug_frame on AIX.
11912         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
11913         HAVE_XCOFF_DWARF_EXTRAS.
11914         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
11915         HAVE_XCOFF_DWARF_EXTRAS.
11916         (output_compilation_unit_header): Don't output length on AIX.
11917         (output_pubnames): Don't output length on AIX.
11918         (output_aranges): Delete argument. Compute length locally. Don't
11919         output length on AIX.
11920         (output_line_info): Don't output length on AIX.
11921         (dwarf2out_finish): Don't compute aranges_length.
11922         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
11923         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
11924         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
11925         symbol decoration for AIX.
11926         (rs6000_xcoff_debug_unwind_info): New.
11927         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
11928         for SECTION_DEBUG.
11929         (rs6000_xcoff_declare_function_name): Emit different
11930         .function pseudo-op when DWARF2_DEBUG. Don't call
11931         xcoffout_declare_function for DWARF2_DEBUG.
11932         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
11933         Redefine.
11934         * config/rs6000/aix71.h: New.
11935         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
11936         locations support.
11937         * configure: Regenerate.
11938         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
11939         DWARF support.
11940
11941 2015-09-26  Jeff Law  <law@redhat.com>
11942
11943         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
11944         behaviour.
11945         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
11946         behaviour.
11947
11948         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
11949         behaviour
11950
11951         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
11952         undefined behaviour.
11953
11954         * config/cris/cris.md (asrandb): Fix left shift undefined
11955         behaviour.
11956         (asrandw): Likewise.
11957
11958 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
11959
11960         PR target/61578
11961         * lra-constarints.c (match_reload): Check presence of the input pseudo
11962         in the output operand.
11963
11964 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11965
11966         * doc/invoke.texi (-fsanitize): Minor wording tweak.
11967
11968 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11969
11970         * doc/invoke.texi (-fsanitize): Update URLs.
11971
11972 2015-09-25  Teresa Johnson  <tejohnson@google.com>
11973
11974         * opts.c (finish_options): Unset -freorder-blocks-and-partition
11975         if not using profile.
11976
11977 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11978
11979         PR pretty-print/67567
11980         * pretty-print.c (pp_string): Add gcc_checking_assert.
11981         * pretty-print.h (output_buffer_append_r): Likewise.
11982
11983 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
11984
11985         PR target/67675
11986         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
11987         addr2 individually.  Don't emit logical or insn if one is known to
11988         be aligned approriately.
11989         (sh_expand_cmpnstr): Likewise.
11990
11991 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
11992
11993         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
11994         __builtin_aarch64_fp[sc]r arguments into a register.
11995
11996 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
11997
11998         * config.gcc (x86_archs): Replace lakemount with lakemont.
11999         (with_cpu): Likewise.
12000         (with_arch): Likewise.
12001         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12002         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
12003         __tune_lakemount__ with __tune_lakemont__.
12004         * config/i386/i386.c (lakemount_cost): Renamed to ...
12005         (lakemont_cost): This.
12006         (m_LAKEMOUNT): Renamed to ...
12007         (m_LAKEMONT): This.
12008         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
12009         (processor_target_table): Replace "lakemount" with "lakemont".
12010         (processor_alias_table): Likewise.
12011         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
12012         PROCESSOR_LAKEMONT.
12013         (ix86_adjust_cost): Likewise.
12014         (ia32_multipass_dfa_lookahead): Likewise.
12015         * config/i386/i386.h (processor_type): Likewise.
12016         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
12017         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
12018         Lakemount with Lakemont.
12019
12020 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
12021
12022         * config.gcc (x86_archs): Replace iamcu with lakemount.
12023         (with_cpu): Likewise.
12024         (with_arch): Likewise.
12025         * doc/invoke.texi: Likewise.
12026         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
12027         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
12028         __tune_iamcu__ with __tune_lakemount__.
12029         * config/i386/i386.c (iamcu_cost): Renamed to ...
12030         (lakemount_cost): This.
12031         (m_IAMCU): Renamed to ...
12032         (m_LAKEMOUNT): This.
12033         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
12034         (processor_target_table): Replace "iamcu" with "lakemount".
12035         (processor_alias_table): Likewise.
12036         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
12037         PROCESSOR_LAKEMOUNT.
12038         (ix86_adjust_cost): Likewise.
12039         (ia32_multipass_dfa_lookahead): Likewise.
12040         * config/i386/i386.h (processor_type): Likewise.
12041         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
12042
12043 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
12044
12045         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
12046         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
12047         Declare.
12048         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
12049         (pa_expand_compare_and_swap_loop): New.
12050         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
12051         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
12052         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
12053         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
12054         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
12055         Revise.
12056
12057 2015-09-24  Michael Collison  <michael.collison@linaro.org>
12058
12059         PR other/57195
12060         * read-md.c (read_name): Allow mode iterators inside angle
12061         brackets in rtl expressions.
12062
12063 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
12064
12065         PR target/61578
12066         * ira-color.c (update_allocno_cost): Add parameter.
12067         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
12068         parameter.
12069
12070 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12071
12072         PR driver/67640
12073         * opts-common.c (prune_options): Discard all -fdiagnostics-color
12074         but the last one, which is moved to the front to be processed
12075         first.
12076         * opts.c (enable_warning_as_error): Reject options that do not
12077         control warnings.
12078
12079 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12080
12081         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
12082
12083 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
12084
12085         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
12086         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
12087         (aarch64_cannot_force_const_mem): Likewise.
12088         (aarch64_classify_address): Likewise.
12089         (aarch64_classify_symbolic_expression): Likewise.
12090         (aarch64_print_operand): Likewise.
12091         (aarch64_classify_symbol): Likewise.
12092         (aarch64_mov_operand_p): Likewise.
12093         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
12094         (aarch64_mov_operand): Likewise.
12095
12096 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
12097
12098         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
12099         for info->spe_gp_size.
12100
12101 2015-09-24  Richard Biener  <rguenther@suse.de>
12102
12103         PR lto/67699
12104         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
12105         abstract origins.
12106
12107 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
12108
12109         * tree-object-size.c (plus_stmt_object_size)
12110         (cond_expr_object_size): Change the formal parameters from gimple
12111         to gimple *.
12112         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
12113         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
12114         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
12115
12116 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12117
12118         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
12119         Check for ld -type pie on Solaris 11.x and 12.
12120         * configure: Regenerate.
12121         * config.in: Regenerate.
12122
12123         * gcc.c (LD_PIE_SPEC): Allow redefinition.
12124
12125         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
12126         (STARTFILE_SPEC): Use it.
12127         (ENDFILE_CRTEND_SPEC): Define.
12128         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
12129         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
12130         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
12131         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
12132         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
12133         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
12134         (ENDFILE_ARCH_SPEC): Define.
12135         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
12136
12137 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12138
12139         * configure.ac (gcc_cv_solaris_crts): New test.
12140         * configure. Regenerate.
12141         * config.in: Regenerate.
12142         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
12143         HAVE_SOLARIS_CRTS variant.
12144
12145 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12146
12147         * tree-inline.h (count_insns_seq): Delete prototype.
12148         (estimate_num_insns_seq): Define prototype.
12149         * tree-inline.c (count_insns_seq): Delete.
12150         (estimate_num_insns_seq): Remove static qualifier.
12151         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
12152         with estimate_num_insns_seq.
12153
12154 2015-09-24  Richard Biener  <rguenther@suse.de>
12155
12156         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
12157         members.
12158         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
12159         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
12160         offset.
12161         (ao_ref_init_from_vn_reference): Record clique and base in the
12162         built base.
12163         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
12164
12165 2015-09-24  Richard Biener  <rguenther@suse.de>
12166
12167         PR tree-optimization/48885
12168         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
12169         as not including any restrict tags from other pointers.
12170
12171 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12172
12173         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
12174         character when appending to offload_targets.
12175
12176         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
12177         offload targets by commas, not colons.
12178         * config.in: Regenerate.
12179         * configure: Likewise.
12180         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
12181         instead of setting up the default offload targets here...
12182         (process_command): ..., do it here.
12183         libgomp/
12184         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
12185         targets are separated by commas.
12186         * config.h.in: Regenerate.
12187
12188 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
12189             Nathan Sidwell  <nathan@codesourcery.com>
12190
12191         * omp-low.h (omp_reduction_init_op): Declare.
12192         * omp-low.c (omp_reduction_init_op): New, broken out of ...
12193         (omp_reduction_init): ... here.  Call it.
12194         * tree-parloops.c (initialize_reductions): Use
12195         omp_reduction_init_op.
12196
12197 2015-09-23   Richard Biener  <rguenther@suse.de>
12198
12199         PR middle-end/67662
12200         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
12201         undefined overflow unless they will cancel out.
12202
12203 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12204
12205         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
12206         insn emit.
12207
12208 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12209
12210         PR c/49655
12211         * opts.h (write_langs): Declare.
12212         * opts-global.c (write_langs): Make it extern.
12213
12214 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
12215
12216         PR target/67391
12217         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
12218         overlapping regs when matching the pattern.
12219
12220 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
12221
12222         * config/aarch64/aarch64-simd.md
12223         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
12224         (aarch64_float_truncate_hi_v4sf_le): New.
12225         (aarch64_float_truncate_hi_v4sf_be): Likewise.
12226
12227 2015-09-23  Richard Biener  <rguenther@suse.de>
12228
12229         * tree-ssa-structalias.c (intra_create_variable_infos): Build
12230         representatives for all restrict qualified pointer destinations.
12231
12232 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12233
12234         * config/i386/i386.md (define_code_attr mshift): New.
12235         (define_mode_iterator SWI1248_AVX512BW): Rename ...
12236         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
12237         only.
12238         (define_insn "*k<logic><mode>"): Use new iterator name.
12239         (define_insn "*<mshift><mode>3"): New.
12240
12241 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
12242
12243         PR middle-end/67649
12244         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
12245         mark the block as accessible.
12246
12247 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
12248
12249         * function.c (thread_prologue_and_epilogue_insns): Delete
12250         orig_entry_edge argument to try_shrink_wrapping.
12251         * shrink-wrap.c (can_get_prologue): New function.
12252         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
12253         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
12254         can_get_prologue where needed.  Remove code that finds a single
12255         edge for the prologue.  Remove code that tests if any reg clobbered
12256         by the prologue is live on the prologue edge.  Remove code that finds
12257         the new prologue edge after duplicating blocks.  Make a new prologue
12258         block and edge.
12259         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
12260
12261 2015-09-22  Jeff Law  <law@redhat.com>
12262
12263         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
12264         behavior.
12265
12266 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
12267
12268         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
12269         -Wtemplates, -Wnamespaces): Document.
12270
12271 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12272
12273         PR tree-optimization/67671
12274         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
12275         pointer references as restrict.
12276
12277 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12278
12279         * config/nios2/nios2.c (nios2_legitimize_address): When handling
12280         'reg + reloc' cases, allow first operand to be non-REG, and use
12281         force_reg() to enforce address pattern.
12282
12283 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
12284
12285         PR target/67480
12286         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
12287         (define_mode_iterator VI12_AVX_AVX512F): New.
12288         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
12289         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
12290         (define_insn "*<code><mode>3"): ... Into new pattern using
12291         VI12_AVX_AVX512F iterators without masking.
12292
12293 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12294
12295         * config.gcc: Support "skylake-avx512".
12296         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12297         PROCESSOR_SKYLAKE_AVX512.
12298         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
12299         (processor_target_table): Add "skylake-avx512".
12300         (PTA_SKYLAKE_AVX512): Define.
12301         (ix86_option_override_internal): Add "skylake_avx512".
12302         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
12303         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
12304         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
12305         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
12306         * doc/invoke.texi (skylake-avx512): New.
12307
12308 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12309
12310         * config/i386/i386.md (define_insn "kunpckhi"): Fix
12311         operand in pattern.
12312         (define_insn "kunpcksi"): Ditto.
12313         (define_insn "kunpckdi"): Ditto.
12314
12315 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
12316
12317         * config/i386/i386.md (define_split not/xor SWI1248x): Use
12318         iterator instead of fixed modes.
12319
12320 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12321
12322         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12323         Adjust declaration.
12324         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
12325         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
12326         out_result.  Update to support update-fetch operations.
12327         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
12328         Adjust for change to aarch64_gen_atomic_ldop.
12329         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
12330         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
12331         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
12332         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
12333         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
12334
12335 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12336
12337         * config/aarch64/aarch64-protos.h
12338         (aarch64_atomic_ldop_supported_p): Declare.
12339         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
12340         (enum aarch64_atomic_load_op_code): New.
12341         (aarch64_emit_atomic_load_op): New.
12342         (aarch64_gen_atomic_ldop): Update to support load-operate
12343         patterns.
12344         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
12345         to an expander.
12346         (aarch64_atomic_<atomic_optab><mode>): New.
12347         (aarch64_atomic_<atomic_optab><mode>_lse): New.
12348         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
12349         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
12350         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
12351
12352 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12353
12354         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
12355         (UNSPECV_ATOMIC_LDOP_OR): New.
12356         (UNSPECV_ATOMIC_LDOP_BIC): New.
12357         (UNSPECV_ATOMIC_LDOP_XOR): New.
12358         (UNSPECV_ATOMIC_LDOP_PLUS): New.
12359         (ATOMIC_LDOP): New.
12360         (atomic_ldop): New.
12361         (aarch64_atomic_load<atomic_ldop><mode>): New.
12362
12363 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12364
12365         * config/aarch64/aarch64.md
12366         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
12367         pattern.
12368
12369 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
12370
12371         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
12372         Declare.
12373         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
12374         (aarch64_gen_atomic_ldop): New.
12375         (aarch64_split_atomic_op): Fix whitespace and add a comment.
12376         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
12377         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
12378         (atomic_exchange<mode>): Replace with an expander.
12379         (aarch64_atomic_exchange<mode>): New.
12380         (aarch64_atomic_exchange<mode>_lse): New.
12381         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
12382         (aarch64_atomic_swp<mode>): New.
12383
12384 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12385
12386         * tree-inline.c (expand_call_inline): Use inform for extra note.
12387         Do not give a note with UNKNOWN_LOCATION.
12388         Replace input_location with gimple_location (stmt).
12389         Use true/false instead of TRUE/FALSE.
12390
12391 2015-09-22  Tom de Vries  <tom@codesourcery.com>
12392
12393         PR tree-optimization/67666
12394         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
12395         with single field non-conservative.
12396
12397 2015-09-21  David S. Miller  <davem@davemloft.net>
12398
12399         PR/67622
12400         Revert:
12401         2015-09-11  David S. Miller  <davem@davemloft.net>
12402
12403         * config/sparc/constraints.md: Make "U" constraint a real register
12404         constraint.
12405         * config/sparc/sparc.c (TARGET_LRA_P): Define.
12406         (D_MODES, DF_MODES): Add missing cast.
12407         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
12408         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
12409         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
12410         cost to 8.
12411         * config/sparc/sparc.h (PROMOTE_MODE): Define.
12412         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
12413         provide these insn when flag_pic.
12414
12415         2015-09-17  David S. Miller  <davem@davemloft.net>
12416
12417         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
12418         Declare.
12419         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
12420         function.
12421         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12422         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12423         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12424         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12425         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12426         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12427         provide when flag_pic.
12428
12429 2015-09-21  Jeff Law  <law@redhat.com>
12430
12431         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
12432         behavior.
12433
12434 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12435
12436         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
12437
12438 2015-09-21  Richard Biener  <rguenther@suse.de>
12439
12440         * passes.c (rest_of_decl_compilation): Do not call
12441         dwarf2out_early_global_decl for aliases.
12442
12443 2015-09-21  Richard Biener  <rguenther@suse.de>
12444
12445         PR debug/67664
12446         * dwarf2out.c (add_location_or_const_value_attribute): Remove
12447         attribute parameter.  Early exit if either DW_AT_const_value
12448         or DW_AT_location are present already.
12449         (gen_variable_die): Adjust caller.
12450         (dwarf2out_late_global_decl): Likewise.
12451
12452 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12453
12454         PR target/67657
12455         * config/sh/sh.c (sh_remove_overlapping_post_inc,
12456         sh_peephole_emit_move_insn): Add new functions.
12457         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
12458         sh_peephole_emit_move_insn): Declere them.
12459         * config/sh/sh.md: Use them in various peephole2 patterns.
12460
12461 2015-09-21  Richard Biener  <rguenther@suse.de>
12462
12463         PR middle-end/67651
12464         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
12465         address with -fno-delete-null-pointer-checks.
12466
12467 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
12468
12469         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
12470         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
12471         (reduc_uplus_v16qi): Remove.
12472
12473         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
12474         (reduc_<VEC_reduc_name>_v2df): Remove.
12475         (reduc_<VEC_reduc_name>_v4sf): Remove.
12476         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
12477
12478         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
12479         gen_ function by removing * prefix.
12480         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
12481
12482 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12483
12484         PR middle-end/60832
12485         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12486         Print i_bound without converting it to a tree.
12487
12488 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
12489
12490         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
12491         operands[4] operands[5] swap with std::swap, removed tmp variable.
12492         (arm_evpc_neon_vzip): Replaced in0/in1 and
12493         out0/out1 swaps with std::swap, removed x variable.
12494         (arm_evpc_neon_vtrn): Replaced in0/int1 and
12495         out0/out1 swaos with std::swap, removed x variable.
12496         (arm_expand_vec_perm_const_1): Replaced
12497         d->op0/d->op1 swap with std::swap, removed x variable.
12498         (arm_evpc_neon_vuzp): Replaced in0/in1 and
12499         out0/out1 swaps with std::swap, removed x variable.
12500
12501 2015-09-21  Jonathan Yong  <10walls@gmail.com>
12502
12503         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
12504         sysroot/usr/lib/32api for additional win32 libraries,
12505         fixes failing Cygwin bootstrapping.
12506
12507 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12508
12509         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
12510
12511 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
12512
12513         PR target/67126
12514         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
12515         (*mov_t_msb_neg): Rewrite negc pattern.
12516
12517 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12518
12519         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
12520         immediate generation code.
12521
12522 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12523
12524         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
12525         redundant immediate generation code.
12526
12527 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12528
12529         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
12530         (AARCH64_NUM_BITMASKS): Remove.
12531         (aarch64_bitmasks_cmp): Remove.
12532         (aarch64_build_bitmask_table): Remove.
12533
12534 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12535
12536         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
12537         slow immediate matching loops with a faster algorithm.
12538
12539 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
12540
12541         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
12542         faster algorithm.
12543
12544 2015-09-20  Jeff Law  <law@redhat.com>
12545
12546         PR tree-optimization/47679
12547         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
12548         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
12549         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
12550         (thread_through_normal_block): Use record_temporary_equivalences.
12551
12552 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
12553
12554         * coretypes.h (gimple): Change typedef to be a forward declaration.
12555         * gimple.h (gimple_statement_base): rename to gimple.
12556         * (all functions and types using gimple): Adjust.
12557         * *.[ch]: Likewise.
12558
12559 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
12560             David Edelsohn  <dje.gcc@gmail.com>
12561
12562         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
12563         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12564         (EH_FRAME_THROUGH_COLLECT2): Define.
12565         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12566         (ASM_OUTPUT_DWARF_PCREL): Define.
12567         (ASM_OUTPUT_DWARF_DATAREL): Define.
12568
12569 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
12570
12571         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
12572         of TARGET_ELF32.
12573
12574 2015-09-18  Jeff Law  <law@redhat.com>
12575
12576         PR tree-optimization/47679
12577         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
12578         it here ...
12579         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
12580         object.  Update constructor.
12581         (pass_dominator::execute):  Corresponding chagnes to declaration
12582         and initialization of avail_exprs_stack.  Update constructor call
12583         for dom_opt_dom_walker object.
12584         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
12585         it down to children as needed.
12586         (record_equivalences_from_incoming_edge): Likewise.
12587         (eliminate_redundant_computations): Likewise.
12588         (record_equivalences_from_stmt): Likewise.
12589         (simplify_stmt_for_jump_threading): Likewise.
12590         (record_temporary_equivalences): Likewise.
12591         (optimize_stmt): Likewise.
12592         (dom_opt_dom_walker::thread_across_edge): Update access to
12593         avail_exprs_stack object and pass it to children as needed.
12594         (dom_opt_dom_walker::before_dom_children): Similarly.
12595         (dom_opt_dom_walker::after_dom_children): Similarly.
12596         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
12597         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
12598         Add avail_expr_stack argument.  Pass it to children as needed.
12599         (dummy_simplify): Likewise.
12600         (simplify_control_stmt_condition): Likewise.
12601         (thread_around_empty_blocks): Likewise.
12602         (thread_through_normal_block): Likewise.
12603         (thread_across_edge): Likewise.
12604         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12605         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
12606
12607         PR tree-optimization/47679
12608         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
12609         it here ...
12610         (dom_opt_dom_walker): New private member holding the const_and_copies
12611         object.  Update constructor.
12612         (pass_dominator::execute): Corresponding changes to declaration
12613         and initialization of const_and_copies.  Update constructor call
12614         for the dom_opt_dom_walker object.
12615         (record_temporary_equivalences): Accept const_and_copies argument
12616         pass it down to children as needed.
12617         (record_equality): Likewise.
12618         (record_equivalences_from_incoming_edge): Likewise.
12619         (cprop_into_successor_phis, optimize_stmt): Likewise.
12620         (eliminate_redundant_computations): Likewise.
12621         (dom_opt_dom_walker::thread_across_edge): Update access to
12622         const_and_copies object and pass it to children as needed.
12623         (dom_opt_dom_walker::before_dom_children): Similarly.
12624         (dom_opt_dom_walker::after_dom_children): Similarly.
12625
12626         PR tree-optimization/47679
12627         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
12628         it into the avail_exprs_stack class.
12629         (pass_dominator::execute): Corresponding changes to declaration
12630         and initialization of avail_exprs.  Pass avail_exprs to
12631         dump_dominator_optimization_stats.
12632         (record_cond): Extract avail_exprs from avail_exprs_stack.
12633         (lookup_avail_expr): Similarly.
12634         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
12635         position in file.
12636         (dump_dominator_optimization_stats): Make static and prototype.
12637         Add argument for the hash table to dump.
12638         (debug_dominator_optimization_stats): Remove.
12639         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
12640         prototype.
12641         (debug_dominator_optimization_stats): Similarly.
12642         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
12643         "void" in prototype for pop_to_marker method.  Add accessor method
12644         for the underlying avail_exprs table.
12645
12646         * tree-ssa-threadedge.c: Remove trailing whitespace.
12647
12648 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
12649
12650         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
12651         unsigned.
12652         (pa_ldil_cint_p): Likewise.
12653         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
12654         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
12655         Update callers.
12656         * config/pa/pa.md: Likewise.
12657
12658 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
12659
12660         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
12661         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
12662         (diagnostic_show_locus): Likewise.
12663         (diagnostic_print_caret_line): Likewise.
12664         * diagnostic-show-locus.c: New file.
12665
12666 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
12667
12668         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
12669         "back" parameter. Declare label in #if block.
12670
12671 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
12672
12673         PR middle-end/67619
12674         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
12675         the address to a register.
12676
12677 2015-09-18  Jeff Law  <law@redhat.com>
12678
12679         PR tree-optimization/47679
12680         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
12681         * tree-ssa-dom.c: Remove unnecessary header includes.
12682         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
12683         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
12684         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
12685         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
12686         (pass_phi_only_cprop::execute): Likewise.
12687         (make_pass_phi_only_cprop): Likewise.
12688         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
12689         uses of file scoped statics by passing the required objects
12690         as parameters wherever needed.
12691
12692 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
12693             David Edelsohn  <dje.gcc@gmail.com>
12694
12695         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
12696         EH_FRAME_THROUGH_COLLECT2.
12697         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
12698         DW_EH_PE_datarel.
12699         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
12700         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
12701         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
12702         * except.c (switch_to_exception_section): Use a read-only section
12703         even if EH_FRAME_SECTION_NAME is undefined.
12704         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
12705         * collect2.c (write_c_file_stat): Provide dbase on AIX.
12706         (scan_prog_file): Don't export __dso_handle nor
12707         __gcc_unwind_dbase.
12708         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12709         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12710         (ASM_OUTPUT_DWARF_PCREL): Define.
12711         (ASM_OUTPUT_DWARF_DATAREL): Define.
12712         (EH_FRAME_THROUGH_COLLECT2): Define.
12713         (EH_FRAME_IN_DATA_SECTION): Delete.
12714         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
12715         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
12716         Declare.
12717         (rs6000_asm_output_dwarf_datarel): Declare.
12718         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
12719         (rs6000_aix_asm_output_dwarf_datarel): New.
12720         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
12721         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
12722         (EH_FRAME_THROUGH_COLLECT2): Define.
12723         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
12724         (EH_FRAME_THROUGH_COLLECT2): Define.
12725         (EH_TABLES_CAN_BE_READ_ONLY): Define.
12726         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
12727         (EH_FRAME_THROUGH_COLLECT2): New.
12728         (ASM_OUTPUT_DWARF_DATAREL): New.
12729         * doc/tm.texi: Regenerate.
12730
12731 2015-09-18  Richard Biener  <rguenther@suse.de>
12732
12733         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
12734         we're in early phase.
12735         (schedule_generic_params_dies_gen): Likewise.
12736         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
12737         work as possible, retaining unhandled cases.
12738         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
12739         clear out generic_type_instances at the end.
12740         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
12741         (dwarf2out_early_finish): ... here.  Do most of
12742         gen_remaining_tmpl_value_param_die_attribute here.
12743
12744 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
12745
12746         PR tree-optimization/67283
12747         * tree-sra.c (type_consists_of_records_p): Rename to...
12748         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
12749         (completely_scalarize_record): Rename to...
12750         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
12751         (scalarize_elem): New.
12752         (analyze_all_variable_accesses): Follow renamings.
12753
12754 2015-09-18  Richard Biener  <rguenther@suse.de>
12755
12756         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
12757         in early-dwarf.
12758
12759 2015-09-18  Richard Biener  <rguenther@suse.de>
12760
12761         PR tree-optimization/66142
12762         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
12763         treat MEM[&x] and x the same.
12764         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
12765         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
12766         when we simplified sth.
12767         (vn_reference_maybe_forwprop_address): Likewise.
12768         (valueize_refs_1): When we simplified through
12769         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
12770         set valueized_anything to true.
12771         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
12772         one ref kills the other instead of just a offset-based test.
12773         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
12774         for the operand_equal_p test to compare bases and also compare
12775         sizes.
12776
12777 2015-09-17  Christian Bruel  <christian.bruel@st.com>
12778
12779         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
12780
12781 2015-09-17  Richard Henderson  <rth@redhat.com>
12782
12783         PR libstdc++/65913
12784         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
12785         pointers that encode the alignment of the object.
12786
12787 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12788
12789         PR rtl-optimization/66790
12790         * df-problems.c (LIVE): Amend documentation.
12791
12792 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
12793
12794         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
12795         and optabs-tree.o.
12796         (GTFILES): Replace optabs.c with optabs-libfunc.c.
12797         * genopinit.c (main): Add an include guard to insn-opinit.h.
12798         Protect the rtx_code parts with NUM_RTX_CODE.
12799         * optabs.h: Split parts out to...
12800         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
12801         * optabs.c: Split parts out to...
12802         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
12803         * cilk-common.c: Include optabs-query.h rather than optabs.h.
12804         * fold-const.c: Likewise.
12805         * target-globals.c: Likewise.
12806         * tree-if-conv.c: Likewise.
12807         * tree-ssa-forwprop.c: Likewise.
12808         * tree-ssa-loop-prefetch.c: Likewise.
12809         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
12810         Remove unncessary include files.
12811         * tree-ssa-phiopt.c: Likewise.
12812         * tree-ssa-reassoc.c: Likewise.
12813         * tree-switch-conversion.c: Likewise.
12814         * tree-vect-data-refs.c: Likewise.
12815         * tree-vect-generic.c: Likewise.
12816         * tree-vect-loop.c: Likewise.
12817         * tree-vect-patterns.c: Likewise.
12818         * tree-vect-slp.c: Likewise.
12819         * tree-vect-stmts.c: Likewise.
12820         * tree-vrp.c: Likewise.
12821         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
12822         rather than optabs.h.
12823         * expr.c: Include optabs-tree.h.
12824         * function.c: Likewise.
12825
12826 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
12827
12828         PR middle-end/65958
12829         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
12830         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
12831         * config/arm/arm.c: Include common/common-target.h.
12832         (use_return_insn): Return 0 if the static chain register was saved
12833         above a non-APCS frame.
12834         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
12835         (struct scratch_reg): New.
12836         (get_scratch_register_on_entry): New function.
12837         (release_scratch_register_on_entry): Likewise.
12838         (arm_emit_probe_stack_range): Likewise.
12839         (output_probe_stack_range): Likewise.
12840         (arm_expand_prologue): Factor out code dealing with the IP register
12841         for nested function and adjust it for stack checking.
12842         Invoke arm_emit_probe_stack_range if static builtin stack checking
12843         is enabled.
12844         (thumb1_expand_prologue): Sorry out if static builtin stack checking
12845         is enabled.
12846         (arm_expand_epilogue): Add the saved static chain register, if any, to
12847         the amount of pre-pushed registers to pop.
12848         (arm_frame_pointer_required): Return true if static stack checking is
12849         enabled and we want to catch the exception with the EABI unwinder.
12850         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
12851         (UNSPEC_PROBE_STACK_RANGE): Likewise.
12852         * config/arm/arm.md (probe_stack): New insn.
12853         (probe_stack_range): Likewise.
12854
12855 2015-09-17  Richard Biener  <rguenther@suse.de>
12856
12857         * genmatch.c (parser::parse_expr): Improve error message
12858         for mis-placed flags.
12859
12860 2015-09-17  Richard Biener  <rguenther@suse.de>
12861
12862         * passes.c (rest_of_decl_compilation): Always call early_global_decl
12863         debug hook when we created a varpool node.
12864         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
12865         dwarf2out_early_global_decl, when not just add location or
12866         value attributes to existing DIEs.
12867
12868 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
12869
12870         * config/aarch64/aarch64.md (copysigndf3): New.
12871         (copysignsf3): Likewise.
12872
12873 2015-09-17  David S. Miller  <davem@davemloft.net>
12874
12875         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
12876         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
12877         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
12878         (HARD_REGNO_CALLER_SAVE_MODE): Define.
12879         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
12880         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
12881         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
12882         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
12883         provide when flag_pic.
12884
12885 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12886
12887         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
12888         object_allocator change.
12889
12890 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12891
12892         PR tree-optimization/66388
12893         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
12894         (dump_iv): Dump no_overflow information.
12895         (alloc_iv): Initialize new field for struct iv.
12896         (mark_bivs): Count number of no_overflow bivs.
12897         (find_deriving_biv_for_expr, record_biv_for_address_use): New
12898         functions.
12899         (idx_find_step): Call new functions above.
12900         (add_candidate_1, add_candidate): New paramter.
12901         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
12902         (get_computation_aff): Simplify convertion of cand for BIV.
12903         (get_computation_cost_at): Step cand's base if necessary.
12904
12905 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
12906
12907         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
12908         parameter.
12909         (tree_simplify_using_condition): Ditto.
12910         (simplify_using_initial_conditions): Ditto.
12911         (loop_exits_before_overflow): Pass new argument to function
12912         simplify_using_initial_conditions.  Remove case for type conversions
12913         simplification.
12914         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
12915         parameter.
12916         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
12917         in iv base using loop initial conditions.
12918
12919 2015-09-16  Jeff Law  <law@redhat.com>
12920
12921         PR tree-optimization/47679
12922         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
12923         (free_all_edge_infos): Use it.
12924         (allocate_edge_info): Free preexisting edge info data.
12925         (pass_dominator::execute): Set up initial edge info structures.
12926         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
12927         thread_across_edge.
12928         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
12929         If non-null, then push/pop markers appropriately.
12930         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12931         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
12932         thread-across_edge.
12933
12934 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
12935
12936         * config/ft32/ft32.c: Fix the memory address space predicate.
12937
12938 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12939
12940         PR target/67573
12941         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
12942         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
12943
12944 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12945
12946         * toplev.h (check_global_declaration): Remove declaration.
12947         * toplev.c (check_global_declaration): Move to ...
12948         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
12949         (analyze_functions): Update call.
12950
12951 2015-09-16  David S. Miller  <davem@davemloft.net>
12952
12953         * lra-constraints.c (simplify_operand_subreg): Do not assume that
12954         lowpart of a SUBREG has offset zero.
12955
12956 2015-09-16  Jeff Law  <law@redhat.com>
12957
12958         PR tree-optimization/47679
12959         * tree-ssa-dom.c (enum expr_kind): Moved from here to
12960         tree-ssa-scopedtables.h.
12961         (struct hashable_expr, class expr_hash_elt): Likewise.
12962         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
12963         Move associated methods into tree-ssa-scopedtables.c.
12964         (avail_expr_hash, initialize_expr_from_cond): Similarly.
12965         (hashable_expr_equal_p, add_expr_commutative): Likewise.
12966         (add_hashable_expr): Likewise.
12967         (record_cond): Delete element directly.
12968         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
12969         private copy ctor and assignment operator methods.
12970         (expr_elt_hasher): Inline trivial methods.
12971         (initialize_expr_from_cond): Prototype.
12972         * tree-ssa-scopedtables.c: Add necessary includes, functions and
12973         methods that were previously in tree-ssa-dom.c.  Improve various
12974         comments.
12975
12976 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
12977
12978         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
12979
12980 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
12981
12982         PR bootstrap/67587
12983         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12984         fixup_partitions.
12985
12986 2015-09-16  Richard Biener  <rguenther@suse.de>
12987
12988         PR middle-end/67253
12989         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
12990         location of possibly shared trees.
12991
12992 2015-09-16  Richard Biener  <rguenther@suse.de>
12993
12994         PR middle-end/67271
12995         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
12996
12997 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
12998
12999         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
13000         offset and size computations instead of HOST_WIDE_INT.
13001
13002 2015-09-16  Richard Biener  <rguenther@suse.de>
13003
13004         PR middle-end/67442
13005         * fold-const.c (extract_muldiv_1): Properly extend multiplication
13006         result before builting a tree via wide_int_to_tree.
13007
13008 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
13009
13010         * Makefile.in: Add memory-block.cc
13011         (pool_allocator::initialize): Use fixed block size.
13012         (pool_allocator::release): Use memory_block_pool.
13013         (pool_allocator::allocate): Likewise.
13014         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
13015         object pools.
13016         * cfg.c (initialize_original_copy_tables): Likewise.
13017         * cselib.c (elt_list_pool, elt_loc_list_pool,
13018         cselib_val_pool): Likewise.
13019         * df-problems.c (df_chain_alloc): Likewise.
13020         * df-scan.c (df_scan_alloc): Likewise.
13021         * dse.c (cse_store_info_pool, rtx_store_info_pool,
13022         read_info_type_pool, insn_info_type_pool, bb_info_pool,
13023         group_info_pool, deferred_change_pool): Likewise.
13024         * et-forest.c (et_nodes, et_occurrences): Likewise.
13025         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
13026         ipcp_agg_lattice_pool): Likewise.
13027         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
13028         * ipa-profile.c (histogram_pool): Likewise.
13029         * ipa-prop.c (ipa_refdesc_pool): Likewise.
13030         * ira-build.c (live_range_pool, allocno_pool, object_pool,
13031         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
13032         * ira-color.c (update_cost_record_pool): Likewise.
13033         * lra-lives.c (lra_live_range_pool): Likewise.
13034         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
13035         * memory-block.cc: New file.
13036         * memory-block.h: New file.
13037         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
13038         * sched-deps.c (sched_deps_init): Likewise.
13039         * sel-sched-ir.c (sched_lists_pool): Likewise.
13040         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
13041         * tree-sra.c (access_pool): Likewise.
13042         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13043         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
13044         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
13045         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
13046         * tree-ssa-strlen.c (strinfo_pool): Likewise.
13047         * tree-ssa-structalias.c (variable_info_pool): Likewise.
13048         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
13049         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
13050
13051 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13052
13053         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
13054         definition.
13055         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
13056         call0 ABI.
13057
13058 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
13059
13060         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
13061         to pass TLS call argument, according to current ABI.
13062         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
13063         callx0 for TLS call, according to current ABI.
13064
13065 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13066
13067         * tree-eh.c (lower_try_finally_dup_block): Clear location information
13068         on stack restore statements.
13069         (decide_copy_try_finally): Do not consider a stack restore statement as
13070         coming from sources.
13071
13072 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
13073
13074         * config/alpha/alpha.c (alpha_expand_block_clear): Use
13075         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
13076
13077 2015-09-15  Jeff Law  <law@redhat.com>
13078
13079         PR tree-optimization/47679
13080         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
13081         methods and private members.
13082         (avail_exprs_stack): Similarly.  Change type of global
13083         from a pair of expr_hash_elt_t to the new class.
13084         (expr_elt_hasher::hash): Corresponding changes.
13085         (expr_elt_hasher::equal): Similarly.
13086         (avail_expr_hash): Similarly.
13087         (pass_dominator::execute): Similarly.
13088         (dom_opt_dom_walker::thread_across_edge): Similarly.
13089         (record_cond): Similarly.
13090         (dom_opt_dom_walker::before_dom_children): Similarly.
13091         (dom_opt_dom_walker::after_dom_children): Similarly.
13092         (lookup_avail_expr): Likewise.
13093         (initialize_hash_element): Now a expr_hash_elt constructor.
13094         (initialize_hash_element_from_expr): Similarly.
13095         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
13096         (free_expr_hash_elt): Call dtor for the element.
13097         (remove_local_expressions_from_table): Now the "pop_to_marker"
13098         method in the available_exprs_stack class.
13099         (avail_expr_stack::record_expr): Method factored out.
13100         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
13101         Fix formatting.
13102         (hashable_expr_equal_p): Fix formatting.
13103
13104 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
13105
13106         * input.h (location_get_source_line): Drop "expanded_location"
13107         param in favor of a file and line number.
13108         * input.c (location_get_source_line): Likewise.
13109         (dump_location_info): Update for change in signature of
13110         location_get_source_line.
13111         * diagnostic.c (diagnostic_print_caret_line): Likewise.
13112
13113 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13114
13115         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
13116         Bump to 4KB for SJLJ exceptions.
13117         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
13118         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
13119         * doc/tm.texi: Regenerate.
13120
13121 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13122
13123         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
13124         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
13125         Update prototype.
13126
13127 2015-09-15  Richard Biener  <rguenther@suse.de>
13128
13129         PR tree-optimization/67470
13130         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
13131         structure for PHI hoisting by inserting a forwarder block
13132         if appropriate.
13133
13134 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13135
13136         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
13137         (arm_option_print): New function.
13138
13139 2015-09-15  Christian Bruel  <christian.bruel@st.com>
13140
13141         PR target/52144
13142         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
13143         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
13144         Remove flags parameter.
13145         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
13146         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
13147         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
13148         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
13149         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
13150         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
13151         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
13152         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
13153
13154 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13155
13156         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
13157
13158         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
13159         AARCH64_VALID_SIMD_DREG_MODE.
13160
13161 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13162
13163         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
13164         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
13165         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
13166         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
13167         aarch64_ld4_lane<mode>): Combine together, making...
13168         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13169         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13170         aarch64_st4_lane<mode>): Combine together, making...
13171         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
13172         * config/aarch64/iterators.md (nregs): Add comment.
13173
13174 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13175
13176         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
13177         Change operand mode from <V_TWO_ELEM> to BLK.
13178         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
13179         (aarch64_vec_store_lanesoi_lane<mode): Likewise
13180         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13181         (aarch64_ld2_lane<mode>): Likewise.
13182         (aarch64_st2_lane<VQ:mode>): Likewise.
13183         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
13184
13185 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13186
13187         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
13188         Change operand mode from <V_FOUR_ELEM> to BLK.
13189         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13190         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
13191         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13192         (aarch64_ld4_lane<mode>): Likewise.
13193         (aarch64_st4_lane<mode>): Likewise.
13194         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
13195
13196 2015-09-15  Richard Biener  <rguenther@suse.de>
13197
13198         PR middle-end/67563
13199         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
13200         transfer EH info from old to new stmt.
13201         (replace_call_with_value): Likewise.
13202         (replace_call_with_call_and_fold): Likewise.
13203         (gimple_fold_builtin_memory_op): Likewise.
13204         (gimple_fold_builtin_memset): Likewise.
13205         (gimple_fold_builtin_stpcpy): Likewise.
13206         (gimple_fold_call): Likewise.
13207
13208 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13209
13210         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
13211         comment.
13212         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
13213         (aarch64_simd_intEI_type_node): Likewise.
13214         (aarch64_simd_builtin_std_type): Remove EImode case.
13215         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
13216         * config/aarch64/aarch64-modes.def: Remove EImode.
13217
13218 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13219
13220         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
13221         Change operand mode from <V_THREE_ELEM> to BLK.
13222         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13223         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
13224         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
13225         (aarch64_ld3_lane<mode>): Likewise.
13226         (aarch64_st3_lane<mode>): Likewise.
13227         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
13228
13229 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13230
13231         * config/aarch64/aarch64-simd.md
13232         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
13233         Change all TImode operands to BLKmode.
13234         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
13235         Change all EImode operands to BLKmode.
13236         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
13237         Change all OImode operands to BLKmode.
13238
13239         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
13240         and call set_mem_size.
13241         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
13242
13243         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
13244
13245 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
13246
13247         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
13248         to...
13249         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
13250
13251         (vec_store_lanesci_lane<mode>): Rename to...
13252         (aarch64_vec_store_lanesci_lane<mode>): ...this.
13253
13254         (vec_store_lanesxi_lane<mode>): Rename to...
13255         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
13256
13257         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
13258         aarch64_st4_lane<mode>): Follow renaming.
13259
13260 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13261
13262         * config/s390/s390.c (s390_const_operand_ok): Add missing
13263         brackets.
13264
13265 2015-09-15  Richard Biener  <rguenther@suse.de>
13266
13267         PR lto/67568
13268         * lto-streamer.h (lto_location_cache::current_sysp): Properly
13269         initialize.
13270         * lto-streamer-out.c (clear_line_info): Likewise.
13271
13272 2015-09-15  Richard Biener  <rguenther@suse.de>
13273
13274         * doc/match-and-simplify.texi: Fix wording.
13275
13276 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
13277
13278         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
13279         unnecessary type conversion in op1.
13280
13281 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
13282
13283         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
13284         (dup_block_and_redirect): Delete function.
13285         (can_dup_for_shrink_wrapping): New function.
13286         (fix_fake_fallthrough_edge): New function.
13287         (try_shrink_wrapping): Rewrite function.
13288         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
13289
13290 2015-09-14  Rich Felker  <dalias@libc.org>
13291
13292         * configure.ac: Change target pattern for sh TLS support
13293         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
13294         * configure: Regenerate.
13295
13296 2015-09-14  Jeff Law  <law@redhat.com>
13297
13298         PR tree-optimization/47679
13299         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
13300         type rather than void *.
13301
13302 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13303
13304         PR fortran/67460
13305         * diagnostic.c (diagnostic_initialize): Do not set
13306         some_warnings_are_errors.
13307         (diagnostic_finish): Use DK_WERROR count instead.
13308         (diagnostic_report_diagnostic): Do not set
13309         some_warnings_are_errors.
13310         * diagnostic.h (struct diagnostic_context): Remove
13311         some_warnings_are_errors.
13312
13313 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
13314
13315         * config/sparc/predicates.md (const_all_ones_operand): Use
13316         CONSTM1_RTX to simplify definition.
13317
13318 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
13319
13320         PR target/67061
13321         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
13322         Handle call insns.
13323
13324 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
13325
13326         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
13327         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
13328         OPT_fshow_column to handled saved option cases.
13329         (append_compiler_options): Do not skip the above added options.
13330
13331 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13332
13333         PR target/63304
13334         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
13335         nopcrelative_literal_loads.
13336         (aarch64_classify_address): Likewise.
13337         (aarch64_constant_pool_reload_icode): Define.
13338         (aarch64_secondary_reload): Handle secondary reloads for
13339         literal pools.
13340         (aarch64_override_options): Handle nopcrelative_literal_loads.
13341         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
13342         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
13343         Define.
13344         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
13345         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
13346         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
13347         predicate.
13348         * doc/invoke.texi (mpc-relative-literal-loads): Document.
13349
13350 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
13351
13352         PR middle-end/67401
13353         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
13354         sync_compare_and_swap_optab libcall to target_oval.
13355
13356 2015-09-14  Marek Polacek  <polacek@redhat.com>
13357
13358         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
13359         value.
13360         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
13361
13362 2015-09-11  Mark Wielaard  <mjw@redhat.com>
13363
13364         PR c/28901
13365         * toplev.c (check_global_declaration): Check and use
13366         warn_unused_const_variable.
13367         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
13368         (-Wunused-variable): Remove non-constant. For C implies
13369         -Wunused-const-variable.
13370         (-Wunused-const-variable): New.
13371
13372 2015-09-14  Richard Biener  <rguenther@suse.de>
13373
13374         * doc/match-and-simplify.texi: Update for changed syntax
13375         of inner ifs and the new switch expression.
13376
13377 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
13378
13379         * config/i386/haswell.md: New file describing Haswell pipeline.
13380         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
13381         haswell-like processors.
13382         (ix86_reassociation_width): Increase reassociation width for 64-bit
13383         Haswell processor family.
13384         * config/i386/i386.md: Introduce haswell cpu and include new md file.
13385
13386 2015-09-14  Richard Biener  <rguenther@suse.de>
13387
13388         * doc/match-and-simplify.texi: Fixup some formatting issues
13389         and document the 's' flag.
13390
13391 2015-09-13  Olivier Hainque  <hainque@adacore.com>
13392             Eric Botcazou  <ebotcazou@adacore.com>
13393
13394         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
13395         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
13396         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
13397         (TARGET_CPU_gr5): Likewise.
13398         (TARGET_CPU_gr6): Likewise.
13399         (MULTILIB_DEFAULTS): Likewise.
13400         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
13401         for mcpu=gr5 and mcpu=gr6.
13402         (MULTILIB_DIRNAMES): Adjust accordingly.
13403
13404 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13405
13406         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
13407         (mem_ref_p): Likewise.
13408         (outermost_indep_loop): Adjust.
13409         (mem_ref_in_stmt): Likewise.
13410         (determine_max_movement): Likewise.
13411         (mem_ref_alloc): Likewise.
13412         (record_mem_ref_loc): Likewise.
13413         (set_ref_stored_in_loop): Likewise.
13414         (mark_ref_stored): Likewise.
13415         (gather_mem_refs_stmt): Likewise.
13416         (mem_refs_may_alias_p): Likewise.
13417         (for_all_locs_in_loop): Likewise.
13418         (struct rewrite_mem_ref_loc): Likewise.
13419         (rewrite_mem_refs): Likewise.
13420         (struct first_mem_ref_loc_1): Likewise.
13421         (first_mem_ref_loc): Likewise.
13422         (struct sm_set_flag_if_changed): Likewise.
13423         (execute_sm_if_changed_flag_set): Likewise.
13424         (execute_sm): Likewise.
13425         (hoist_memory_references):
13426         (struct ref_always_accessed): Likewise.
13427         (ref_always_accessed_p): Likewise.
13428         (refs_independent_p): Likewise.
13429         (record_dep_loop): Likewise.
13430         (ref_indep_loop_p_1): Likewise.
13431         (ref_indep_loop_p_2): Likewise.
13432         (ref_indep_loop_p): Likewise.
13433         (can_sm_ref_p): Likewise.
13434         (find_refs_for_sm): Likewise.
13435         (tree_ssa_lim_finalize): Likewise.
13436
13437 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13438
13439         * dwarf2out.c (dw_attr_ref): Remove typedef.
13440         (dw_line_info_ref): Likewise.
13441         (pubname_ref): Likewise.
13442         (dw_ranges_ref): Likewise.
13443         (dw_ranges_by_label_ref): Likewise.
13444         (comdat_type_node_ref): Likewise.
13445         (get_AT): Adjust.
13446         (get_AT_low_pc): Likewise.
13447         (get_AT_hi_pc): Likewise.
13448         (get_AT_string): Likewise.
13449         (get_AT_flag): Likewise.
13450         (get_AT_unsigned): Likewise.
13451         (get_AT_ref): Likewise.
13452         (get_AT_file): Likewise.
13453         (remove_AT): Likewise.
13454         (print_die): Likewise.
13455         (check_die): Likewise.
13456         (die_checksum): Likewise.
13457         (attr_checksum_ordered): Likewise.
13458         (struct checksum_attributes): Likewise.
13459         (collect_checksum_attributes): Likewise.
13460         (die_checksum_ordered): Likewise.
13461         (same_die_p): Likewise.
13462         (is_declaration_die): Likewise.
13463         (clone_die): Likewise.
13464         (clone_as_declaration): Likewise.
13465         (copy_declaration_context): Likewise.
13466         (break_out_comdat_types): Likewise.
13467         (copy_decls_walk): Likewise.
13468         (output_location_lists): Likewise.
13469         (external_ref_hasher::hash): Likewise.
13470         (optimize_external_refs_1): Likewise.
13471         (build_abbrev_table): Likewise.
13472         (size_of_die): Likewise.
13473         (unmark_all_dies): Likewise.
13474         (size_of_pubnames): Likewise.
13475         (output_die_abbrevs): Likewise.
13476         (output_die): Likewise.
13477         (output_pubnames): Likewise.
13478         (add_ranges_num): Likewise.
13479         (add_ranges_by_labels): Likewise.
13480         (add_high_low_attributes): Likewise.
13481         (gen_producer_string): Likewise.
13482         (dwarf2out_set_name): Likewise.
13483         (new_line_info_table): Likewise.
13484         (prune_unused_types_walk_attribs): Likewise.
13485         (prune_unused_types_update_strings): Likewise.
13486         (prune_unused_types): Likewise.
13487         (resolve_addr): Likewise.
13488         (optimize_location_lists_1): Likewise.
13489         (index_location_lists): Likewise.
13490         (dwarf2out_finish): Likewise.
13491
13492 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13493
13494         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
13495
13496 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13497
13498         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
13499         (dump_asserts_for): Adjust.
13500         (register_new_assert_for): Likewise.
13501         (process_assert_insertions): Likewise.
13502         (insert_range_assertions): Likewise.
13503
13504 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13505
13506         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
13507         and remove typedef.
13508         (new_temp_expr_table): Adjust.
13509         (free_temp_expr_table): Likewise.
13510         (version_to_be_replaced_p): Likewise.
13511         (make_dependent_on_partition): Likewise.
13512         (add_to_partition_kill_list): Likewise.
13513         (remove_from_partition_kill_list): Likewise.
13514         (add_dependence): Likewise.
13515         (finished_with_expr): Likewise.
13516         (process_replaceable): Likewise.
13517         (kill_expr): Likewise.
13518         (kill_virtual_exprs): Likewise.
13519         (mark_replaceable): Likewise.
13520         (find_replaceable_in_bb): Likewise.
13521         (find_replaceable_exprs): Likewise.
13522         (debug_ter): Likewise.
13523
13524 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13525
13526         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
13527         (struct btr_user): Rename from btr_user_s.
13528         (struct btr_def): Rename from btr_def_s.
13529         (find_btr_def_group): Adjust.
13530         (add_btr_def): Likewise.
13531         (new_btr_user): Likewise.
13532         (note_other_use_this_block): Likewise.
13533         (compute_defs_uses_and_gen): Likewise.
13534         (link_btr_uses): Likewise.
13535         (build_btr_def_use_webs): Likewise.
13536         (block_at_edge_of_live_range_p): Likewise.
13537         (btr_def_live_range): Likewise.
13538         (combine_btr_defs): Likewise.
13539         (move_btr_def): Likewise.
13540         (migrate_btr_def): Likewise.
13541         (migrate_btr_defs): Likewise.
13542
13543 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13544
13545         * var-tracking.c (shared_hash_def): Rename to shared_hash.
13546         (shared_hash): Remove typedef.
13547         (struct dataflow_set): Adjust.
13548         (shared_hash_unshare): Likewise.
13549         (dataflow_set_merge): Likewise.
13550         (vt_initialize): Likewise.
13551         (vt_finalize): Likewise.
13552
13553 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13554
13555         * var-tracking.c (struct location_chain): Rename from
13556         location_chain_def.
13557         (struct variable_part): Adjust.
13558         (variable_htab_free): Likewise.
13559         (unshare_variable): Likewise.
13560         (get_init_value): Likewise.
13561         (get_addr_from_local_cache): Likewise.
13562         (drop_overlapping_mem_locs): Likewise.
13563         (val_reset): Likewise.
13564         (struct variable_union_info): Likewise.
13565         (variable_union): Likewise.
13566         (find_loc_in_1pdv): Likewise.
13567         (insert_into_intersection): Likewise.
13568         (intersect_loc_chains): Likewise.
13569         (canonicalize_loc_order_check): Likewise.
13570         (canonicalize_values_mark): Likewise.
13571         (canonicalize_values_star): Likewise.
13572         (canonicalize_vars_star): Likewise.
13573         (variable_merge_over_cur): Likewise.
13574         (remove_duplicate_values): Likewise.
13575         (variable_post_merge_new_vals): Likewise.
13576         (variable_post_merge_perm_vals): Likewise.
13577         (find_mem_expr_in_1pdv): Likewise.
13578         (dataflow_set_preserve_mem_locs): Likewise.
13579         (dataflow_set_remove_mem_locs): Likewise.
13580         (variable_part_different_p): Likewise.
13581         (onepart_variable_different_p): Likewise.
13582         (find_src_set_src): Likewise.
13583         (dump_var): Likewise.
13584         (set_slot_part): Likewise.
13585         (clobber_slot_part): Likewise.
13586         (delete_slot_part): Likewise.
13587         (vt_expand_var_loc_chain): Likewise.
13588         (emit_note_insn_var_location): Likewise.
13589         (vt_finalize): Likewise.
13590
13591 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13592
13593         * dse.c (store_info_t): Remove typedef.
13594         (group_info_t): Likewise.
13595         (const_group_info_t): Likewise.
13596         (deferred_change_t): Likewise.
13597         (get_group_info): Adjust.
13598         (free_store_info): Likewise.
13599         (canon_address): Likewise.
13600         (clear_rhs_from_active_local_stores): Likewise.
13601         (record_store): Likewise.
13602         (replace_read): Likewise.
13603         (check_mem_read_rtx): Likewise.
13604         (scan_insn): Likewise.
13605         (remove_useless_values): Likewise.
13606         (dse_step1): Likewise.
13607         (dse_step2_init): Likewise.
13608         (dse_step2_nospill): Likewise.
13609         (scan_stores_nospill): Likewise.
13610         (scan_reads_nospill): Likewise.
13611         (dse_step3_exit_block_scan): Likewise.
13612         (dse_step3): Likewise.
13613         (dse_step5_nospill): Likewise.
13614         (dse_step6): Likewise.
13615
13616 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13617
13618         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
13619         (alias_set_entry): Remove typedef.
13620         (alias_set_subset_of): Adjust.
13621         (alias_sets_conflict_p): Likewise.
13622         (init_alias_set_entry): Likewise.
13623         (get_alias_set): Likewise.
13624         (new_alias_set): Likewise.
13625         (record_alias_subset): Likewise.
13626
13627 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
13628
13629         * doc/install.texi (Downloading the source): Mark up
13630         contrib/download_prerequisites properly and drop leading "./".
13631
13632 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13633
13634         * config/arc/arc.h: Remove define of STRUCT_VALUE.
13635         * config/lm32/lm32.h: Likewise.
13636         * config/mep/mep.h: Likewise.
13637         * config/visium/visium.h: Likewise.
13638         * system.h: Poison STRUCT_VALUE macro.
13639
13640 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
13641
13642         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
13643         CONSTANT_P operands.
13644
13645 2015-09-11  David S. Miller  <davem@davemloft.net>
13646
13647         * config/sparc/constraints.md: Make "U" constraint a real register
13648         constraint.
13649         * config/sparc/sparc.c (TARGET_LRA_P): Define.
13650         (D_MODES, DF_MODES): Add missing cast.
13651         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
13652         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
13653         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
13654         cost to 8.
13655         * config/sparc/sparc.h (PROMOTE_MODE): Define.
13656         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
13657         provide these insn when flag_pic.
13658
13659 2015-09-11  Jeff Law  <law@redhat.com>
13660
13661         PR tree-optimization/47679
13662         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
13663         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
13664         member with m_.  Update inline member functions as necessary.  Add
13665         toplevel comment.
13666         * tree-ssa-scopedtables.c: Update const_and_copies's member
13667         functions to use m_ prefix to access the stack.
13668
13669 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13670
13671         * graphite-optimize-isl.c (disable_tiling): Remove.
13672         (get_schedule_for_band): Do not use disable_tiling.
13673         (get_prevector_map): Delete function.
13674         (enable_polly_vector): Remove.
13675         (get_schedule_for_band_list): Remove dead code.
13676
13677 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
13678
13679         * graphite-optimize-isl.c (get_tile_map): Refactor.
13680         (get_schedule_for_band): Same.
13681         (getScheduleForBand): Same.
13682         (get_prevector_map): Same.
13683         (get_schedule_for_band_list): Same.
13684         (get_schedule_map): Same.
13685         (get_single_map): Same.
13686         (apply_schedule_map_to_scop): Same.
13687         (optimize_isl): Same.
13688
13689 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13690
13691         PR target/63304
13692         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
13693         (movtf): Delete.
13694         * config/aarch64/iterators.md (GPF_TF_F16): New.
13695         (GPF_F16): Delete.
13696
13697 2015-09-10  Nathan Sidwell  <nathan@acm.org>
13698
13699         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
13700         (nvptx_reorg): Adjust comments.
13701
13702 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
13703
13704         PR bootstrap/67363
13705         * configure.ac: Check if setenv and unsetenv are declared.
13706         * configure: Rebuild.
13707         * config.in: Rebuild.
13708         * system.h: Declare setenv and unsetenv if not declared.
13709
13710 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13711
13712         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
13713         commentary to simplify permute mask adjustment equation.
13714         (special_handling_values): Add SH_VPERM.
13715         (const_load_sequence_p): New function.
13716         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
13717         the mask loaded from the constant pool.
13718         (adjust_vperm): New function.
13719         (handle_special_swappables): Call adjust_vperm.
13720         (dump_swap_insn_table): Handle SH_VPERM.
13721
13722 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13723
13724         * shrink-wrap.c (requires_stack_frame_p): Remove static.
13725         * shrink-wrap.h (requires_stack_frame_p): Put back.
13726
13727 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
13728
13729         * reload1.c (elimination_costs_in_insn): Locally turn
13730         -Wmaybe-uninitialized into a warning.
13731
13732 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
13733
13734         * shrink-wrap.c (requires_stack_frame_p): Make static.
13735         (prepare_shrink_wrap): Likewise.
13736         (dup_block_and_redirect): Likewise.
13737         * shrink-wrap.h: Remove declarations of those functions.
13738
13739 2015-09-10  Mark Wielaard  <mjw@redhat.com>
13740
13741         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
13742
13743 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
13744
13745         PR target/67506
13746         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
13747         missing simplify_gen_subreg.
13748
13749 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13750
13751         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
13752         the vector element is bigger than 64 bit.
13753
13754 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13755
13756         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
13757         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
13758
13759 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13760
13761         * config/s390/s390.c: Add V1TImode to constant pool modes.
13762
13763 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13764
13765         PR target/67439
13766         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
13767         predicate.  Set predicable_short_it attr to "no".
13768
13769 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
13770
13771         PR rtl-optimization/67421
13772         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
13773         left wide shift tranformation.
13774
13775 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
13776
13777         * common/config/arc/arc-common.c: Remove references to A5.
13778         * config/arc/arc-opts.h: Likewise.
13779         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
13780         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
13781         * config/arc/t-arc-newlib: Likewise.
13782
13783 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
13784
13785         * config/arc/arc.md (length): Fix attribute length for conditional
13786         executed instructions with long immediate.
13787
13788 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13789
13790         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
13791         type for second alternative.
13792
13793 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
13794
13795         * doc/invoke.texi (Downloading GCC): Mention
13796         contrib/download_prerequisites script.
13797
13798 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
13799
13800         PR c++/67523
13801         * gimplify.c (gimplify_omp_for): If inner stmt is not found
13802         for combined loop, assert seen_error () and return GS_ERROR.
13803
13804         PR middle-end/67521
13805         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
13806         if decl is already in outer->variables.
13807
13808         PR middle-end/67517
13809         * gimplify.c (gimplify_scan_omp_clauses): Instead of
13810         asserting that decl is not specified in octx->variables,
13811         break out of the loop if it is.
13812
13813         PR c++/67514
13814         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
13815         iterator is not explicitly determined, but is defined inside
13816         of the combined workshare region, handle it like if it has
13817         DECL_EXPR in OMP_FOR_PRE_BODY.
13818
13819 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13820
13821         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
13822         (*cmp<mode>): Add assembler spacing.
13823         (setcc_int<mode>, set_cc_float<mode>): Likewise.
13824         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
13825         level.
13826         (write_func_decl_from_insn): Refactor argument loops & comma emission.
13827         (nvptx_expand_call): Likewise.
13828         (nvptx_output_call_insn): Likewise.
13829         (nvptx_reorg_subreg): Add spacing.
13830
13831 2015-09-09  Marek Polacek  <polacek@redhat.com>
13832
13833         PR middle-end/67512
13834         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
13835         for comparisons.
13836
13837 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
13838
13839         PR c++/53184
13840         * doc/invoke.texi ([Wsubobject-linkage]): Document.
13841
13842 2015-09-09  Tom de Vries  <tom@codesourcery.com>
13843
13844         * params-list.h: Add missing copyright notice.
13845
13846 2015-09-09  Nathan Sidwell  <nathan@acm.org>
13847
13848         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
13849         sel_truesi, not andsi.
13850
13851 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13852
13853         * config/arm/arm.md (*subsi3_compare0): Rename to...
13854         (subsi3_compare0): ... This.
13855         (modsi3): New define_expand.
13856         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
13857         when operand is power of 2.
13858
13859 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13860
13861         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
13862         (*neg<mode>2_compare0): Rename to...
13863         (neg<mode>2_compare0): ... This.
13864         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
13865         Move check for speed inside the if-then-elses.  Reflect
13866         CSNEG sequence in MOD by power of 2 case.
13867
13868 2015-09-09  Alan Modra  <amodra@gmail.com>
13869
13870         PR target/67378
13871         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
13872         reload replacement for PRE_MODIFY address reg.
13873
13874 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
13875
13876         PR tree-optimization/53852
13877         * config.in: Regenerate.
13878         * configure: Regenerate.
13879         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
13880         * graphite-optimize-isl.c (optimize_isl): Stop computation when
13881         PARAM_MAX_ISL_OPERATIONS is reached.
13882         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
13883         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
13884         result equal to isl_stat_ok as the status now can be isl_error_quota.
13885         (subtract_commutative_associative_deps): Same.
13886         (compute_deps): Same.
13887
13888 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
13889             Sebastian Pop  <s.pop@samsung.com>
13890
13891         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
13892         Return the parameter if it was saved in corresponding
13893         parameter_rename_map of the region.
13894         (copy_def): Copy def from sese region to the newly created region.
13895         (copy_internal_parameters): Copy all the internal parameters defined
13896         within a region to the newly created region.
13897         (graphite_regenerate_ast_isl): Copy parameters to the new region before
13898         translating isl to gimple.
13899         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
13900         the loop-nest does not have any data-references.
13901         (build_graphite_scops): Create a scop only when there is at least one
13902         loop inside it.
13903         (contains_only_close_phi_nodes): Deleted.
13904         (print_graphite_scop_statistics): Deleted
13905         (print_graphite_statistics): Deleted
13906         (limit_scops): Deleted.
13907         (build_scops): Removed call to limit_scops.
13908         * sese.c (new_sese): Construct.
13909         (free_sese): Destruct.
13910         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
13911         added.
13912         (set_rename): Pass sese region so that parameters inside the region can
13913         be added to its parameter_rename_map.
13914         (rename_uses): Pass sese region.
13915         (graphite_copy_stmts_from_block): Do not copy parameters that have been
13916         generated in the header of the scop. For each SSA_NAME in the
13917         parameter_rename_map rename its usage.
13918         (invariant_in_sese_p_rec): Return false if tree t is defined outside
13919         sese region.
13920         (scalar_evolution_in_region): If the tree t is invariant just return t.
13921         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
13922         struct sese to keep track of all the parameters which need renaming.
13923         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
13924         any data-refs.
13925         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
13926
13927 2015-09-08  Tom de Vries  <tom@codesourcery.com>
13928
13929         * Makefile.in (generated_files): Add params.list.
13930         (params.list, s-params.list): Add rule.
13931         * params.h (enum compiler_param): Include params-list.h.  Move define
13932         DEFPARAM, include params.def and undef DEFPARAM ...
13933         * params-list.h: ... here.  New file.
13934
13935 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
13936
13937         * pretty-print.h (printer_fn): Fix typo in comment.
13938
13939 2015-09-07  Jeff Law  <law@redhat.com>
13940
13941         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
13942
13943 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13944
13945         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
13946         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
13947         (arm_neon_fp16_hw): New.
13948
13949 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13950
13951         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
13952         UNITS_PER_WORD >= 4.
13953
13954 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13955
13956         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
13957         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
13958         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
13959         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
13960         (aarch64_float_extend_lo_v2df): Rename to...
13961         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
13962
13963         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
13964         (float_extend_lo): Add v4sf.
13965
13966         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
13967         * config/aarch64/iterators.md (VQ_HSF): New iterator.
13968         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
13969         (Vwide): New mode_attr.
13970
13971 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13972
13973         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
13974         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
13975         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
13976         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
13977         V4HF and V8HF variants to iterator.
13978
13979         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
13980
13981         * config/aarch64/iterators.md (VDQF_F16): New.
13982         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
13983
13984 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13985
13986         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
13987         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13988         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
13989         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
13990         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
13991         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13992         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
13993         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
13994         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
13995         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
13996         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
13997         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13998         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
13999         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
14000         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
14001         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
14002         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
14003         vld1q_dup_f16): New.
14004
14005 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14006
14007         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
14008         Reparameterize to...
14009         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
14010         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
14011         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
14012
14013         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
14014         v8hf variant.
14015         (float_truncate_lo_): Use BUILTIN_VDF iterator.
14016
14017         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
14018
14019         * config/aarch64/iterators.md (VDF, Vdtype): New.
14020         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
14021
14022 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14023
14024         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
14025         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
14026         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
14027         Add __builtin_aarch64_simd_hf.
14028         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
14029         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
14030         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
14031         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
14032         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
14033         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
14034         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
14035         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
14036         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
14037
14038         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
14039         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
14040         (VDC, Vdbl): Add V4HF.
14041
14042 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14043
14044         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
14045         V4HFmode and V8HFmode.
14046         (aarch64_split_simd_move): Add case for V8HFmode.
14047         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
14048         (aarch64_simd_builtin_std_type): Handle HFmode.
14049         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
14050
14051         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
14052         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
14053         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
14054
14055         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
14056         Float16x8_t.
14057
14058         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
14059         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
14060         New typedefs.
14061         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
14062         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
14063         vst1q_lane_f16): New.
14064         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
14065         (VALLDI_F16, VALL_F16): New.
14066         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
14067         Add cases for V4HF and V8HF.
14068         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
14069
14070 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14071
14072         * config/arm/arm-builtins.c (VAR11, VAR12): New.
14073         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
14074         vld4_dup): Add v4hf variant.
14075         (vget_high, vget_low): Add v8hf variant.
14076         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
14077         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
14078         v4hf and v8hf variants.
14079
14080         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
14081         (VDX): Add V4HF.
14082         (V_DOUBLE): Add case for V4HF.
14083         (VQX): Add V8HF.
14084         (V_HALF): Add case for V8HF.
14085         (VDQX): Add V4HF, V8HF.
14086         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
14087         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
14088
14089         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
14090         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
14091         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
14092         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
14093         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
14094         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
14095         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
14096         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
14097         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
14098
14099         (neon_vcreate, neon_vreinterpretv8qi<mode>,
14100         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14101         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
14102         Change VDX to VD_RE.
14103
14104         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
14105         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
14106         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
14107
14108         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
14109         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
14110         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
14111         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
14112         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
14113         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
14114         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
14115         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
14116         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
14117
14118 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14119
14120         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
14121         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
14122         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
14123         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
14124         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
14125         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
14126         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
14127         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
14128         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
14129         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
14130         New.
14131
14132 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14133
14134         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
14135
14136         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
14137
14138         * config/arm/arm-builtins.c (v8hf_UP): New.
14139         (arm_init_simd_builtin_types): Initialise Float16x8_t.
14140
14141         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
14142
14143         * config/arm/arm_neon.h (float16x8_t): New typedef.
14144
14145 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
14146
14147         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
14148         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
14149         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
14150         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
14151         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
14152         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
14153         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
14154         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
14155         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
14156         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
14157
14158 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
14159
14160         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
14161         non-alphanumeric characters in the symbol name.
14162
14163 2015-09-07  Marek Polacek  <polacek@redhat.com>
14164
14165         PR inline-asm/67448
14166         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
14167         a memory input.
14168
14169 2015-09-07  Marek Polacek  <polacek@redhat.com>
14170
14171         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
14172
14173 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
14174
14175         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
14176         not warn.
14177
14178 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
14179
14180         PR middle-end/67452
14181         * tree-ssa-live.c: Include cfgloop.h.
14182         (remove_unused_locals): Clear loop->simduid if simduid is about
14183         to be removed from cfun->local_decls.
14184
14185 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14186
14187         PR target/65210
14188         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
14189         attribute as well.
14190
14191 2015-09-04  Tom de Vries  <tom@codesourcery.com>
14192
14193         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
14194
14195 2015-09-04  Jeff Law  <law@redhat.com>
14196
14197         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
14198         unnecessary constructor.  It's now trivial and implemented inside...
14199         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
14200         constructor.  Add comments to various methods.  Remove unused
14201         private fields.
14202         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
14203         * tree-vrp.c (identify_jump_threads): Likewise.
14204         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
14205         indentation issues.
14206         (thread_across_edge): Similarly.
14207         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
14208         arguments in constructor call.
14209
14210 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
14211
14212         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
14213         temp path contains a '-'.
14214
14215 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14216             Petr Murzin  <petr.murzin@intel.com>
14217             Kirill Yukhin  <kirill.yukhin@intel.com>
14218
14219         * config/i386/i386-builtin-types.def
14220         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
14221         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
14222         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
14223         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
14224         * config/i386/i386.c
14225         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
14226         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14227         IX86_BUILTIN_SCATTERALTDIV16SI.
14228         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
14229         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
14230         __builtin_ia32_scatteraltdiv8si.
14231         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
14232         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
14233         IX86_BUILTIN_SCATTERALTDIV16SI.
14234         (ix86_vectorize_builtin_scatter): New.
14235         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
14236         ix86_vectorize_builtin_scatter.
14237
14238 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
14239             Petr Murzin  <petr.murzin@intel.com>
14240             Kirill Yukhin  <kirill.yukhin@intel.com>
14241
14242         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
14243         * doc/tm.texi: Regenerate.
14244         * target.def: Add scatter builtin.
14245         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
14246         for loads/stores in case of gather/scatter accordingly.
14247         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14248         STMT_VINFO_GATHER_P(S).
14249         (vect_check_gather): Rename to ...
14250         (vect_check_gather_scatter): this.
14251         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
14252         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
14253         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14254         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
14255         variable and new checkings for it accordingly.
14256         * tree-vect-stmts.c
14257         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
14258         STMT_VINFO_GATHER_P(S).
14259         (vect_check_gather_scatter): Use it instead of vect_check_gather.
14260         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
14261
14262 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14263
14264         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
14265         define_insn.
14266         (mulv16qi3): New define_expand.
14267
14268 2015-09-03  Martin Sebor  <msebor@redhat.com>
14269
14270         PR c/66516
14271         * doc/extend.texi (Other Builtins): Document when the address
14272         of a built-in function can be taken.
14273
14274 2015-09-03  Richard Biener  <rguenther@suse.de>
14275
14276         * dwarf2out.c (flush_limbo_die_list): Split out from ...
14277         (dwarf2out_early_finish): ... here.
14278         (dwarf2out_finish): Do not call dwarf2out_early_finish but
14279         flush_limbo_die_list.  Assert we have no deferred asm names.
14280
14281 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14282
14283         * optabs.c (expand_binop): Don't create a broadcast vector with a
14284         source element wider than the inner mode.
14285
14286 2015-09-03  Richard Biener  <rguenther@suse.de>
14287
14288         * varasm.c (output_constant): Use fold_convert instead of
14289         wide_int_to_tree.
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): Handle case that
14295         fin_bb has 2 predecessors.
14296
14297 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14298
14299         PR tree-optimization/65637
14300         * omp-low.c (find_phi_with_arg_on_edge): New function.
14301         (expand_omp_for_static_chunk): Fix inner loop phi.
14302
14303 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14304
14305         PR tree-optimization/65637
14306         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
14307         that head is NULL.
14308
14309 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14310
14311         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
14312
14313 2015-09-03  Tom de Vries  <tom@codesourcery.com>
14314
14315         * doc/invoke.texi (parloops-chunk-size): Add item.
14316         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
14317         * tree-parloops.c: Include params.h.
14318         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
14319         param parloops-chunk-size is used.
14320
14321 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14322
14323         PR middle-end/67351
14324         * fold-const.c (fold_binary_loc) : Move
14325         Transform (x >> c) << c into x & (-1<<c) or
14326         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
14327         types using simplify and match.
14328         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
14329         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
14330
14331 2015-09-03  Richard Biener  <rguenther@suse.de>
14332
14333         PR ipa/66705
14334         * tree-ssa-structalias.c (ctor_for_analysis): New function.
14335         (create_variable_info_for_1): Use ctor_for_analysis instead
14336         of get_constructor.
14337         (create_variable_info_for): Likewise.
14338
14339 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
14340
14341         PR ipa/67280
14342         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
14343         in new callgraph edge.
14344
14345 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
14346
14347         PR target/59810
14348         PR target/63652
14349         PR target/63653
14350         * config/aarch64/aarch64-simd.md
14351         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
14352         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
14353         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
14354         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
14355
14356 2015-09-02  Alan Modra  <amodra@gmail.com>
14357
14358         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
14359         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
14360         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
14361
14362 2015-09-02  Alan Modra  <amodra@gmail.com>
14363
14364         PR target/67417
14365         * config/rs6000/predicates.md (current_file_function_operand): Don't
14366         return true for weak symbols.
14367         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
14368
14369 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
14370             Andrew Bennett  <andrew.bennett@imgtec.com>
14371
14372         * config/mips/mips-opts.h (mips_cb_setting): New enum.
14373         * config/mips/mips-protos.h: Add definitions for
14374         mips_output_jump and mips_output_equal_conditional_branch
14375         * config/mips/mips.c (MIPS_JR): Change to support the
14376         JIC instruction.
14377         (mips_emit_compare): Add support for the MIPS R6 conditional
14378         compact branches.
14379         (mips_process_sync_loop): Likewise.
14380         (mips_output_order_conditional_branch): Likewise.
14381         (mips16_build_call_stub): Change MIPS_CALL to
14382         mips_output_jump.
14383         (mips_print_operand_punctuation): Update 's' case to only
14384         apply to micromips r2.
14385         (mips_adjust_insn_length): Add support for forbidden slot
14386         hazards.
14387         (mips_avoid_hazard): Likewise.
14388         (mips_reorg_process_insns): Likewise.
14389         (mips_output_jump): New function.
14390         (mips_output_equal_conditional_branch): Likewise.
14391         (mips_output_conditional_branch): Use jrc/bc if compact
14392         branch support is enabled.  Ensure the forbidden slots
14393         between the two branch instructions is filled with a nop.
14394         (mips_option_override): Add support to process the compact
14395         branch option and set the correct defaults.  Prevent
14396         non-explict relocs being using for MIPS R6.
14397         (mips_trampoline_init): Add compact branch support.
14398         (mips_mult_zero_zero_cost): Allow zero initialisation of
14399         accumulators with TARGET_DSP.
14400         * config/mips/mips.h (TARGET_CB_NEVER): New define.
14401         (TARGET_CB_MAYBE): New define.
14402         (TARGET_CB_ALWAYS): New define.
14403         (ISA_HAS_DELAY_SLOTS): New define.
14404         (ISA_HAS_COMPACT_BRANCHES): New define.
14405         (ISA_HAS_JRC): New define.
14406         (MIPS_BRANCH_C): New define.
14407         (MIPS_CALL): Removed.
14408         (MICROMIPS_J): Removed.
14409         * config/mips/mips.md (compact_form): New attr.
14410         (hazard): Add support for forbidden slots.
14411         (define_delay): Add support for compact branches.
14412         (*branch_order<mode>): Likewise.
14413         (*branch_order<mode>_inverted): Likewise.
14414         (*branch_equality<mode>): Likewise.
14415         (*branch_equality<mode>_inverted): Likewise.
14416         (*jump_absolute): Likewise.
14417         (*jump_pic): Likewise.
14418         (indirect_jump): Use mips_output_jump to produce assembly output.
14419         (tablejump_<mode>"): Likewise.
14420         (*<optab>"): Likewise.
14421         (<optab>_internal): Likewise.
14422         (sibcall_internal): Likewise.
14423         (sibcall_value_internal): Likewise.
14424         (sibcall_value_multiple_internal): Likewise.
14425         (call_internal): Likewise.
14426         (call_split): Likewise.
14427         (call_internal_direct): Likewise.
14428         (call_direct_split): Likewise.
14429         (call_value_internal): Likewise.
14430         (call_value_split): Likewise.
14431         (call_value_internal_direct): Likewise.
14432         (call_value_direct_split): Likewise.
14433         (call_value_multiple_internal): Likewise.
14434         (call_value_multiple_split): Likewise.
14435         (mips_get_fcsr_mips16_<mode>): Likewise.
14436         (mips_set_fcsr_mips16_<mode>): Likewise.
14437         (tls_get_tp_mips16_<mode>): Likewise.
14438         * config/mips/mips.opt: Add -mcompact-branches option.
14439         * config/mips/predicates.md (order_operator): Ensure the
14440         conditional compact branches are only used if the ISA them.
14441         * doc/invoke.texi: Document -mcompact-branches option.
14442
14443 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
14444
14445         PR target/61578
14446         * lra-lives.c (process_bb_lives): Process move pseudos with the
14447         same value for copies and preferences
14448         * lra-constraints.c (match_reload): Create match reload pseudo
14449         with the same value from single dying input pseudo.
14450
14451 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
14452
14453         PR target/67405
14454         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
14455
14456 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
14457
14458         * trans-mem.c: Add contributed-by.
14459         * trans-mem.h: Same.
14460
14461 2015-09-01  Richard Biener  <rguenther@suse.de>
14462
14463         * expr.c (expand_expr_real_1): For expanding TERed defs
14464         set the current location to that of the def if not UNKNOWN.
14465
14466 2015-09-01  David Sherwood  <david.sherwood@arm.com>
14467
14468         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
14469
14470 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14471
14472         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
14473         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
14474         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
14475         Include rtl-iter.h.
14476         (noce_simple_bbs): New function.
14477         (noce_try_move): Bail if basic blocks are not simple.
14478         (noce_try_store_flag): Likewise.
14479         (noce_try_store_flag_constants): Likewise.
14480         (noce_try_addcc): Likewise.
14481         (noce_try_store_flag_mask): Likewise.
14482         (noce_try_cmove): Likewise.
14483         (noce_try_minmax): Likewise.
14484         (noce_try_abs): Likewise.
14485         (noce_try_sign_mask): Likewise.
14486         (noce_try_bitop): Likewise.
14487         (bbs_ok_for_cmove_arith): New function.
14488         (noce_emit_all_but_last): Likewise.
14489         (noce_emit_insn): Likewise.
14490         (noce_emit_bb): Likewise.
14491         (noce_try_cmove_arith): Handle non-simple basic blocks.
14492         (insn_valid_noce_process_p): New function.
14493         (contains_mem_rtx_p): Likewise.
14494         (bb_valid_for_noce_process_p): Likewise.
14495         (noce_process_if_block): Allow non-simple basic blocks
14496         where appropriate.
14497
14498 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
14499
14500         * tree-ssa-dom.c (record_equivalences_from_phis,
14501         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
14502         (lookup_avail_expr): Likewise, and remove comment and unused temp.
14503
14504 2015-09-01  Nick Clifton  <nickc@redhat.com>
14505
14506         * config/msp430/msp430.opt (mcpu): Fix typo.
14507
14508 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14509
14510         * config/aarch64/aarch64.c (aarch64_set_current_function):
14511         Re-layout any vector parameters have non-simd layout.
14512         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
14513         Delete.
14514         (aarch64_simd_expand_args): Delete call to the above.
14515
14516 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
14517
14518         * doc/invoke.texi (asan-stack): Add space before option.
14519
14520 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14521
14522         * tree.h (zerop): New function.
14523         * tree.c (zerop): Likewise.
14524         (element_precision): Handle expressions.
14525         * match.pd (define_predicates): Add zerop.
14526         (x <= +Inf): Fix comment.
14527         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
14528         * fold-const.c (fold_binary_loc): ... here. Remove.
14529
14530 2015-08-31  Richard Biener  <rguenther@suse.de>
14531
14532         PR middle-end/67381
14533         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
14534
14535 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
14536
14537         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
14538         (CEXPI): New operator list.
14539         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
14540         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
14541         Converted from ...
14542         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
14543
14544 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14545
14546         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
14547         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
14548         parameter.
14549         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
14550         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
14551         (rewrite_into_loop_closed_ssa): ... here.
14552         (replace_uses_in_dominated_bbs): Remove function.
14553         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
14554         rewrite_into_loop_closed_ssa_1.
14555
14556 2015-08-31  Michael Matz  <matz@suse.de>
14557
14558         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
14559         enter entry and exit blocks for reverse post order.
14560
14561 2015-08-31  Richard Biener  <rguenther@suse.de>
14562
14563         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
14564         (lto_location_cache::current_sysp): Likewise.
14565         (output_block::current_sysp): Likewise.
14566         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
14567         (lto_location_cache::apply_location_cache): Properly record
14568         system header locations.
14569         (lto_location_cache::input_location): Input whether a file
14570         is a system header.
14571         * lto-streamer-out.c (lto_output_location): Stream whether a file
14572         is a system header.
14573
14574 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14575
14576         PR bootstrap/67363
14577         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
14578
14579 2015-08-31  Tom de Vries  <tom@codesourcery.com>
14580
14581         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
14582         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
14583         Improve function header comments.
14584
14585 2015-08-30  Michael Collison  <michael.collison@linaro.org>
14586
14587         PR other/67320
14588         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
14589         standard names
14590
14591 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14592
14593         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
14594         special_handling bitfield.
14595         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
14596         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
14597         that represents a general xxpermdi.
14598         (insn_is_swappable_p): Add handling for vec_concat of two
14599         doublewords, which maps to a specific xxpermdi.
14600         (adjust_xxpermdi): New function.
14601         (adjust_concat): Likewise.
14602         (handle_special_swappables): Call adjust_xxpermdi and
14603         adjust_concat.
14604         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
14605
14606 2015-08-30  Rich Felker <dalias@libc.org>
14607
14608         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
14609         case instead of sh[123456ble]-*-*.
14610
14611 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
14612
14613         * ira.c (print_unform_and_important_classes,
14614         print_translated_classes): Remove reg_class_names static array.
14615         (print_unform_and_important_classes): Rename to ...
14616         (print_uniform_and_important_classes): ... this.
14617         (ira_debug_allocno_classes): Update accordingly.
14618
14619 2015-08-29  Tom de Vries  <tom@codesourcery.com>
14620
14621         PR tree-optimization/46193
14622         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
14623         clause.
14624
14625 2015-08-28  Jeff Law  <law@redhat.com>
14626
14627         PR lto/66752
14628         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
14629         unable to find X NE 0 in the tables, return X as the simplified
14630         condition.
14631         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
14632         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
14633         to VISISTED_BBS.
14634         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
14635         after removing the control flow statement and unnecessary edges.
14636
14637 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
14638
14639         Revert:
14640         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14641
14642         PR tree-optimization/67283
14643         * tree-sra.c (type_consists_of_records_p): Rename to...
14644         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14645
14646         (completely_scalarize_record): Rename to...
14647         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
14648         code to:
14649         (scalarize_elem): New.
14650
14651 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
14652
14653         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
14654         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
14655         (aarch64_symbol_type): Likewise.
14656         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14657         Likewise.
14658         (aarch64_expand_mov_immediate): Likewise.
14659         (aarch64_print_operand): Likewise.
14660         (aarch64_classify_tls_symbol): Likewise.
14661
14662 2015-08-28  Richard Biener  <rguenther@suse.de>
14663
14664         * cgraphunit.c (symbol_table::compile): Move early debug generation
14665         and finish...
14666         (symbol_table::finalize_compilation_unit): ... back here and
14667         add a !seen_error () guard.
14668
14669 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14670
14671         * toplev.c (process_options): Do not use flag_loop_block,
14672         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
14673         flag_loop_optimize_isl.
14674
14675 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14676
14677         * Makefile.in (OBJS): Remove graphite-blocking.o and
14678         graphite-interchange.o.
14679         * common.opt (floop-strip-mine, floop-interchange, floop-block):
14680         Alias of floop-nest-optimize.
14681         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
14682         Document as alias of -floop-nest-optimize.
14683         * graphite-blocking.c: Remove.
14684         * graphite-interchange.c: Remove.
14685         * graphite-optimize-isl.c: Include dumpfile.h.
14686         (getScheduleForBand): Add dump for tiled loops.  Use
14687         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
14688         * graphite-poly.c (scop_max_loop_depth): Remove.
14689         (print_scattering_function_1): Remove.
14690         (print_scattering_function): Remove.
14691         (print_scattering_functions): Remove.
14692         (debug_scattering_function): Remove.
14693         (debug_scattering_functions): Remove.
14694         (apply_poly_transforms): Remove use of flag_loop_block,
14695         flag_loop_strip_mine, and flag_loop_interchange.
14696         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
14697         PBB_ORIGINAL.
14698         (print_pdr_access_layout): Remove.
14699         (print_pdr): Print ISL representation.
14700         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
14701         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
14702         (free_scop): Same.
14703         (openscop_print_pbb_domain): Remove.
14704         (print_pbb): Remove call to print_scattering_function.
14705         (openscop_print_scop_context): Remove.
14706         (print_scop_context): Do not print matrices anymore.
14707         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
14708         SCOP_TRANSFORMED_SCHEDULE.
14709         (print_isl_set): Add printing of a new line.
14710         (print_isl_map): Same.
14711         (print_isl_aff): Same.
14712         (print_isl_constraint): Same.
14713         (loop_to_lst): Remove.
14714         (scop_to_lst): Remove.
14715         (lst_indent_to): Remove.
14716         (print_lst): Remove.
14717         (debug_lst): Remove.
14718         (dot_lst_1): Remove.
14719         (dot_lst): Remove.
14720         (reverse_loop_at_level): Remove.
14721         (reverse_loop_for_pbbs): Remove.
14722         * graphite-poly.h (pdr_dim_iter_domain): Remove.
14723         (pdr_nb_params): Remove.
14724         (pdr_alias_set_dim): Remove.
14725         (pdr_subscript_dim): Remove.
14726         (pdr_iterator_dim): Remove.
14727         (pdr_parameter_dim): Remove.
14728         (same_pdr_p): Remove.
14729         (struct poly_scattering): Remove.
14730         (struct poly_bb): Remove _original, _transformed, _saved.
14731         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
14732         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
14733         (PBB_NB_LOCAL_VARIABLES): Remove.
14734         (PBB_NB_SCATTERING_TRANSFORM): Remove.
14735         (schedule_to_scattering): Remove.
14736         (number_of_write_pdrs): Remove.
14737         (pbb_dim_iter_domain): Remove.
14738         (pbb_nb_params): Remove.
14739         (pbb_nb_scattering_orig): Remove.
14740         (pbb_nb_scattering_transform): Remove.
14741         (pbb_nb_dynamic_scattering_transform): Remove.
14742         (pbb_nb_local_vars): Remove.
14743         (pbb_iterator_dim): Remove.
14744         (pbb_parameter_dim): Remove.
14745         (psco_scattering_dim): Remove.
14746         (psct_scattering_dim): Remove.
14747         (psct_local_var_dim): Remove.
14748         (psco_iterator_dim): Remove.
14749         (psct_iterator_dim): Remove.
14750         (psco_parameter_dim): Remove.
14751         (psct_parameter_dim): Remove.
14752         (psct_dynamic_dim): Remove.
14753         (psct_static_dim): Remove.
14754         (psct_add_local_variable): Remove.
14755         (new_lst_loop): Remove.
14756         (new_lst_stmt): Remove.
14757         (free_lst): Remove.
14758         (copy_lst): Remove.
14759         (lst_add_loop_under_loop): Remove.
14760         (lst_depth): Remove.
14761         (lst_dewey_number): Remove.
14762         (lst_dewey_number_at_depth): Remove.
14763         (lst_pred): Remove.
14764         (lst_succ): Remove.
14765         (lst_find_pbb): Remove.
14766         (find_lst_loop): Remove.
14767         (lst_find_first_pbb): Remove.
14768         (lst_empty_p): Remove.
14769         (lst_find_last_pbb): Remove.
14770         (lst_contains_p): Remove.
14771         (lst_contains_pbb): Remove.
14772         (lst_create_nest): Remove.
14773         (lst_remove_from_sequence): Remove.
14774         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
14775         (lst_niter_for_loop): Remove.
14776         (pbb_update_scattering): Remove.
14777         (lst_update_scattering_under): Remove.
14778         (lst_update_scattering): Remove.
14779         (lst_insert_in_sequence): Remove.
14780         (lst_replace): Remove.
14781         (lst_substitute_3): Remove.
14782         (lst_distribute_lst): Remove.
14783         (lst_remove_all_before_including_pbb): Remove.
14784         (lst_remove_all_before_excluding_pbb): Remove.
14785         (struct scop): Remove original_schedule, transformed_schedule, and
14786         saved_schedule.
14787         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
14788         (SCOP_SAVED_SCHEDULE): Remove.
14789         (poly_scattering_new): Remove.
14790         (poly_scattering_free): Remove.
14791         (poly_scattering_copy): Remove.
14792         (store_scattering_pbb): Remove.
14793         (store_lst_schedule): Remove.
14794         (restore_lst_schedule): Remove.
14795         (store_scattering): Remove.
14796         (restore_scattering_pbb): Remove.
14797         (restore_scattering): Remove.
14798         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
14799         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
14800         compute the scattering polyhedron dimension from the dimension of
14801         pbb->domain.
14802         (build_scop_scattering): Update call to
14803         build_pbb_scattering_polyhedrons.
14804         (build_poly_scop): Remove call to scop_to_lst.
14805         * graphite.c (graphite_transform_loops): Add call to print_scop.
14806         (gate_graphite_transforms): Remove use of flag_loop_block,
14807         flag_loop_interchange, and flag_loop_strip_mine.
14808
14809 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
14810
14811         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
14812         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
14813         -floop-nest-optimize.
14814         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
14815         (generate_luj_sepclass): Remove.
14816         (generate_luj_options): Remove.
14817         (set_options): Remove opt_luj.
14818         (scop_to_isl_ast): Remove opt_luj.
14819         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
14820         flag_loop_unroll_jam.
14821         (getPrevectorMap_full): Remove.
14822         (getScheduleForBandList): Remove map_sepcl.
14823         (getScheduleMap): Same.
14824         (apply_schedule_map_to_scop): Remove sepcl.
14825         (optimize_isl): Same.
14826         * graphite-poly.c (apply_poly_transforms): Remove check for
14827         flag_loop_unroll_jam.
14828         (new_poly_bb): Remove map_sepclass.
14829         * graphite-poly.h (struct poly_bb): Same.
14830         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
14831         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
14832         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
14833         * toplev.c (process_options): Remove flag_loop_unroll_jam.
14834
14835 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
14836
14837         PR target/67317
14838         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
14839         (addqi3_cc): Ditto.
14840         (UNSPEC_ADD_CARRY): Remove.
14841         (addqi3_cconly_overflow): New expander.
14842         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
14843         Adjust for changed add<mode>3_carry.
14844         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
14845         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
14846         (<plusminus_insn><mode>3_carry): Remove expander.
14847         (*<plusminus_insn><mode>3_carry): Split insn pattern to
14848         add<mode>3_carry and sub<mode>3_carry.
14849         (plusminus_carry_mnemonic): Remove code attribute.
14850         (add<mode>3_carry): Canonicalize insn pattern.
14851         (*addsi3_carry_zext): Ditto.
14852         (sub<mode>3_carry): Ditto.
14853         (*subsi3_carry_zext): Ditto.
14854         (adcx<mode>3): Remove insn pattern.
14855         (addcarry<mode>): New insn pattern.
14856         (subborrow<mode>): Ditto.
14857         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
14858         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
14859         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
14860         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
14861         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
14862         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
14863         Rewrite expander to not clobber carry flag chains.
14864
14865 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
14866
14867         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
14868         instead of a rotate.
14869
14870 2015-08-27  Marek Polacek  <polacek@redhat.com>
14871
14872         PR middle-end/67005
14873         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
14874         an entry into an irreducible region.
14875
14876 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14877
14878         * configure: Regenerate.
14879
14880 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14881
14882         PR tree-optimization/67283
14883         * tree-sra.c (type_consists_of_records_p): Rename to...
14884         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
14885
14886         (completely_scalarize_record): Rename to...
14887         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
14888         (scalarize_elem): New.
14889
14890 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
14891
14892         * tree-sra.c (completely_scalarize_var): Rename to...
14893         (create_total_scalarization_access): ... Here. Drop call to
14894         completely_scalarize_record.
14895
14896         (analyze_all_variable_accesses): Replace completely_scalarize_var
14897         with create_total_scalarization_access and completely_scalarize_record.
14898
14899 2015-08-27  Alan Modra  <amodra@gmail.com>
14900
14901         PR target/67356
14902         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
14903         for operand 1.
14904
14905 2015-08-27  Richard Biener  <rguenther@suse.de>
14906
14907         * passes.c (rest_of_decl_compilation): Guard early_global_decl
14908         call with !seen_error ().
14909         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
14910         early debug generation and finish...
14911         (symbol_table::compile): ... here to put it after a !seen_error ()
14912         guard.
14913
14914 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14915
14916         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
14917         Solaris 12+.
14918
14919 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14920             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14921
14922         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
14923         (*cb<optab><mode>1): Likewise.
14924         (*tb<optab><mode>1): Likewise.
14925         (*cb<optab><mode>1): Likewise.
14926         * config/aarch64/iterators.md (inv_cb): New code attribute.
14927         (inv_tb): Likewise.
14928         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
14929         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
14930
14931 2015-08-27  Richard Biener  <rguenther@suse.de>
14932
14933         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
14934
14935 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14936
14937         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
14938         trap to fix ICE.
14939
14940 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
14941
14942         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
14943         Add declaration.
14944
14945         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
14946         comment.
14947         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
14948         floating point in VSX registers.
14949         (rs6000_output_move_128bit): Always print out the set insn if we
14950         can't generate an appropriate 128-bit move.
14951         (rs6000_generate_compare): Add support for IEEE 128-bit floating
14952         point in VSX registers comparisons.
14953         (rs6000_expand_float128_convert): Likewise.
14954
14955         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
14956         predicate for only GPR hard registers.
14957
14958         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
14959         modes to iterators. Add new iterators for moving 128-bit values in
14960         scalar FPR registers and VSX registers.
14961         (FMOVE128): Likewise.
14962         (FMOVE128_FPR): Likewise.
14963         (FMOVE128_GPR): Likewise.
14964         (FMOVE128_VSX): Likewise.
14965         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
14966         in VSX registers.
14967         (IFKF): Likewise.
14968         (IBM128): Likewise.
14969         (TFIFKF): Likewise.
14970         (RELOAD): Add IEEE 128-bit floating point modes.
14971         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
14972         floating point in VSX registers modes.
14973         (signbit<mode>2, IBM128 iterator): Likewise.
14974         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
14975         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14976         (negtf2): Likewise.
14977         (neg<mode>2, TFIFKF iterator): Likewise.
14978         (negtf2_internal): Likewise.
14979         (abstf2): Likewise.
14980         (abs<mode>2, TFIFKF iterator): Likewise.
14981         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
14982         VSX insn support for negate, absolute value, and negative absolute
14983         value.
14984         (ieee_128bit_vsx_neg<mode>2): Likewise.
14985         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
14986         (ieee_128bit_vsx_abs<mode>2): Likewise.
14987         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
14988         (ieee_128bit_vsx_nabs<mode>2): Likewise.
14989         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
14990         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
14991         floating point in VSX registers.
14992         (unpack<mode>_dm): Likewise.
14993         (unpack<mode>_nodm): Likewise.
14994         (pack<mode>): Likewise.
14995         (unpackv1ti): Likewise.
14996         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
14997         (packv1ti): Likewise.
14998         (pack<mode>, FMOVE128_VSX iterator): Likewise.
14999         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
15000         registers.
15001         (extenddftf2_internal): Likewise.
15002         (trunctfdf2): Likewise.
15003         (trunctfdf2_internal2): Likewise.
15004         (fix_trunc_helper): Likewise.
15005         (fix_trunctfdi2"): Likewise.
15006         (floatditf2): Likewise.
15007         (floatuns<mode>tf2): Likewise.
15008         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
15009         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
15010         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
15011         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
15012         (float<SDI:mode><IFKF:mode>2): Likewise.
15013         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
15014
15015 2015-08-26  Renlin Li  <renlin.li@arm.com>
15016
15017         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
15018
15019 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15020             Jiong Wang  <jiong.wang@arm.com>
15021
15022         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
15023         (tlsie_tiny_<mode>): New define_insn.
15024         (tlsie_tiny_sidi): Likewise.
15025         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15026         SYMBOL_TINY_TLSIE.
15027         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
15028         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15029         SYMBOL_TINY_TLSIE.
15030         (aarch64_expand_mov_immediate): Likewise.
15031         (aarch64_print_operand): Likewise.
15032         (arch64_classify_tls_symbol): Likewise.
15033
15034 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15035
15036         * config/arm/arm-arches.def: Replace single value flags with
15037         an initializer built from ARM_FSET_MAKE_CPU1.
15038         * config/arm/arm-cores.def: Likewise.
15039         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
15040         derivation from the ARM_CORE macro definition, use the given value
15041         instead.
15042         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
15043         ARM_ARCH macro definition, use the given value instead.
15044
15045 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15046
15047         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
15048         feature set.
15049         (struct builtin_description): Replace field mask with field
15050         features.
15051         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
15052         (IWMMXT2_BUILTIN): Likewise.
15053         (IWMMXT2_BUILTIN2): Likewise.
15054         (FP_BUILTIN): Likewise.
15055         (CRC32_BUILTIN): Likewise.
15056         (CRYPTO_BUILTIN): Likewise.
15057         (iwmmx_mbuiltin): Likewise.
15058         (iwmmx2_mbuiltin): Likewise.
15059         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
15060         struct builtin_description.
15061
15062 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15063
15064         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
15065         (struct builtin_description): Change type of mask to unsigned
15066         long.
15067         * config/arm/arm-protos.h (insn_flags): Declare as type
15068         arm_feature_set.
15069         (tune_flags): Likewise.
15070         * config/arm/arm.c (feature_count): New.
15071         (insn_flags): Define as type arm_feature_set.
15072         (tune_flags): Likewise.
15073         (struct processors): Define field flags as type arm_feature_set.
15074         (all_cores): Update for change to struct processors.
15075         (all_architectures): Likewise.
15076         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
15077         macros.
15078         (arm_option_override_internal): Likewise.
15079         (arm_option_override): Likewise.
15080
15081 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15082             Jiong Wang  <jiong.wang@arm.com>
15083
15084         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
15085         tls size for tiny, small, large memory model.
15086         (aarch64_load_symref_appropriately): Support new symbol types.
15087         (aarch64_expand_mov_immediate): Likewise.
15088         (aarch64_print_operand): Likewise.
15089         (aarch64_classify_tls_symbol): Likewise.
15090         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
15091         (aarch64_symbol_type): Likewise.
15092         * config/aarch64/aarch64.md (tlsle): Deleted.
15093         (tlsle12_<mode>): New define_insn.
15094         (tlsle24_<mode>): Likewise.
15095         (tlsle32_<mode>): Likewise.
15096         (tlsle48_<mode>): Likewise.
15097         * doc/sourcebuild.texi (AArch64-specific attributes): Document
15098         "aarch64_tlsle32".
15099
15100 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15101
15102         * config/arm/arm-protos.h (FL_NONE): New.
15103         (FL_ANY): New.
15104         (arm_feature_set): New.
15105         (ARM_FSET_MAKE): New.
15106         (ARM_FSET_MAKE_CPU1): New.
15107         (ARM_FSET_MAKE_CPU2): New.
15108         (ARM_FSET_CPU1): New.
15109         (ARM_FSET_CPU2): New.
15110         (ARM_FSET_EMPTY): New.
15111         (ARM_FSET_ANY): New.
15112         (ARM_FSET_HAS_CPU1): New.
15113         (ARM_FSET_HAS_CPU2): New.
15114         (ARM_FSET_HAS_CPU): New.
15115         (ARM_FSET_ADD_CPU1): New.
15116         (ARM_FSET_ADD_CPU2): New.
15117         (ARM_FSET_DEL_CPU1): New.
15118         (ARM_FSET_DEL_CPU2): New.
15119         (ARM_FSET_UNION): New.
15120         (ARM_FSET_INTER): New.
15121         (ARM_FSET_XOR): New.
15122         (ARM_FSET_EXCLUDE): New.
15123         (AFM_FSET_IS_EMPTY): New.
15124         (ARM_FSET_CPU_SUBSET): New.
15125
15126 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15127
15128         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15129         SYMBOL_TLSLE to SYMBOL_TLSLE24.
15130         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15131         Likewise.
15132         (aarch64_expand_mov_immediate): Likewise.
15133         (aarch64_print_operand): Likewise.
15134         (aarch64_classify_symbol): Likewise.
15135
15136 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
15137
15138         * config/aarch64/aarch64.opt (mtls-size): New entry.
15139         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
15140         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
15141         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
15142
15143 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
15144
15145         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
15146         ARM_CORE entry.  Fix some white-space.
15147         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
15148         ARM_CORE definition.
15149
15150 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15151
15152         * fold-const.c (fold_binary_loc) : Move Optimize
15153         root(x)*root(y) as root(x*y) to match.pd.
15154         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
15155         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
15156         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
15157         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
15158         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
15159         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
15160         (mult (exps:s @0) (exps:s @1)) : New simplifier.
15161         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
15162         (rdiv @0 (exps:s @1)) : New simplifier.
15163
15164 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
15165
15166         * gcc.c (driver::finalize): Only assign to extra_specs if
15167         [EXTRA_SPECS].
15168
15169 2015-08-25  Marek Polacek  <polacek@redhat.com>
15170
15171         PR middle-end/67330
15172         * varasm.c (declare_weak): Return after giving an error.
15173
15174 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
15175
15176         * gcc-main.c (main): Add params to driver ctor.
15177         * gcc.c (class env_manager): New.
15178         (env): New global.
15179         (env_manager::init): New.
15180         (env_manager::get): New.
15181         (env_manager::xput): New.
15182         (env_manager::restore): New.
15183         Poison getenv and putenv.
15184         (DEFAULT_TARGET_SYSTEM_ROOT): New.
15185         (target_system_root): Update initialization to use
15186         DEFAULT_TARGET_SYSTEM_ROOT.
15187         (struct spec_list): Add field "default_ptr".
15188         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
15189         (init_spec): Likewise.
15190         (set_spec): Clear field "default_ptr".
15191         (read_specs): Free "spec" and "buffer".
15192         (xputenv): Reimplement in terms of env_manager.
15193         (process_command): Replace ::getenv calls with calls to the
15194         env_manager singleton.
15195         (process_brace_body): Free string in three places.
15196         (driver::driver): New.
15197         (driver::~driver): New.
15198         (used_arg): Convert from a function to...
15199         (class used_arg_t): ...this class, and...
15200         (used_arg): ...this new global instance.
15201         (used_arg_t::finalize): New function.
15202         (getenv_spec_function): Add "const" to local "value".  Replace
15203         ::getenv call with call to the env_manager singleton.
15204         (path_prefix_reset): New function.
15205         (driver::finalize): New function.
15206         * gcc.h (driver::driver): New.
15207         (driver::~driver): New.
15208         (driver::finalize): New.
15209
15210 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15211
15212         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
15213         target doesn't have one.
15214
15215 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15216
15217         PR target/67346
15218         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
15219
15220 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
15221
15222         PR target/67344
15223         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
15224         a define_insn, remove second alternative.
15225
15226 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
15227             Joseph Myers  <joseph@codesourcery.com>
15228
15229         * gcc.c (struct switchstr): Expand comment.
15230
15231 2015-08-25  Nathan Sidwell  <nathan@acm.org>
15232
15233         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
15234         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
15235
15236 2015-08-25  Richard Biener  <rguenther@suse.de>
15237
15238         PR middle-end/67306
15239         * genmatch.c (expr::gen_transform): Verify the result of
15240         builtin_decl_implicit.
15241         (dt_simplify::gen_1): Likewise.
15242
15243 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15244
15245         * config/arm/constraints.md: Also list Cs and US ARM-specific
15246         constraints as used.
15247
15248 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15249
15250         PR target/66609
15251         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
15252         UNSPEC_PCREL.
15253         (nonpic_symbol_mentioned_p): Likewise.
15254         (sh_delegitimize_address): Likewise.
15255         (sh_function_ok_for_sibcall): Take into account weak symbols.
15256         (sh_expand_sym_label2reg): New.
15257         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
15258         * config/sh/sh.md (UNSPEC_PCREL): New enum.
15259         (call_pcrel): Use sh_expand_sym_label2reg.
15260         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
15261         (symPCREL_label2reg) New expand.
15262
15263 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15264
15265         * graphite-poly.c: Change type of region from void* to sese.
15266         * graphite-poly.h (struct scop): Changing the type of scop::region
15267         from void* to sese. Change accessor macro accordingly.
15268         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
15269
15270 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
15271
15272         * graphite-scop-detection.c (stmt_simple_for_scop_p):
15273         Constrain only on INTEGER_TYPE.
15274
15275 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15276
15277         PR target/67211
15278         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
15279         -mefficient-unaligned-vsx on ISA 2.7.
15280
15281         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
15282         option to a masked option.
15283
15284         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
15285         logic for -mefficient-unaligned-vsx so that it is set via an arch
15286         ISA option, instead of being set if -mtune=power8 is set. Move
15287         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
15288         near other default option handling.
15289
15290 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15291
15292         * genflags.c (gen_macro): Delete.
15293         (gen_proto): Don't create GEN.*CALL.* macros.
15294         * gensupport.h (get_file_location): Declare.
15295         * gensupport.c (rtx_locs): New variable.
15296         (read_md_rtx): Record rtx locations.
15297         (get_file_location): New function.
15298         * target-insns.def (call, call_pop, call_value, call_value_pop)
15299         (sibcall, sibcall_value): New patterns.
15300         * gentarget-def.c (parse_argument): New function.
15301         (def_target_insn): Use it.  Handle optional operands.  Raise an
15302         error if an .md pattern has the wrong number of operands for the
15303         pattern name.  Remove the names of unused operands from the prototype.
15304         * builtins.c (expand_builtin_apply): Use targetm functions
15305         instead of HAVE_call_value and GEN_CALL_VALUE.
15306         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
15307         and sibcall_value_pop.
15308         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
15309         of GEN_CALL.
15310         * config/alpha/alpha.md (untyped_call): Likewise.
15311         * config/iq2000/iq2000.md (untyped_call): Likewise.
15312         * config/m68k/m68k.md (untyped_call): Likewise.
15313         * config/mips/mips.md (untyped_call): Likewise.
15314         * config/pa/pa.md (untyped_call): Likewise.
15315         * config/rs6000/rs6000.md (untyped_call): Likewise.
15316         * config/sparc/sparc.md (untyped_call): Likewise.
15317         * config/tilegx/tilegx.md (untyped_call): Likewise.
15318         * config/tilepro/tilepro.md (untyped_call): Likewise.
15319         * config/visium/visium.md (untyped_call): Likewise.
15320         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
15321         gen_call_value instead of GEN_CALL_VALUE.
15322         * config/arm/arm.md (untyped_call): Likewise.
15323         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
15324         GEN_CALL.
15325
15326 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15327
15328         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
15329         (have_cbranchcc4): New variable.
15330         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
15331         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
15332         (if_convert): Initialize have_cbranchcc4.
15333
15334 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15335
15336         * builtins.c (expand_cmpstrn): Rename to...
15337         (expand_cmpstrn_or_cmpmem): ...this.
15338         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
15339         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
15340         Remove mode argument.
15341         (expand_builtin): Update accordingly.
15342
15343 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15344
15345         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
15346         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
15347         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
15348         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
15349         Add predicates for operands 0 and 3.
15350         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
15351         operand.
15352         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
15353         immediate_operand to nonmemory_operand.
15354
15355 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15356
15357         * df-scan.c (df_insn_info_init_fields): New function, split out
15358         from...
15359         (df_insn_create_insn_record): ...here.
15360         (df_insn_info_free_fields): New function, split out from...
15361         (df_insn_info_delete): ...here.
15362         (df_insn_rescan): Use the new functions instead of freeing and
15363         reallocating the df_insn_info.
15364
15365 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15366
15367         * doc/install.texi (Binaries): Remove links no longer valid.
15368
15369 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15370
15371         * config/nvptx/mkoffload.c (process): Replace
15372         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
15373
15374 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
15375
15376         PR target/67329
15377         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
15378
15379 2015-08-24  Renlin Li  <renlin.li@arm.com>
15380
15381         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
15382         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
15383         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
15384         * config/arm/constraints.md ("j"): Add check for high code.
15385
15386 2015-08-24  Tom de Vries  <tom@codesourcery.com>
15387
15388         PR tree-optimization/65468
15389         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
15390         chunk_size is one.
15391
15392 2015-08-24  Nathan Sidwell  <nathan@acm.org>
15393
15394         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
15395         change to nvptx_type_from_mode call. Use arg_promotion for both
15396         split and non-split args.
15397
15398 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15399
15400         * target-insns.def (movstr): New pattern.
15401         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
15402         (expand_movstr): Use targetm rather than HAVE_movstr/
15403         CODE_FOR_movstr.
15404
15405 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
15406
15407         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
15408         cast syntax.
15409
15410 2015-08-24  Andrew Pinski  <apinski@cavium.com>
15411
15412         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
15413         AARCH64_EXTRA_TUNING_OPTION.
15414         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
15415         New enum.
15416         (aarch64_extra_tuning_flags): Base the shifted value on the index
15417         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
15418         * config/aarch64/aarch64.c: Remove the last argument to
15419         AARCH64_EXTRA_TUNING_OPTION.
15420
15421 2015-08-23  Nathan Sidwell  <nathan@acm.org>
15422
15423         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
15424         decls.
15425         (nvptx_declare_function_name): Insert formatting tabs for
15426         consistency.
15427
15428 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15429
15430         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
15431         parm_decl, rather than generating a dummy default def in cfun.
15432         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
15433         ssa_name from cfun and child_fn do not share a stmt as def stmt.
15434         (move_stmt_op): Handle PARM_DECl.
15435         (gather_ssa_name_hash_map_from): New function.
15436         (move_sese_region_to_fn): Add default defs for function params, and add
15437         them to vars_map.  Release copied ssa names.
15438         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
15439
15440 2015-08-23  Tom de Vries  <tom@codesourcery.com>
15441
15442         * doc/sourcebuild.texi: Rename vect_no_int_max with
15443         vect_no_int_min_max.  Update description.
15444
15445 2015-08-22  Andrew Pinski  <apinski@cavium.com>
15446
15447          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
15448         * config/aarch64/aarch64-protos.h
15449         (aarch64_fusion_pairs_index): New enum.
15450         (aarch64_fusion_pairs): Base the shifted value on the index instead
15451         Rewrite AARCH64_FUSE_ALL to be based on the end index.
15452         of the argument to AARCH64_FUSION_PAIR.
15453         * config/aarch64/aarch64.c: Remove the last argument to
15454         AARCH64_FUSION_PAIR.
15455
15456 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
15457
15458         * dominance.c (new_zero_array): Define.
15459         (dom_info): Redefine as class with proper encapsulation.
15460         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
15461         Add new members.
15462         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
15463         allocations/deallocations.  Pass function as parameter (instead of
15464         using cfun).
15465         (dom_info::get_idom): Define accessor method.
15466         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
15467         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
15468         (calculate_dominance_info): Adjust to use dom_info class.
15469         (verify_dominators): Likewise.
15470
15471 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
15472
15473         * print-rtl.c (print_rtx): Check the correct range for
15474         flag_dump_unnumbered_links to behave as documented.
15475
15476         PR rtl-optimization/67227
15477         PR rtl-optimization/64164
15478         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
15479         (nonoverlapping_memrefs_p): Test offsets and sizes when given
15480         identical gimple_reg exprs.
15481
15482 2015-08-21  Nathan Sidwell  <nathan@acm.org>
15483
15484         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
15485         expansion.
15486         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
15487         crtl->stack_alignment_needed to determine alignment.
15488         (nvptx_get_drap_rtx): New.
15489         (TARGET_GET_DRAP_RTX): Override.
15490         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
15491
15492 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15493
15494         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
15495
15496 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15497
15498         * configure.ac: Remove uwin* cases.
15499         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
15500         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
15501         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
15502         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
15503         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
15504         i[34567]86-*-uwin*, powerpc-*-beos*.
15505
15506 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
15507
15508         * gencodes.c (gencodes): Print the comma for the preceding
15509         enum value rather than the current one.  Use aliased enum values
15510         rather than #defines for compiled-out patterns.
15511         (main): Update accordingly.  Replace LAST_INSN_CODE with
15512         NUM_INSN_CODES.
15513         * lra.c (insn_code_data): Update accordingly.
15514         (finish_insn_code_data_once, get_static_insn_data): Likewise.
15515         * recog.h (target_recog): Likewise.
15516         (preprocess_insn_constraints): Change parameter to unsigned int.
15517         * recog.c (preprocess_insn_constraints): Likewise.
15518         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
15519         * tree-vect-stmts.c (vectorizable_operation): Simplify.
15520
15521 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
15522
15523         PR rtl-optimization/61657
15524         * loop-iv.c (iv_number_of_iterations): Declare up and down as
15525         unsigned.  Remove superflous uint64_t cast.
15526
15527 2014-08-21  Felix Yang  <felix.yang@huawei.com>
15528             Jiji Jiang  <jiangjiji@huawei.com>
15529
15530         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
15531         argument and get builtin function code directly from CALL.
15532         (gimple_stringop_fixed_value): Modified accordingly.
15533         (gimple_stringops_transform, gimple_stringops_values_to_profile):
15534         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
15535
15536 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15537
15538         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
15539
15540 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15541
15542         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
15543         to match.pd.
15544         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
15545         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
15546         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
15547         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
15548         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
15549         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
15550         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
15551         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
15552         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
15553         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
15554
15555         * match.pd (SIN ) : New Operator.
15556         (TAN) : New Operator.
15557         (mult (SQRT@1 @0) @1) : New simplifier.
15558         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
15559         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15560         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
15561         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
15562         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
15563         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
15564         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
15565         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
15566         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
15567         (rdiv @0 (POW:s @1 @2)) : New simplifier.
15568
15569 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
15570
15571         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
15572         loop if EXPR is simplified to const value.
15573
15574 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
15575
15576         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
15577         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
15578
15579 2015-08-21  Richard Biener  <rguenther@suse.de>
15580
15581         PR middle-end/67285
15582         * gimple-fold.c (replace_stmt_with_simplification): Assert
15583         seq is empty when replacing a call with itself but different
15584         arguments.
15585         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
15586         a call require that it is const.
15587
15588 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15589
15590         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
15591         * builtins.c (get_object_alignment_2): Adjust.
15592         * varasm.c (align_variable): Likewise.
15593         (get_variable_align): Likewise.
15594         (build_constant_desc): Likewise.
15595         (force_const_mem): Likewise.
15596         * doc/tm.texi.in: Likewise.
15597         * doc/tm.texi: Regenerate.
15598
15599 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15600
15601         * genconfig.c (main): Always define HAVE_cc0.
15602         * recog.c (rest_of_handle_peephole2): Adjust.
15603
15604 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15605
15606         * reorg.c (relax_delay_slots): Don't use #if to check value of
15607         HAVE_cc0.
15608
15609 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15610
15611         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
15612         * targhooks.c (default_have_conditional_execution): Adjust.
15613
15614 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15615
15616         * rtl.h (rtvec_all_equal_p): Declare.
15617         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
15618         * rtl.c (rtvec_all_equal_p): New function.
15619         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
15620         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
15621         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
15622         * config/arm/arm.c (neon_vdup_constant): Likewise.
15623         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
15624         * config/tilegx/constraints.md (W, Y): Likewise.
15625         * config/tilepro/constraints.md (W, Y): Likewise.
15626         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
15627         (classify_immediate): Use unwrap_const_vec_duplicate.
15628         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
15629         (reg_or_v2s8bit_operand): Likewise.
15630         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
15631         (reg_or_v4s8bit_operand): Likewise.
15632
15633 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15634
15635         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
15636         (vec_shasigma_be): New #define.
15637         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
15638         (VPMSUMH): Likewise.
15639         (VPMSUMW): Likewise.
15640         (VPMSUMD): Likewise.
15641         (VPMSUM): New BU_P8V_OVERLOAD_2.
15642         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
15643         entries for VEC_MADD and VEC_VPMSUM.
15644
15645 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
15646
15647         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
15648         Multiply argument avr_n_flash by 64 to match unit of "KiB".
15649         (avr_pgm_check_var_decl): Same.
15650
15651 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
15652
15653         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
15654         initialization of HFmode scalar type (float16_t) to...
15655         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
15656         code.
15657
15658         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
15659
15660         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
15661         having an -mfp16-format.
15662
15663 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
15664
15665         * config/i386/predicates.md (vector_all_ones_operand): Use
15666         CONSTM1_RTX to simplify definition.
15667
15668 2015-08-20  Richard Biener  <rguenther@suse.de>
15669
15670         * toplev.c (compile_file): Remove loop calling late_global_decl
15671         on all symbols.
15672         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
15673         on decls we assembled.
15674
15675 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
15676
15677         * common/config/aarch64/aarch64-common.c
15678         (AARCH64_CPU_NAME_LENGTH): Delete.
15679         (aarch64_option_extension): New.
15680         (all_extensions): Likewise.
15681         (processor_name_to_arch): Likewise.
15682         (arch_to_arch_name): Likewise.
15683         (all_cores): New.
15684         (all_architectures): Likewise.
15685         (aarch64_get_extension_string_for_isa_flags): Likewise.
15686         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
15687         architecture names.
15688         * config/aarch64/aarch64-protos.h
15689         (aarch64_get_extension_string_for_isa_flags): New.
15690         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
15691         (aarch64_option_print): Get the string to print from
15692         aarch64_get_extension_string_for_isa_flags.
15693         (aarch64_declare_function_name): Likewise.
15694         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
15695         (MCPU_TO_MARCH_SPEC): This.
15696         (ASM_CPU_SPEC): Use it.
15697         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
15698         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
15699         (EXTRA_SPEC_FUNCTIONS): Use it.
15700
15701 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
15702
15703         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
15704         expansion when !ISA_HAS_LWL_LWR.
15705         (mips_block_move_straight): Update the size of elements copied to
15706         account for alignment when !ISA_HAS_LWL_LWR.
15707         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
15708
15709 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15710
15711         * expr.c (expand_expr_real_2): Check gimple statement during
15712         LSHIFT_EXPR expand.
15713
15714 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
15715
15716         * common.opt (fstack-protector): Initialize to -1.
15717         (fstack-protector-all): Likewise.
15718         (fstack-protector-strong): Likewise.
15719         (fstack-protector-explicit): Likewise.
15720         * configure.ac: Add --enable-default-ssp.
15721         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
15722         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
15723         -1.
15724         * doc/install.texi: Document --enable-default-ssp.
15725         * config.in: Regenerated.
15726         * configure: Likewise.
15727
15728 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
15729
15730         PR rtl-optimization/64164
15731         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
15732         (parm_in_stack_slot_p): ... this.  Disregard mode, what
15733         matters is whether the parm will live in a pseudo or a stack
15734         slot.
15735         (expand_one_ssa_partition): Deal with params without a default
15736         def.  Disregard mode.
15737         * cfgexpand.h: Renamed function declaration.
15738         * tree-ssa-coalesce.c: Adjust.
15739         * function.c (split_complex_args): Allocate stack slot for
15740         unassigned parms before splitting.
15741         (parm_in_unassigned_mem_p): New.  Use it instead of
15742         parm_maybe_byref_p throughout this file.
15743         (assign_parm_setup_block): Use it.  Accept pseudos in the
15744         expand-assigned rtl.
15745         (assign_parm_setup_reg): Drop BLKmode requirement.
15746         (assign_parm_setup_stack): Allocate and fill in the address of
15747         unassigned MEM parms.
15748
15749 2015-08-19  David Sherwood  <david.sherwood@arm.com>
15750
15751         * genmodes.c (emit_mode_unit_size_inline): New function.
15752         (emit_mode_unit_precision_inline): New function.
15753         (emit_insn_modes_h): Emit new #define.  Emit new functions.
15754         (emit_mode_unit_size): New function.
15755         (emit_mode_unit_precision): New function.
15756         (emit_mode_adjustments): Add mode_unit_size adjustments.
15757         (emit_insn_modes_c): Emit new arrays.
15758         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
15759         use new inline methods.
15760
15761 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15762
15763         * config/aarch64/aarch64.c (bit_count): Delete prototype
15764         and definition.
15765         (aarch64_print_operand): Use popcount_hwi instead of the above.
15766
15767 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15768
15769         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
15770         comment.
15771
15772 2015-08-19  Marek Polacek  <polacek@redhat.com>
15773
15774         PR middle-end/67133
15775         * gimple-ssa-isolate-paths.c
15776         (insert_trap_and_remove_trailing_statements): Rename to ...
15777         (insert_trap): ... this.  Don't remove trailing statements; split
15778         block instead.
15779         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
15780
15781 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
15782
15783         PR other/67042
15784         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
15785         conditionalize the whole on __GNUC__.  Add fallback code
15786         depending neither on undefined nor implementation-defined behaviour.
15787
15788 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
15789
15790         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
15791         whitespaces with tab.
15792
15793 2015-08-19  Florian Weimer  <fweimer@redhat.com>
15794
15795         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
15796         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
15797         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
15798         Move Name_Ids instantiation to the Prj.Proc package, to avoid
15799         trampolines.
15800
15801 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15802
15803         * config/arm/arm.c (bounds_check): Use %wd print format
15804         for HOST_WIDE_INT arguments.
15805
15806 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
15807
15808         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
15809         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
15810         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
15811         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
15812         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
15813         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
15814         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
15815         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
15816         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
15817         typedefs.
15818
15819 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
15820
15821         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
15822         function.c, graphite-scop-detection.c, haifa-sched.c,
15823         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
15824         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
15825         varasm.c: Remove typedefs of structs.
15826
15827 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
15828
15829         * config/rs6000/altivec.h (vec_adde): New define.
15830         (vec_addec): Likewise.
15831         (vec_double): Likewise.
15832         (vec_bperm): Likewise.
15833         (vec_gb): Likewise.
15834         * config/rs6000/rs6000-builtin.def (ADDE): New
15835         BU_ALTIVEC_OVERLOAD_3.
15836         (ADDEC): Likewise.
15837         (DOUBLE): New BU_VSX_OVERLOAD_1.
15838         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
15839         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
15840         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
15841         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
15842         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
15843         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
15844         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
15845         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
15846         and P8V_BUILTIN_VEC_VBPERMQ.
15847
15848 2015-08-18  Jason Merrill  <jason@redhat.com>
15849
15850         * print-tree.c (print_node): Handle TREE_BINFO.
15851
15852 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15853
15854         PR middle-end/36757
15855         * builtins.c (expand_builtin_signbit): Add asserts to make sure
15856         we can expand BUILT_IN_SIGNBIT inline.
15857         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
15858         * doc/extend.texi: Document the type-generic __builtin_signbit.
15859
15860 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
15861
15862         PR rtl-optimization/67218
15863         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
15864         (simplify_unary_operation_1): Use it.
15865
15866 2015-08-18  Marek Polacek  <polacek@redhat.com>
15867
15868         PR middle-end/67222
15869         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
15870         if the call isn't valid.
15871         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
15872         gimple_call_builtin_p.
15873         (call_may_clobber_ref_p_1): Likewise.
15874         (stmt_kills_ref_p): Likewise.
15875
15876 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
15877
15878         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
15879         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
15880         (mips_hard_regno_scratch_ok): Likewise.
15881         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
15882         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
15883
15884 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
15885
15886         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
15887         (determine_value_range): Call refine_value_range_using_guard for
15888         each loop initial condition to improve value range.
15889
15890 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
15891
15892         * config/i386/i386.c: Remove include of fibheap.h.
15893
15894 2015-08-17  Richard Biener  <rguenther@suse.de>
15895
15896         PR tree-optimization/67221
15897         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
15898         (sccvn_dom_walker::before_dom_children): Mark backedges of
15899         non-executable blocks as not executable.
15900
15901 2015-08-17  David Sherwood  <david.sherwood@arm.com>
15902
15903         * config/arm/arm.c (neon_element_bits): Replace call to
15904         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
15905         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
15906         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
15907         (neon_vdup_lane<mode>): Likewise.
15908         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
15909         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
15910         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
15911         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15912         * config/spu/spu.c (arith_immediate_p): Likewise.
15913         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
15914         * expr.c (expand_expr_real_2): Likewise.
15915         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
15916         * simplify-rtx.c (simplify_immed_subreg): Likewise.
15917         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
15918         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
15919         New variable.
15920         * fold-const.c (fold_binary_loc): Replace call to
15921         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
15922         GET_MODE_UNIT_PRECISION (m).
15923
15924 2015-08-17  Mike Stump  <mikestump@comcast.net>
15925
15926         * config/arm/arm.c (arm_block_move_unaligned_straight):
15927         Emit normal move instead of unaligned load when source or destination
15928         are appropriately aligned.
15929
15930 2015-08-17  Richard Biener  <rguenther@suse.de>
15931             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15932
15933         PR middle-end/16107
15934         * match.pd (div (coss (op @0) : New simplifier.
15935
15936 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
15937
15938         PR rtl-optimization/64164
15939         PR bootstrap/66978
15940         PR middle-end/66983
15941         PR rtl-optimization/67000
15942         PR middle-end/67034
15943         PR middle-end/67035
15944         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
15945         * tree-ssa-copyrename.c: Removed.
15946         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
15947         -ftree-coalesce-vars.
15948         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
15949         * common.opt (ftree-copyrename): Ignore.
15950         (ftree-coalesce-inlined-vars): Likewise.
15951         * doc/invoke.texi: Remove the ignored options above.
15952         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
15953         * tree-ssa-coalesce.h: ... here.
15954         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
15955         headers required by it.
15956         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
15957         across variables when flag_tree_coalesce_vars.  Check register
15958         use and promoted modes to allow coalescing.  Do not coalesce
15959         maybe-byref parms with SSA_NAMEs of other variables, or
15960         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
15961         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
15962         with its member functions to tree-ssa-coalesce.c.
15963         (var_map_base_init): Likewise.  Renamed to
15964         compute_samebase_partition_bases.
15965         (partition_view_normal): Drop want_bases parameter.
15966         (partition_view_bitmap): Likewise.
15967         * tree-ssa-live.h: Adjust declarations.
15968         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
15969         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
15970         default defs at the entry point.
15971         (dump_part_var_map): New.
15972         (compute_optimized_partition_bases): New, called by...
15973         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
15974         of compute_samebase_partition_bases.  Adjust.
15975         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
15976         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
15977         (ssa_default_def_partition): New.
15978         (get_rtl_for_parm_ssa_default_def): New.
15979         (align_local_variable, add_stack_var): Support anonymous SSA
15980         names.
15981         (defer_stack_allocation): Likewise.  Declare earlier.
15982         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
15983         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
15984         Do no record deferred-allocation marker in
15985         SA.partition_to_pseudo.
15986         (expand_stack_vars): Adjust check for the marker in it.
15987         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
15988         redundant MEM attr setting.
15989         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
15990         from...
15991         (expand_one_stack_var): ... this.  New wrapper to check and
15992         skip already expanded SSA partitions.
15993         (record_alignment_for_reg_var): New, factored out of...
15994         (expand_one_var): ... this.
15995         (expand_one_ssa_partition): New.
15996         (adjust_one_expanded_partition_var): New.
15997         (expand_one_register_var): Check and skip already expanded SSA
15998         partitions.
15999         (expand_used_vars): Don't create DECLs for anonymous SSA
16000         names.  Expand all SSA partitions, then adjust all SSA names.
16001         (pass::execute): Replace the loops that set
16002         SA.partition_to_pseudo from partition leaders and cleared
16003         DECL_RTL for multi-location variables, and that which used to
16004         rename vars and set attrs, with one that clears DECL_RTL and
16005         checks that PARMs and RESULTs default_defs match DECL_RTL.
16006         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
16007         * emit-rtl.c: Include stor-layout.h.
16008         (set_reg_attrs_for_parm): Handle NULL decl.
16009         (set_reg_attrs_for_decl_rtl): Take mode from expression if
16010         it's not a DECL.
16011         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
16012         rather than its possibly-NULL DECL.
16013         * explow.c (promote_ssa_mode): New.
16014         * explow.h (promote_ssa_mode): Declare.
16015         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16016         (read_complex_part): Export.
16017         * expr.h (read_complex_part): Declare.
16018         * cfgexpand.h (parm_maybe_byref_p): Declare.
16019         * function.c: Include cfgexpand.h.
16020         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16021         (use_register_for_parm_decl): Wrapper for the above to
16022         special-case the result_ptr.
16023         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16024         (split_complex_args): Take assign_parm_data_all argument.
16025         Pass it to rtl_for_parm.  Set up rtl and context for split
16026         args.  Reset complex parm before fetching its default decl
16027         rtl.
16028         (assign_parms_unsplit_complex): Use the default-def complex
16029         parm rtl if it matches the components.
16030         (assign_parms_augmented_arg_list): Adjust.
16031         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16032         multiple locations.  Recognize split complex args.
16033         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16034         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16035         (assign_parm_setup_block): Prefer SSA-assigned location, and
16036         fill in its address if the memory location of a maybe-byref
16037         parm was not assigned by cfgexpand.
16038         (assign_parm_setup_reg): Likewise.  Adjust its mode as
16039         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
16040         sure passed_pointer parms don't need conversion.  Copy address
16041         or value as needed.
16042         (assign_parm_setup_stack): Prefer SSA-assigned location.
16043         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16044         rtl before testing for pointer bounds.  Special-case result_ptr.
16045         (expand_function_start): Maybe reset DECL_RTL of result.
16046         Prefer SSA-assigned location for result and static chain.
16047         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
16048         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
16049         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16050         anonymous SSA names.  Use promote_ssa_mode.
16051         (get_temp_reg): Likewise.
16052         (remove_ssa_form): Adjust.
16053         * stor-layout.c (layout_decl): Don't set mem attributes of
16054         non-MEMs.
16055         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16056         and get its reg_usage for reg invalidation.
16057         (compute_bb_dataflow): Pass it insn.
16058         (emit_notes_in_bb): Likewise.
16059
16060 2015-08-14  Marek Polacek  <polacek@redhat.com>
16061
16062         * tree-core.h (tree_base): Fix typo.
16063
16064 2015-08-14  Marek Polacek  <polacek@redhat.com>
16065
16066         PR middle-end/67133
16067         * gimple.c (infer_nonnull_range_by_attribute): Check that the
16068         nonnull argument position is not outside function arguments.
16069
16070 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
16071
16072         PR target/67143
16073         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
16074         'lconst_atomic' with 'const_atomic'.
16075         (atomic_fetch_<optab><mode>): Likewise.
16076         (atomic_<optab>_fetch<mode>): Likewise.
16077         * config/aarch64/iterators.md (lconst-atomic): Move below
16078         'const_atomic'.
16079         (const_atomic): New.
16080
16081 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
16082             Bernd Schmidt  <bernds@codesourcery.com>
16083
16084         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
16085         debug options.
16086         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
16087         (DWARF2_DEBUGGING_INFO): Don't define.
16088         * debug.h (dwarf2_lineno_debug_hooks): Declare.
16089         * toplev.c (process_options): Add a case for it.
16090         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
16091         (dwarf2out_init): Skip most initializations if
16092         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
16093         case.
16094         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
16095         DWARF2_LINENO_DEBUGGING_INFO.
16096         * opts.c (set_debug_level): Likewise.
16097
16098 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
16099
16100         * config/arm/types.md (is_neon_type): Add missing types.
16101
16102 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
16103
16104         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
16105         for skylake.
16106         * config/i386/i386.c (PTA_SKYLAKE): New macros.
16107         (processor_alias_table): Add skylake description.
16108         (enum processor_model): Add skylake processor.
16109         (arch_names_table): Add skylake record.
16110         * doc/invoke.texi: Add skylake item.
16111
16112 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
16113
16114         * ira-int.h: Include recog.h.
16115         * ira-build.c: Don't include recog.h.
16116         * ira-color.c: Likewise.
16117         * ira-conflicts.c: Likewise.
16118         * ira-costs.c: Likewise.
16119         * ira-emit.c: Likewise.
16120         * ira-lives.c: Likewise.
16121         * ira.c: Likewise.
16122         * sched-deps.c: Likewise.
16123         * sel-sched.c: Likewise.
16124         * target-globals.c: Likewise.
16125
16126 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
16127
16128         PR bootstrap/55035
16129         * reload1.c (elimination_costs_in_insn): Make it obvious to the
16130         compiler that the n_dups and n_operands loop bounds are invariant.
16131
16132 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16133
16134         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
16135         expressions in A and B.
16136
16137 2015-08-13  Richard Biener  <rguenther@suse.de>
16138
16139         * tree.c (nonnull_arg_p): Move from ...
16140         * tree-vrp.c (nonnull_arg_p): ... here.
16141         * tree.h (nonnull_arg_p): Declare.
16142         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
16143         here, register ptr != 0 for nonnull_arg_p pointer arguments.
16144         Properly initialize static chain and by-reference result pointer.
16145         (run_scc_vn): Adjust.
16146
16147 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16148
16149         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
16150         TUNE_I6400.
16151
16152 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16153
16154         * config/aarch64/aarch64-protos.h
16155         (aarch64_gen_atomic_cas): Declare.
16156         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
16157         Choose appropriate instruction pattern for the target.
16158         (aarch64_gen_atomic_cas): New.
16159         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
16160         (atomic_compare_and_swap<mode>_1): Rename to
16161         aarch64_compare_and_swap<mode>.  Fix some indentation.
16162         (aarch64_compare_and_swap<mode>_lse): New.
16163         (aarch64_atomic_cas<mode>): New.
16164
16165 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
16166
16167         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
16168         (TARGET_LSE): New.
16169
16170 2015-08-13  Richard Biener  <rguenther@suse.de>
16171
16172         PR tree-optimization/67191
16173         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
16174         assert we value-numbered last stmts operand because it can validly
16175         trigger for unreachable code.
16176
16177 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16178
16179         PR rtl-optimization/67103
16180         * ifcvt.c (noce_try_store_flag_constants): Move
16181         x = (-(test != 0) & (b - a)) + a transformation to...
16182         (noce_try_cmove): ... Here.  Try it if normal conditional
16183         move fails.
16184
16185 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
16186
16187         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
16188         pseudo-processors.
16189         * config/mips/mips.md (processor): Remove w32 and w64.
16190
16191 2015-08-13  Richard Biener  <rguenther@suse.de>
16192
16193         PR tree-optimization/66502
16194         PR tree-optimization/67167
16195         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
16196         backedge arguments.
16197         (vn_phi_lookup): Adjust.
16198         (vn_phi_insert): Likewise.
16199         (visit_phi): Prefer to value-number to another PHI node
16200         over value-numbering to a PHI argument.
16201         (init_scc_vn): Mark DFS back edges.
16202
16203 2015-08-13  Richard Biener  <rguenther@suse.de>
16204
16205         * gimple.h (gcall::code_): New constant static member.
16206         (gcond::code_): Likewise.
16207         * gimple.c (gcall::code_): Define.
16208         (gcond::code_): Likewise.
16209         (is_a_helper <const gcond *>): Add.
16210         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
16211         and forward to a new gcall overload with less checking and a
16212         cheaper way to access the operand.
16213         (gimple_call_lhs_ptr): Likewise.
16214         (gimple_call_set_lhs): Likewise.
16215         (gimple_call_internal_p): Likewise.
16216         (gimple_call_with_bounds_p): Likewise.
16217         (gimple_call_set_with_bounds): Likewise.
16218         (gimple_call_internal_fn): Likewise.
16219         (gimple_call_set_ctrl_altering): Likewise.
16220         (gimple_call_ctrl_altering_p): Likewise.
16221         (gimple_call_fntype): Likewise.
16222         (gimple_call_fn): Likewise.
16223         (gimple_call_fn_ptr): Likewise.
16224         (gimple_call_set_fndecl): Likewise.
16225         (gimple_call_fndecl): Likewise.
16226         (gimple_call_chain): Likewise.
16227         (gimple_call_num_args): Likewise.
16228         (gimple_call_arg): Likewise.
16229         (gimple_call_arg_ptr): Likewise.
16230         (gimple_call_set_arg): Likewise.
16231         (gimple_call_noreturn_p): Likewise.
16232         (gimple_cond_code): Likewise.
16233         (gimple_cond_lhs): Likewise.
16234         (gimple_cond_rhs): Likewise.
16235         (gimple_has_lhs): Reduce checking.
16236
16237 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16238
16239         PR middle-end/25529
16240         * match.pd (div (mult @0 @1) @1) : New simplifier.
16241
16242 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
16243
16244         PR target/67071
16245         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
16246         predicate to allow construction of vector constants using the
16247         VSLDOI vector shift instruction.
16248
16249         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
16250         declaration.
16251
16252         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
16253         the number of bytes to be shifted left and filled in with either
16254         all zero or all one bits.
16255         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
16256         methods exist.
16257         (output_vec_const_move): On power8, generate XXLORC to generate
16258         a vector constant with all 1's. Do a split if we need to use a
16259         VSLDOI instruction.
16260
16261         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
16262         properly test for the MSB.
16263
16264         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
16265         vector constants that can be created with VSLDOI.
16266
16267 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16268
16269         revert:
16270         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16271         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16272         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16273         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16274         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16275         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16276         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16277         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16278         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16279
16280 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
16281
16282         * config/xtensa/constraints.md (define_constraint "Y"): New
16283         constraint.
16284         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
16285         * config/xtensa/linux.h (ASM_SPEC): Likewise.
16286         * config/xtensa/predicates.md (move_operand): Match constants
16287         and symbols in the presence of TARGET_AUTO_LITPOOLS.
16288         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
16289         immediate references to TLS data.
16290         (xtensa_emit_move_sequence): Don't force constants to memory in
16291         the presence of TARGET_AUTO_LITPOOLS.
16292         (print_operand): Add 'y' format, same as default, but capable of
16293         printing SF mode constants as well.
16294         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
16295         (movsf_internal): Add movi pattern that loads literal.
16296         (movsf, movdf): Don't force constants to memory in the presence
16297         of TARGET_AUTO_LITPOOLS.
16298         (movdf_internal): Add 'Y' constraint.
16299         * config/xtensa/xtensa.opt (mauto-litpools): New option.
16300         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
16301
16302 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16303
16304         * config/arm/arm-fpus.def: Replace booleans with feature flags.
16305         Update comment.
16306         * config/arm/arm.c (ARM_FPU): Update macro.
16307         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
16308         (TARGET_FP16): Likewise.
16309         (TARGET_CRYPTO): Likewise.
16310         (TARGET_NEON): Likewise.
16311         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
16312         field features.
16313
16314 2015-08-12  Tom de Vries  <tom@codesourcery.com>
16315
16316         PR other/67092
16317         PR other/67098
16318         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
16319         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
16320         accordingly.  Mention default for --with-stage1-ldflags.
16321
16322 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
16323
16324         * config/arm/arm.h (arm_fpu_feature_set): New.
16325         (ARM_FPU_FSET_HAS): New.
16326         (FPU_FL_NONE): New.
16327         (FPU_FL_NEON): New.
16328         (FPU_FL_FP16): New.
16329         (FPU_FL_CRYPTO): New.
16330
16331 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16332
16333         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
16334         after -mcmodel=large -fPIC sorry.
16335
16336 2015-08-12  Richard Biener  <rguenther@suse.de>
16337
16338         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
16339         comparison operand order and commutative ternary op operand order.
16340         (sccvn_dom_walker::cond_stack): New state to track temporary
16341         expressions.
16342         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
16343         no longer valid.
16344         (sccvn_dom_walker::record_cond): Add a single temporary conditional
16345         expression.
16346         (sccvn_dom_walker::record_conds): Add a temporary conditional
16347         expressions and all related expressions also true/false.
16348         (sccvn_dom_walker::before_dom_children): Record temporary
16349         expressions based on the controlling condition of a single
16350         predecessor.  When trying to simplify a conditional statement
16351         lookup expressions we might have inserted earlier.
16352
16353 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
16354
16355         PR target/67127
16356         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
16357         to ARM core registers.
16358
16359 2015-08-12  Nathan Sidwell  <nathan@acm.org>
16360
16361         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
16362         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
16363
16364 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
16365
16366         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
16367         line with comments.
16368         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
16369
16370 2015-08-12  Richard Biener  <rguenther@suse.de>
16371
16372         * gimple.h (remove_pointer): New trait.
16373         (GIMPLE_CHECK2): New inline template function.
16374         (gassign::code_): New constant static member.
16375         (is_a_helper<const gassign *>): Add.
16376         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
16377         and forward to a new gassign overload with less checking and a
16378         cheaper way to access the operand.
16379         (gimple_assign_lhs_ptr): Likewise.
16380         (gimple_assign_set_lhs): Likewise.
16381         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
16382         Likewise.
16383         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
16384         Likewise.
16385         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
16386         Likewise.
16387         (gimple_assign_rhs_code): Likewise.
16388         * gimple.c (gassign::code_): Define.
16389
16390 2015-08-12  Richard Biener  <rguenther@suse.de>
16391
16392         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16393         Eliminate edges marked as not executable by SCCVN.
16394         * tree-ssa-sccvn.c: Include gimple-iterator.h.
16395         (cond_dom_walker): Rename to sccvn_dom_walker.
16396         (sccvn_dom_walker::before_dom_children): Value-number defs
16397         of all stmts.
16398         (run_scc_vn): Remove loop value-numbering all SSA names.
16399         Drop not visited SSA names to varying.
16400
16401 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
16402
16403         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
16404         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
16405         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
16406         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
16407         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
16408         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
16409         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
16410         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
16411         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
16412
16413 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
16414
16415         PR target/66954
16416         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
16417         to enum feature_priority and feature_list.
16418         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
16419         and isa_names_table.
16420
16421 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16422
16423         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
16424         vect_induction_def.
16425
16426 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16427
16428         PR c/66098
16429         PR c/66711
16430         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
16431         account when deciding what was the command-line status.
16432
16433 2015-08-11  Nathan Sidwell  <nathan@acm.org>
16434
16435         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
16436
16437         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
16438         we're not the only contributor to target phi.
16439
16440 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
16441
16442         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
16443         FIXED_REG0.
16444
16445 2015-08-11  Tom de Vries  <tom@codesourcery.com>
16446
16447         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
16448
16449 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
16450
16451         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
16452         with CPU_SLM.
16453         * config/i386/i386.md (cpu): Remove knl.
16454
16455 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16456
16457         PR libgomp/65742
16458         PR middle-end/66332
16459         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
16460         open-coded sequence.
16461         * omp-low.c (oacc_process_reduction_data): Remove handline of
16462         GOMP_DEVICE_HOST_NONSHM.
16463
16464         * lto-streamer-in.c (lto_input_mode_table): Adjust to
16465         GET_MODE_INNER changes.
16466
16467 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
16468             Ilya Verbin  <ilya.verbin@intel.com>
16469
16470         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
16471
16472 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16473
16474         * doc/options.texi (EnabledBy): Document that the argument must be
16475         a Common option.
16476         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
16477         Not enabled by -Wall.
16478         * optc-gen.awk: Give nicer error messages. Detect if the argument
16479         of EnabledBy is not a Common option.
16480         * common.opt (Wnull-dereference): Not enabled by -Wall.
16481         * opt-functions.awk (lang_enabled_by): Nicer error messages.
16482
16483 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16484
16485         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
16486         model == 0x4f as Broadwell.
16487
16488 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
16489
16490         PR rtl-optimization/67028
16491         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
16492         Add test to see if a const_int fits in the new mode.
16493
16494 2015-08-07  DJ Delorie  <dj@redhat.com>
16495
16496         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
16497
16498 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
16499
16500         PR rtl-optimization/67029
16501         * ira-color.c: Include "recog.h" before including "ira-int.h".
16502         * target-globals.c: Likewise.
16503         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
16504         adds an alternative_mask argument and use it instead of
16505         preferred_alternatives.
16506         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
16507         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
16508         * sched-deps.c: Include "ira-int.h" after including "ira.h".
16509         (sched_analyze_insn): Update call to
16510         ira_implicitly_set_insn_hard_regs.
16511         * sel-sched.c: Include "ira-int.h" after including "ira.h".
16512         (implicit_clobber_conflict_p): Update call to
16513         ira_implicitly_set_insn_hard_regs.
16514
16515 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16516
16517         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
16518
16519 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16520
16521         PR target/67002
16522         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
16523         currently_expanding_to_rtl is set.
16524
16525 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
16526
16527         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
16528         * configure: Regenerate.
16529
16530 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16531             Jiong Wang  <jiong.wang@arm.com>
16532
16533         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
16534         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
16535         (REG_CLASS_NAMES): Likewise.
16536         (REG_CLASS_CONTENTS): Likewise.
16537         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
16538         (aarch64_register_move_cost): Likewise.
16539         (aarch64_load_symref_appropriately): Invoke the new added pattern if
16540         possible.
16541         * config/aarch64/constraints.md (Uc0): New constraint.
16542
16543 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16544
16545         * config/aarch64/constraints.md (Usf): Add the test of
16546         aarch64_is_noplt_call_p.
16547
16548 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
16549
16550         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
16551         declaration.
16552         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
16553         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
16554         (call_symbol): Likewise.
16555
16556 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
16557
16558         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
16559         for vectorizing multiplication patterns.
16560         * tree-vectorizer.h: Adjust the number of patterns.
16561
16562 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
16563
16564         * config/i386/sse.md (*vec_concatv2df): Declare added
16565         alternatives as sselog type.
16566
16567 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16568
16569         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
16570         all GPRs.
16571
16572 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16573
16574         * config/s390/s390.c (s390_expand_tbegin): Expand either
16575         tbegin_1_z13 or tbegin_1 depending on VX flag.
16576         * config/s390/s390.md ("tbegin_1_z13"): New expander.
16577
16578 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16579
16580         * config/s390/s390.opt: Clarify description for -mzvector
16581         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
16582         -mzvector.
16583
16584 2015-08-06  Richard Biener  <rguenther@suse.de>
16585
16586         * gimple.h (gimple_call_set_fn): Access op member directly.
16587         (gimple_call_chain_ptr): Likewise.
16588         (gimple_call_set_chain): Likewise.
16589         (gimple_cond_lhs_ptr): Likewise.
16590         (gimple_cond_set_lhs): Likewise.
16591         (gimple_cond_rhs_ptr): Likewise.
16592         (gimple_cond_set_rhs): Likewise.
16593         (gimple_cond_true_label): Likewise.
16594         (gimple_cond_set_true_label): Likewise.
16595         (gimple_cond_set_false_label): Likewise.
16596         (gimple_cond_false_label): Likewise.
16597         (gimple_label_label): Likewise.
16598         (gimple_label_set_label): Likewise.
16599         (gimple_goto_set_dest): Likewise.
16600         (gimple_asm_input_op): Likewise.
16601         (gimple_asm_input_op_ptr): Likewise.
16602         (gimple_asm_set_input_op): Likewise.
16603         (gimple_asm_output_op): Likewise.
16604         (gimple_asm_output_op_ptr): Likewise.
16605         (gimple_asm_set_output_op): Likewise.
16606         (gimple_asm_clobber_op): Likewise.
16607         (gimple_asm_set_clobber_op): Likewise.
16608         (gimple_asm_label_op): Likewise.
16609         (gimple_asm_set_label_op): Likewise.
16610         (gimple_switch_index): Likewise.
16611         (gimple_switch_index_ptr): Likewise.
16612         (gimple_return_retval_ptr): Likewise.
16613         (gimple_return_retval): Likewise.
16614         (gimple_return_set_retval): Likewise.
16615         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
16616         (gimple_switch_label): Likewise.
16617         (gimple_switch_set_label): Likewise.
16618
16619 2015-08-06  Richard Biener  <rguenther@suse.de>
16620
16621         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
16622         bool comparison canonicalization and restrict to integers.
16623
16624 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
16625
16626         * coretypes.h (enum symbol_visibility): Relocate here.
16627         * flag-types.h (enum symbol_visibility): Remove.
16628         * tree-core.h (enum symbol_visibility): Remove.
16629
16630 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
16631
16632         PR target/66870
16633         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
16634         for no_split_stack function attribute along with
16635         flag_split_stack.
16636         (rs6000_expand_split_stack_prologue): Likewise.
16637
16638 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16639             Jeff Law  <law@redhat.com>
16640
16641         PR c/16351
16642         * doc/invoke.texi (Wnull-dereference): New.
16643         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
16644         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
16645         Warn for potential NULL dereferences.
16646         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
16647         * ubsan.c (instrument_nonnull_arg): Call
16648         infer_nonnull_range_by_attribute.
16649         (instrument_nonnull_return): Likewise.
16650         * common.opt (Wnull-dereference); New.
16651         * gimple.c (infer_nonnull_range): Remove bool arguments.
16652         (infer_nonnull_range_by_dereference): New.
16653         (infer_nonnull_range_by_attribute): New.
16654         * gimple.h: Update declarations.
16655
16656 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16657
16658         * gensupport.c (sequence_num): Replace with...
16659         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
16660         ...these new variables.
16661         (init_rtx_reader_args_cb): Update accordingly.
16662         (get_num_code_insns): Likewise.
16663         (read_md_rtx): Rework to use a while loop and get_c_test.
16664         Use the new counters.  Remove redundant DEFINE_SUBST case.
16665         * genoutput.c (gen_split): Delete.
16666         (main): Don't call it.
16667
16668 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16669
16670         * gensupport.h (get_c_test): Declare.
16671         * gensupport.c (get_c_test): New function.
16672         * genconditions.c (main): Use it.
16673         * genrecog.c (validate_pattern): Likewise.
16674         (match_pattern_1): Likewise.  Remove c_test argument.
16675         (match_pattern): Update accordingly and remove c_test argument.
16676         (main): Update accordingly.
16677
16678 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16679
16680         * gensupport.h (get_num_insn_codes): Declare.
16681         * gensupport.c (get_num_insn_codes): New function.
16682         * genattrtab.c (optimize_attrs): Rename max_insn_code to
16683         num_insn_codes.
16684         (main): Likewise.  Use get_num_insn_codes.
16685         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
16686
16687 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16688
16689         PR middle-end/66311
16690         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
16691         is zero- rather than sign-extended.
16692
16693 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
16694
16695         * target-insns.def (can_extend): Delete.
16696
16697 2015-08-05  Richard Biener  <rguenther@suse.de>
16698
16699         PR tree-optimization/67121
16700         * tree-if-conv.c (combine_blocks): Clear range-info produced
16701         by stmts no longer executed conditionally.
16702
16703 2015-08-05  Nick Clifton  <nickc@redhat.com>
16704
16705         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
16706         to allow identical far pointers to remain.
16707
16708 2015-08-05  Richard Biener  <rguenther@suse.de>
16709
16710         PR middle-end/67120
16711         * match.pd: Compare address bases with == if they are decls
16712         or SSA names, not operand_equal_p.  Otherwise fail.
16713
16714 2015-08-05  Richard Biener  <rguenther@suse.de>
16715
16716         PR tree-optimization/67055
16717         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
16718         NULL gimple_block.
16719
16720         * g++.dg/torture/pr67055.C: New testcase.
16721
16722 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16723
16724         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
16725         noavx512vl.
16726         (define_attr "enabled"): Handle avx521vl and noavx512vl.
16727         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
16728         AVX-512 alternative out of SSE.
16729         (define_insn "*vec_concatv2df"): Ditto.
16730
16731 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
16732
16733         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
16734         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
16735         CODE_FOR_avx_ptestv4di.
16736         * config/i386/sse.md (define_mode_iterator V_AVX): New.
16737         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
16738         (define_insn "avx_ptest256"): Merge this ...
16739         (define_insn "sse4_1_ptest"): And this ...
16740         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
16741
16742 2015-08-05  Richard Biener  <rguenther@suse.de>
16743
16744         PR tree-optimization/67109
16745         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
16746         against too big groups.  Print whether this is a load or store
16747         group.  Rename from ...
16748         (vect_analyze_group_access): ... this which is now a wrapper
16749         dissolving an invalid group.
16750         (vect_analyze_data_ref_accesses): Print whether this is a load
16751         or store group.
16752
16753 2015-08-05  Richard Biener  <rguenther@suse.de>
16754
16755         PR middle-end/67107
16756         * match.pd: Guard const_binop result checking against NULL_TREE
16757         result.
16758
16759 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
16760
16761         * cse.c (cse_insn): Restoring old behaviour for src_eqv
16762          when dest and value in the REG_EQUAL are same and dest
16763          is STRICT_LOW_PART.
16764
16765 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
16766
16767         * config/moxie/moxie.h (PRINT_OPERAND,
16768           PRINT_OPERAND_ADDRESS): Remove macros.
16769         * config/moxie/moxie-protos.h (moxie_print_operand,
16770           moxie_print_operand_address): Remove declaration.
16771         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
16772           TARGET_PRINT_OPERAND_ADDRESS): Define.
16773           (moxie_print_operand, moxie_print_operand_address): Make static.
16774
16775 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16776
16777         PR target/66731
16778         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
16779         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
16780
16781 2015-08-04  Richard Biener  <rguenther@suse.de>
16782
16783         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
16784         generated code.
16785         (dt_operand::gen_gimple_expr): Adjust.
16786
16787 2015-08-04  Richard Biener  <rguenther@suse.de>
16788
16789         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
16790         bool compares on RHS.
16791         * match.pd: Add X ==/!= !X is false/true pattern.
16792
16793 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
16794
16795         * config/aarch64/aarch64.c: Change inner loop statement cost
16796         to be consistent with other targets.
16797
16798 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
16799
16800         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
16801         targets.
16802
16803 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
16804
16805         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
16806         (machine_function): Remove pseudos field.
16807
16808 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16809
16810         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16811         Exit early and use target_option_current_node if processing current
16812         pragma.
16813
16814 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16815
16816         * doc/extend.texi (AArch64 Function Attributes): New node.
16817         (AArch64 Pragmas): Likewise.
16818
16819 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16820
16821         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
16822         Initialize simd builtins if TARGET_SIMD.
16823         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16824         Make sure that the builtins are initialized only once no matter how
16825         many times the function is called.
16826         (aarch64_init_builtins): Unconditionally initialize crc builtins.
16827         (aarch64_relayout_simd_param): New function.
16828         (aarch64_simd_expand_args): Use above during argument expansion.
16829         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
16830         simd builtins if TARGET_SIMD.
16831         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
16832         prototype.
16833         (aarch64_relayout_simd_types): Likewise.
16834
16835 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16836
16837         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
16838         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
16839         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
16840         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16841         static keyword.
16842         (aarch64_reset_previous_fndecl): New function.
16843         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
16844         the string.
16845         * config/aarch64/aarch64-c.c: New file.
16846         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
16847         Push and pop options at beginning and end.  Remove ifdef
16848         __ARM_FEATURE_CRC32.
16849         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
16850         Add pragma +nothing+simd and +nothing+crypto where appropriate.
16851         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
16852         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
16853         Define prototype.
16854         (aarch64_register_pragmas): Likewise.
16855         (aarch64_reset_previous_fndecl): Likewise.
16856         (aarch64_process_target_attr): Likewise.
16857         (aarch64_override_options_internal): Likewise.
16858
16859 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16860
16861         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
16862         New function.
16863         (aarch64_can_inline_p): Likewise.
16864         (TARGET_CAN_INLINE_P): Define.
16865
16866 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16867
16868         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16869         Remove static.  Handle OPT_mgeneral_regs_only,
16870         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
16871         OPT_momit_leaf_frame_pointer.
16872         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
16873         (aarch64_attr_opt_type): New enum.
16874         (aarch64_attribute_info): New struct.
16875         (aarch64_handle_attr_arch): New function.
16876         (aarch64_handle_attr_cpu): Likewise.
16877         (aarch64_handle_attr_tune): Likewise.
16878         (aarch64_handle_attr_isa_flags): Likewise.
16879         (aarch64_attributes): New table.
16880         (aarch64_process_one_target_attr): New function.
16881         (num_occurences_in_str): Likewise.
16882         (aarch64_process_target_attr): Likewise.
16883         (aarch64_option_valid_attribute_p): Likewise.
16884         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
16885         * config/aarch64/aarch64-protos.h: Include input.h
16886         (aarch64_handle_option): Declare prototype.
16887
16888 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16889
16890         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
16891         * config/aarch64/aarch64.c: Include target-globals.h
16892         (aarch64_previous_fndecl): New variable.
16893         (aarch64_set_current_function): New function.
16894         (TARGET_SET_CURRENT_FUNCTION): Define.
16895
16896 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16897
16898         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
16899         (explicit_arch): Likewise.
16900         (x_aarch64_isa_flags): Likewise.
16901         (mgeneral-regs-only): Mark as Save.
16902         (mfix-cortex-a53-835769): Likewise.
16903         (mcmodel=): Likewise.
16904         (mstrict-align): Likewise.
16905         (momit-leaf-frame-pointer): Likewise.
16906         (mtls-dialect): Likewise.
16907         (master=): Likewise.
16908         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
16909         (aarch64_isa_flags): Remove extern declaration.
16910         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
16911         to indicate success or failure.
16912         (aarch64_validate_march): Likewise.
16913         (aarch64_validate_mtune): Likewise.
16914         (aarch64_isa_flags): Delete.
16915         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
16916         instead of aarch64_isa_flags.
16917         (aarch64_get_tune_cpu): New function.
16918         (aarch64_get_arch): Likewise.
16919         (aarch64_override_options): Use above and set up explicit_tune_core
16920         and explicit_arch.
16921         (aarch64_print_extension): Move earlier in file.  Add isa_flags
16922         argument and use that instead of the global aarch64_isa_flags.
16923         (aarch64_option_save): New function.
16924         (aarch64_option_restore): Likewise.
16925         (aarch64_option_print): Likewise.
16926         (aarch64_declare_function_name): Likewise.
16927         (aarch64_start_file): Delete.
16928         (TARGET_ASM_FILE_START): Do not define.
16929         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
16930         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
16931         Declare prototype.
16932
16933 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16934
16935         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
16936         flag_omit_leaf_frame_pointer to 2.
16937
16938 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16939
16940         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
16941         define to 0 or 1.
16942         (TARGET_FIX_ERR_A53_835769): New macro.
16943         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16944         handling of opts->x_aarch64_fix_a53_err835769.
16945         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
16946         than aarch64_fix_a53_err835769.
16947         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
16948         * config/aarch64/aarch64-linux.h: Likewise.
16949
16950 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
16951
16952         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
16953         ix86_expand_int_movcc as boolean.
16954
16955 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16956
16957         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
16958         (aarch64_cpu_string): Likewise.
16959         (aarch64_tune_string): Likewise.
16960         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
16961         (aarch64_parse_extension): Return aarch64_parse_opt_result.
16962         Add extra argument to put result into.
16963         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
16964         (aarch64_parse_cpu): Add arguments to put results into. Return
16965         aarch64_parse_opt_result.
16966         (aarch64_parse_tune): Likewise.
16967         (aarch64_override_options_after_change_1): New function.
16968         (aarch64_override_options_internal): New function.
16969         (aarch64_validate_mcpu): Likewise.
16970         (aarch64_validate_march): Likewise.
16971         (aarch64_validate_mtune): Likewise.
16972         (aarch64_override_options): Update to reflect above changes.
16973         Move some logic into aarch64_override_options_internal.
16974         Initialize target_option_default_node and target_option_current_node.
16975         (aarch64_override_options_after_change): Move logic into
16976         aarch64_override_options_after_change_1 and call it with global_options.
16977         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
16978         flag values from that.
16979
16980 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16981
16982         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16983         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
16984         * config/aarch64/aarch64.c (struct processor): Add arch field.
16985         (all_architectures): Handle above, move above all_cores.
16986         (all_cores): Handle above.
16987         (aarch64_parse_arch): Handle above changes.
16988         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
16989         above.  Update comments.
16990         (armv8.1-a): Likewise.
16991         * config/aarch64/aarch64-cores.def: Update according to above.
16992         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
16993         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
16994         aarch64_arch_driver_info.
16995
16996 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16997
16998         * config/aarch64/aarch64.c (struct processor): Add ident field.
16999         Rename core sched_core.
17000         (all_cores): Handle above changes.
17001         (all_architectures): Likewise.
17002         (aarch64_parse_arch): Likewise.
17003         (aarch64_override_options): Likewise.
17004
17005 2015-08-04  Richard Biener  <rguenther@suse.de>
17006
17007         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
17008         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
17009         comparisons embedded in [VEC_]COND_EXPRs.
17010
17011 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
17012
17013         * tree-if-conv.c: Fix various typos in comments.
17014         * tree-vect-stmts.c: Likewise.
17015
17016 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17017
17018         PR tree-optimization/67043
17019         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
17020         preheader after hoisting invariant in it.
17021         (find_defs): Force recomputation of all luids.
17022
17023 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
17024
17025         * config/rs6000/htm.md (tabort.): Restrict the source operand to
17026         using a base register.
17027
17028 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
17029
17030         * main.c (main): Pass in NULL for toplev's external_timer.
17031         * timevar.c: Include coretypes.h.
17032         (class timer::named_items): New.
17033         (timer::named_items::named_items): New.
17034         (timer::named_items::~named_items): New.
17035         (timer::named_items::push): New.
17036         (timer::named_items::pop): New.
17037         (timer::named_items::print): New.
17038         (timer::timer): Initialize field "m_jit_client_items".
17039         (timer::~timer): New.
17040         (timer::push): Move bulk of implementation to...
17041         (timer::push_internal): ...here.  New function.
17042         (timer::pop): Move bulk of implementation to...
17043         (timer::pop_internal): ...here.  New function.
17044         (timer::push_client_item): New.
17045         (timer::pop_client_item): New.
17046         (timer::print_row): New function, taken from timer::print.
17047         (timer::print): Print "GCC items" header if we also have client
17048         items.  Move row-printing to timer::print_row.  Print any client
17049         items.
17050         (timer::get_topmost_item_name): New method.
17051         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
17052         (TV_JIT_CLIENT_CODE): New.
17053         * timevar.h (timer::push_client_item): New declaration.
17054         (timer::pop_client_item): New declaration.
17055         (timer::get_topmost_item_name): New method.
17056         (timer::push_internal): New declaration.
17057         (timer::pop_internal): New declaration.
17058         (timer::print_row): New declaration.
17059         (timer::named_items): New declaration.
17060         (timer::m_jit_client_items): New field.
17061         (timer): Add friend class named_items.
17062         (auto_timevar::auto_timevar): Add timer param.
17063         (auto_timevar::~auto_timevar): Use field "m_timer".
17064         (auto_timevar::m_timer): New field.
17065         * toplev.c (initialize_rtl): Add g_timer as param when
17066         constructing auto_timevar instance.
17067         (toplev::toplev): Add "external_timer" param, and use it to
17068         initialize the "g_timer" global if non-NULL.
17069         (toplev::~toplev): If this created "g_timer", delete it.
17070         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
17071         with "external_timer" timer *.
17072
17073 2015-08-03  Alexander Basov <coohpt@gmail.com>
17074
17075         PR middle-end/64744
17076         PR middle-end/48470
17077         PR middle-end/43404
17078         * cfgexpand.c (expand_one_var): Add check if stack is going to
17079         be used in naked function.
17080         * expr.c (expand_expr_addr_expr_1): Remove excess checking
17081         whether expression should not reside in MEM.
17082         * function.c (use_register_for_decl): Do not use registers for
17083         non-register things (volatile, float, BLKMode) in naked functions.
17084
17085 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
17086
17087         PR target/67060
17088         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
17089         Adjust splits to match new pattern.
17090
17091 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
17092
17093         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
17094         (VEC_M): Likewise.
17095         (VEC_N): Likewise.
17096         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
17097         point in VSX registers.
17098
17099         * config/rs6000/constraints.md (wb constraint): Document unused
17100         w<x> constraint.
17101         (we constraint): Likewise.
17102         (wo constraint): Likewise.
17103         (wp constraint): New constraint for IEEE 128-bit floating point in
17104         VSX registers.
17105         (wq constraint): Likewise.
17106
17107         * config/rs6000/predicates.md (easy_fp_constant): Add support for
17108         IEEE 128-bit floating point in VSX registers.
17109         (easy_scalar_constant): Likewise.
17110
17111         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
17112         constraints (wp, wq) for IEEE 128-bit floating point in VSX
17113         registers.
17114         (rs6000_init_hard_regno_mode_ok): Likewise.
17115
17116         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
17117         floating point in VSX registers.
17118         (VSX_L): Likewise.
17119         (VSX_M): Likewise.
17120         (VSX_M2): Likewise.
17121         (VSm): Likewise.
17122         (VSs): Likewise.
17123         (VSr): Likewise.
17124         (VSa): Likewise.
17125         (VSv): Likewise.
17126         (vsx_le_permute_<mode>): Add support to properly swap bytes for
17127         IEEE 128-bit floating point in VSX registers on little endian.
17128         (vsx_le_undo_permute_<mode>): Likewise.
17129         (vsx_le_perm_load_<mode>): Likewise.
17130         (vsx_le_perm_store_<mode>): Likewise.
17131         (splitters for IEEE 128-bit fp moves): Likewise.
17132
17133         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
17134         wq constraints.
17135
17136         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
17137         floating point in VSX registers.
17138         (VM2): Likewise.
17139
17140         * doc/md.text (Machine Constraints): Document wp and wq
17141         constraints on PowerPC.
17142
17143 2015-08-03  Jeff Law  <law@redhat.com>
17144
17145         PR middle-end/66314
17146         PR gcov-profile/66899
17147         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
17148         iterate over the jump threading paths when an element in the
17149         jump threading paths array is eliminated.
17150
17151 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
17152
17153         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
17154
17155 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
17156
17157         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
17158         is_use_properly_guarded the variable def_preds.  Free its
17159         contents before returning.
17160         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
17161         (is_use_properly_guarded): Replace local variable def_preds with
17162         a parameter.  Adjust accordingly.  Only update *def_preds if it's
17163         the empty vector.
17164
17165 2015-08-03  Richard Biener  <rguenther@suse.de>
17166
17167         * genmatch.c (simplify::for_subst_vec): New member.
17168         (binary_ok): New helper for for lowering.
17169         (lower_for): Delay substituting operators into result expressions
17170         if we can merge the results eventually again.
17171         (capture_info::walk_result): Adjust for user_id appearing as
17172         result expression operator.
17173         (expr::gen_transform): Likewise.
17174         (dt_simplify::gen_1): Likewise.
17175         (dt_simplify::gen): Pass not substituted operators to tail
17176         functions or initialize local variable with it.
17177         (decision_tree::gen): Adjust function signature.
17178         * match.pd: Fix tests against global code and add default
17179         cases to switch stmts.
17180
17181 2015-08-03  Richard Biener  <rguenther@suse.de>
17182
17183         * genmatch.c (dt_simplify::gen): Create captures array
17184         with an initializer.
17185
17186 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17187
17188         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
17189         the host compiler is affected by placement new aliasing bug.
17190         * configure: Regenerate.
17191         * Makefile.in (ALIASING_FLAGS): New variable.
17192         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
17193
17194 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17195
17196         PR target/66731
17197         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
17198         (negmulsf3_vfp): Likewise.
17199         (muldf3negdf_vfp): Disable for -frounding-math.
17200         (mulsf3negsf_vfp): Likewise.
17201         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
17202         fix MULT cost with -frounding-math.
17203
17204 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17205
17206         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
17207         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
17208         explicit.  Prefer to add the flag whenever possible.
17209         (noce_process_if_block): Try noce_try_store_flag_constants before
17210         noce_try_cmove.
17211
17212 2015-08-03  Richard Biener  <rguenther@suse.de>
17213
17214         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
17215         New hash-map to record equivalent transforms.
17216         (dt_node::analyze): Populate the equivalent transforms hash-map.
17217         (dt_simplify::info): Add reference to hash-map entry.
17218         (dt_simplify::gen): If we have split out a function for the
17219         transform, generate a call to it.
17220         (sinfo_hashmap_traits::hash): New function.
17221         (compare_op): New helper function for ...
17222         (sinfo_hashmap_traits::equal_keys): ... this new function.
17223         (decision_tree::gen): Split out common equivalent transforms
17224         into functions.
17225
17226 2015-08-03  Richard Biener  <rguenther@suse.de>
17227
17228         * gimple-fold.c (fold_gimple_assign): Remove folding of
17229         the comparison in COND_EXPRs.
17230
17231 2015-08-03  Richard Biener  <rguenther@suse.de>
17232
17233         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
17234         on the rhs of assignments first simplify the embedded
17235         GENERIC condition.
17236
17237 2015-08-03  Richard Biener  <rguenther@suse.de>
17238
17239         PR tree-optimization/66917
17240         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
17241         field.
17242         (DR_VECT_AUX): New macro.
17243         (set_dr_misalignment): Adjust.
17244         (dr_misalignment): Likewise.
17245         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17246         Compute whether the base is at least element aligned.
17247         * tree-vect-stmts.c (ensure_base_align): Adjust.
17248         (vectorizable_store): If the base is not element aligned
17249         preserve alignment of the original access if misalignment is unknown.
17250         (vectorizable_load): Likewise.
17251
17252 2015-08-02  Martin Sebor  <msebor@redhat.com>
17253
17254         * c-family/c.opt (-Wframe-address): New warning option.
17255         * doc/invoke.texi (Wframe-address): Document it.
17256         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
17257         Clarify possible effects of calling the functions with non-zero
17258         arguments and mention -Wframe-address.
17259         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
17260
17261 2015-08-01  Michael Collison  <michael.collison@linaro.org
17262             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17263
17264         * config/arm/arm.md (*arm_smin_cmp): New pattern.
17265         (*arm_umin_cmp): Likewise.
17266
17267 2015-08-01  Caroline Tice  <cmtice@google.com>
17268
17269         PR 66521
17270         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
17271         global variables.
17272         (vtbl_find_mangled_name):  New function.
17273         (vtbl_register_mangled_name):  New function.
17274         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
17275         mangled name in mangled name vectors.
17276         (find_or_create_vtbl_map_node):  Ditto.
17277         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
17278         update recursion_depth on function entry; pass it to every recursive
17279         call; automatically exit if depth > 25 (give up looking at that point).
17280         (verify_bb_vtables):  Initialize recursion_depth and pass it to
17281         var_is_used_for_virtual_call_p.
17282         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
17283         global variable decls.
17284         (vtbl_register_mangled_name): New extern function decl.
17285
17286 2015-08-01  Tom de Vries  <tom@codesourcery.com>
17287
17288         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
17289         function.
17290         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
17291         Declare.
17292         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
17293         operation_no_trapping_overflow.  Allow non-overflow operations.
17294         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
17295         operations.
17296
17297 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
17298
17299         PR target/67049
17300         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
17301
17302 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17303
17304         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
17305         Enable for TARGET_32BIT.
17306         (*if_move_neg): Likewise.
17307
17308 2015-07-31  Nick Clifton  <nickc@redhat.com>
17309
17310         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
17311         Returns true for __model__.
17312         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
17313
17314 2015-07-31  Alan Modra  <amodra@gmail.com>
17315
17316         PR target/66870
17317         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
17318         (rs6000_emit_prologue): Set it.
17319         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
17320
17321 2015-07-31  Richard Biener  <rguenther@suse.de>
17322
17323         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
17324         -> X == (C1 ^ C2) which is already implemented in match.pd.
17325         Remove redundant dispatching to fold_relational_const.
17326         Move unordered self and NaN compares ...
17327         * match.pd: ... as patterns here.  Remove some stray captures
17328         and add a comment.
17329
17330 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
17331
17332         * config/i386/i386.c
17333         (bdesc_special_args): Convert mask type from signed to unsigned for
17334         masked builtins.
17335         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
17336         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
17337         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
17338         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
17339         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
17340         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
17341         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
17342         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
17343         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
17344         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
17345         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
17346         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
17347         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
17348         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
17349         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
17350         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
17351         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
17352         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
17353         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
17354         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
17355         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
17356         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
17357         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
17358         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
17359         * config/i386/i386-builtin-types.def
17360         (V16QI_FTYPE_V16SI): Remove.
17361         (V8DF_FTYPE_V8SI): Ditto.
17362         (V8HI_FTYPE_V8DI): Ditto.
17363         (V8SI_FTYPE_V8DI): Ditto.
17364         (V8SF_FTYPE_V8DF): Ditto.
17365         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
17366         (V16HI_FTYPE_V16SI): Ditto.
17367         (V16SF_FTYPE_V16HI): Ditto.
17368         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
17369         (V16SF_FTYPE_V16SI): Ditto.
17370         (V4DI_FTYPE_V4DI): Ditto.
17371         (V16SI_FTYPE_V16SF): Ditto.
17372         (V16SF_FTYPE_FLOAT): Ditto.
17373         (V8DF_FTYPE_DOUBLE): Ditto.
17374         (V8DI_FTYPE_INT64): Ditto.
17375         (V8DI_FTYPE_V4DI): Ditto.
17376         (V16QI_FTYPE_V8DI): Ditto.
17377         (UINT_FTYPE_V4SF): Ditto.
17378         (UINT64_FTYPE_V4SF): Ditto.
17379         (UINT_FTYPE_V2DF): Ditto.
17380         (UINT64_FTYPE_V2DF): Ditto.
17381         (V16SI_FTYPE_V16SI): Ditto.
17382         (V8DI_FTYPE_V8DI): Ditto.
17383         (V16SI_FTYPE_PV4SI): Ditto.
17384         (V16SF_FTYPE_PV4SF): Ditto.
17385         (V8DI_FTYPE_PV2DI): Ditto.
17386         (V8DF_FTYPE_PV2DF): Ditto.
17387         (V4DI_FTYPE_PV2DI): Ditto.
17388         (V4DF_FTYPE_PV2DF): Ditto.
17389         (V16SI_FTYPE_PV2SI): Ditto.
17390         (V16SF_FTYPE_PV2SF): Ditto.
17391         (V8DI_FTYPE_PV4DI): Ditto.
17392         (V8DF_FTYPE_PV4DF): Ditto.
17393         (V8SF_FTYPE_FLOAT): Ditto.
17394         (V4SF_FTYPE_FLOAT): Ditto.
17395         (V4DF_FTYPE_DOUBLE): Ditto.
17396         (V8SF_FTYPE_PV4SF): Ditto.
17397         (V8SI_FTYPE_PV4SI): Ditto.
17398         (V4SI_FTYPE_PV2SI): Ditto.
17399         (V8SF_FTYPE_PV2SF): Ditto.
17400         (V8SI_FTYPE_PV2SI): Ditto.
17401         (V16SF_FTYPE_PV8SF): Ditto.
17402         (V16SI_FTYPE_PV8SI): Ditto.
17403         (V8DI_FTYPE_V8SF): Ditto.
17404         (V4DI_FTYPE_V4SF): Ditto.
17405         (V2DI_FTYPE_V4SF): Ditto.
17406         (V64QI_FTYPE_QI): Ditto.
17407         (V32HI_FTYPE_HI): Ditto.
17408         (V8UHI_FTYPE_V8UHI): Ditto.
17409         (V16UHI_FTYPE_V16UHI): Ditto.
17410         (V32UHI_FTYPE_V32UHI): Ditto.
17411         (V2UDI_FTYPE_V2UDI): Ditto.
17412         (V4UDI_FTYPE_V4UDI): Ditto.
17413         (V8UDI_FTYPE_V8UDI): Ditto.
17414         (V4USI_FTYPE_V4USI): Ditto.
17415         (V8USI_FTYPE_V8USI): Ditto.
17416         (V16USI_FTYPE_V16USI): Ditto.
17417         (V2DF_FTYPE_V2DF_UINT64): Ditto.
17418         (V2DI_FTYPE_V2DF_V2DF): Ditto.
17419         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
17420         (V8DF_FTYPE_V8DF_V8DI): Ditto.
17421         (V4SF_FTYPE_V4SF_UINT64): Ditto.
17422         (V4SI_FTYPE_V4SF_V4SF): Ditto.
17423         (V16SF_FTYPE_V16SF_V16SI): Ditto.
17424         (V64QI_FTYPE_V32HI_V32HI): Ditto.
17425         (V32HI_FTYPE_V16SI_V16SI): Ditto.
17426         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
17427         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
17428         (V32HI_FTYPE_V64QI_V64QI): Ditto.
17429         (V32HI_FTYPE_V32HI_V32HI): Ditto.
17430         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
17431         (V16SI_FTYPE_V16SI_V4SI): Ditto.
17432         (V16SI_FTYPE_V16SI_V16SI): Ditto.
17433         (V16SI_FTYPE_V32HI_V32HI): Ditto.
17434         (V16SI_FTYPE_V16SI_SI): Ditto.
17435         (V8DI_FTYPE_V8DI_V8DI): Ditto.
17436         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
17437         (V8DI_FTYPE_V16SI_V16SI): Ditto.
17438         (V8DI_FTYPE_V8DI_V2DI): Ditto.
17439         (QI_FTYPE_QI): Ditto.
17440         (SI_FTYPE_SI): Ditto.
17441         (DI_FTYPE_DI): Ditto.
17442         (QI_FTYPE_QI_QI): Ditto.
17443         (QI_FTYPE_QI_INT): Ditto.
17444         (HI_FTYPE_HI_INT): Ditto.
17445         (SI_FTYPE_SI_INT): Ditto.
17446         (DI_FTYPE_DI_INT): Ditto.
17447         (HI_FTYPE_V16QI_V16QI): Ditto.
17448         (SI_FTYPE_V32QI_V32QI): Ditto.
17449         (DI_FTYPE_V64QI_V64QI): Ditto.
17450         (QI_FTYPE_V8HI_V8HI): Ditto.
17451         (HI_FTYPE_V16HI_V16HI): Ditto.
17452         (SI_FTYPE_V32HI_V32HI): Ditto.
17453         (QI_FTYPE_V4SI_V4SI): Ditto.
17454         (QI_FTYPE_V8SI_V8SI): Ditto.
17455         (QI_FTYPE_V2DI_V2DI): Ditto.
17456         (QI_FTYPE_V4DI_V4DI): Ditto.
17457         (QI_FTYPE_V8DI_V8DI): Ditto.
17458         (HI_FTYPE_V16SI_V16SI): Ditto.
17459         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
17460         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
17461         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
17462         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
17463         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
17464         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
17465         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
17466         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
17467         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
17468         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
17469         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
17470         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
17471         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
17472         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
17473         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
17474         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
17475         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
17476         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
17477         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
17478         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
17479         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
17480         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
17481         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
17482         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
17483         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
17484         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
17485         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
17486         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
17487         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
17488         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
17489         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
17490         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
17491         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
17492         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
17493         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
17494         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
17495         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
17496         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
17497         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
17498         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
17499         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
17500         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
17501         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
17502         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
17503         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
17504         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
17505         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
17506         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
17507         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
17508         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
17509         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
17510         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
17511         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
17512         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
17513         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
17514         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
17515         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
17516         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
17517         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
17518         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
17519         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
17520         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
17521         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
17522         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
17523         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
17524         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
17525         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
17526         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
17527         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
17528         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
17529         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
17530         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
17531         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
17532         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
17533         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
17534         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
17535         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
17536         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
17537         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
17538         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
17539         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
17540         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
17541         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
17542         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
17543         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
17544         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
17545         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
17546         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
17547         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
17548         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
17549         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
17550         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
17551         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
17552         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
17553         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
17554         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
17555         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
17556         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
17557         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
17558         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
17559         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
17560         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
17561         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
17562         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
17563         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
17564         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
17565         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
17566         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
17567         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
17568         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
17569         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
17570         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
17571         (HI_FTYPE_HI): Ditto.
17572         (HI_FTYPE_V16QI): Ditto.
17573         (SI_FTYPE_V32QI): Ditto.
17574         (DI_FTYPE_V64QI): Ditto.
17575         (QI_FTYPE_V8HI): Ditto.
17576         (HI_FTYPE_V16HI): Ditto.
17577         (SI_FTYPE_V32HI): Ditto.
17578         (QI_FTYPE_V4SI): Ditto.
17579         (QI_FTYPE_V8SI): Ditto.
17580         (HI_FTYPE_V16SI): Ditto.
17581         (QI_FTYPE_V2DI): Ditto.
17582         (QI_FTYPE_V4DI): Ditto.
17583         (QI_FTYPE_V8DI): Ditto.
17584         (V16QI_FTYPE_HI): Ditto.
17585         (V32QI_FTYPE_SI): Ditto.
17586         (V64QI_FTYPE_DI): Ditto.
17587         (V8HI_FTYPE_QI): Ditto.
17588         (V16HI_FTYPE_HI): Ditto.
17589         (V32HI_FTYPE_SI): Ditto.
17590         (V4SI_FTYPE_QI): Ditto.
17591         (V4SI_FTYPE_HI): Ditto.
17592         (V8SI_FTYPE_QI): Ditto.
17593         (V8SI_FTYPE_HI): Ditto.
17594         (V2DI_FTYPE_QI): Ditto.
17595         (V4DI_FTYPE_QI): Ditto.
17596         (HI_FTYPE_HI_HI): Ditto.
17597         (SI_FTYPE_SI_SI): Ditto.
17598         (DI_FTYPE_DI_DI): Ditto.
17599         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
17600         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
17601         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
17602         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
17603         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
17604         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
17605         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
17606         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
17607         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
17608         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
17609         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
17610         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
17611         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
17612         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
17613         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
17614         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
17615         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
17616         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
17617         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
17618         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
17619         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
17620         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
17621         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
17622         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
17623         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
17624         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
17625         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
17626         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
17627         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
17628         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
17629         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
17630         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
17631         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
17632         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
17633         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
17634         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
17635         (V16SI_FTYPE_HI): Ditto.
17636         (V8DI_FTYPE_QI): Ditto.
17637         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
17638         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
17639         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
17640         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
17641         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
17642         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
17643         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
17644         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
17645         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
17646         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
17647         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
17648         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
17649         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
17650         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
17651         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
17652         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
17653         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
17654         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
17655         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
17656         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
17657         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
17658         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
17659         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
17660         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
17661         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
17662         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
17663         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
17664         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
17665         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
17666         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
17667         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
17668         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
17669         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
17670         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
17671         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
17672         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
17673         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
17674         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
17675         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
17676         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
17677         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
17678         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
17679         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
17680         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
17681         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
17682         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
17683         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
17684         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
17685         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
17686         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
17687         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
17688         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
17689         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
17690         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
17691         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
17692         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
17693         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
17694         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
17695         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
17696         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
17697         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
17698         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
17699         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
17700         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
17701         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
17702         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
17703         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
17704         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
17705         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
17706         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
17707         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
17708         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
17709         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
17710         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
17711         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
17712         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
17713         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
17714         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
17715         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
17716         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
17717         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
17718         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
17719         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
17720         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
17721         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
17722         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
17723         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
17724         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
17725         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
17726         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
17727         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
17728         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
17729         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
17730         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
17731         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
17732         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
17733         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
17734         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
17735         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
17736         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
17737         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
17738         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
17739         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
17740         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
17741         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
17742         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
17743         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
17744         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
17745         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
17746         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
17747         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
17748         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
17749         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
17750         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
17751         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
17752         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
17753         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
17754         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
17755         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
17756         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
17757         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
17758         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
17759         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
17760         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
17761         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
17762         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
17763         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
17764         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
17765         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
17766         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
17767         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
17768         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
17769         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
17770         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
17771         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
17772         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
17773         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
17774         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
17775         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
17776         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
17777         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
17778         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
17779         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
17780         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
17781         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
17782         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
17783         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
17784         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
17785         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
17786         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
17787         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
17788         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
17789         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
17790         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
17791         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
17792         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
17793         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
17794         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
17795         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
17796         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
17797         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
17798         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
17799         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
17800         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
17801         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
17802         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
17803         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
17804         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
17805         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
17806         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
17807         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
17808         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
17809         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
17810         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
17811         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
17812         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
17813         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
17814         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
17815         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
17816         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
17817         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
17818         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
17819         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
17820         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
17821         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
17822         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
17823         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
17824         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
17825         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
17826         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
17827         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
17828         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
17829         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
17830         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
17831         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
17832         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
17833         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
17834         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
17835         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
17836         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
17837         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
17838         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
17839         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
17840         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
17841         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
17842         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
17843         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
17844         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
17845         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
17846         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
17847         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
17848         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
17849         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
17850         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
17851         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
17852         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
17853         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
17854         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
17855         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
17856         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
17857         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
17858         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
17859         (QI_FTYPE_V8DF_INT_QI): Ditto.
17860         (QI_FTYPE_V4DF_INT_QI): Ditto.
17861         (QI_FTYPE_V2DF_INT_QI): Ditto.
17862         (HI_FTYPE_V16SF_INT_HI): Ditto.
17863         (QI_FTYPE_V8SF_INT_QI): Ditto.
17864         (QI_FTYPE_V4SF_INT_QI): Ditto.
17865         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
17866
17867 2015-07-31  Richard Biener  <rguenther@suse.de>
17868
17869         * gimple-fold.c (fold_gimple_assign): Remove folding of
17870         GIMPLE_BINARY_RHS.
17871
17872 2015-07-31  Tom de Vries  <tom@codesourcery.com>
17873
17874         PR tree-optimization/66846
17875         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
17876         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
17877         (expand_omp_target) [ENABLE_CHECKING]: Same.
17878         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
17879         cfun if !LOOPS_NEED_FIXUP.
17880         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
17881         that omp_for already has its own loop struct.
17882         * tree-parloops.c (create_phi_for_local_result)
17883         (create_call_for_reduction): Handle simple latch bb.
17884         (create_parallel_loop): Add simple latch bb to preserve
17885         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
17886         (gen_parallel_loop): Remove call to cancel_loop_tree.
17887         (parallelize_loops): Skip loops that are inner loops of parallelized
17888         loops.
17889         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
17890         verify_loop_structure.
17891
17892 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17893
17894         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
17895         * config/v850/v850.md (RV_REGNUM): New constants.
17896         * config/v850/v850.c (v850_libcall_value): New functions.
17897         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
17898         (TARGET_LIBCALL_VALUE): Define.
17899
17900 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
17901
17902         * rtl.h (lowpart_subreg): Move in file.
17903         * loop-iv.c (lowpart_subreg): Move to...
17904         * simplify-rtx.c (lowpart_subreg): ...here.
17905           (simplify_binary_operation_1): Use lowpart_subreg instead of
17906           simplify_gen_subreg.
17907         * expr.c (expand_expr_real_2): Ditto.
17908         * emit-rtl.c (gen_lowpart_common): Ditto.
17909         * combine.c (gen_lowpart_for_combine): Ditto.
17910         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
17911           expand_debug_source_expr): Ditto.
17912
17913 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
17914
17915         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
17916         (expand_builtin_atomic_clear): Remove support for atomic_clear
17917         pattern.
17918
17919 2015-07-30  Richard Biener  <rguenther@suse.de>
17920
17921         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
17922         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
17923         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
17924         redundant operand canonicalization.
17925
17926 2015-07-30  David Sherwood  <david.sherwood@arm.com>
17927
17928         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
17929         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
17930         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
17931         * config/arm/arm.c (neon_valid_immediate): Likewise.
17932         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
17933         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
17934         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
17935         (expand_vec_perm_vpshufb2_vpermq): Likewise.
17936         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
17937         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
17938         * config/i386/sse.md
17939         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
17940         (*ssse3_palignr<mode>_perm): Likewise.
17941         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
17942         * config/spu/spu.c (arith_immediate_p): Likewise.
17943         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17944         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
17945
17946 2015-07-30  Richard Biener  <rguenther@suse.de>
17947
17948         * genmatch.c (decision_tree::gen_gimple): Merge with ...
17949         (decision_tree::gen_generic): ... this into ...
17950         (decision_tree::gen): ... this.
17951         (main): Adjust callers.
17952
17953 2015-07-30  Richard Biener  <rguenther@suse.de>
17954
17955         * genmatch.c (verbose): New global.
17956         (warning_at): Add overload with source_location.
17957         (capture_info::capture_info): Add bool whether generating gimple
17958         or generic.  Add gimple member.
17959         (capture_info::cinfo): Add capture member.
17960         (capture_info::walk_match): Record capture.  Warn on
17961         non-captured leafs.
17962         (capture_info::walk_c_expr): Add more fragments captures cannot
17963         escape through.  Warn on escaped captures.
17964         (dt_simplify::gen_1): Warn on operands we force to have no
17965         side-effects.
17966         (main): Initialize verbose.
17967         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
17968
17969 2015-07-30  Richard Biener  <rguenther@suse.de>
17970
17971         PR middle-end/67053
17972         * match.pd: Allow both operands to independently have conversion
17973         when simplifying compares of addresses.
17974
17975 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
17976
17977         PR target/66217
17978         PR target/67045
17979         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
17980         around those cases that need one.
17981
17982 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
17983
17984         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
17985
17986 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17987
17988         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
17989         New.  Copied from config/i386/gnu-user.h.
17990         (ASM_COMMENT_START): Likewise.
17991         (DBX_REGISTER_NUMBER): Likewise.
17992
17993 2015-07-29  Richard Biener  <rguenther@suse.de>
17994
17995         * gimple-fold.c (fold_gimple_cond): Remove.
17996         (fold_stmt_1): Do not call it.
17997
17998 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
17999
18000         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
18001         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
18002
18003         * config/aarch64/aarch64-modes.def: Add HFmode.
18004
18005         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
18006         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
18007
18008         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
18009         aarch64_promoted_type): New.
18010
18011         (aarch64_float_const_representable_p): Disable HFmode.
18012         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
18013         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
18014         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
18015
18016         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
18017         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
18018
18019         * config/aarch64/iterators.md (GPF_F16): New.
18020
18021 2015-07-29  Richard Biener  <rguenther@suse.de>
18022
18023         * match.pd: Merge address comparison patterns and make them
18024         handle some more cases.
18025
18026 2015-07-29  Richard Biener  <rguenther@suse.de>
18027
18028         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
18029         (parser::parse_capture): Add bool argument on whether to reject
18030         unknown captures.
18031         (parser::parse_expr): Adjust.
18032         (parser::parse_op): Likewise.
18033         (parser::parse_pattern): Likewise.
18034
18035 2015-07-29  Richard Biener  <rguenther@suse.de>
18036
18037         * gimple-fold.c (has_use_on_stmt): New function.
18038         (replace_stmt_with_simplification): Use it to allow
18039         abnormals originally referenced in the stmt.
18040         (fold_stmt_1): Canonicalize operand order.
18041
18042 2015-07-28  David Sherwood  <david.sherwood@arm.com>
18043
18044         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
18045         GET_MODE_INNER unconditionally.
18046         * config/spu/spu.c (arith_immediate_p): Likewise.
18047         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
18048         * expmed.c (synth_mult): Remove check for VOIDmode result from
18049         GET_MODE_INNER.
18050         (expand_mult_const): Likewise.
18051         * fold-const.c (fold_binary_loc): Replace call to element_precision
18052         with call to GET_MODE_PRECISION.
18053         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
18054         m->name.
18055         (emit_mode_inner): Likewise.
18056         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
18057         result check.
18058         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
18059         (GET_MODE_UNIT_PRECISION): Likewise.
18060         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
18061         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18062         * stor-layout.c (bitwise_type_for_mode): Update assert.
18063         (element_precision): Remove.
18064
18065 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18066
18067         * target-insns.def (reload_load_address): New targetm instruction
18068         pattern.
18069         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
18070
18071 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18072
18073         * target-insns.def (atomic_test_and_set): New targetm instruction
18074         pattern.
18075         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
18076         HAVE_*/gen_* interface.
18077
18078 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18079
18080         * target-insns.def (can_extend, ptr_extend): New targetm instruction
18081         patterns.
18082         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
18083         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18084         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
18085         * rtlanal.c (nonzero_bits1): Likewise.
18086         (num_sign_bit_copies1): Likewise.
18087
18088 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18089
18090         * target-insns.def (eh_return): New targetm instruction pattern.
18091         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
18092         interface.
18093         * function.c (thread_prologue_and_epilogue_insns): Remove
18094         preprocessor condition.
18095
18096 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18097
18098         * target-insns.def (indirect_jump): New targetm instruction pattern.
18099         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
18100         interface.
18101
18102 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
18103
18104         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
18105         instead of nonimmediate_operand.  Remove C condiition.
18106
18107 2015-07-28  Richard Biener  <rguenther@suse.de>
18108
18109         * match.pd: Add more simplification of address comparisons.
18110
18111 2015-07-28  Richard Biener  <rguenther@suse.de>
18112
18113         * match.pd: Re-order two cases in comparison with max/min
18114         value simplification to make it apply for bools.
18115
18116 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18117
18118         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
18119         Handle simple SIGN_EXTEND or ZERO_EXTEND.
18120         (aarch64_rtx_costs): Properly strip extend or extract before
18121         passing down to rtx costs again.
18122
18123 2015-07-28  Nick Clifton  <nickc@redhat.com>
18124
18125         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
18126         Optimizes the case where -mes0 is active and a constant symbolic
18127         address is used.
18128         * config/rl78/rl78-protos.h: Prototype the new function.
18129         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
18130
18131 2015-07-28  Tom de Vries  <tom@codesourcery.com>
18132
18133         * tree-parloops.c (reduc_stmt_res): New function.
18134         (initialize_reductions, add_field_for_reduction)
18135         (create_phi_for_local_result, create_loads_for_reductions)
18136         (create_stores_for_reduction, build_new_reduction): Handle case that
18137         reduc_stmt is a phi.
18138         (gather_scalar_reductions): Allow double_reduc reductions.
18139
18140 2015-07-28  Richard Biener  <rguenther@suse.de>
18141
18142         * fold-const.c (fold_comparison): Remove equality folding
18143         of decl addresses ...
18144         * match.pd: ... here and merge with existing pattern.
18145
18146 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18147
18148         PR tree-optimization/66828
18149         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
18150         from int64_t to uint64_t.
18151
18152 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18153
18154         * opts-common.c (read_cmdline_option): List DriverOnly enum values
18155         as valid only in the error message of the driver, not in the
18156         messages of the language compilers.
18157
18158 2015-07-27  Tom de Vries  <tom@codesourcery.com>
18159
18160         * tree-parloops.c (gather_scalar_reductions): Simplify function
18161         structure.
18162
18163 2015-07-27  Marek Polacek  <polacek@redhat.com>
18164
18165         * ipa-devirt.c (types_same_for_odr): Fix typo.
18166
18167 2015-07-27  Jason Merrill  <jason@redhat.com>
18168
18169         PR debug/66468
18170         * dwarf2out.c (gen_inlined_subroutine_die): Check
18171         cgraph_function_possibly_inlined_p.
18172
18173 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18174
18175         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
18176         Place integer variant first.
18177         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
18178
18179 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18180
18181         PR/63870
18182         * config/arm/arm-builtins.c (enum arm_builtins):
18183         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
18184         (ARM_BUILTIN_NEON_BASE): Rename macro to....
18185         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
18186         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
18187         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
18188
18189 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
18190
18191         PR/63870
18192         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
18193         Add qualifier_lane_index.
18194         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
18195         (arm_getlane_qualifiers): Use qualifier_lane_index.
18196         (arm_lanemac_qualifiers): Rename to...
18197         (arm_mac_n_qualifiers): ...this.
18198         (LANEMAC_QUALIFIERS): Rename to...
18199         (MAC_N_QUALIFIERS): ...this.
18200         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
18201         (arm_setlane_qualifiers): Use qualifier_lane_index.
18202         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
18203         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
18204         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
18205         (arm_expand_neon_builtin): Handle qualifier_lane_index.
18206
18207         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
18208         * config/arm/arm.c (bounds_check): Likewise, improve error message.
18209         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
18210         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
18211         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
18212         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
18213         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
18214         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
18215         qualifiers to TERNOP_IMM.
18216         (vdup_lane): Change qualifiers to GETLANE.
18217         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
18218         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
18219         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
18220         vqdmlsl_n): Change qualifiers to MAC_N.
18221
18222         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
18223         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
18224         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
18225         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
18226         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
18227         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
18228         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
18229         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
18230         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
18231         Remove call to neon_lane_bounds.
18232
18233 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
18234
18235         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
18236         Place integer variant first.
18237
18238 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
18239
18240         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
18241         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
18242         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
18243         for armv6kz targets.
18244         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
18245         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
18246         (FL_FOR_ARCH6ZK): Remove.
18247         (FL_FOR_ARCH6KZ): New.
18248         (arm_arch6zk): New declaration.
18249         * config/arm/arm-tables.opt: Regenerate.
18250         * config/arm/arm.c (arm_arch6kz): New.
18251         (arm_option_override): Set arm_arch6kz.
18252         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
18253         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
18254         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
18255
18256 2015-07-27  Marek Polacek  <polacek@redhat.com>
18257
18258         PR c++/66555
18259         PR c/54979
18260         * doc/invoke.texi: Document -Wtautological-compare.
18261
18262 2015-07-27  Richard Biener  <rguenther@suse.de>
18263
18264         * genmatch.c (decision_tree::gen_gimple): Split out large
18265         subtrees into separate functions.
18266         (decision_tree::gen_generic): Likewise.
18267
18268 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
18269
18270         * config/alpha/alpha.c: Use SUBREG_P predicate.
18271         * config/alpha/predicates.md: Ditto.
18272
18273 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18274
18275         * config.host (s390*-*-*): Include driver-native.c only when
18276         building with s390* as host *and* target.
18277
18278 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
18279
18280         PR target/66930
18281         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
18282         T bit register modified_between_p check.
18283
18284 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18285
18286         * config/i386/i386.c: Use SUBREG_P predicate.
18287         * config/i386/i386.md: Ditto.
18288         * config/i386/sse.md: Ditto.
18289         * config/i386/predicates.md: Ditto.
18290
18291 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18292
18293         PR target/67004
18294         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
18295         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
18296
18297 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18298
18299         * Makefile.in: Remove use of TREEBROWSER.
18300         * config.in: Regenerated.
18301         * configure: Regenerated.
18302         * configure.ac: Remove definition of TREEBROWSER.
18303         * tree-browser.c: Removed.
18304         * tree-browser.def: Removed.
18305
18306 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18307
18308         * graphite-scop-detection.c: Include gimple-pretty-print.h.
18309         (stmt_simple_for_scop_p): Print when a stmt is not handled in
18310         Graphite.
18311         (scopdet_basic_block_info): Print when a loop or bb cannot be
18312         represented in Graphite.
18313
18314 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18315
18316         PR target/66648
18317         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
18318         execution guard when min_size is less than size_needed.
18319
18320 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
18321
18322         * doc/install.texi: Document supported versions of ISL.
18323
18324 2015-07-25  Jeff Law  <law@redhat.com>
18325
18326         Revert:
18327         PR lto/66752
18328         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18329         unable to find X NE 0 in the tables, return X as the simplified
18330         condition.
18331         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18332         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18333         to VISISTED_BBS.  */
18334         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18335         after removing the control flow statement and unnecessary edges.
18336
18337 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
18338
18339         Revert:
18340         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18341
18342         PR rtl-optimization/64164
18343         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18344         * tree-ssa-copyrename.c: Removed.
18345         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18346         -ftree-coalesce-vars.
18347         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18348         * common.opt (ftree-copyrename): Ignore.
18349         (ftree-coalesce-inlined-vars): Likewise.
18350         * doc/invoke.texi: Remove the ignored options above.
18351         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18352         * tree-ssa-coalesce.h: ... here.
18353         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18354         headers required by it.
18355         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18356         across variables when flag_tree_coalesce_vars.  Check register
18357         use and promoted modes to allow coalescing.  Moved to
18358         tree-ssa-coalesce.c.
18359         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18360         with its member functions to tree-ssa-coalesce.c.
18361         (var_map_base_init): Likewise.  Renamed to
18362         compute_samebase_partition_bases.
18363         (partition_view_normal): Drop want_bases parameter.
18364         (partition_view_bitmap): Likewise.
18365         * tree-ssa-live.h: Adjust declarations.
18366         * tree-ssa-coalesce.c: Include explow.h.
18367         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18368         default defs at the entry point.
18369         (dump_part_var_map): New.
18370         (compute_optimized_partition_bases): New, called by...
18371         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18372         of compute_samebase_partition_bases.  Adjust.
18373         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18374         * cfgexpand.c (leader_merge): New.
18375         (get_rtl_for_parm_ssa_default_def): New.
18376         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18377         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18378         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18379         redundant MEM attr setting.
18380         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18381         from...
18382         (expand_one_stack_var): ... this.  New wrapper to check and
18383         skip already expanded SSA partitions.
18384         (record_alignment_for_reg_var): New, factored out of...
18385         (expand_one_var): ... this.
18386         (expand_one_ssa_partition): New.
18387         (adjust_one_expanded_partition_var): New.
18388         (expand_one_register_var): Check and skip already expanded SSA
18389         partitions.
18390         (expand_used_vars): Don't create DECLs for anonymous SSA
18391         names.  Expand all SSA partitions, then adjust all SSA names.
18392         (pass::execute): Replace the loops that set
18393         SA.partition_to_pseudo from partition leaders and cleared
18394         DECL_RTL for multi-location variables, and that which used to
18395         rename vars and set attrs, with one that clears DECL_RTL and
18396         checks that PARMs and RESULTs default_defs match DECL_RTL.
18397         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18398         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18399         * explow.c (promote_ssa_mode): New.
18400         * explow.h (promote_ssa_mode): Declare.
18401         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18402         * function.c: Include cfgexpand.h.
18403         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18404         (use_register_for_parm_decl): Wrapper for the above to
18405         special-case the result_ptr.
18406         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18407         (split_complex_args): Take assign_parm_data_all argument.
18408         Pass it to rtl_for_parm.  Set up rtl and context for split
18409         args.
18410         (assign_parms_augmented_arg_list): Adjust.
18411         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18412         multiple locations.  Recognize split complex args.
18413         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18414         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18415         (assign_parm_setup_block): Prefer SSA-assigned location.
18416         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18417         if stack_parm is NULL.
18418         (assign_parm_setup_stack): Prefer SSA-assigned location.
18419         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18420         rtl before testing for pointer bounds.  Special-case result_ptr.
18421         (expand_function_start): Maybe reset DECL_RTL of result.
18422         Prefer SSA-assigned location for result and static chain.
18423         Factor out DECL_RESULT and SET_DECL_RTL.
18424         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18425         anonymous SSA names.  Use promote_ssa_mode.
18426         (get_temp_reg): Likewise.
18427         (remove_ssa_form): Adjust.
18428         * stor-layout.c (layout_decl): Don't set mem attributes of
18429         non-MEMs.
18430         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18431         and get its reg_usage for reg invalidation.
18432         (compute_bb_dataflow): Pass it insn.
18433         (emit_notes_in_bb): Likewise.
18434
18435 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
18436
18437         * config/i386/i386.c (ix86_va_start): Remove
18438         unneeded !TARGET_64BIT check.
18439         (ix86_gimplify_va_arg): Ditto.
18440
18441 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18442
18443         * graphite-sese-to-poly.c (build_poly_scop): Always call
18444         rewrite_commutative_reductions_out_of_ssa.
18445
18446 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18447
18448         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
18449         flag_associative_math to FLOAT_TYPE_P.  Honour
18450         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
18451
18452 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18453
18454         PR c++/64079
18455         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
18456         and "%qD" in warning_at instead of "%q+D" in warning.
18457
18458 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18459
18460         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
18461         (ix86_function_abi): Cleanup.
18462
18463 2015-07-24  Michael Darling  <darlingm@gmail.com>
18464
18465         PR other/66259
18466         * acinclude.m4: Reflects renaming of configure.in to configure.ac
18467         * configure: Likewise
18468         * configure.ac: Likewise
18469         * doc/install.texi: Likewise
18470         * doc/tm.texi: Likewise
18471         * doc/tm.texi.in: Likewise
18472
18473 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18474
18475         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
18476         manually swapping values.
18477         * cse.c (fold_rtx): Likewise.
18478         * lra-eliminations.c (form_sum): Likewise.
18479
18480 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
18481
18482         PR target/64003
18483         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
18484         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
18485         (*jcc_1, *jcc_2, jump, simple_return_internal)
18486         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
18487         Set length_nobnd attribute instead of length attribute.
18488         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
18489         (length_nobnd): Remove attribute.
18490         (length): Remove length_nobnd processing.
18491
18492 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
18493
18494         * gimplify.c (omp_default_clause): New function.  Reorganize flow
18495         for clarity. Broken out of ...
18496         (omp_notice_variable): ... here.
18497
18498 2015-07-24  Gary Funck  <gary@intrepid.com>
18499
18500         PR middle-end/66984
18501         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
18502         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
18503
18504 2015-07-24  Tom de Vries  <tom@codesourcery.com>
18505
18506         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
18507         exit-first loop transform.
18508
18509 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
18510
18511         PR 66714
18512         * tree-cfg.c (struct replace_decls_d): New struct.
18513         (replace_block_vars_by_duplicates_1): New function.
18514         (replace_block_vars_by_duplicates): Use it to replace the decls
18515         in the value exprs by duplicates.
18516
18517 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18518
18519         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
18520         -shared, -symbolic, -rdynamic.
18521
18522 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18523
18524         PR target/65711
18525         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
18526         -dynamic-linker within %{!static %{!shared, and -rdynamic within
18527         %{!static.
18528
18529 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
18530
18531         PR ipa/66566
18532         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
18533         edge summary is available.
18534
18535 2015-07-24  Richard Biener  <rguenther@suse.de>
18536
18537         * genmatch.c (struct dt_node): Add statistic fields.
18538         (dt_node::analyze): New method.
18539         (decision_tree::gen_gimple): Call analyze on the root node
18540         and print statistics to stderr.
18541         (decision_tree::gen_generic): Likewise.
18542
18543 2015-07-24  Richard Biener  <rguenther@suse.de>
18544
18545         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
18546         against the highest or lowest possible integer ...
18547         * match.pd: ... as patterns here.
18548
18549 2015-07-24  Richard Biener  <rguenther@suse.de>
18550
18551         * genmatch.c (struct capture_info): Add same_as field.
18552         (capture_info::capture_info): Initialize same_as.
18553         (capture_info::walk_match): Compute same_as.
18554         (capture_info::walk_result): Compute stuff for the leader.
18555         (capture_info::walk_c_expr): Likewise.
18556         (dt_simplify::gen_1): Only look at leaders when deciding
18557         to force no side-effects or emit side-effects of omitted operands.
18558
18559 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18560
18561         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
18562         reg note to the GPR -> FPR save instructions.
18563
18564 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18565
18566         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
18567         cheaper.
18568         (s390_expand_insv): Don't generate risbg pattern for constant zero
18569         sources.
18570         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
18571         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
18572         splitters.
18573
18574 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18575
18576         * config/s390/s390.c (s390_reorg): Clean up handling of processors
18577         with
18578         -mtune=
18579         (s390_issue_rate): Likewise.
18580         (s390_sched_reorder): Likewise.
18581         (s390_sched_variable_issue): Likewise.
18582         (s390_loop_unroll_adjust): Likewise.
18583         (s390_option_override):  Likewise.
18584
18585 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18586
18587         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
18588         processor capabilities with -march=native.
18589         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
18590         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
18591         (S390_TARGET_BITS_STRING): Macro to simplify specs.
18592
18593 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18594
18595         * config/s390/s390.c (s390_issue_rate): Handle
18596         PROCESSOR_2094_Z9_EC.
18597         (s390_option_override): Likewise.
18598         (s390_adjust_priority): Likewise.
18599
18600 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18601
18602         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
18603         when cross compiling.
18604
18605 2015-07-24  Richard Biener  <rguenther@suse.de>
18606
18607         * fold-const.c (maybe_canonicalize_comparison_1): Move
18608         A code CST canonicalization ...
18609         * match.pd: ... to a pattern here.
18610
18611 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
18612
18613         Revert:
18614         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18615         PR target/63521
18616         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18617         (HONOR_REG_ALLOC_ORDER): Define.
18618
18619 2015-07-24  Richard Biener  <rguenther@suse.de>
18620
18621         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
18622         * fold-const.c (fold_comparison): Move parameter does not
18623         alias &local simplification ...
18624         * match.pd: ... as a pattern here.
18625
18626 2015-07-24  Richard Biener  <rguenther@suse.de>
18627
18628         * gimple-fold.c (replace_stmt_with_simplification): Special-case
18629         valueizing call operands.
18630         * gimple-match-head.c (maybe_push_res_to_seq): Take
18631         number of call arguments from ops array.
18632         (do_valueize): New function.
18633         (gimple_simplify): Return true if valueization changed
18634         any operand even if the result didn't simplify further.
18635
18636 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18637
18638         PR middle-end/25530
18639         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
18640
18641 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
18642
18643         PR middle-end/25529
18644         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
18645
18646 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18647
18648         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
18649         instruction.
18650
18651 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18652
18653         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
18654         clean up.
18655
18656 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
18657
18658         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
18659         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
18660         targets here.
18661         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
18662         ms_va_list_type_node initialization.
18663
18664 2015-07-23  Jeff Law  <law@redhat.com>
18665
18666         PR lto/66752
18667         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
18668         unable to find X NE 0 in the tables, return X as the simplified
18669         condition.
18670         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
18671         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
18672         to VISISTED_BBS.  */
18673         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
18674         after removing the control flow statement and unnecessary edges.
18675
18676 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18677
18678         * tree-pass.h (get_current_pass_name): Removed.
18679
18680 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
18681
18682         PR rtl-optimization/64164
18683         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
18684         * tree-ssa-copyrename.c: Removed.
18685         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
18686         -ftree-coalesce-vars.
18687         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
18688         * common.opt (ftree-copyrename): Ignore.
18689         (ftree-coalesce-inlined-vars): Likewise.
18690         * doc/invoke.texi: Remove the ignored options above.
18691         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
18692         * tree-ssa-coalesce.h: ... here.
18693         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
18694         headers required by it.
18695         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
18696         across variables when flag_tree_coalesce_vars.  Check register
18697         use and promoted modes to allow coalescing.  Moved to
18698         tree-ssa-coalesce.c.
18699         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
18700         with its member functions to tree-ssa-coalesce.c.
18701         (var_map_base_init): Likewise.  Renamed to
18702         compute_samebase_partition_bases.
18703         (partition_view_normal): Drop want_bases parameter.
18704         (partition_view_bitmap): Likewise.
18705         * tree-ssa-live.h: Adjust declarations.
18706         * tree-ssa-coalesce.c: Include explow.h.
18707         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
18708         default defs at the entry point.
18709         (dump_part_var_map): New.
18710         (compute_optimized_partition_bases): New, called by...
18711         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
18712         of compute_samebase_partition_bases.  Adjust.
18713         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
18714         * cfgexpand.c (leader_merge): New.
18715         (get_rtl_for_parm_ssa_default_def): New.
18716         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
18717         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
18718         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
18719         redundant MEM attr setting.
18720         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
18721         from...
18722         (expand_one_stack_var): ... this.  New wrapper to check and
18723         skip already expanded SSA partitions.
18724         (record_alignment_for_reg_var): New, factored out of...
18725         (expand_one_var): ... this.
18726         (expand_one_ssa_partition): New.
18727         (adjust_one_expanded_partition_var): New.
18728         (expand_one_register_var): Check and skip already expanded SSA
18729         partitions.
18730         (expand_used_vars): Don't create DECLs for anonymous SSA
18731         names.  Expand all SSA partitions, then adjust all SSA names.
18732         (pass::execute): Replace the loops that set
18733         SA.partition_to_pseudo from partition leaders and cleared
18734         DECL_RTL for multi-location variables, and that which used to
18735         rename vars and set attrs, with one that clears DECL_RTL and
18736         checks that PARMs and RESULTs default_defs match DECL_RTL.
18737         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
18738         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
18739         * explow.c (promote_ssa_mode): New.
18740         * explow.h (promote_ssa_mode): Declare.
18741         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
18742         * function.c: Include cfgexpand.h.
18743         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
18744         (use_register_for_parm_decl): Wrapper for the above to
18745         special-case the result_ptr.
18746         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
18747         (split_complex_args): Take assign_parm_data_all argument.
18748         Pass it to rtl_for_parm.  Set up rtl and context for split
18749         args.
18750         (assign_parms_augmented_arg_list): Adjust.
18751         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
18752         multiple locations.  Recognize split complex args.
18753         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
18754         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
18755         (assign_parm_setup_block): Prefer SSA-assigned location.
18756         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
18757         if stack_parm is NULL.
18758         (assign_parm_setup_stack): Prefer SSA-assigned location.
18759         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
18760         rtl before testing for pointer bounds.  Special-case result_ptr.
18761         (expand_function_start): Maybe reset DECL_RTL of result.
18762         Prefer SSA-assigned location for result and static chain.
18763         Factor out DECL_RESULT and SET_DECL_RTL.
18764         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
18765         anonymous SSA names.  Use promote_ssa_mode.
18766         (get_temp_reg): Likewise.
18767         (remove_ssa_form): Adjust.
18768         * stor-layout.c (layout_decl): Don't set mem attributes of
18769         non-MEMs.
18770         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
18771         and get its reg_usage for reg invalidation.
18772         (compute_bb_dataflow): Pass it insn.
18773         (emit_notes_in_bb): Likewise.
18774
18775 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18776
18777         PR target/66217
18778         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
18779         prototype.
18780         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
18781         (rs6000_emit_2insn_and): Handle dot forms.
18782         * config/rs6000/rs6000.md (and<mode>3): Adjust.
18783         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
18784         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
18785
18786 2015-07-23  Richard Biener  <rguenther@suse.de>
18787
18788         * generic-match-head.c: Include cgraph.h.
18789         * gimple-match-head.c: Likewise.
18790         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
18791         SSA names.
18792         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
18793         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
18794         pattern.
18795
18796 2015-07-23  Richard Biener  <rguenther@suse.de>
18797
18798         * gimple-fold.c (fold_gimple_cond): Do not require folding
18799         results to pass valid_gimple_rhs_p.
18800         * tree-cfg.h (fold_cond_expr_cond): Remove.
18801         * tree-cfg.c (fold_cond_expr_cond): Likewise.
18802         (make_edges): Do not call it.
18803         * tree-inline.c (tree_function_versioning): Likewise.
18804
18805 2015-07-23  Tom de Vries  <tom@codesourcery.com>
18806
18807         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
18808         vect_force_simple_reduction.
18809         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
18810         (vect_is_simple_reduction_1): Add and handle
18811         need_wrapping_integral_overflow parameter.
18812         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
18813         need_wrapping_integral_overflow parameter.
18814         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
18815         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
18816         decl.
18817
18818 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
18819
18820         PR tree-optimization/66926,66951
18821         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
18822         INNER_LOOP and fix up condition for renaming virtual operands.
18823
18824 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18825
18826         * combine.c (try_combine): Use std::swap instead of manually
18827         swapping.
18828
18829 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
18830
18831         * config/mips/i6400.md: New file.
18832         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
18833         (mips64r6): Likewise.
18834         (i6400): Define.
18835         * config/mips/mips-tables.opt: Regenerate.
18836         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
18837         (mips_issue_rate): Add support for i6400.
18838         (mips_multipass_dfa_lookahead): Likewise.
18839         * config/mips/mips.h (TUNE_I6400): Define.
18840         * config/mips/mips.md: Include i6400.md.
18841         (processor): Add i6400.
18842         * doc/invoke.texi (-march=@var{arch}): Add i6400.
18843
18844 2015-07-23  Richard Biener  <rguenther@suse.de>
18845
18846         PR middle-end/66916
18847         * match.pd: Guard widen and sign-change comparison simplification
18848         with single_use.
18849
18850 2015-07-23  Richard Biener  <rguenther@suse.de>
18851
18852         PR tree-optimization/66945
18853         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
18854         ::before_dom_children): Force the propagators idea of
18855         non-executable edges to materialize, not what the folder
18856         chooses.
18857
18858 2015-07-23  Richard Biener  <rguenther@suse.de>
18859
18860         * gimple.h (gimple_cond_make_false): Use 0 != 0.
18861         (gimple_cond_make_true): Use 1 != 0.
18862
18863 2015-07-22  DJ Delorie  <dj@redhat.com>
18864
18865         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
18866         slashes.
18867
18868         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
18869         (ashrhi3): Likewise.
18870         (lshrhi3): Likewise.
18871         (movhi): Take advantage of zero-extend to load small constants.
18872         (movpsi): Likewise.
18873         (and<mode>3): Likewise.
18874         (zero_extendqihi2): Likewise.
18875         (zero_extendqisi2): New.
18876         * config/msp430/constraints.md (N,O): New.
18877         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
18878
18879 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
18880
18881         PR target/66954
18882         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
18883         to enum feature_priority and feature_list.
18884         (fold_builtin_cpu): Add F_AES to enum processor_features
18885         and isa_names_table.
18886
18887 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
18888
18889         PR driver/66737
18890         * config/i386/linux-common.h (MPX_SPEC): Use linker option
18891         for 64bit target only.
18892
18893 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18894
18895         * config/nvptx/nvptx.c: Expand some comments.
18896
18897 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
18898
18899         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
18900         (cortex_a53_advsimd): ...This.
18901
18902 2015-07-22  Richard Biener  <rguenther@suse.de>
18903
18904         * genmatch.c (expr::gen_transform): Clarify error message
18905         and display location.
18906
18907 2015-07-22  Richard Biener  <rguenther@suse.de>
18908
18909         * genmatch.c (struct operand): Add location member.
18910         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
18911         constructors.
18912         (struct simplify): Remove match_location and result_location
18913         members.
18914         (elsehwere): Adjust.
18915
18916 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
18917
18918         * config/mips/m5100.md: New file.
18919         * config/mips/mips-cpus.def (m5100, m5101): Define.
18920         * config/mips/mips-tables.opt: Regenerate.
18921         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
18922         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
18923         -march=m5101 to -mips32r5.
18924         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
18925         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
18926         !-msoft-float.
18927         * config/mips/mips.md: Include m5100.md.
18928         (processor): Add m5100.
18929         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
18930
18931 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
18932
18933         * config/mips/mips-cpus.def (interaptiv): Define.
18934         * config/mips/mips-tables.opt: Regenerate.
18935         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
18936         -mips32r2.
18937         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
18938         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
18939
18940 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18941
18942         PR target/63521
18943         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18944         (HONOR_REG_ALLOC_ORDER): Define.
18945
18946 2015-07-22  Richard Biener  <rguenther@suse.de>
18947
18948         PR tree-optimization/66952
18949         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
18950         blocks we end up executing unconditionally reset all SSA
18951         info such as range and alignment.
18952         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
18953         * tree-ssanames.c (reset_flow_sensitive_info): New function.
18954
18955 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18956
18957         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
18958         typo in attribute.
18959
18960 2015-07-22  Richard Biener  <rguenther@suse.de>
18961
18962         * genmatch.c (parser::parse_result): Properly handle
18963         match with result operands and conditions.
18964
18965 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18966
18967         PR target/63870
18968         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18969         Add qualifier_struct_load_store_lane_index.
18970         (aarch64_types_loadstruct_lane_qualifiers): Use
18971         qualifier_struct_load_store_lane_index for lane index argument for
18972         last argument.
18973         (aarch64_types_storestruct_lane_qualifiers): Ditto.
18974         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18975         (aarch64_simd_expand_args): Add new argument describing mode of
18976         builtin. Check lane bounds for arguments with
18977         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18978         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
18979         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18980         (aarch64_simd_expand_builtin): Handle arguments with
18981         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
18982         aarch64_simd_expand_args.
18983         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
18984         vst[234]_lane with BUILTIN_VALLDIF.
18985         * config/aarch64/aarch64-simd.md:
18986         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
18987         endianness reversal on lane index.
18988         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
18989         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
18990         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
18991         (vec_store_lanesci_lane<mode>): Ditto.
18992         (vec_store_lanesxi_lane<mode>): Ditto.
18993         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
18994         reversal of lane index.
18995         (aarch64_ld3_lane<mode>): Ditto.
18996         (aarch64_ld4_lane<mode>): Ditto.
18997         (aarch64_st2_lane<mode>): Ditto.
18998         (aarch64_st3_lane<mode>): Ditto.
18999         (aarch64_st4_lane<mode>): Ditto.
19000         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
19001         to qmode. Add new mode parameter. Update uses.
19002         (__LD3_LANE_FUNC): Ditto.
19003         (__LD4_LANE_FUNC): Ditto.
19004         (__ST2_LANE_FUNC): Ditto.
19005         (__ST3_LANE_FUNC): Ditto.
19006         (__ST4_LANE_FUNC): Ditto.
19007
19008 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
19009
19010         * doc/invoke.texi (Language Independent Options): Rename node to
19011         Diagnostic Message Formatting Options.
19012
19013 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
19014
19015         PR ipa/66424.
19016         * lra-remat.c (operand_to_remat): Prevent using insns with input
19017         subregs processed separately by IRA.
19018
19019 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
19020
19021         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
19022         straight loops.
19023         (single_imm_use): Check for iterator node.
19024         (num_imm_uses): Likewise.
19025         * tree-ssa-operands.c (has_zero_uses_1): Delete.
19026         (single_imm_use_1): Check for iterator node.
19027
19028 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
19029             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19030
19031         * configure.ac: Add check for new options in isl-0.15.
19032         * config.in, configure: Rebuilt.
19033         * graphite-blocking.c: Include <isl/constraint.h>
19034         * graphite-interchange.c,  graphite-poly.c: Likewise.
19035         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
19036         * graphite.c: Likewise.
19037         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
19038         <isl/union_set.h>.
19039         * graphite-dependences.c: Include <isl/constraint.h>.
19040         (max_number_of_out_dimensions): Returns isl_stat.
19041         (extend_schedule_1): Likewise
19042         (extend_schedule): Corresponding changes.
19043         * graphite-optimize-isl.c: Include <isl/constraint.h> and
19044         <isl/union_set.h>.
19045         (getSingleMap): Change return type of isl_stat.
19046         (optimize_isl): Conditionally use
19047         isl_options_set_schedule_serialize_sccs.
19048         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
19049         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
19050
19051 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
19052
19053         PR target/66956
19054         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
19055         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
19056
19057 2015-07-21  Richard Biener  <rguenther@suse.de>
19058
19059         PR tree-optimization/66948
19060         * genmatch.c (capture_info::walk_match): Also recurse to
19061         captures.  Properly compute expr state from captures of
19062         captures.
19063         * match.pd: Add single-use guards to
19064         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
19065
19066 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
19067
19068         * config/nvptx/mkoffload.c (process): Add static destructor call.
19069
19070 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19071
19072         PR middle-end/66915
19073         * match.pd (A - B -> A + (-B)): Don't allow folding
19074         when type if a fixed-point type.
19075
19076 2015-07-20  DJ Delorie  <dj@redhat.com>
19077
19078         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
19079         (iorqi3_real): Likewise for set1.
19080
19081 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
19082
19083         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
19084         for !TARGET_64BIT.
19085
19086 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
19087
19088         * graphite-isl-ast-to-gimple.c:
19089         Refactor so that each function can access 'region'. This will help
19090         maintain a parameter rename_map within a region.
19091
19092 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19093
19094         * config/rs6000/rs6000.md (*lt0_disi): New.
19095
19096 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
19097
19098         PR target/66217
19099         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
19100         "available letters" comment.
19101         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
19102         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
19103         and_2rld_operand):  Delete.
19104         (and_operand): Adjust.
19105         (rotate_mask_operator): New.
19106         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
19107         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
19108         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
19109         extract_ME): Delete.
19110         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19111         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
19112         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
19113         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19114         rs6000_emit_2insn_and): New.
19115         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
19116         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
19117         includes_rldic_lshift_p, includes_rldicr_lshift_p,
19118         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
19119         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
19120         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
19121         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
19122         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
19123         rs6000_emit_2insn_and): New.
19124         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
19125         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
19126         handling.
19127         <NOT>: Don't fall through to next case.
19128         <AND>: Handle the various rotate-and-mask cases directly.
19129         <IOR>: Always cost as one insn.
19130         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
19131         (and<mode>3): Adjust expander for the new patterns.
19132         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
19133         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
19134         (*and<mode>3_imm_dot_shifted): New.
19135         (*and<mode>3_mask): Delete, rewrite as ...
19136         (and<mode>3_mask): ... New.
19137         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
19138         (andsi3_internal0_nomc): Delete.
19139         (*andsi3_internal6): Delete.
19140         (*and<mode>3_2insn): New.
19141         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19142         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19143         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
19144         *insvdi_internal3): Delete.
19145         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
19146         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
19147         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
19148         *ior<mode>_mask): New.
19149         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
19150         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
19151         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
19152         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
19153         Delete.
19154         (ashr<mode>3): Delete expander.
19155         (*ashr<mode>3): Rename to ...
19156         (ashr<mode>3): ... This.
19157         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
19158         (*rotldi3_internal4, *rotldi3_internal5 and split,
19159         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
19160         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
19161         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
19162         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
19163         (splitter for loading a mask): Adjust.
19164         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
19165
19166 2015-07-20  Marek Polacek  <polacek@redhat.com>
19167
19168         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
19169         output_add_clobbers, output_added_clobbers_hard_reg_p,
19170         gen_rtx_scratch): Remove declarations.
19171
19172 2015-07-20  Marek Polacek  <polacek@redhat.com>
19173
19174         PR c++/55095
19175         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
19176
19177 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19178
19179         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
19180         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
19181
19182 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19183
19184         * combine.c (combine_simplify_rtx): Move simplification step
19185         before various transformations/substitutions.
19186
19187 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
19188
19189         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
19190         (struct int_traits): Likewise.
19191
19192 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19193
19194         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
19195         function to vmsdbgout_function_decl.
19196
19197 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19198
19199         PR target/66922
19200         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
19201         from misaligned positions.
19202         (ix86_expand_pinsr): Reject insertions to misaligned positions.
19203
19204 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
19205
19206         PR middle-end/46851
19207         PR middle-end/60340
19208         * Makefile.in: Removed omega.o.
19209         * common.opt: Document flag fcheck-data-deps as deprecated.
19210         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
19211         its associated params: omega-max-vars, omega-max-geqs,
19212         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
19213         omega-max-keys, omega-eliminate-redundant-constraints.
19214         * doc/loop.texi: Remove all the section on Omega.
19215         * graphite-blocking.c: Include missing params.h: it used to be
19216         included through tree-data-ref.h and omega.h.
19217         * graphite-isl-ast-to-gimple.c: Same.
19218         * graphite-optimize-isl.c: Same.
19219         * graphite-sese-to-poly.c: Same.
19220         * graphite.c: Same.
19221         * omega.c: Remove.
19222         * omega.h: Remove.
19223         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
19224         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
19225         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
19226         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
19227         * passes.def: Remove pass_check_data_deps.
19228         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
19229         (dump_conflict_function): Same.
19230         (dump_subscript): Same.
19231         (print_direction_vector): Same.
19232         (print_dir_vectors): Same.
19233         (print_lambda_vector): Same.
19234         (print_dist_vectors): Same.
19235         (dump_data_dependence_relation): Same.
19236         (dump_data_dependence_relations): Same.
19237         (dump_dist_dir_vectors): Same.
19238         (dump_ddrs): Same.
19239         (init_omega_eq_with_af): Removed.
19240         (omega_extract_distance_vectors): Removed.
19241         (omega_setup_subscript): Removed.
19242         (init_omega_for_ddr_1): Removed.
19243         (init_omega_for_ddr): Removed.
19244         (ddr_consistent_p): Removed.
19245         (compute_affine_dependence): Do not use omega to check data
19246         dependences.
19247         (compute_data_dependences_for_bb): Removed.
19248         (analyze_all_data_dependences): Removed.
19249         (tree_check_data_deps): Removed.
19250         * tree-data-ref.h: Do not include omega.h.
19251         (compute_data_dependences_for_bb): Removed.
19252         (tree_check_data_deps): Removed.
19253         * tree-ssa-loop.c (pass_check_data_deps): Removed.
19254         (make_pass_check_data_deps): Removed.
19255         * tree-ssa-phiopt.c: Include params.h.
19256         * tree-vect-data-refs.c: Same.
19257         * tree-vect-slp.c: Same.
19258
19259 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
19260
19261         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
19262         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
19263         (mem->fpreg splitters): Ditto.
19264         (general_operand->nonimmediate_operand splitter): Use explicit modes.
19265         Disable DFmode for TARGET_64BIT.
19266
19267 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
19268
19269         PR target/66906
19270         * config/i386/i386.c (ix86_expand_prologue): Replicate static
19271         chain on the stack.
19272
19273 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19274
19275         * config/nvptx/mkoffload.c (process): Constify host data.
19276         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19277         Constify host data.
19278         (generate_host_descr_file): Likewise.
19279
19280 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
19281             Sebastian Pop  <s.pop@samsung.com>
19282
19283         PR middle-end/61929
19284         * graphite-dependences.c (add_pdr_constraints): Renamed
19285         pdr->extent to pdr->subscript_sizes.
19286         * graphite-interchange.c (build_linearized_memory_access): Add
19287         back all gcc_assert's that the "isl_int to isl_val conversion"
19288         patch has removed.  Refactored.
19289         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
19290         * graphite-poly.c (new_poly_dr): Same.
19291         (free_poly_dr): Same.
19292         * graphite-poly.h (struct poly_dr): Same.
19293         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
19294         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
19295         * graphite-scop-detection.h: Fix space.
19296         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
19297         back all gcc_assert's removed by a previous patch.
19298         (wrap): Remove the_isl_ctx global variable that the same patch has
19299         added.
19300         (build_loop_iteration_domains): Same.
19301         (add_param_constraints): Same.
19302         (pdr_add_data_dimensions): Same.  Refactored.
19303         (build_poly_dr): Renamed extent to subscript_sizes.
19304
19305 2015-07-17  Marek Polacek  <polacek@redhat.com>
19306
19307         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
19308         * match.pd: ... here.
19309
19310 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
19311
19312         * config/nvptx/mkoffload.c (process): Constify target data.
19313         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
19314         Constify target data.
19315         (generate_target_offloadend_file): Likewise.
19316
19317 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
19318
19319         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
19320         to allow renaming of PHI arguments on edges incoming from outer
19321         loop header, add corresponding check before start PHI iterator.
19322         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
19323         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
19324         with true force_vectorize.  Set-up dominator for outer loop too.
19325         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
19326         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
19327         was marked with force_vectorize and has restricted cfg.
19328         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
19329         inner loop.
19330         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
19331         do peeling for outer loops.
19332
19333 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
19334             Matthias Klose  <doko@ubuntu.com>
19335
19336         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
19337         build-sysroot, sysroot from the `Miscenalleous configure options' to
19338         the `Directories' section and strip trailing `/' from with_sysroot.
19339         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
19340         * configure: Regenerated.
19341
19342 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19343
19344         PR target/66824
19345         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
19346         (TARGET_HARD_DF_REGS): Ditto.
19347         (TARGET_HARD_XF_REGS): Ditto.
19348         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
19349         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
19350         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
19351         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
19352         (*movsf_internal): Add alternatives 16 and 17. Enable
19353         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
19354
19355 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
19356
19357         PR rtl-optimization/66891
19358         * calls.c (expand_call): Wrap precompute_register_parameters with
19359         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
19360
19361 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
19362
19363         * config/nvptx/mkoffload.c (process): Constify mapping variables.
19364         Define target data struct and initialize it.
19365
19366 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
19367
19368         PR rtl-optimization/66626
19369         * ira.h (emit-rtl.h): Include.
19370         (non_spilled_static_chain_regno_p): New.
19371         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
19372         unless it is non spilled static chain pseudo.
19373         (assign_hard_rego): Spill memory profitable allocno unless it is
19374         non spilled static chain pseudo.
19375         (allocno_spill_priority_compare): Put non spilled static chain
19376         pseudo at the end of sorted array.
19377         (improve_allocation): Do nothing if we have static chain and
19378         non-local goto.
19379         (allocno__priority_compare_func): Put non spilled static chain
19380         pseudo at the beginning of sorted array.
19381         (move_spill_restore): Ignore non spilled static chain pseudo.
19382         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
19383         to non spilled static chain pseudo.
19384         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
19385         pseudo at the beginning of sorted array.
19386         (spill_for): Spill non spilled static chain pseudo last.
19387         * lra-constraints.c (lra_constraints): Remove static chain pseudo
19388         check for equivalence.
19389
19390 2015-07-16  Martin Liska  <mliska@suse.cz>
19391
19392         PR ipa/66896.
19393         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
19394         dst_ctx if it does not exist.
19395
19396 2015-07-16  Martin Liska  <mliska@suse.cz>
19397
19398         * hash-set.h (remove): New function.
19399         (iterator): New iteration class for hash_set.
19400
19401 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19402
19403         * genattrtab.c (make_canonical): Add a file_location parameter.
19404         Use fatal_at rather than fatal.
19405         (get_attr_value): Likewise.  Update call to make_canonical.
19406         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
19407         (make_internal_attr): Update calls accordingly.
19408
19409 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19410
19411         * read-md.h (message_with_line, error_with_line): Delete.
19412         * read-md.c (message_with_line, error_with_line): Delete.
19413         * gensupport.h: Include read-md.h.
19414         (md_rtx_info): New structure.
19415         (read_md_rtx): Use it.  Return a bool success value.
19416         * gensupport.c (read_md_rtx): Likewise.
19417         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
19418         (main): Update after interface changes.
19419         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
19420         (main): Update after interface changes.
19421         * genattrtab.c (insn_code_number): Delete.
19422         (optimize_attrs): Add a max_insn_code parameter and use it instead
19423         of insn_code_number.
19424         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
19425         Use *_at rather than *_with_line functions.
19426         (gen_insn): Likewise.
19427         (gen_delay): Likewise.
19428         (gen_insn_reserv): Likewise.
19429         (gen_bypass): Take an md_rtx_info rather than an rtx.
19430         (main): Update after interface changes.  Use a local max_insn_code
19431         variable instead of insn_code_number.
19432         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
19433         an rtx.  Use fatal_at rather than fatal.
19434         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
19435         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
19436         (gen_absence_set, gen_final_absence_set, gen_automaton)
19437         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
19438         (main): Update after interface changes.
19439         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
19440         and code number.
19441         (main): Update after interface changes.
19442         * genconditions.c (main): Use new read_md_rtx interface.
19443         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
19444         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
19445         (main): Update after interface changes.
19446         * genemit.c (insn_code_number, insn_index_number): Delete.
19447         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19448         Use fatal_at rather than fatal.
19449         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
19450         rather than fatal.
19451         (gen_split): Likewise.
19452         (main): Update after interface changes.
19453         * genextract.c (line_no): Delete.
19454         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19455         Update call to walk_rtx.
19456         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
19457         rather than message_with_line.
19458         (walk_rtx): Add an md_rtx_info argument.  Update call to
19459         VEC_safe_set_locstr.
19460         (main): Update after interface changes.
19461         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
19462         and lineno.  Use error_at rather than separate message_with_line
19463         calls and have_error assignments.
19464         (main): Update after interface changes.
19465         * genmddump.c (main): Use new read_md_rtx interface.
19466         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
19467         (main): Update after interface changes.
19468         * genoutput.c (next_code_number): Delete.
19469         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
19470         (gen_peephole, gen_expand, gen_split): Likewise.
19471         (note_constraint): Likewise.  Use *_at rather than *_with_line
19472         functions.
19473         (main): Update after interface changes.
19474         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
19475         rtx and lineno.
19476         (main): Update after interface changes.
19477         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
19478         than an rtx and lineno.
19479         (process_define_constraint): Likewise.
19480         (process_define_register_constraint): Likewise.
19481         (main): Update after interface changes.
19482         * genrecog.c (next_insn_code, pattern_lineno): Delete.
19483         (validate_pattern): Replace top-level rtx with an md_rtx_info.
19484         Use *_at rather than *_with_line functions.
19485         (match_pattern_2): Likewise.
19486         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
19487         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
19488         Use *_at rather than *_with_line functions.
19489         * gentarget-def.c (add_insn): New function.
19490         (main): Use it.  Use new read_md_rtx interface.
19491
19492 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19493
19494         * gensupport.h (compute_test_codes): Take a file_location rather
19495         than a line number.
19496         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
19497         rather than *_with_line functions.
19498         (process_define_predicate): Update call to compute_test_codes.
19499         * genpreds.c (validate_exp): Take a file_location rather than a
19500         line number.  Use *_at functions rather than *_with_line functions.
19501         (process_define_predicate): Update call to validate_exp.
19502         (constraint_data): Replace lineno field with a file_location.
19503         (add_constraint): Take a file_location rather than a line number.
19504         Use *_at functions rather than *_with_line functions.  Fix error
19505         message for address constraints.  Update after changes to
19506         validate_exp, constraint_data and compute_test_codes.
19507         (process_define_constraint): Update accordingly.
19508         (process_define_register_constraint): Likewise.
19509
19510 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19511
19512         * genoutput.c (data): Use a file_location to record the source
19513         position.
19514         (nothing): Delete.
19515         (idata, idata_end): Remove initialization.
19516         (constraint_data): Replace lineno with a file_location.
19517         (output_insn_data): Update after changes to data.
19518         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
19519         (scan_operands): Likewise, using *_at rather than *_with_line
19520         functions.
19521         (process_template): Likewise.
19522         (validate_insn_alternatives): Likewise.
19523         (validate_insn_operands): Likewise.
19524         (validate_optab_operands): Likewise.
19525         (init_insn_for_nothing): Initialize idata and idata_end.
19526         (note_constraint): Update after changes to constraint_data,
19527         using at rather than with_line functions.
19528         (mdep_constraint_len): Take a file_location rather than a
19529         line number.  Use at rather than with_line functions.
19530
19531 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19532
19533         * read-md.h (fatal_at): Declare.
19534         * read-md.c (fatal_at): New function.
19535         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
19536         to record the source position.
19537         (check_attr_test): Take a file_location instead of a line number.
19538         Use fatal_at instead of fatal.
19539         (check_attr_value): Update after above changes, using "at"
19540         rather than "with_line" reporting functions.
19541         (convert_set_attr_alternative): Likewise.
19542         (gen_attr): Likewise.
19543         (check_defs): Likewise.  Don't assign to read_md_filename.
19544         (gen_insn): Update initialization after above changes.
19545         (gen_delay): Likewise.
19546         (write_insn_cases): Print the filename for a define_peephole.
19547         (gen_insn_reserv): Take a line number as argument and update
19548         the call to check_attr_test.
19549         (main): Pass a line number to gen_insn_reserv.
19550
19551 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19552
19553         * read-md.h (file_location): New structure.
19554         (directive_handler_t): Take a file_location rather than a line number.
19555         (message_at, error_at): Declare.
19556         (read_skip_construct): Delete.
19557         * read-md.c (message_with_line_1): Replace with...
19558         (message_at_1): ...this new function.
19559         (message_at, error_at): New functions.
19560         (message_with_line, error_with_line): Update to use message_at_1.
19561         (handle_enum): Take a file_location rather than a line number
19562         and use error_at for error reporting.
19563         (handle_include): Likewise.
19564         (read_skip_construct): Likewise.  Make static.
19565         (handle_file): Update after above changes.  Pass a file_location
19566         rather than a line number to handle_directive.
19567         * gensupport.c (queue_elem): Replace separate filename and lineno
19568         with a file_location.
19569         (queue_pattern): Replace filename and lineno arguments with a
19570         file_location.  Update after change to queue_elem.
19571         (process_define_predicate): Replace lineno argument with a
19572         file_location and use error_at for error reporting.  Update
19573         after above changes.
19574         (process_rtx): Likewise.
19575         (subst_pattern_match): Likewise.
19576         (get_alternatives_number): Likewise.
19577         (alter_predicate_for_insn): Likewise.
19578         (rtx_handle_directive): Likewise.
19579         (is_predicable): Update after above changes, using error_at rather
19580         than error_with_line.
19581         (has_subst_attribute): Likewise.
19582         (identify_predicable_attribute): Likewise.
19583         (alter_attrs_for_subst_insn): Likewise.
19584         (process_one_cond_exec): Likewise.
19585         (process_substs_on_one_elem): Likewise.
19586         (process_define_subst): Likewise.
19587         (check_define_attr_duplicates): Likewise.
19588         (read_md_rtx): Update after change to queue_elem.
19589
19590 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19591
19592         * genoutput.c (next_index_number): Delete.
19593         (data): Remove index_number.
19594         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
19595         (main): Remove manipulation of next_index_number.
19596
19597 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
19598
19599         * genattrtab.c (check_attr_value): Remove handling of null attrs.
19600         (make_canonical): Likewise.
19601
19602 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
19603
19604         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
19605         instead of adjust_address_nv.
19606         (restore_stack_nonlocal): Likewise.
19607         (nonlocal_goto): Likewise.
19608
19609 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19610
19611         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
19612         not have a corresponding loop header phi.
19613
19614 2015-07-16  Tom de Vries  <tom@codesourcery.com>
19615
19616         * tree-parloops.c (create_loads_for_reductions): Handle case that
19617         reduction is unused.
19618
19619 2015-07-16  Richard Biener  <rguenther@suse.de>
19620
19621         PR tree-optimization/66894
19622         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
19623         about deriving NE_EXPR from truncated values.
19624
19625 2015-07-16  Martin Liska  <mliska@suse.cz>
19626
19627         * alloc-pool.h
19628         (object_allocator): Add new class.
19629         (pool_allocator::initialize): Use the underlying class.
19630         (pool_allocator::allocate): Likewise.
19631         (pool_allocator::remove): Likewise.
19632         (operator new): A new generic allocator.
19633         * asan.c (struct asan_mem_ref): Remove unused members.
19634         (asan_mem_ref_new): Replace new operator with
19635         object_allocator::allocate.
19636         (free_mem_ref_resources): Change deallocation.
19637         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
19638         with object_allocator.
19639         * config/sh/sh.c (add_constant): Replace new operator with
19640         object_allocator::allocate.
19641         (sh_reorg): Change call to a release method.
19642         * cselib.c (struct elt_list): Remove unused members.
19643         (new_elt_list): Replace new operator with
19644         object_allocator::allocate.
19645         (new_elt_loc_list): Likewise.
19646         (new_cselib_val): Likewise.
19647         (unchain_one_elt_list): Change delete operator with remove method.
19648         (unchain_one_elt_loc_list): Likewise.
19649         (unchain_one_value): Likewise.
19650         (cselib_finish): Release newly added static allocators.
19651         * cselib.h (struct cselib_val): Remove unused members.
19652         (struct elt_loc_list): Likewise.
19653         * df-problems.c (df_chain_alloc): Replace pool_allocator with
19654         object_allocator.
19655         * df-scan.c (struct df_scan_problem_data): Likewise.
19656         (df_scan_alloc): Likewise.
19657         * df.h (struct dataflow): Likewise.
19658         * dse.c (struct read_info_type): Likewise.
19659         (struct insn_info_type): Likewise.
19660         (struct dse_bb_info_type): Likewise.
19661         (struct group_info): Likewise.
19662         (struct deferred_change): Likewise.
19663         (get_group_info): Likewise.
19664         (delete_dead_store_insn): Likewise.
19665         (free_read_records): Likewise.
19666         (replace_read): Likewise.
19667         (check_mem_read_rtx): Likewise.
19668         (scan_insn): Likewise.
19669         (dse_step1): Likewise.
19670         (dse_step7): Likewise.
19671         * et-forest.c (struct et_occ): Remove unused members.
19672         (et_new_occ): Use allocate instead of new operator.
19673         (et_new_tree): Likewise.
19674         (et_free_tree): Call release method explicitly.
19675         (et_free_tree_force): Likewise.
19676         (et_free_pools): Likewise.
19677         (et_split): Use remove instead of delete operator.
19678         * et-forest.h (struct et_node): Remove unused members.
19679         * ipa-cp.c: Change pool_allocator to object_allocator.
19680         * ipa-inline-analysis.c: Likewise.
19681         * ipa-profile.c: Likewise.
19682         * ipa-prop.c: Likewise.
19683         * ipa-prop.h: Likewise.
19684         * ira-build.c (initiate_cost_vectors): Cast return value.
19685         (ira_allocate_cost_vector): Likewise.
19686         * ira-color.c (struct update_cost_record): Remove unused members.
19687         * lra-int.h (struct lra_live_range): Likewise.
19688         (struct lra_copy): Likewise.
19689         (struct lra_insn_reg): Likewise.
19690         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
19691         * lra.c (new_insn_reg): Replace new operator with allocate method.
19692         (free_insn_regs): Same for operator delete.
19693         (finish_insn_regs): Release new static allocator.
19694         (finish_insn_recog_data): Likewise.
19695         (lra_free_copies): Replace delete operator with remove method.
19696         (lra_create_copy): Replace operator new with allocate method.
19697         (invalidate_insn_data_regno_info): Same for remove method.
19698         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
19699         (free_debug_insn_changes): Replace delete operator with remove method.
19700         (replace_oldest_value_reg): Replace operator new with allocate method.
19701         (pass_cprop_hardreg::execute): Release new static variable.
19702         * sched-deps.c (sched_deps_init): Change pool_allocator to
19703         object_allocator.
19704         * sel-sched-ir.c: Likewise.
19705         * sel-sched-ir.h: Likewise.
19706         * stmt.c (expand_case): Likewise.
19707         (expand_sjlj_dispatch_table): Likewise.
19708         * tree-sra.c (struct access): Remove unused members.
19709         (struct assign_link): Likewise.
19710         (sra_deinitialize): Release newly added static pools.
19711         (create_access_1):Replace operator new with allocate method.
19712         (build_accesses_from_assign): Likewise.
19713         (create_artificial_child_access): Likewise.
19714         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
19715         pool_allocator to object_allocator.
19716         * tree-ssa-pre.c: Likewise.
19717         * tree-ssa-reassoc.c: Likewise.
19718         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
19719         * tree-ssa-strlen.c: Likewise.
19720         * tree-ssa-structalias.c: Likewise.
19721         * var-tracking.c (onepart_pool_allocate): New function.
19722         (unshare_variable): Use the newly added function.
19723         (variable_merge_over_cur): Likewise.
19724         (variable_from_dropped): Likewise.
19725         (variable_was_changed): Likewise.
19726         (set_slot_part): Likewise.
19727         (emit_notes_for_differences_1): Likewise.
19728         (vt_finalize): Release newly added static pools.
19729
19730 2015-07-16  Martin Jambor  <mjambor@suse.cz>
19731
19732         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
19733         all uses.  Fix two typos in its general comment.
19734         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
19735
19736 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
19737
19738         * config/i386/linux-common.h (LINK_MPX): New.
19739         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
19740         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
19741         indicating '-z bndplt' support by linker.
19742         * configure: Regenerate.
19743         * config.in: Regenerate.
19744
19745 2015-07-16  Richard Biener  <rguenther@suse.de>
19746
19747         * fold-const.c (fold_widened_comparison): Remove.
19748         (fold_sign_changed_comparison): Likewise.
19749         (fold_comparison): Move widened and sign-changed comparison
19750         simplification ...
19751         * match.pd: ... to patterns here.
19752         * generic-match-head.c: Include target.h.
19753         * gimple-match-head.c: Likewise.
19754
19755 2015-07-16  Richard Biener  <rguenther@suse.de>
19756
19757         * tree-ssa-dom.c (dom_valueize): New function.
19758         (record_temporary_equivalences): Also record equivalences
19759         for dominating stmts that have uses of equivalences we are
19760         about to record.
19761
19762 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
19763
19764         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
19765         add_autoinc_candidates.
19766         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
19767         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
19768         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
19769         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
19770         Call new function.
19771         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
19772         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
19773         Remove parameter struct iv*.  Call add_autoinc_candidates here.
19774         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
19775         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
19776         Call new function.
19777         (find_iv_candidates): Call new functions.
19778
19779 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
19780
19781         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
19782         uninitialized-variable warning.
19783
19784 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
19785
19786         PR target/65249
19787         * config/sh/sh.md (movdi): Split simple reg move to two movsi
19788         when the destination is R0.
19789
19790 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
19791
19792         PR target/66866
19793         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
19794         * config/i386/i386.c (ix86_expand_pextr): New function.
19795         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
19796         for non-lowpart subregs.
19797         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
19798         (insv<mode>): Use SWI248 mode iterator.
19799         (insv<mode>_1): Ditto.
19800
19801 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19802             Sebastian Pop  <s.pop@samsung.com>
19803
19804         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
19805         iterator to use_stmt.
19806
19807 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19808             Sebastian Pop <s.pop@samsung.com>
19809
19810         * graphite-scop-detection.c (build_scops_1): Discard scops for
19811         which entry==exit.
19812
19813 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19814             Sebastian Pop <s.pop@samsung.com>
19815
19816         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
19817         case of a return statement in scop.
19818
19819 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
19820             Sebastian Pop <s.pop@samsung.com>
19821
19822         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
19823         INTEGER_TYPE parameters.
19824         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
19825         VECTOR_CST in scan_tree_for_params.
19826         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
19827
19828 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19829
19830         * gimple-pretty-print.h: Don't include pretty-print.h.
19831         * tree-streamer.h: Don't include lto-streamer.h.
19832         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
19833         * gimple-streamer-in.c: Remove redundant includes.
19834         * gimple-streamer-out.c: Likewise.
19835         * ipa-devirt.c: Likewise.
19836         * ipa-icf.c: Likewise.
19837         * ipa-inline-analysis.c: Likewise.
19838         * ipa-polymorphic-call.c: Likewise.
19839         * ipa-profile.c: Likewise.
19840         * ipa-prop.c: Likewise.
19841         * ipa-pure-const.c: Likewise.
19842         * lto-cgraph.c: Likewise.
19843         * lto-streamer-in.c: Likewise.
19844         * lto-streamer-out.c: Likewise.
19845         * lto-streamer.c: Likewise.
19846         * tree-streamer-in.c: Likewise.
19847         * tree-streamer-out.c: Likewise.
19848         * tree-streamer.c: Likewise.
19849
19850 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
19851
19852         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
19853         include input.h.
19854         * opts.c: Remove multiline #include comment.
19855
19856 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
19857
19858         * config/nvptx/mkoffload.c (process): Add C++ protection to
19859         emitted code.
19860
19861 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19862
19863         PR target/66854
19864         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
19865         null before IEEE 128-bit floating point support patch.
19866
19867 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19868
19869         * simplify-rtx.c (simplify_ternary_operation): Add simplification
19870         for (!c) != {0,...,0} ? a : b for vector modes.
19871
19872 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
19873             Martin Jambor  <mjambor@suse.cz>
19874
19875         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
19876         struct func_body_info* instead of struct ipa_node_params*, expecting
19877         fbi->info to be filled in.  Replace throughout.  Adjust call to
19878         ipa_load_from_parm_agg.
19879         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
19880         instead of struct ipa_node_params*.  Adjust calls to other functions
19881         so that they pass either fbi or fbi->info.
19882         (set_switch_stmt_execution_predicate): Likewise.
19883         (will_be_nonconstant_predicate): Likewise.
19884         (compute_bb_predicates): Likewise.
19885         (estimate_function_body_sizes): Move asserts earlier.  Fill in
19886         struct func_body_info, replace parms_info with fbi.info.  Adjust
19887         calls to functions that now accept struct func_body_info.
19888         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
19889         (struct func_body_info): Likewise.
19890         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
19891         remove static.  Adjust callers.
19892         (ipa_load_from_parm_agg): Remove.
19893         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
19894         (func_body_info): Likewise.
19895         (ipa_load_from_parm_agg): Adjust prototype.
19896
19897 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19898
19899         * gensupport.c (rtx_handle_directive): Adjust.
19900         * read-rtl.c (apply_iterators): Take vector to add rtxs to
19901         instead of expr list rtx.
19902         (add_define_attr_for_define_subst): Likewise.
19903         (add_define_subst_attr): Likewise.
19904         (read_subst_mapping): Likewise.
19905         (read_rtx): Likewise.
19906         * rtl.h (read_rtx): Adjust.
19907
19908 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19909
19910         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
19911
19912 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19913
19914         PR target/58066
19915         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
19916         (*tls_local_dynamic_base_64_<mode>): Ditto.
19917         (*tls_local_dynamic_base_64_largepic): Ditto.
19918         (tls_global_dynamic_64_<mode>): Update expander pattern.
19919         (tls_local_dynamic_base_64_<mode>): Ditto.
19920
19921 2015-07-15  Richard Biener  <rguenther@suse.de>
19922
19923         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
19924         and bool_var == 1 -> bool_var simplifications ...
19925         * match.pd: ... to patterns here.  Factor out negate_expr_p
19926         cases from the A - B -> A + (-B) patterns as negate_expr_p
19927         predicate and add a -(A + B) -> (-B) - A pattern.
19928
19929 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19930
19931         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
19932
19933 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
19934             Robert Suchanek  <robert.suchanek@imgtec.com>
19935
19936         * config/mips/mips.c (mips_int_mask): New enum.
19937         (mips_shadow_set): Likewise.
19938         (int_mask): New variable.
19939         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
19940         (machine_function): Add int_mask and use_shadow_register_set.
19941         (mips_attribute_table): Add attribute handlers for interrupt and
19942         use_shadow_register_set.
19943         (mips_interrupt_mask): New static function.
19944         (mips_handle_interrupt_attr): Likewise.
19945         (mips_handle_use_shadow_register_set_attr): Likewise.
19946         (mips_use_shadow_register_set): Change return type to enum
19947         mips_shadow_set.  Add argument handling for use_shadow_register_set
19948         attribute.
19949         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
19950         compare with mips_shadow_set enum.
19951         (mips_compute_frame_info): Add interrupt mask and
19952         use_shadow_register_set to per-function information structure.
19953         Add a stack slot for EPC unconditionally.
19954         (mips_expand_prologue): Compare use_shadow_register_set value
19955         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
19956         masked interrupt register but in EIC mode use K0 and save Cause in K0.
19957         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
19958         copying the stack pointer from the shadow register set.
19959         * config/mips/mips.h (SR_IM0): New define.
19960         * config/mips/mips.md (mips_rdpgpr): Rename to...
19961         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
19962         * doc/extend.texi (Declaring Attributes of Functions): Document
19963         optional arguments for interrupt and use_shadow_register_set
19964         attributes.
19965
19966 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19967
19968         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
19969         interrupt attribute.
19970         (mips_expand_prologue): Disable the floating point unit in an ISR.
19971         * config/mips/mips.h (SR_COP1): New define.
19972
19973 2015-07-15  Richard Biener  <rguenther@suse.de>
19974
19975         * genmatch.c (parser::peek, parser::peek_ident): Add argument
19976         to tell how many tokens to peek ahead (default 1).
19977         (parser::eat_token, parser::eat_ident): Return token consumed.
19978         (parser::parse_result): Parse new switch statement.
19979         * match.pd: Use case statements where appropriate.
19980
19981 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19982
19983         PR rtl-optimization/58066
19984         * calls.c (expand_call): Precompute register parameters before stack
19985         alignment is performed.
19986
19987 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19988
19989         PR rtl-optimization/66838
19990         * postreload.c (reload_cse_move2add): Also process
19991         CALL_INSN_FUNCTION_USAGE when resetting information of
19992         call-clobbered registers.
19993
19994 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19995             Cesar Philippidis  <cesar@codesourcery.com>
19996             Chung-Lin Tang  <cltang@codesourcery.com>
19997
19998         * config/nios2/constraints.md (U, v): New constraints.
19999         * config/nios2/predicates.md (rdprs_dcache_operand): New.
20000         (ldstex_memory_operand): New.
20001         * config/nios2/sync.md: New file.
20002         * config/nios2/nios2.md (unspecv): Add new builtin function
20003         UNSPECV codes.
20004         (rdprs, flushd, flushda, wrpie, eni): New patterns.
20005         (top-level): Include sync.md.
20006         * config/nios2/nios2.c (N2_FTYPES): Add function types for
20007         new builtins.
20008         (N2_BUILTINS): Add arch field setting, add new builtins.
20009         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
20010         for arch field.
20011         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
20012         Also handle ldex/stex/ldsex/stsex builtins.
20013         (nios2_expand_rdprs_builtin): New function.
20014         (nios2_expand_cache_builtin): New function.
20015         (nios2_expand_wrpie_builtin): New function.
20016         (nios2_expand_eni_builtin): New function.
20017         (nios2_expand_builtin): Add arch field handling and new builtin
20018         cases.
20019         * doc/extend.texi (Altera Nios II Built-in Functions): Document
20020         new builtins.
20021         * doc/md.texi (Machine Constraints): Document U and v constraints.
20022
20023 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20024             Cesar Philippidis  <cesar@codesourcery.com>
20025             Chung-Lin Tang  <cltang@codesourcery.com>
20026
20027         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
20028         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
20029         callee_save_reg_size and uses_anonymous_args fields.
20030         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
20031         (nios2_create_cfa_notes): New function.
20032         (nios2_adjust_stack): New function for adjusting stack.
20033         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
20034         Use nios2_adjust_stack.
20035         (nios2_expand_epilogue): Likewise.
20036         (nios2_expand_return): New function.
20037         (nios2_can_use_return_insn): Update for CDX pop.n usage.
20038         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
20039         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
20040         * config/nios2/nios2.md (return): Use nios2_expand_return.
20041
20042 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20043             Cesar Philippidis  <cesar@codesourcery.com>
20044             Chung-Lin Tang  <cltang@codesourcery.com>
20045
20046         * config/nios2/predicates.md (pop_operation): New.
20047         (ldwm_operation, stwm_operation): New.
20048         (nios2_hard_register_operand): New.
20049         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
20050         (ldstwm_operation_p): Declare.
20051         (gen_ldstwm_peep): Declare.
20052         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
20053         (base_reg_adjustment_p): New.
20054         (pop_operation_p): New.
20055         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
20056         (nios2_ldstwm_regset_p): New.
20057         (ldstwm_operation_p): New.
20058         (gen_ldst): New.
20059         (nios2_ldst_parallel): New.
20060         (struct ldswm_operand): Declare.
20061         (compare_ldstwm_operands): New.
20062         (can_use_cdx_ldstw): New.
20063         (gen_ldstwm_peep): New.
20064         * config/nios2/nios2-ldstwm.sml: New.
20065         * config/nios2/nios2.md: Include ldstwm.md.
20066         * config/nios2/ldstwm.md: Generated.
20067
20068 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20069             Cesar Philippidis  <cesar@codesourcery.com>
20070             Chung-Lin Tang  <cltang@codesourcery.com>
20071
20072         * config/nios2/nios2.h (LABEL_ALIGN): Define.
20073         (REG_ALLOC_ORDER): Define.
20074         (ADJUST_REG_ALLOC_ORDER): Define.
20075         (HONOR_REG_ALLOC_ORDER): Define.
20076         (CDX_REG_P): Define.
20077         (ANDCLEAR_INT): Define.
20078         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
20079         (nios2_label_align): Declare.
20080         (nios2_cdx_narrow_form_p): Declare.
20081         (nios2_adjust_reg_alloc_order): Declare.
20082         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
20083         operation.
20084         (nios2_large_unspec_reloc_p): New function, split from...
20085         (nios2_legitimate_pic_operand_p): ...here.
20086         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
20087         (nios2_print_operand_punct_valid_p): New.
20088         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
20089         (split_mem_address): New.
20090         (split_alu_insn): New.
20091         (cdxreg): New.
20092         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
20093         (enum nios2_add_insn_kind): New.
20094         (nios2_add_insn_names, nios2_add_insn_narrow): New.
20095         (nios2_add_insn_classify): New.
20096         (nios2_add_insn_asm): New.
20097         (nios2_cdx_narrow_form_p): New.
20098         (label_align, min_labelno, max_labelno): New.
20099         (nios2_reorg): New.
20100         (nios2_label_align): New.
20101         (nios2_adjust_reg_alloc_order): New.
20102         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20103         (TARGET_MACHINE_DEPENDENT_REORG): Define.
20104         * config/nios2/constraints.md (P): New constraint.
20105         * config/nios2/predicates.md (const_and_operand): New.
20106         (and_operand): New.
20107         (stack_memory_operand): New.
20108         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
20109         (length): Update to use nios2_cdx_narrow_form_p().
20110         (type): Add new insn type values.
20111         (control, alu, st, ld, shift): Update insn reservations with
20112         new insn type values.
20113         (*high, *lo_sum): Define new insn patterns for constant generation.
20114         (movqi_internal, movhi_internal, movsi_internal): Reduce
20115         alternatives, update asm template to handle CDX variants, update
20116         type attributes.
20117         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
20118         template, update type attributes.
20119         (extendhisi2, extendqi<mode>2): Likewise.
20120         (addsi3): Change to use function for asm string.
20121         (subsi3): Add CDX notation to asm template, update type attributes.
20122         (negsi3, one_cmplsi3): Likewise.
20123         (andsi3): New pattern, specialized from logical patterns.
20124         (<code>si3): Remove and case, combine alternatives, update asm
20125         template.
20126         (<shift_op>si3): Add CDX notation, update type attributes.
20127         (rotrsi3): Update type attribute.
20128         (*merge, extzv, insv): New insn patterns.
20129         (return): Change to define_expand.
20130         (simple_return): Add CDX notation, update type attributes.
20131         (indirect_jump): Add CDX notation.
20132         (jump): Update asm cases, update length attribute expression.
20133         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
20134         (nios2_cbranch): Update asm cases and length attribute expression
20135         to handle CDX variants.
20136         (nios2_cmp<code>): Update asm template.
20137         (nop): Add CDX notation, update type attributes.
20138         (trap): Add CDX notation.
20139         (ctrapsi4): Update asm cases and length attribute expression to
20140         handle CDX variant.
20141         * doc/md.texi (Machine Constraints): Document P constraint.
20142
20143 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20144             Cesar Philippidis  <cesar@codesourcery.com>
20145             Chung-Lin Tang  <cltang@codesourcery.com>
20146
20147         * config/nios2/nios2.h (SMALL_INT12): New macro.
20148         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
20149         (nios2_valid_addr_expr_p): Use it.
20150         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
20151         with implicit "io" instructions on R2.
20152         * config/nios2/constraints.md (w): New constraint.
20153         * config/nios2/predicates.md (ldstio_memory_operand): New.
20154         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
20155         operand predicate and constraint.
20156         (ld<bh>io_signed, st<bhw>io>): Likewise.
20157         * doc/md.texi (Machine Constraints): Document w constraint.
20158
20159 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20160             Cesar Philippidis  <cesar@codesourcery.com>
20161             Chung-Lin Tang  <cltang@codesourcery.com>
20162
20163         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
20164         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
20165         Nios II architecture level.
20166         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
20167         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
20168         (OPTION_DEFAULT_SPECS): Define.
20169         (ASM_SPEC): Add -march= spec strings.
20170         * config/nios2/nios2.c (nios2_option_override): Check for
20171         conflicts involving new options.
20172         * config.gcc (nios2*-*-*): Support --with-arch=.
20173         * doc/invoke.texi (Option Summary, Nios II Options): Document
20174         -march=, -mbmx, and -mcdx.
20175
20176 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
20177
20178         PR rtl-optimization/66626
20179         * lra-constraints.c (lra_constraints): Prevent equivalence
20180         substitution for static chain pseudo in functions with nonlocal
20181         goto.
20182
20183 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
20184
20185         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
20186         (nios2_emit_stack_limit_check): Add size parameter.  Handle
20187         -fstack-limit-symbol as well as -fstack-limit-register.
20188         (nios2_expand_prologue): Emit only a single stack limit check,
20189         even if multiple stack adjustments are required.
20190         (nios2_option_override): Diagnose unsupported combination of -fpic
20191         and -stack-limit-symbol.
20192
20193 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
20194
20195         * Makefile.in (top_srcdir): New.
20196         * configure.ac: Use AM_ZLIB.
20197         * configure: Regeneated.
20198
20199 2015-07-14  Matthias Klose  <doko@ubuntu.com>
20200
20201         PR target/66840
20202         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
20203
20204 2015-07-14  Richard Biener  <rguenther@suse.de>
20205
20206         PR tree-optimization/66863
20207         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
20208         what we record for conversion use stmt lhs inequalities.
20209
20210 2015-07-14  Richard Biener  <rguenther@suse.de>
20211
20212         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
20213         (decision_tree::gen_gimple): Likewise.
20214
20215 2015-07-14  Tom de Vries  <tom@codesourcery.com>
20216
20217         * gcc.c (greater_than_spec_func): Declare forward.
20218         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
20219         -ftree-parallelize-loops={0,1}.
20220         (static_spec_functions): Add greater_than_spec_func function with name
20221         "gt".
20222         (greater_than_spec_func): New function.
20223
20224 2015-07-14  Richard Biener  <rguenther@suse.de>
20225
20226         * tree-ssa-dom.c (record_temporary_equivalences): Merge
20227         wideing type conversion case from record_equivalences_from_incoming_edge
20228         and use record_equality to record equivalences.
20229         (record_equivalences_from_incoming_edge): Call
20230         record_temporary_equivalences.
20231
20232 2015-07-14  Richard Biener  <rguenther@suse.de>
20233
20234         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
20235         (struct if_expr): New.
20236         (struct with_expr): Likewise.
20237         (is_a_helper): Add helpers for if_expr and with_expr.
20238         (struct simplify): Add simplify_kind enum and member.  Remove
20239         ifexpr_vec member.
20240         (simplify::simplify): Adjust.
20241         (lower_commutative): Adjust.
20242         (lower_opt_convert): Likewise.
20243         (lower_cond): Likewise.
20244         (replace_id): Handle with_expr and if_expr.
20245         (lower_for): Adjust.
20246         (dt_simplify::gen_1): New recursive worker, split out from ...
20247         (dt_simplify::gen): ... here.  Deal with if and with expansion
20248         recursively.
20249         (capture_info::capture_info): Take context argument
20250         (capture_info::walk_result): Only analyze specific result.
20251         (parser::parse_result): New function.
20252         (parser::parse_simplify): Adjust to parse ifs with then end
20253         else case.
20254         (parser::parse_if): Simplify.
20255         (parser::parse_pattern): Pass down simplify kind.
20256         * match.pd: Convert if structure to new syntax.
20257
20258 2015-07-13  Marek Polacek  <polacek@redhat.com>
20259
20260         * rtl.c (rtx_equal_p_cb): Fix typo.
20261
20262 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
20263
20264         * omega.h: Don't include config.h, don't include params.h again if
20265         omega.h has already been included.
20266         * graphite-poly.h: Include sese.h.
20267         * graphite.c: Don't include sese.h, remove needless includes and
20268         minimize includes outside #ifdef HAVE_isl block.
20269         * graphite-blocking.c: Don't include sese.h, remove needless includes,
20270         and wrap entire file in #ifdef HAVE_isl
20271         * graphite-dependences.c: Likewise.
20272         * graphite-interchange.c: Likewise.
20273         * graphite-isl-ast-to-gimple.c: Likewise.
20274         * graphite-optimize-isl.c: Likewise.
20275         * graphite-poly.c: Likewise.
20276         * graphite-scop-detection.c: Likewise.
20277         * graphite-sese-to-poly.c: Likewise.
20278
20279 2015-07-13  Tom de Vries  <tom@codesourcery.com>
20280
20281         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
20282
20283 2015-07-13  Renlin Li  <renlin.li@arm.com>
20284
20285         PR rtl/66556
20286         * simplify-rtx.c (simplify_const_relational_operation): Add
20287         side_effects_p checks.
20288
20289 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
20290
20291         * bitmap.h: Fix double word typos.
20292         * builtins.c: Same.
20293         * calls.c: Same.
20294         * cfgloopmanip.c: Same.
20295         * cgraph.c: Same.
20296         * cgraph.h: Same.
20297         * cgraphclones.c: Same.
20298         * combine.c: Same.
20299         * config/aarch64/aarch64-protos.h: Same.
20300         * config/aarch64/aarch64.c: Same.
20301         * config/aarch64/aarch64.md: Same.
20302         * config/arm/arm.md: Same.
20303         * config/arm/arm1020e.md: Same.
20304         * config/arm/arm1026ejs.md: Same.
20305         * config/arm/arm926ejs.md: Same.
20306         * config/arm/fa526.md: Same.
20307         * config/arm/fa606te.md: Same.
20308         * config/arm/fa626te.md: Same.
20309         * config/arm/fa726te.md: Same.
20310         * config/arm/fmp626.md: Same.
20311         * config/darwin.c: Same.
20312         * config/epiphany/epiphany.c: Same.
20313         * config/frv/frv.c: Same.
20314         * config/ft32/ft32.c: Same.
20315         * config/gnu-user.h: Same.
20316         * config/h8300/constraints.md: Same.
20317         * config/i386/i386.c: Same.
20318         * config/i386/i386.md: Same.
20319         * config/iq2000/iq2000.md: Same.
20320         * config/mips/mips.c: Same.
20321         * config/mmix/mmix.md: Same.
20322         * config/moxie/moxie.c: Same.
20323         * config/nds32/nds32.md: Same.
20324         * config/pa/pa.h: Same.
20325         * config/rs6000/aix.h: Same.
20326         * config/rs6000/rs6000.h: Same.
20327         * config/sh/sh.c: Same.
20328         * config/tilegx/tilegx.md: Same.
20329         * config/tilepro/gen-mul-tables.cc: Same.
20330         * cse.c: Same.
20331         * dbxout.c: Same.
20332         * doc/invoke.texi: Same.
20333         * dse.c: Same.
20334         * dwarf2out.c: Same.
20335         * final.c: Same.
20336         * gcc.c: Same.
20337         * genmatch.c: Same.
20338         * gimplify.c: Same.
20339         * hash-table.h: Same.
20340         * internal-fn.c: Same.
20341         * ipa-cp.c: Same.
20342         * ipa-devirt.c: Same.
20343         * ipa-icf.c: Same.
20344         * ipa-icf.h: Same.
20345         * ipa-profile.c: Same.
20346         * ipa-prop.c: Same.
20347         * ipa-prop.h: Same.
20348         * ira.c: Same.
20349         * omp-low.c: Same.
20350         * reg-stack.c: Same.
20351         * regcprop.c: Same.
20352         * reorg.c: Same.
20353         * rtl.h: Same.
20354         * sbitmap.h: Same.
20355         * tree-eh.c: Same.
20356         * tree-inline.c: Same.
20357         * tree-sra.c: Same.
20358         * tree-ssa-dom.c: Same.
20359         * tree-ssa-loop-ivopts.c: Same.
20360         * tree-ssa-structalias.c: Same.
20361         * tree-ssa-tail-merge.c: Same.
20362         * tree-ssa-ter.c: Same.
20363         * tree-ssa-threadupdate.c: Same.
20364         * tree-ssa-uninit.c: Same.
20365         * tree-ssanames.c: Same.
20366         * tree-vect-loop-manip.c: Same.
20367         * tree-vrp.c: Same.
20368         * tree.c: Same.
20369         * valtrack.c: Same.
20370         * vec.h: Same.
20371
20372 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20373
20374         PR middle-end/66726
20375         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
20376         tree_ssa_phiopt_worker): Call it.
20377
20378 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
20379
20380         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
20381         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
20382         REG_EQUAL note.
20383
20384 2015-07-11  Marek Polacek  <polacek@redhat.com>
20385
20386         PR middle-end/66353
20387         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
20388         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
20389         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
20390         rather than bb_has_abnormal_call_pred.
20391         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
20392         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
20393         rather than bb_has_abnormal_call_pred.
20394
20395 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
20396
20397         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20398         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
20399         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20400         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
20401         v850_legitimate_address_p): New functions.
20402         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
20403
20404 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
20405
20406         PR target/66819
20407         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
20408         indirect sibcall with register arguments if register available
20409         for argument passing.
20410         (init_cumulative_args): Set cfun->machine->arg_reg_available
20411         to (cum->nregs > 0) or to true if function has a variable
20412         argument list.
20413         (function_arg_advance_32): Set cfun->machine->arg_reg_available
20414         to false if cum->nregs <= 0.
20415         * config/i386/i386.h (machine_function): Add arg_reg_available.
20416
20417 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20418
20419         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
20420         and gen_higpart instead of gen_rtx_SUBREG.
20421         * config/i386/i386.md
20422         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
20423         (read-modify peephole2): Use gen_lowpart instead of
20424         gen_rtx_SUBREG for operand 5.
20425
20426 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20427
20428         * config/tilepro/gen-mul-tables.cc (main): Change include list for
20429         generated files.
20430         * config/tilepro/mul-tables.c: Regenerate.
20431         * config/tilegx/mul-tables.c: Regenerate.
20432
20433 2015-07-10  Richard Biener  <rguenther@suse.de>
20434
20435         * fold-const.c (distribute_bit_expr): Remove.
20436         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
20437         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
20438         to A & (B | C) and simplifying A << C1 << C2 to ...
20439         * match.pd: ... patterns here.
20440
20441 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
20442
20443         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
20444         Mark mem as READONLY and NOTRAP for PIC symbol.
20445
20446 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
20447
20448         * gimple-predict.h: New file.
20449         (gimple_predict_predictor, gimple_predict_set_predictor,
20450         gimple_predict_outcome, gimple_predict_set_outcome,
20451         gimple_build_predict): Relocate here.
20452         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
20453         gimple_predict_outcome, gimple_predict_set_outcome): Move to
20454         gimple-predict.h.
20455         * gimple.c (gimple_build_predict): Move to gimple-predict.h
20456         * basic-block.h: Don't include cfghooks.h.
20457         * backend.h: Don't include predict.h.
20458         * cfghooks.h: Include predict.h.
20459         * gimple-pretty-print.c: Include gimple-predict.h.
20460         * gimplify.c: Likwise.
20461         * predict.c: Adjust includes.
20462         * tree-inline.c: Likewise.
20463         * asan.c: Likewise.
20464         * auto-inc-dec.c: Likewise.
20465         * auto-profile.c: Likewise.
20466         * bb-reorder.c: Likewise.
20467         * builtins.c: Likewise.
20468         * caller-save.c: Likewise.
20469         * calls.c: Likewise.
20470         * cfganal.c: Likewise.
20471         * cfgbuild.c: Likewise.
20472         * cfg.c: Likewise.
20473         * cfgcleanup.c: Likewise.
20474         * cfgexpand.c: Likewise.
20475         * cfghooks.c: Likewise.
20476         * cfgloopanal.c: Likewise.
20477         * cfgloop.c: Likewise.
20478         * cfgloopmanip.c: Likewise.
20479         * cfgrtl.c: Likewise.
20480         * cgraph.c: Likewise.
20481         * cgraphunit.c: Likewise.
20482         * combine.c: Likewise.
20483         * cprop.c: Likewise.
20484         * cse.c: Likewise.
20485         * dce.c: Likewise.
20486         * dojump.c: Likewise.
20487         * dse.c: Likewise.
20488         * except.c: Likewise.
20489         * expmed.c: Likewise.
20490         * expr.c: Likewise.
20491         * final.c: Likewise.
20492         * fold-const.c: Likewise.
20493         * function.c: Likewise.
20494         * fwprop.c: Likewise.
20495         * gcc-plugin.h: Likewise.
20496         * gcse.c: Likewise.
20497         * genattrtab.c: Likewise.
20498         * genemit.c: Likewise.
20499         * gengtype.c: Likewise.
20500         * genopinit.c: Likewise.
20501         * genoutput.c: Likewise.
20502         * genpreds.c: Likewise.
20503         * genrecog.c: Likewise.
20504         * gimple-fold.c: Likewise.
20505         * gimple-iterator.c: Likewise.
20506         * gimple-ssa-isolate-paths.c: Likewise.
20507         * gimple-ssa-strength-reduction.c: Likewise.
20508         * graph.c: Likewise.
20509         * graphite-blocking.c: Likewise.
20510         * graphite.c: Likewise.
20511         * graphite-dependences.c: Likewise.
20512         * graphite-interchange.c: Likewise.
20513         * graphite-isl-ast-to-gimple.c: Likewise.
20514         * graphite-optimize-isl.c: Likewise.
20515         * graphite-poly.c: Likewise.
20516         * graphite-scop-detection.c: Likewise.
20517         * graphite-sese-to-poly.c: Likewise.
20518         * haifa-sched.c: Likewise.
20519         * ifcvt.c: Likewise.
20520         * internal-fn.c: Likewise.
20521         * ipa-cp.c: Likewise.
20522         * ipa-profile.c: Likewise.
20523         * ipa-split.c: Likewise.
20524         * ipa-utils.c: Likewise.
20525         * ira-build.c: Likewise.
20526         * ira-color.c: Likewise.
20527         * ira-conflicts.c: Likewise.
20528         * ira-costs.c: Likewise.
20529         * ira-emit.c: Likewise.
20530         * ira-lives.c: Likewise.
20531         * jump.c: Likewise.
20532         * loop-doloop.c: Likewise.
20533         * loop-init.c: Likewise.
20534         * loop-invariant.c: Likewise.
20535         * loop-unroll.c: Likewise.
20536         * lower-subreg.c: Likewise.
20537         * lra-assigns.c: Likewise.
20538         * lra.c: Likewise.
20539         * lra-coalesce.c: Likewise.
20540         * lra-constraints.c: Likewise.
20541         * lra-lives.c: Likewise.
20542         * lto-cgraph.c: Likewise.
20543         * lto-streamer-in.c: Likewise.
20544         * mode-switching.c: Likewise.
20545         * modulo-sched.c: Likewise.
20546         * omp-low.c: Likewise.
20547         * optabs.c: Likewise.
20548         * passes.c: Likewise.
20549         * postreload.c: Likewise.
20550         * postreload-gcse.c: Likewise.
20551         * profile.c: Likewise.
20552         * recog.c: Likewise.
20553         * regstat.c: Likewise.
20554         * reload1.c: Likewise.
20555         * reorg.c: Likewise.
20556         * rtlanal.c: Likewise.
20557         * sched-ebb.c: Likewise.
20558         * sel-sched-ir.c: Likewise.
20559         * sese.c: Likewise.
20560         * shrink-wrap.c: Likewise.
20561         * simplify-rtx.c: Likewise.
20562         * stmt.c: Likewise.
20563         * store-motion.c: Likewise.
20564         * tracer.c: Likewise.
20565         * trans-mem.c: Likewise.
20566         * tree-call-cdce.c: Likewise.
20567         * tree-cfg.c: Likewise.
20568         * tree-cfgcleanup.c: Likewise.
20569         * tree-chkp.c: Likewise.
20570         * tree-complex.c: Likewise.
20571         * tree-eh.c: Likewise.
20572         * tree-if-conv.c: Likewise.
20573         * tree-loop-distribution.c: Likewise.
20574         * tree-outof-ssa.c: Likewise.
20575         * tree-parloops.c: Likewise.
20576         * tree-predcom.c: Likewise.
20577         * tree-pretty-print.c: Likewise.
20578         * tree-profile.c: Likewise.
20579         * tree-sra.c: Likewise.
20580         * tree-ssa.c: Likewise.
20581         * tree-ssa-coalesce.c: Likewise.
20582         * tree-ssa-dce.c: Likewise.
20583         * tree-ssa-dom.c: Likewise.
20584         * tree-ssa-forwprop.c: Likewise.
20585         * tree-ssa-ifcombine.c: Likewise.
20586         * tree-ssa-loop-ch.c: Likewise.
20587         * tree-ssa-loop-im.c: Likewise.
20588         * tree-ssa-loop-ivcanon.c: Likewise.
20589         * tree-ssa-loop-ivopts.c: Likewise.
20590         * tree-ssa-loop-manip.c: Likewise.
20591         * tree-ssa-loop-prefetch.c: Likewise.
20592         * tree-ssa-loop-unswitch.c: Likewise.
20593         * tree-ssa-math-opts.c: Likewise.
20594         * tree-ssa-phiopt.c: Likewise.
20595         * tree-ssa-pre.c: Likewise.
20596         * tree-ssa-reassoc.c: Likewise.
20597         * tree-ssa-sink.c: Likewise.
20598         * tree-ssa-tail-merge.c: Likewise.
20599         * tree-ssa-threadedge.c: Likewise.
20600         * tree-ssa-threadupdate.c: Likewise.
20601         * tree-switch-conversion.c: Likewise.
20602         * tree-tailcall.c: Likewise.
20603         * tree-vect-data-refs.c: Likewise.
20604         * tree-vect-loop.c: Likewise.
20605         * tree-vect-loop-manip.c: Likewise.
20606         * tree-vectorizer.c: Likewise.
20607         * tree-vrp.c: Likewise.
20608         * ubsan.c: Likewise.
20609         * value-prof.c: Likewise.
20610         * varasm.c: Likewise.
20611         * var-tracking.c: Likewise.
20612         * config/aarch64/aarch64-builtins.c: Likewise.
20613         * config/aarch64/aarch64.c: Likewise.
20614         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20615         * config/alpha/alpha.c: Likewise.
20616         * config/arc/arc.c: Likewise.
20617         * config/arm/arm.c: Likewise.
20618         * config/avr/avr.c: Likewise.
20619         * config/bfin/bfin.c: Likewise.
20620         * config/c6x/c6x.c: Likewise.
20621         * config/cr16/cr16.c: Likewise.
20622         * config/cris/cris.c: Likewise.
20623         * config/darwin.c: Likewise.
20624         * config/darwin-c.c: Likewise.
20625         * config/epiphany/epiphany.c: Likewise.
20626         * config/epiphany/mode-switch-use.c: Likewise.
20627         * config/epiphany/resolve-sw-modes.c: Likewise.
20628         * config/fr30/fr30.c: Likewise.
20629         * config/frv/frv.c: Likewise.
20630         * config/ft32/ft32.c: Likewise.
20631         * config/h8300/h8300.c: Likewise.
20632         * config/i386/i386.c: Likewise.
20633         * config/i386/winnt.c: Likewise.
20634         * config/ia64/ia64.c: Likewise.
20635         * config/iq2000/iq2000.c: Likewise.
20636         * config/lm32/lm32.c: Likewise.
20637         * config/m32c/m32c.c: Likewise.
20638         * config/m32r/m32r.c: Likewise.
20639         * config/m68k/m68k.c: Likewise.
20640         * config/mcore/mcore.c: Likewise.
20641         * config/mep/mep.c: Likewise.
20642         * config/microblaze/microblaze.c: Likewise.
20643         * config/mips/mips.c: Likewise.
20644         * config/mmix/mmix.c: Likewise.
20645         * config/mn10300/mn10300.c: Likewise.
20646         * config/moxie/moxie.c: Likewise.
20647         * config/msp430/msp430.c: Likewise.
20648         * config/nds32/nds32.c: Likewise.
20649         * config/nds32/nds32-cost.c: Likewise.
20650         * config/nds32/nds32-fp-as-gp.c: Likewise.
20651         * config/nds32/nds32-intrinsic.c: Likewise.
20652         * config/nds32/nds32-isr.c: Likewise.
20653         * config/nds32/nds32-md-auxiliary.c: Likewise.
20654         * config/nds32/nds32-memory-manipulation.c: Likewise.
20655         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20656         * config/nds32/nds32-predicates.c: Likewise.
20657         * config/nios2/nios2.c: Likewise.
20658         * config/nvptx/nvptx.c: Likewise.
20659         * config/pa/pa.c: Likewise.
20660         * config/pdp11/pdp11.c: Likewise.
20661         * config/rl78/rl78.c: Likewise.
20662         * config/rs6000/rs6000.c: Likewise.
20663         * config/rx/rx.c: Likewise.
20664         * config/s390/s390.c: Likewise.
20665         * config/sh/sh.c: Likewise.
20666         * config/sh/sh-mem.cc: Likewise.
20667         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20668         * config/sh/sh_treg_combine.cc: Likewise.
20669         * config/sparc/sparc.c: Likewise.
20670         * config/spu/spu.c: Likewise.
20671         * config/stormy16/stormy16.c: Likewise.
20672         * config/tilegx/tilegx.c: Likewise.
20673         * config/tilepro/tilepro.c: Likewise.
20674         * config/v850/v850.c: Likewise.
20675         * config/vax/vax.c: Likewise.
20676         * config/visium/visium.c: Likewise.
20677         * config/xtensa/xtensa.c: Likewise.
20678
20679 2015-07-10  Richard Biener  <rguenther@suse.de>
20680
20681         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
20682         (decision_tree::gen_gimple): Likewise.
20683         (decision_tree::gen_generic): Likewise.
20684
20685 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
20686
20687         PR target/66813
20688         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
20689         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
20690
20691 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
20692
20693         PR middle-end/66820
20694         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
20695         or ORT_TASK contexts.
20696         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
20697         is non-zero.
20698
20699 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20700
20701         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
20702         above function.
20703
20704 2015-07-10  Tom de Vries  <tom@codesourcery.com>
20705
20706         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
20707         insert nit + 1 bound.
20708
20709 2015-07-10  Richard Biener  <rguenther@suse.de>
20710
20711         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
20712         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
20713         (if_convertible_loop_p_1): For this always compute bb predicates.
20714         (if_convertible_loop_p): And free them.
20715
20716 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20717
20718         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
20719         in dump message.
20720
20721 2015-07-10  Richard Biener  <rguenther@suse.de>
20722
20723         PR tree-optimization/66823
20724         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
20725         inverted predicate.
20726
20727 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
20728
20729         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
20730         to handle mips[32|64]r3 and mips[32|64]r5.
20731
20732 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
20733
20734         PR middle-end/66633
20735         * tree-nested.c (get_static_chain): Or in a flag into
20736         info->static_chain_added.
20737         (get_frame_field, get_nonlocal_debug_decl): Likewise.
20738         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
20739         2015-07-01 changes.
20740         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
20741         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
20742         add it to clauses.
20743
20744         PR tree-optimization/66718
20745         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
20746         field.
20747         (vect_simd_lane_linear): New function.
20748         (vectorizable_simd_clone_call): Support using linear arguments for
20749         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
20750
20751 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20752
20753         PR target/66821
20754         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
20755
20756 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
20757
20758         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
20759         Use machine mode, not enum machine_mode in the prototype.
20760
20761         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
20762         classify 128-bit floating point support.
20763         (FLOAT128_IBM_P): Likewise.
20764         (FLOAT128_VECTOR_P): Likewise.
20765         (FLOAT128_2REG_P): Likewise.
20766         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
20767         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
20768         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
20769         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
20770
20771         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
20772         tests against TFmode/TDmode, since those modes do not use VSX
20773         addresses.
20774         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
20775         support.
20776         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
20777         tests against TFmode, etc.
20778         (invalid_e500_subreg): Add tests against IFmode/KFmode.
20779         (reg_offset_addressing_ok_p): Likewise.
20780         (rs6000_legitimate_offset_address_p): Likewise.
20781         (rs6000_legitimize_address): Likewise.
20782         (rs6000_legitimize_reload_address): Likewise.
20783         (rs6000_legitimate_address_p): Clean up tests against TFmode and
20784         TDmode to use the new helper macros, which will include IFmode and
20785         KFmode.
20786         (rs6000_emit_move): Likewise.
20787         (rs6000_darwin64_record_arg_recurse): Likewise.
20788         (print_operand): Likewise.
20789         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
20790         that uses a single vector register as a vector and not as a
20791         floating point register in terms of the calling sequence.
20792         (rs6000_discover_homogeneous_aggregate): Likewise.
20793         (rs6000_return_in_memory): Likewise.
20794         (init_cumulative_args): Likewise.
20795         (rs6000_function_arg_boundary): Likewise.
20796         (rs6000_function_arg_advance_1): Likewise.
20797         (rs6000_function_arg): Likewise.
20798         (rs6000_pass_by_reference): Likewise.
20799         (rs6000_gimplify_va_arg): Likewise.
20800         (rs6000_secondary_reload_memory): Use machine_mode not enum
20801         machine mode.
20802         (rs6000_split_multireg_move): Use new helper macros.
20803         (spe_func_has_64bit_regs_p): Likewise.
20804         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
20805         (output_toc): Use new helper macros.
20806         (rs6000_register_move_cost): Likewise.
20807         (rs6000_function_value): Add IEEE 128-bit floating point calling
20808         sequence support.
20809         (rs6000_libcall_value): Likewise.
20810         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
20811         floating point support.
20812         (rs6000_vector_mode_supported_p): Likewise.
20813
20814 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
20815
20816         PR rtl-optimization/66782
20817         * lra-int.h (struct lra_insn_recog_data): Add comment about
20818         clobbered hard regs for arg_hard_regs.
20819         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
20820         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
20821         Add condition for processing used hard regs.
20822         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
20823         Process clobbered hard regs.
20824
20825 2015-07-09  Michael Matz  <matz@suse.de>
20826
20827         * genmatch.c (fprintf_indent): New function.
20828         (operand::gen_transform): Add indent parameter.
20829         (expr::gen_transform, c_expr::gen_transform,
20830         capture::gen_transform): Ditto and use fprintf_indent.
20831         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
20832         (dt_operand::gen, dt_operand::gen_predicate,
20833         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
20834         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
20835         (decision_tree::gen_gimple): Adjust calls and indent generated
20836         code.
20837         (decision_tree::gen_generic): Ditto.
20838         (write_predicate): Ditto.
20839
20840 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20841
20842         PR target/66814
20843         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
20844         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
20845         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
20846         {GENERAL,SSE,MMX}_REG_P where appropriate.
20847
20848 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20849
20850         * lto-streamer.h: Don't include target.h and alloc-pool.h.
20851         * builtins.c: Adjust includes.
20852         * gimple.c: Likewise.
20853         * ipa-icf.c: Likewise.
20854         * lto-opts.c: Likewise.
20855         * ipa-reference.c: Likewise.
20856         * lto-section-out.c: Likewise.
20857         * lto-streamer-in.c: Likewise.
20858         * lto-streamer-out.c: Likewise.
20859         * opts-global.c: Likewise.
20860         * symtab.c: Likewise.
20861         * tree-chkp.c: Likewise.
20862         * tree-ssa-live.c: Likewise.
20863         * tree-streamer-in.c: Likewise.
20864         * tree-streamer-out.c: Likewise.
20865         * config/darwin.c: Likewise.
20866         * config/i386/winnt.c: Likewise.
20867
20868 2015-07-09  Richard Biener  <rguenther@suse.de>
20869
20870         * genmatch.c (struct expr): Add force_single_use flag.
20871         (expr::expr): Add copy constructor.
20872         (capture_info::walk_match): Gather force_single_use captures.
20873         (expr::gen_transform): Use possibly NULLified sequence.
20874         (dt_simplify::gen): Apply single-use restrictions by NULLifying
20875         seq if any constrained expr is not single-use.
20876         (parser::parse_expr): Refactor to allow multiple flags.  Handle
20877         's' flag to force an expression have a single-use if the pattern
20878         simplifies to more than one statement.
20879         * match.pd: Convert most single_use conditionals to :s flags.
20880
20881 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20882
20883         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
20884         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
20885         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
20886
20887 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
20888
20889         * flags.h: Don't include flag-types.h or options.h.
20890         * opts-common.c: Adjust includes.
20891         * opts-global.c: Likewise.
20892         * common/config/epiphany/epiphany-common.c: Likewise.
20893
20894 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20895
20896         PR target/66818
20897         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
20898         for IA MCU.
20899
20900 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
20901
20902         PR target/66817
20903         * config/i386/i386.c (ix86_return_in_memory): Return true
20904         if int_size_in_bytes returns negative for IA MCU.
20905
20906 2015-07-09  Marek Polacek  <polacek@redhat.com>
20907
20908         PR tree-optimization/66718
20909         * Makefile.in (OBJS): Add gimple-laddress.o.
20910         * passes.def: Schedule pass_laddress.
20911         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
20912         * tree-pass.h (make_pass_laddress): Declare.
20913         * gimple-laddress.c: New file.
20914
20915 2015-07-09  Richard Biener  <rguenther@suse.de>
20916
20917         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
20918
20919 2015-07-09  Richard Biener  <rguenther@suse.de>
20920
20921         PR tree-optimization/66807
20922         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
20923
20924 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
20925
20926         * function.c (stack_protect_epilogue): Use if rather than switch for
20927         check targetm.have_stack_protect_test.
20928
20929 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20930
20931         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
20932         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
20933         * config/arc/arc.h: Likewise.
20934         * config/arm/arm.h: Likewise.
20935         * config/bfin/bfin.h: Likewise.
20936         * config/epiphany/epiphany.h: Likewise.
20937         * config/frv/frv.h: Likewise.
20938         * config/ia64/ia64.h: Likewise.
20939         * config/iq2000/iq2000.h: Likewise.
20940         * config/lm32/lm32.h: Likewise.
20941         * config/m32r/m32r.h: Likewise.
20942         * config/mcore/mcore.h: Likewise.
20943         * config/mep/mep.h: Likewise.
20944         * config/microblaze/microblaze.h: Likewise.
20945         * config/mips/mips.h: Likewise.
20946         * config/mmix/mmix.h: Likewise.
20947         * config/mn10300/mn10300.h: Likewise.
20948         * config/nds32/nds32.h: Likewise.
20949         * config/nios2/nios2.h: Likewise.
20950         * config/pa/pa.h: Likewise.
20951         * config/rl78/rl78.h: Likewise.
20952         * config/sh/sh.h: Likewise.
20953         * config/sparc/sparc.h: Likewise.
20954         * config/stormy16/stormy16.h: Likewise.
20955         * config/tilegx/tilegx.h: Likewise.
20956         * config/tilepro/tilepro.h: Likewise.
20957         * config/v850/v850.h: Likewise.
20958         * config/xtensa/xtensa.h: Likewise.
20959         * doc/tm.texi: Regenerate.
20960         * doc/tm.texi.in: Adjust.
20961         * combine.c (simplify_set): Likewise.
20962         (simplify_comparison): Likewise.
20963         * expr.c (store_constructor): Likewise.
20964         * internal-fn.c (expand_arith_overflow): Likewise.
20965         * reload.c (push_reload): Likewise.
20966         (find_reloads): Likewise.
20967         (find_reloads_subreg_address): Likewise.
20968         * reload1.c (eliminate_regs_1): Likewise.
20969         * rtlanal.c (nonzero_bits1): Likewise.
20970         (num_sign_bit_copies1): Likewise.
20971         * simplify-rtx.c (simplify_truncation): Likewise.
20972
20973 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20974
20975         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
20976         of AUTO_INC_DEC with the preprocessor.
20977         * combine.c (combine_instructions): Likewise.
20978         (can_combine_p): Likewise.
20979         (try_combine): Likewise.
20980         * emit-rtl.c (try_split): Likewise.
20981         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20982         * lower-subreg.c (resolve_simple_move): Likewise.
20983         * lra.c (update_inc_notes): Likewise.
20984         * recog.c (asm_operand_ok): Likewise.
20985         (constrain_operands): Likewise.
20986         * regrename.c (scan_rtx_address): Likewise.
20987         * reload.c (update_auto_inc_notes): Likewise.
20988         (reg_inc_found_and_valid_p): Likewise.
20989         * reload1.c (reload): Likewise.
20990         (emit_input_reload_insns): Likewise.
20991         (delete_output_reload): Likewise.
20992         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20993         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20994
20995 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20996
20997         * rtl.h: Always define AUTO_INC_DEC.
20998         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
20999         * combine.c (combine_instructions): Likewise.
21000         (can_combine_p): Likewise.
21001         (try_combine): Likewise.
21002         * emit-rtl.c (try_split): Likewise.
21003         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
21004         * lower-subreg.c (resolve_simple_move): Likewise.
21005         * lra.c (update_inc_notes): Likewise.
21006         * recog.c (asm_operand_ok): Likewise.
21007         (constrain_operands): Likewise.
21008         * regrename.c (scan_rtx_address): Likewise.
21009         * reload.c (update_auto_inc_notes): Likewise.
21010         (find_equiv_reg): Likewise.
21011         * reload1.c (reload): Likewise.
21012         (reload_as_needed): Likewise.
21013         (choose_reload_regs): Likewise.
21014         (emit_input_reload_insns): Likewise.
21015         (delete_output_reload): Likewise.
21016         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
21017         * valtrack.c (cleanup_auto_inc_dec): Likewise.
21018
21019 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21020
21021         * combine.c (can_combine_def_p): Don't check the value of
21022         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
21023         (combinable_i3pat): Likewise.
21024         (mark_used_regs_combine): Likewise.
21025         * regrename.c (rename_chains): Likewise.
21026         * reload.c (find_reloads_address): Likewise.
21027         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21028
21029 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21030
21031         * combine.c (update_rsp_from_reg_equal): Don't check if
21032         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
21033         (reg_nonzero_bits_for_combine): Likewise.
21034         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
21035         1.
21036         * config/frv/frv.h: Likewise.
21037         * config/lm32/lm32.h: Likewise.
21038         * config/mep/mep.h: Likewise.
21039         * config/mips/mips.h: Likewise.
21040         * config/rs6000/rs6000.h: Likewise.
21041         * config/sh/sh.h: Likewise.
21042         * config/tilegx/tilegx.h (enum reg_class): Likewise.
21043         * config/tilepro/tilepro.h: Likewise.
21044         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
21045         * doc/tm.texi: Regenerate.
21046         * doc/tm.texi.in: Adjust.
21047         * rtlanal.c (nonzero_bits1): Likewise.
21048
21049 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21050
21051         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
21052         with the preprocessor.
21053         (combine_instructions): Likewise.
21054         (try_combine): Likewise.
21055         (subst): Likewise.
21056         (distribute_notes): Likewise.
21057
21058 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21059
21060         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
21061         defined.
21062         (simplify_set): Likewise.
21063         * cse.c (cse_insn): Likewise.
21064         * fold-const.c (fold_single_bit_test): Likewise.
21065         (fold_unary_loc): Likewise.
21066         * postreload.c (reload_cse_simplify_set): Likewise.
21067         (reload_cse_simplify_operands): Likewise.
21068
21069 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
21070
21071         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
21072         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
21073
21074 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21075
21076         PR target/66746
21077         * config/i386/x86intrin.h: Include <adxintrin.h> even if
21078         __iamcu__ is defined.
21079
21080 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21081
21082         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
21083
21084 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
21085
21086         PR target/66523
21087         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
21088         names from preservation.
21089
21090 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
21091
21092         PR target/66806
21093         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
21094         change for IAMCU.
21095         (function_arg_advance_32): Don't pass vectors in registers for
21096         IAMCU.
21097         (function_arg_32): Likewise.
21098         (ix86_return_in_memory): Don't return vectors in registers for
21099         IAMCU.
21100
21101 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
21102
21103         PR middle-end/66334
21104         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
21105         hard regno live at the start of BB with incoming abnormal edges.
21106         * lra-lives.c (process_bb_lives): Ditto.
21107
21108 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
21109
21110         PR libgomp/65099
21111         * config/nvptx/mkoffload.c (main): Create an offload image only in
21112         64-bit configurations.
21113
21114 2015-07-08  Martin Liska  <mliska@suse.cz>
21115
21116         PR bootstrap/66744
21117         * tree-sra.c (create_access_1): Call ctor without brackets.
21118         (create_artificial_child_access): Likewise.
21119
21120 2015-07-08  Richard Biener  <rguenther@suse.de>
21121
21122         PR tree-optimization/66793
21123         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
21124         Properly split the block after stmts ending it.
21125
21126 2015-07-08  Richard Biener  <rguenther@suse.de>
21127
21128         PR tree-optimization/66794
21129         * passes.c (execute_function_todo): Assert that post-dominators
21130         are not computed.
21131         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
21132         Free post-dominators.
21133
21134 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21135
21136         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
21137         with early exit.
21138
21139 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
21140
21141         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
21142         more than or equal 8 and less than 32 when optimizing for size.
21143
21144 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21145
21146         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
21147         COSTS_N_INSNS (1) and increment it appropriately throughout the
21148         function.
21149
21150 2015-07-08  Richard Biener  <rguenther@suse.de>
21151
21152         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
21153
21154 2015-07-08  Alan Modra  <amodra@gmail.com>
21155
21156         * target.def (rtx_costs): Remove "code" param, add "mode".
21157         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
21158         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
21159         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
21160         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
21161         call.  Track mode when given in rtx.
21162         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
21163         (default_address_cost): Pass Pmode to rtx_cost.
21164         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
21165         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
21166         with NULL set.
21167         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
21168         (notreg_cost): Add mode param.  Use it.
21169         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
21170         mode param and pass to set_src_cost.  Update all calls.
21171         (hash_scan_set): Formatting.
21172         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
21173         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
21174         * hooks.h: Ditto.
21175         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
21176         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
21177         emit_store_flag): Update set_src_cost and rtx_cost calls.
21178         * auto-inc-dec.c (attempt_change): Likewise.
21179         * calls.c (precompute_register_parameters): Likewise.
21180         * combine.c (expand_compound_operation, make_extraction,
21181         force_to_mode, distribute_and_simplify_rtx): Likewise.
21182         * dojump.c (prefer_and_bit_test): Likewise.
21183         * dse.c (find_shift_sequence): Likewise.
21184         * expr.c (compress_float_constant): Likewise.
21185         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
21186         * ifcvt.c (noce_try_sign_mask): Likewise.
21187         * loop-doloop.c (doloop_optimize): Likewise.
21188         * loop-invariant.c (create_new_invariant): Likewise.
21189         * lower-subreg.c (shift_cost, compute_costs): Likewise.
21190         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
21191         lshift_cheap_p): Likewise.
21192         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21193         try_replace_in_use, reload_cse_move2add): Likewise.
21194         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
21195         Likewise.
21196         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
21197         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21198         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
21199         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
21200         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
21201         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
21202         to rtx_cost calls.
21203         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
21204         * config/arc/arc.c (arc_rtx_costs): Likewise.
21205         * config/arm/arm.c (arm_rtx_costs): Likewise.
21206         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
21207         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
21208         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
21209         * config/cris/cris.c (cris_rtx_costs): Likewise.
21210         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
21211         * config/frv/frv.c (frv_rtx_costs): Likewise.
21212         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
21213         * config/i386/i386.c (ix86_rtx_costs): Likewise.
21214         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
21215         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
21216         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
21217         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
21218         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
21219         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
21220         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
21221         * config/mep/mep.c (mep_rtx_cost): Likewise.
21222         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
21223         * config/mips/mips.c (mips_rtx_costs): Likewise.
21224         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
21225         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
21226         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
21227         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
21228         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
21229         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
21230         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
21231         * config/pa/pa.c (hppa_rtx_costs): Likewise.
21232         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
21233         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
21234         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
21235         * config/s390/s390.c (s390_rtx_costs): Likewise.
21236         * config/sh/sh.c (sh_rtx_costs): Likewise.
21237         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
21238         * config/spu/spu.c (spu_rtx_costs): Likewise.
21239         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
21240         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
21241         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
21242         * config/v850/v850.c (v850_rtx_costs): Likewise.
21243         * config/vax/vax.c (vax_rtx_costs): Likewise.
21244         * config/visium/visium.c (visium_rtx_costs): Likewise.
21245         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
21246         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
21247         "code" param, and pass as outer_code to first rtx_cost call.  Pass
21248         mode to rtx_cost calls.
21249         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
21250         calls.
21251         (aarch64_rtx_costs_wrapper): Update.
21252         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
21253         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
21254         rtx_cost calls.
21255         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
21256         and rtx_cost calls.
21257         (avr_operand_rtx_cost): Similarly.
21258         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
21259         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
21260         * config/mips/mips.c (mips_stack_address_p): Comment typo.
21261         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
21262         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
21263         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
21264         rtx_cost.
21265         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
21266         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
21267         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
21268         * doc/tm.texi: Regenerate.
21269
21270 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
21271
21272         * tree-core.h: Include symtab.h.
21273         * rtl.h: Include hard-reg-set.h but not flags.h.
21274         (HARD_CONST): Remove condition compilation involving HARD_CONST since
21275         hard-reg-set.h is always included.
21276         * regs.h: Don't include hard-reg-set.h or rtl.h.
21277         * cfg.h: Include dominance.h.
21278         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
21279         * backend.h: New.  Aggregate commonly used backend header files.
21280         * gimple-ssa.h: Don't include tree-hasher.h.
21281         * ssa.h: New.  Aggregate commonly used SSA header files.
21282         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
21283         * sel-sched-ir.h: Flatten includes.
21284         * lra-int.h: Flatten completely.
21285         * sel-sched-dump.h: Flatten includes.
21286         * ira-int.h: Flatten includes.
21287         * gimple-streamer.h: Remove all includes.
21288         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
21289         * resource.h: Flatten hard-reg-set.h and df.h.
21290         * sched-int.h: Flatten insn-arrt.h and df.h.
21291         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
21292         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
21293         * genattrtab.c (write_header): Adjust generated includes.
21294         * genautomata.c (main): Likewise.
21295         * genconditions.c (write-header): Likewise.
21296         * genemit.c (main): Likewise.
21297         * gengtype.c (open_base_files): Likewise.
21298         * genopinit.c (main): Likewise.
21299         * genoutput.c (output_prologue): Likewise.
21300         * genpeep.c (main): Likewise.
21301         * genpreds.c (write_insn_preds_c): Likewise.
21302         * genrecog.c (write_header): Likewise.
21303         * alias.c: Adjust includes.
21304         * asan.c: Likewise.
21305         * attribs.c: Likewise.
21306         * auto-inc-dec.c: Likewise.
21307         * auto-profile.c: Likewise.
21308         * bb-reorder.c: Likewise.
21309         * bt-load.c: Likewise.
21310         * builtins.c: Likewise.
21311         * caller-save.c: Likewise.
21312         * calls.c: Likewise.
21313         * ccmp.c: Likewise.
21314         * cfg.c: Likewise.
21315         * cfganal.c: Likewise.
21316         * cfgbuild.c: Likewise.
21317         * cfgcleanup.c: Likewise.
21318         * cfgexpand.c: Likewise.
21319         * cfghooks.c: Likewise.
21320         * cfgloop.c: Likewise.
21321         * cfgloopanal.c: Likewise.
21322         * cfgloopmanip.c: Likewise.
21323         * cfgrtl.c: Likewise.
21324         * cgraph.c: Likewise.
21325         * cgraphbuild.c: Likewise.
21326         * cgraphclones.c: Likewise.
21327         * cgraphunit.c: Likewise.
21328         * cilk-common.c: Likewise.
21329         * combine-stack-adj.c: Likewise.
21330         * combine.c: Likewise.
21331         * compare-elim.c: Likewise.
21332         * convert.c: Likewise.
21333         * coverage.c: Likewise.
21334         * cppbuiltin.c: Likewise.
21335         * cprop.c: Likewise.
21336         * cse.c: Likewise.
21337         * cselib.c: Likewise.
21338         * data-streamer-in.c: Likewise.
21339         * data-streamer-out.c: Likewise.
21340         * data-streamer.c: Likewise.
21341         * dbxout.c: Likewise.
21342         * dce.c: Likewise.
21343         * ddg.c: Likewise.
21344         * debug.c: Likewise.
21345         * df-core.c: Likewise.
21346         * df-problems.c: Likewise.
21347         * df-scan.c: Likewise.
21348         * dfp.c: Likewise.
21349         * dojump.c: Likewise.
21350         * dominance.c: Likewise.
21351         * domwalk.c: Likewise.
21352         * double-int.c: Likewise.
21353         * dse.c: Likewise.
21354         * dumpfile.c: Likewise.
21355         * dwarf2asm.c: Likewise.
21356         * dwarf2cfi.c: Likewise.
21357         * dwarf2out.c: Likewise.
21358         * emit-rtl.c: Likewise.
21359         * et-forest.c: Likewise.
21360         * except.c: Likewise.
21361         * explow.c: Likewise.
21362         * expmed.c: Likewise.
21363         * expr.c: Likewise.
21364         * final.c: Likewise.
21365         * fixed-value.c: Likewise.
21366         * fold-const.c: Likewise.
21367         * function.c: Likewise.
21368         * fwprop.c: Likewise.
21369         * gcc-plugin.h: Likewise.
21370         * gcse-common.c: Likewise.
21371         * gcse.c: Likewise.
21372         * generic-match-head.c: Likewise.
21373         * ggc-page.c: Likewise.
21374         * gimple-builder.c: Likewise.
21375         * gimple-expr.c: Likewise.
21376         * gimple-fold.c: Likewise.
21377         * gimple-iterator.c: Likewise.
21378         * gimple-low.c: Likewise.
21379         * gimple-match-head.c: Likewise.
21380         * gimple-pretty-print.c: Likewise.
21381         * gimple-ssa-isolate-paths.c: Likewise.
21382         * gimple-ssa-strength-reduction.c: Likewise.
21383         * gimple-streamer-in.c: Likewise.
21384         * gimple-streamer-out.c: Likewise.
21385         * gimple-walk.c: Likewise.
21386         * gimple.c: Likewise.
21387         * gimplify-me.c: Likewise.
21388         * gimplify.c: Likewise.
21389         * godump.c: Likewise.
21390         * graph.c: Likewise.
21391         * graphite-blocking.c: Likewise.
21392         * graphite-dependences.c: Likewise.
21393         * graphite-interchange.c: Likewise.
21394         * graphite-isl-ast-to-gimple.c: Likewise.
21395         * graphite-optimize-isl.c: Likewise.
21396         * graphite-poly.c: Likewise.
21397         * graphite-scop-detection.c: Likewise.
21398         * graphite-sese-to-poly.c: Likewise.
21399         * graphite.c: Likewise.
21400         * haifa-sched.c: Likewise.
21401         * hw-doloop.c: Likewise.
21402         * ifcvt.c: Likewise.
21403         * init-regs.c: Likewise.
21404         * internal-fn.c: Likewise.
21405         * ipa-chkp.c: Likewise.
21406         * ipa-comdats.c: Likewise.
21407         * ipa-cp.c: Likewise.
21408         * ipa-devirt.c: Likewise.
21409         * ipa-icf-gimple.c: Likewise.
21410         * ipa-icf.c: Likewise.
21411         * ipa-inline-analysis.c: Likewise.
21412         * ipa-inline-transform.c: Likewise.
21413         * ipa-inline.c: Likewise.
21414         * ipa-polymorphic-call.c: Likewise.
21415         * ipa-profile.c: Likewise.
21416         * ipa-prop.c: Likewise.
21417         * ipa-pure-const.c: Likewise.
21418         * ipa-ref.c: Likewise.
21419         * ipa-reference.c: Likewise.
21420         * ipa-split.c: Likewise.
21421         * ipa-utils.c: Likewise.
21422         * ipa-visibility.c: Likewise.
21423         * ipa.c: Likewise.
21424         * ira-build.c: Likewise.
21425         * ira-color.c: Likewise.
21426         * ira-conflicts.c: Likewise.
21427         * ira-costs.c: Likewise.
21428         * ira-emit.c: Likewise.
21429         * ira-lives.c: Likewise.
21430         * ira.c: Likewise.
21431         * jump.c: Likewise.
21432         * langhooks.c: Likewise.
21433         * lcm.c: Likewise.
21434         * loop-doloop.c: Likewise.
21435         * loop-init.c: Likewise.
21436         * loop-invariant.c: Likewise.
21437         * loop-iv.c: Likewise.
21438         * loop-unroll.c: Likewise.
21439         * lower-subreg.c: Likewise.
21440         * lra-assigns.c: Likewise.
21441         * lra-coalesce.c: Likewise.
21442         * lra-constraints.c: Likewise.
21443         * lra-eliminations.c: Likewise.
21444         * lra-lives.c: Likewise.
21445         * lra-remat.c: Likewise.
21446         * lra-spills.c: Likewise.
21447         * lra.c: Likewise.
21448         * lto-cgraph.c: Likewise.
21449         * lto-compress.c: Likewise.
21450         * lto-opts.c: Likewise.
21451         * lto-section-in.c: Likewise.
21452         * lto-section-out.c: Likewise.
21453         * lto-streamer-in.c: Likewise.
21454         * lto-streamer-out.c: Likewise.
21455         * lto-streamer.c: Likewise.
21456         * mcf.c: Likewise.
21457         * mode-switching.c: Likewise.
21458         * modulo-sched.c: Likewise.
21459         * omega.c: Likewise.
21460         * omp-low.c: Likewise.
21461         * optabs.c: Likewise.
21462         * opts-global.c: Likewise.
21463         * passes.c: Likewise.
21464         * plugin.c: Likewise.
21465         * postreload-gcse.c: Likewise.
21466         * postreload.c: Likewise.
21467         * predict.c: Likewise.
21468         * print-rtl.c: Likewise.
21469         * print-tree.c: Likewise.
21470         * profile.c: Likewise.
21471         * real.c: Likewise.
21472         * realmpfr.c: Likewise.
21473         * recog.c: Likewise.
21474         * ree.c: Likewise.
21475         * reg-stack.c: Likewise.
21476         * regcprop.c: Likewise.
21477         * reginfo.c: Likewise.
21478         * regrename.c: Likewise.
21479         * regstat.c: Likewise.
21480         * reload.c: Likewise.
21481         * reload1.c: Likewise.
21482         * reorg.c: Likewise.
21483         * resource.c: Likewise.
21484         * rtl-chkp.c: Likewise.
21485         * rtlanal.c: Likewise.
21486         * rtlhooks.c: Likewise.
21487         * sanopt.c: Likewise.
21488         * sched-deps.c: Likewise.
21489         * sched-ebb.c: Likewise.
21490         * sched-rgn.c: Likewise.
21491         * sched-vis.c: Likewise.
21492         * sdbout.c: Likewise.
21493         * sel-sched-dump.c: Likewise.
21494         * sel-sched-ir.c: Likewise.
21495         * sel-sched.c: Likewise.
21496         * sese.c: Likewise.
21497         * shrink-wrap.c: Likewise.
21498         * simplify-rtx.c: Likewise.
21499         * stack-ptr-mod.c: Likewise.
21500         * stmt.c: Likewise.
21501         * stor-layout.c: Likewise.
21502         * store-motion.c: Likewise.
21503         * stringpool.c: Likewise.
21504         * symtab.c: Likewise.
21505         * target-globals.c: Likewise.
21506         * targhooks.c: Likewise.
21507         * toplev.c: Likewise.
21508         * tracer.c: Likewise.
21509         * trans-mem.c: Likewise.
21510         * tree-affine.c: Likewise.
21511         * tree-browser.c: Likewise.
21512         * tree-call-cdce.c: Likewise.
21513         * tree-cfg.c: Likewise.
21514         * tree-cfgcleanup.c: Likewise.
21515         * tree-chkp-opt.c: Likewise.
21516         * tree-chkp.c: Likewise.
21517         * tree-chrec.c: Likewise.
21518         * tree-complex.c: Likewise.
21519         * tree-data-ref.c: Likewise.
21520         * tree-dfa.c: Likewise.
21521         * tree-diagnostic.c: Likewise.
21522         * tree-dump.c: Likewise.
21523         * tree-eh.c: Likewise.
21524         * tree-emutls.c: Likewise.
21525         * tree-if-conv.c: Likewise.
21526         * tree-inline.c: Likewise.
21527         * tree-into-ssa.c: Likewise.
21528         * tree-iterator.c: Likewise.
21529         * tree-loop-distribution.c: Likewise.
21530         * tree-nested.c: Likewise.
21531         * tree-nrv.c: Likewise.
21532         * tree-object-size.c: Likewise.
21533         * tree-outof-ssa.c: Likewise.
21534         * tree-parloops.c: Likewise.
21535         * tree-phinodes.c: Likewise.
21536         * tree-predcom.c: Likewise.
21537         * tree-pretty-print.c: Likewise.
21538         * tree-profile.c: Likewise.
21539         * tree-scalar-evolution.c: Likewise.
21540         * tree-sra.c: Likewise.
21541         * tree-ssa-address.c: Likewise.
21542         * tree-ssa-alias.c: Likewise.
21543         * tree-ssa-ccp.c: Likewise.
21544         * tree-ssa-coalesce.c: Likewise.
21545         * tree-ssa-copy.c: Likewise.
21546         * tree-ssa-copyrename.c: Likewise.
21547         * tree-ssa-dce.c: Likewise.
21548         * tree-ssa-dom.c: Likewise.
21549         * tree-ssa-dse.c: Likewise.
21550         * tree-ssa-forwprop.c: Likewise.
21551         * tree-ssa-ifcombine.c: Likewise.
21552         * tree-ssa-live.c: Likewise.
21553         * tree-ssa-loop-ch.c: Likewise.
21554         * tree-ssa-loop-im.c: Likewise.
21555         * tree-ssa-loop-ivcanon.c: Likewise.
21556         * tree-ssa-loop-ivopts.c: Likewise.
21557         * tree-ssa-loop-manip.c: Likewise.
21558         * tree-ssa-loop-niter.c: Likewise.
21559         * tree-ssa-loop-prefetch.c: Likewise.
21560         * tree-ssa-loop-unswitch.c: Likewise.
21561         * tree-ssa-loop.c: Likewise.
21562         * tree-ssa-math-opts.c: Likewise.
21563         * tree-ssa-operands.c: Likewise.
21564         * tree-ssa-phiopt.c: Likewise.
21565         * tree-ssa-phiprop.c: Likewise.
21566         * tree-ssa-pre.c: Likewise.
21567         * tree-ssa-propagate.c: Likewise.
21568         * tree-ssa-reassoc.c: Likewise.
21569         * tree-ssa-sccvn.c: Likewise.
21570         * tree-ssa-scopedtables.c: Likewise.
21571         * tree-ssa-sink.c: Likewise.
21572         * tree-ssa-strlen.c: Likewise.
21573         * tree-ssa-structalias.c: Likewise.
21574         * tree-ssa-tail-merge.c: Likewise.
21575         * tree-ssa-ter.c: Likewise.
21576         * tree-ssa-threadedge.c: Likewise.
21577         * tree-ssa-threadupdate.c: Likewise.
21578         * tree-ssa-uncprop.c: Likewise.
21579         * tree-ssa-uninit.c: Likewise.
21580         * tree-ssa.c: Likewise.
21581         * tree-ssanames.c: Likewise.
21582         * tree-stdarg.c: Likewise.
21583         * tree-streamer-in.c: Likewise.
21584         * tree-streamer-out.c: Likewise.
21585         * tree-streamer.c: Likewise.
21586         * tree-switch-conversion.c: Likewise.
21587         * tree-tailcall.c: Likewise.
21588         * tree-vect-data-refs.c: Likewise.
21589         * tree-vect-generic.c: Likewise.
21590         * tree-vect-loop-manip.c: Likewise.
21591         * tree-vect-loop.c: Likewise.
21592         * tree-vect-patterns.c: Likewise.
21593         * tree-vect-slp.c: Likewise.
21594         * tree-vect-stmts.c: Likewise.
21595         * tree-vectorizer.c: Likewise.
21596         * tree-vrp.c: Likewise.
21597         * tree.c: Likewise.
21598         * tsan.c: Likewise.
21599         * ubsan.c: Likewise.
21600         * valtrack.c: Likewise.
21601         * value-prof.c: Likewise.
21602         * var-tracking.c: Likewise.
21603         * varasm.c: Likewise.
21604         * varpool.c: Likewise.
21605         * vmsdbgout.c: Likewise.
21606         * vtable-verify.c: Likewise.
21607         * web.c: Likewise.
21608         * wide-int.cc: Likewise.
21609         * xcoffout.c: Likewise.
21610         * config/aarch64/aarch64-builtins.c: Likewise.
21611         * config/aarch64/aarch64.c: Likewise.
21612         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21613         * config/alpha/alpha.c: Likewise.
21614         * config/arc/arc.c: Likewise.
21615         * config/arm/aarch-common.c: Likewise.
21616         * config/arm/arm-builtins.c: Likewise.
21617         * config/arm/arm-c.c: Likewise.
21618         * config/arm/arm.c: Likewise.
21619         * config/avr/avr-c.c: Likewise.
21620         * config/avr/avr-log.c: Likewise.
21621         * config/avr/avr.c: Likewise.
21622         * config/bfin/bfin.c: Likewise.
21623         * config/c6x/c6x.c: Likewise.
21624         * config/cr16/cr16.c: Likewise.
21625         * config/cris/cris.c: Likewise.
21626         * config/darwin-c.c: Likewise.
21627         * config/darwin.c: Likewise.
21628         * config/epiphany/epiphany.c: Likewise.
21629         * config/epiphany/mode-switch-use.c: Likewise.
21630         * config/epiphany/resolve-sw-modes.c: Likewise.
21631         * config/fr30/fr30.c: Likewise.
21632         * config/frv/frv.c: Likewise.
21633         * config/ft32/ft32.c: Likewise.
21634         * config/h8300/h8300.c: Likewise.
21635         * config/i386/i386-c.c: Likewise.
21636         * config/i386/i386.c: Likewise.
21637         * config/i386/msformat-c.c: Likewise.
21638         * config/i386/winnt-cxx.c: Likewise.
21639         * config/i386/winnt-stubs.c: Likewise.
21640         * config/i386/winnt.c: Likewise.
21641         * config/ia64/ia64-c.c: Likewise.
21642         * config/ia64/ia64.c: Likewise.
21643         * config/iq2000/iq2000.c: Likewise.
21644         * config/lm32/lm32.c: Likewise.
21645         * config/m32c/m32c-pragma.c: Likewise.
21646         * config/m32c/m32c.c: Likewise.
21647         * config/m32r/m32r.c: Likewise.
21648         * config/m68k/m68k.c: Likewise.
21649         * config/mcore/mcore.c: Likewise.
21650         * config/mep/mep-pragma.c: Likewise.
21651         * config/mep/mep.c: Likewise.
21652         * config/microblaze/microblaze-c.c: Likewise.
21653         * config/microblaze/microblaze.c: Likewise.
21654         * config/mips/mips.c: Likewise.
21655         * config/mmix/mmix.c: Likewise.
21656         * config/mn10300/mn10300.c: Likewise.
21657         * config/moxie/moxie.c: Likewise.
21658         * config/msp430/msp430-c.c: Likewise.
21659         * config/msp430/msp430.c: Likewise.
21660         * config/nds32/nds32-cost.c: Likewise.
21661         * config/nds32/nds32-fp-as-gp.c: Likewise.
21662         * config/nds32/nds32-intrinsic.c: Likewise.
21663         * config/nds32/nds32-isr.c: Likewise.
21664         * config/nds32/nds32-md-auxiliary.c: Likewise.
21665         * config/nds32/nds32-memory-manipulation.c: Likewise.
21666         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21667         * config/nds32/nds32-predicates.c: Likewise.
21668         * config/nds32/nds32.c: Likewise.
21669         * config/nios2/nios2.c: Likewise.
21670         * config/nvptx/nvptx.c: Likewise.
21671         * config/pa/pa.c: Likewise.
21672         * config/pdp11/pdp11.c: Likewise.
21673         * config/rl78/rl78-c.c: Likewise.
21674         * config/rl78/rl78.c: Likewise.
21675         * config/rs6000/rs6000-c.c: Likewise.
21676         * config/rs6000/rs6000.c: Likewise.
21677         * config/rx/rx.c: Likewise.
21678         * config/s390/s390-c.c: Likewise.
21679         * config/s390/s390.c: Likewise.
21680         * config/sh/sh-c.c: Likewise.
21681         * config/sh/sh-mem.cc: Likewise.
21682         * config/sh/sh.c: Likewise.
21683         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21684         * config/sh/sh_treg_combine.cc: Likewise.
21685         * config/sol2-c.c: Likewise.
21686         * config/sol2-cxx.c: Likewise.
21687         * config/sol2-stubs.c: Likewise.
21688         * config/sol2.c: Likewise.
21689         * config/sparc/sparc-c.c: Likewise.
21690         * config/sparc/sparc.c: Likewise.
21691         * config/spu/spu-c.c: Likewise.
21692         * config/spu/spu.c: Likewise.
21693         * config/stormy16/stormy16.c: Likewise.
21694         * config/tilegx/mul-tables.c: Likewise.
21695         * config/tilegx/tilegx-c.c: Likewise.
21696         * config/tilegx/tilegx.c: Likewise.
21697         * config/tilepro/mul-tables.c: Likewise.
21698         * config/tilepro/tilepro-c.c: Likewise.
21699         * config/tilepro/tilepro.c: Likewise.
21700         * config/v850/v850-c.c: Likewise.
21701         * config/v850/v850.c: Likewise.
21702         * config/vax/vax.c: Likewise.
21703         * config/visium/visium.c: Likewise.
21704         * config/vms/vms-c.c: Likewise.
21705         * config/vms/vms.c: Likewise.
21706         * config/vxworks.c: Likewise.
21707         * config/xtensa/xtensa.c: Likewise.
21708
21709 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
21710
21711         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
21712         Remove operand constraints.  Change operand 2 predicate to
21713         nonmemory operand.  Limit const_int values to mode bitsize.  Only
21714         allow const_int values less than 32 when optimizing for size.
21715         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
21716         Remove operand constraints.
21717         (*bt<mode>): Use SImode for const_int values less than 32.
21718         (regmode): Remove mode attribute.
21719
21720 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
21721
21722         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21723         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
21724           moxie_legitimate_address_p): New functions.
21725           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
21726
21727 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21728
21729         PR tree-optimization/66642
21730         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
21731         header comment.  Rename split_edge variable to edge_at_split.  Split
21732         exit edge to create new loop exit bb.  Insert loop exit phis in new
21733         loop exit bb.
21734
21735 2015-07-07  Tom de Vries  <tom@codesourcery.com>
21736
21737         * tree-cfg.c (get_virtual_phi): New function.
21738         * tree-cfg.h (get_virtual_phi): Declare.
21739         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
21740         (rewrite_virtuals_into_loop_closed_ssa): New function.
21741         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
21742         Declare.
21743         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
21744         (transform_to_exit_first_loop_alt): Use
21745         rewrite_virtuals_into_loop_closed_ssa.
21746
21747 2015-07-07  Richard Biener  <rguenther@suse.de>
21748
21749         * fold-const.c (fold_binary_loc): Move
21750         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
21751         * match.pd: ... here.
21752         Add (X * C1) % C2 -> 0 simplification pattern derived from
21753         extract_muldiv_1.
21754
21755 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
21756
21757         PR target/66780
21758         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
21759         change for target/65249.
21760
21761 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
21762
21763         * symtab.c (address_matters_1): Fix typo in comment above.
21764         (can_increase_alignment_p): Likewise.
21765
21766 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21767
21768         * function.c (free_after_compilation): Clear PROP_cfg in
21769         f->curr_properties.
21770
21771 2015-07-07  Richard Biener  <rguenther@suse.de>
21772
21773         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
21774         add which use to.
21775         (add_control_edge): Remove excessive vertical space in dumping.
21776         (process_ssa_edge_worklist): Simulate at most one statement and
21777         return whether we did.  Do not simulate PHIs if they are in a
21778         BB not yet simulated.
21779         (ssa_propagate): Adjust to always drain the BB worklist whenever
21780         a BB is available there, likewise the VARYING edges list before
21781         the interesting edge list.
21782
21783 2015-07-07  Christian Bruel  <christian.bruel@st.com>
21784
21785         PR target/52144
21786         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
21787
21788 2015-07-07  Richard Biener  <rguenther@suse.de>
21789
21790         PR middle-end/66739
21791         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
21792         A - B.
21793
21794 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21795
21796         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
21797         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
21798         Copy operand 0 to a temporary if !ext_register_operand.  Remove
21799         ancient extract_bit_field workaround.
21800         (insv<mode>_1): Rename from mov<mode>_insv_1.
21801         (*insvqi): Rename from *movqi_insv_2.
21802         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
21803         for renamed insvsi_1.
21804         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
21805
21806 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
21807
21808         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
21809         call to nvptx_reorg_subreg.
21810
21811 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
21812
21813         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
21814         * graphite-dependencies.c, graphite-interchange.c,
21815         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
21816         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
21817         Likewise.
21818
21819 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
21820
21821         * match.pd: Remove element_mode inside HONOR_*.
21822         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
21823         (~X | X -> -1, ~X ^ X -> -1): Merge.
21824         * tree.c (build_each_one_cst): New function.
21825         * tree.h (build_each_one_cst): Likewise.
21826
21827 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21828
21829         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21830         PROCESSOR_IAMCU.
21831
21832 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
21833
21834         * config.gcc <mips*-*-*>: Add fused-madd.opt.
21835         * config/mips/mips.opt (mfused-madd): Remove.
21836         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
21837         * config/mips/mips.h (TARGET_MIPS8000): New.
21838         (ISA_HAS_FP_MADD4_MSUB4): Remove.
21839         (ISA_HAS_FP_MADDF_MSUBF): Remove.
21840         (ISA_HAS_FP_MADD3_MSUB3): Remove.
21841         (ISA_HAS_NMADD4_NMSUB4): Remove.
21842         (ISA_HAS_NMADD3_NMSUB3): Remove.
21843         (ISA_HAS_FUSED_MADD4): New.
21844         (ISA_HAS_UNFUSED_MADD4): New.
21845         (ISA_HAS_FUSED_MADDF): New.
21846         (ISA_HAS_FUSED_MADD3): New.
21847         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
21848         (*fma<mode>4_madd3) New.
21849         (*fma<mode>4_madd4) New.
21850         (*fma<mode>4_maddf) New.
21851         (fms<mode>4) New.
21852         (*fms<mode>4_msub3) New.
21853         (*fms<mode>4_msub4) New.
21854         (fnma<mode>4) New.
21855         (*fnma<mode>4_nmadd3) New.
21856         (*fnma<mode>4_nmadd4) New.
21857         (fnms<mode>4) New.
21858         (*fnms<mode>4_nmsub3) New.
21859         (*fnms<mode>4_nmsub4) New.
21860         (*madd4<mode>) Modify to be unfused only.
21861         (*msub4<mode>) Modify to be unfused only.
21862         (*nmadd4<mode>) Modify to be unfused only.
21863         (*nmsub4<mode>) Modify to be unfused only.
21864         (*madd3<mode>) Remove.
21865         (*msub3<mode>) Remove.
21866         (*nmadd3<mode>) Remove.
21867         (*nmsub3<mode>) Remove.
21868         (*nmadd3<mode>_fastmath) Remove.
21869         (*nmsub3<mode>_fastmath) Remove.
21870         (*nmadd4<mode>_fastmath) Update condition.
21871         (*nmsub4<mode>_fastmath) Update condition.
21872
21873 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21874
21875         PR target/65956
21876         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
21877         alignment attribute, exploring one level down for records and arrays.
21878
21879 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
21880
21881         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
21882         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
21883         Copy operand 1 to a temporary if !ext_register_operand.  Remove
21884         ancient extract_bit_field workaround.
21885         (*extv<mode>): Rename from *mov<mode>_extv_1.
21886         (*extvqi): Rename from *movqi_extv_1.
21887         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
21888         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
21889         to a temporary if !ext_register_operand.  Remove ancient
21890         extract_bit_field workaround.
21891         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
21892         (*extzvqi): Rename from *movqi_extzv_2.
21893         (*testqi_ext_3): Remove modes from const_int_operand predicated
21894         operands.  Add "n" constraint.
21895         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
21896         operand.  Add "J" constraint.
21897         (*btsq, *btrq, *btcq peephole2s): Remove mode from
21898         const_0_to_63 predicated operand.
21899         (regmode): New insn attribute.
21900         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
21901         to nonmemory_operand.  Use regmode insn attribute.
21902         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
21903         (*jcc_bt<mode>_mask): Remove mode from operand 3.
21904         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
21905         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
21906         operands.  Use "N" constraint instead of "n".
21907
21908 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
21909
21910         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
21911
21912 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21913
21914         PR target/66749
21915         * config/i386/i386.c (iamcu_cost): New.
21916         (m_IAMCU): Likewise.
21917         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
21918         (processor_target_table): Add an entry for "iamcu".
21919         (processor_alias_table): Likewise.
21920         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
21921         (ix86_adjust_cost): Likewise.
21922         (ia32_multipass_dfa_lookahead): Likewise.
21923         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
21924         * config/i386/x86-tune.def: Updated for m_IAMCU.
21925
21926 2015-07-06  Richard Biener  <rguenther@suse.de>
21927
21928         PR tree-optimization/66772
21929         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
21930         values are available in the PHI node BB when there are
21931         still unexecutable edges.
21932
21933 2015-07-06  Richard Biener  <rguenther@suse.de>
21934
21935         PR tree-optimization/66767
21936         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
21937         Make sure to build the alignment test on a SSA name without
21938         final alignment info valid only if the alignment test
21939         evaluates to true.
21940
21941 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
21942
21943         PR target/66620
21944         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
21945         loop start when inserting LSETUP.
21946
21947 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21948
21949         PR target/53383
21950         * config/i386/i386.c (ix86_option_override_internal): Allow
21951         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
21952
21953 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21954
21955         * read-md.c (decimal_string): Rename to ...
21956         (md_decimal_string): ... this.
21957         (handle_enum): Reflect this.
21958
21959 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21960
21961         PR target/66731
21962         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
21963
21964 2015-07-06  Richard Biener  <rguenther@suse.de>
21965
21966         PR middle-end/66759
21967         * match.pd: Add missing constraint of y to REAL_CST in
21968         REAL_CST - x CMP y to y - CST CMP x simplification.
21969
21970 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
21971
21972         PR tree-optimization/66757
21973         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
21974
21975 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
21976             Sandra Loosemore <sandra@codesourcery.com>
21977
21978         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
21979         Delete extern declaration.
21980         (gprel_constant_p): Add extern declaration.
21981         * config/nios2/constraints.md ("S"): Use gprel_constant_p
21982         instead of nios2_symbol_ref_in_small_data_p.
21983         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
21984         (nios2_symbol_ref_in_small_data_p): Make static.
21985         (gprel_constant_p): Make non-static.
21986
21987 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
21988
21989         * doc/fragments.texi (Target Fragment): Convert debian.org
21990         link to use https.
21991         * doc/install.texi (Configuration): Ditto.
21992
21993 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
21994
21995         PR tree-optimization/66718
21996         * tree-vect-stmts.c (vectorizable_call): Replace uses of
21997         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
21998
21999         PR tree-optimization/66718
22000         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
22001         vectorizable_load, vectorizable_condition): Move vectype,
22002         nunits, ncopies computation after checking what kind of statement
22003         stmt is.
22004
22005 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22006
22007         * target-insns.def (extv, extzv, insv): New targetm instruction
22008         patterns.
22009         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
22010         interface.
22011         * recog.c (simplify_while_replacing): Likewise.
22012
22013 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22014
22015         * target-insns.def (doloop_begin, doloop_end): New targetm
22016         instruction patterns.
22017         * loop-init.c: Include target.h.
22018         (pass_loop2::gate): Use the new targetm patterns instead of
22019         HAVE_*/gen_* interface.
22020         (pass_rtl_doloop::gate): Likewise.
22021         (pass_rtl_doloop::execute): Remove preprocessor condition.
22022         * hw-doloop.c: Build unconditionally.
22023         * loop-doloop.c: Likewise.
22024         (doloop_optimize): Use the new targetm patterns instead of
22025         HAVE_*/gen_* interface.
22026         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
22027         * modulo-sched.c (doloop_register_get): Likewise.
22028
22029 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22030
22031         * target-insns.def (clear_cache): New targetm instruction pattern.
22032         * builtins.c (expand_builtin___clear_cache): Use it instead of
22033         HAVE_*/gen_* interface.
22034
22035 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22036
22037         * target-insns.def (allocate_stack, check_stack, probe_stack)
22038         (probe_stack_address, split_stack_prologue, split_stack_space_check):
22039         New targetm instruction patterns.
22040         * explow.c (allocate_dynamic_stack_space): Use them instead of
22041         HAVE_*/gen_* interface.
22042         (emit_stack_probe): Likewise.
22043         (probe_stack_range): Likewise.
22044         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22045
22046 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22047
22048         * target-insns.def (stack_protect_set, stack_protect_test): New
22049         targetm instruction patterns.
22050         * cfgexpand.c (stack_protect_prologue): Use them instead of
22051         HAVE_*/gen_* interface.
22052         * function.c (stack_protect_epilogue): Likewise.
22053
22054 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22055
22056         * expr.h (gen_move_insn_uncast): Delete.
22057         * expr.c (gen_move_insn_uncast): Delete.
22058
22059 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22060
22061         * target-insns.def (restore_stack_block, restore_stack_function)
22062         (restore_stack_nonlocal, save_stack_block, save_stack_function)
22063         (save_stack_nonlocal): New targetm instruction patterns.
22064         * builtins.c (expand_builtin_apply): Use them instead of
22065         HAVE_*/gen_* interface.
22066         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
22067
22068 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22069
22070         * target-insns.def (trap): New targetm instruction pattern.
22071         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
22072         interface.
22073         * explow.c (allocate_dynamic_stack_space): Likewise.
22074         * ifcvt.c (find_if_header): Likewise.
22075
22076 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22077
22078         * target-insns.def (prefetch): New targetm instruction pattern.
22079         * tree-ssa-loop-prefetch.c: Include targeth.
22080         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
22081         of HAVE_*/gen_* interface.
22082         * builtins.c (expand_builtin_prefetch): Likewise.
22083         * toplev.c (process_options): Likewise.
22084
22085 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22086
22087         * target-insns.def (untyped_call, untyped_return): New targetm
22088         instruction patterns.
22089         * builtins.c (expand_builtin_apply): Use them instead of
22090         HAVE_*/gen_* interface.
22091         (result_vector): Define unconditionally.
22092
22093 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22094
22095         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
22096         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
22097         (nonlocal_goto_receiver): New targetm instruction patterns.
22098         * builtins.c (expand_builtin_setjmp_setup): Use them instead
22099         of HAVE_*/gen_* interface.
22100         (expand_builtin_setjmp_receiver): Likewise.
22101         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
22102         * except.c (expand_dw2_landing_pad_for_region): Likewise.
22103
22104 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
22105
22106         * target.def: Add code_for_* hooks.
22107         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
22108         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
22109         * target-insns.def (casesi, tablejump): New targetm instruction
22110         patterns.
22111         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
22112         (do_tablejump): Likewise.
22113         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
22114         (expand_sjlj_dispatch_table): Likewise.
22115         * targhooks.c (default_case_values_threshold): Likewise.
22116
22117 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
22118
22119         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
22120         Use rtx_insn * instead of rtx.
22121         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
22122         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
22123         (nios2_call_tls_get_addr): Likewise.
22124         (nios2_emit_expensive_div): Likewise.
22125         (nios2_emit_move_sequence): Change return type to bool.
22126         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
22127         Change return type to bool.
22128
22129 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22130
22131         PR target/66747
22132         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
22133
22134 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
22135
22136         PR target/66114
22137         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
22138         of register_operand.  Remove constraint.
22139
22140 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
22141
22142         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
22143         the first argument.
22144
22145 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
22146
22147         * attribs.c (decl_attributes): Guard inform with the return value
22148         of the preceding warning.
22149
22150 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22151
22152         * doc/invoke.texi (moverride): Move to correct section.
22153
22154 2015-07-03  Richard Biener  <rguenther@suse.de>
22155
22156         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
22157         Copy from tree.c
22158         (dt_operand::gen_gimple_expr): After valueizing operands
22159         re-canonicalize operand order for commutative tree codes.
22160
22161 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
22162
22163         PR target/66746.
22164         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
22165         is defined.
22166         (__crc32w): Likewise.
22167         (__crc32d): Likewise.
22168         (__rdpmc): Likewise.
22169         (__rdtscp): Likewise.
22170         (_rdpmc): Likewise.
22171         (_rdtscp): Likewise.
22172         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
22173         is defined.
22174
22175 2015-07-03  Richard Biener  <rguenther@suse.de>
22176
22177         * fold-const.c (fold_mathfn_compare): Remove.
22178         (fold_inf_compare): Likewise.
22179         (fold_comparison): Move floating point comparison simplifications...
22180         * match.pd: ... to patterns here.  Introduce simple_comparisons
22181         operator list and use it for patterns formerly in fold_comparison.
22182
22183 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
22184
22185         PR tree-optimization/66119
22186         * toplev.c (process_options): Don't set up default values for
22187         the sra_max_scalarization_size_{speed,size} parameters.
22188         * tree-sra (analyze_all_variable_accesses): If no values
22189         have been set for the sra_max_scalarization_size_{speed,size}
22190         parameters, call get_move_ratio to get target defaults.
22191
22192 2015-07-03  Richard Biener  <rguenther@suse.de>
22193
22194         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
22195         * match.pd: ... here.
22196
22197 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
22198
22199         PR target/37072
22200         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
22201         is not actually the default on FreeBSD.
22202
22203 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22204
22205         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
22206         definition.
22207         (CMPGE_8HI): Likewise.
22208         (CMPGE_4SI): Likewise.
22209         (CMPGE_2DI): Likewise.
22210         (CMPGE_U16QI): Likewise.
22211         (CMPGE_U8HI): Likewise.
22212         (CMPGE_U4SI): Likewise.
22213         (CMPGE_U2DI): Likewise.
22214         (CMPLE_16QI): Likewise.
22215         (CMPLE_8HI): Likewise.
22216         (CMPLE_4SI): Likewise.
22217         (CMPLE_2DI): Likewise.
22218         (CMPLE_U16QI): Likewise.
22219         (CMPLE_U8HI): Likewise.
22220         (CMPLE_U4SI): Likewise.
22221         (CMPLE_U2DI): Likewise.
22222         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22223         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
22224         ALTIVEC_BUILTIN_VEC_CMPLE.
22225         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
22226         floating-point vector modes.
22227         (vector_nlt<mode>): New define_expand.
22228         (vector_nltu<mode>): Likewise.
22229         (vector_ngt<mode>): Likewise.
22230         (vector_ngtu<mode>): Likewise.
22231
22232 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
22233
22234         PR rtl-optimization/66706
22235         * combine.c (make_compound_operation): If an AND of SUBREG of
22236         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
22237
22238 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
22239
22240         * tree-pass.h (make_pass_ch_vect): New.
22241         * passes.def: Add pass_ch_vect just before pass_if_conversion.
22242
22243         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
22244         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
22245         make_pass_ch_vect): New.
22246         (pass_ch): Extend ch_base.
22247
22248         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
22249         (ch_base::copy_headers): ...here.
22250
22251 2015-07-02  Richard Biener  <rguenther@suse.de>
22252
22253         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
22254         * fold-const.c (get_pointer_modulus_and_residue): Remove.
22255         (fold_binary_loc): Implement (T)ptr & CST in terms of
22256         get_pointer_alignment_1.
22257         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
22258         Make sure to build the alignment test on a SSA name without
22259         final alignment info valid only after the prologue.
22260
22261 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
22262
22263         * config/cris/cris.md ("epilogue"): Remove condition.
22264         ("prologue"): Ditto.
22265
22266 2015-07-02  Richard Biener  <rguenther@suse.de>
22267
22268         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
22269         parameter to record a condition that is false.
22270         (record_conditions): When recording an extra NE_EXPR that is
22271         true also record a EQ_EXPR that is false.
22272
22273 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
22274
22275         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
22276         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
22277         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
22278         (set_iv, find_interesting_uses_address, add_candidate_1): New
22279         argument to alloc_iv.
22280         (find_interesting_uses_op, find_interesting_uses_cond): Don't
22281         duplicate struct iv.
22282         (free_loop_data): Don't free struct iv explicitly.
22283         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
22284
22285 2015-07-01  DJ Delorie  <dj@redhat.com>
22286
22287         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
22288         (LIB_SPEC): Add.
22289         (SUPPORTS_DISCRIMINATOR): Define.
22290
22291 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22292
22293         PR bootstrap/66685
22294         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
22295         there are no CALLs in the same pattern.
22296
22297 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22298
22299         PR rtl-optimization/61047
22300         * rtlanal.c (get_initial_register_offset): New function.
22301         (rtx_addr_can_trap_p_1): Check offsets of stack references.
22302
22303 2015-07-01  Richard Biener  <rguenther@suse.de>
22304
22305         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
22306         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
22307         ~X CMP C -> X CMP' ~C to ...
22308         * match.pd: ... patterns here.
22309
22310 2015-07-01  Nick Clifton  <nickc@redhat.com>
22311
22312         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
22313         a 16-bit value into a 20-bit memory slot.
22314
22315 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22316
22317         * doc/sourcebuild.texi (AArch64-specific attributes): Document
22318         "aarch64_tiny", "aarch64_small", "aarch64_large",
22319         "aarch64_little_endian", "aarch64_big_endian".
22320
22321 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22322
22323         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
22324         Document "aarch64_small_fpic".
22325
22326 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
22327
22328         * configure.ac: Add check for aarch64 assembler -fpic relocation
22329         modifier support.
22330         * configure: Regenerate.
22331         * config.in: Regenerate.
22332         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
22333         to -fPIC if not support of -fpic relocation modifier in assembler.
22334
22335 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
22336
22337         PR bootstrap/66685
22338         * rtl.c (classify_insn): Handle returns in PARALLELs.
22339
22340 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
22341
22342         PR middle-end/66633
22343         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
22344         to true if the function is nested and if not optimizing.
22345         (convert_local_omp_clauses): Initialize need_frame to true if the
22346         function contains nested functions and if not optimizing.
22347
22348 2015-07-01  Richard Biener  <rguenther@suse.de>
22349
22350         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
22351         (X & Y) ^ Y -> ~X & Y transforms to ...
22352         * match.pd: ... here.
22353
22354 2015-07-01  Richard Biener <rguenther@suse.de>
22355
22356         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
22357         of converts to avoid uninteresting noise from the conversion
22358         simplifying patterns.
22359
22360 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
22361
22362         * config/c6x/c6x.c (try_rename_operands): Do not depend on
22363         gcc_assert evaluating its argument for side-effect.
22364
22365 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
22366
22367         PR target/64833
22368         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
22369         flag_pic is set.
22370
22371 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22372
22373         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
22374         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
22375         (hash_scc): Add this_ref_p and ref_p parameters and pass them
22376         to the inner DFS walk.
22377
22378 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22379
22380         * target-insns.def (jump): New targetm instruction pattern.
22381         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
22382         instead of gen_jump.
22383         (fix_up_crossing_landing_pad): Likewise.
22384         (add_labels_and_missing_jumps): Likewise.
22385         (fix_crossing_conditional_branches): Likewise.
22386         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
22387         (force_nonfallthru_and_redirect): Likewise.
22388         * cse.c (cse_insn): Likewise.
22389         * expmed.c (expand_divmod): Likewise.
22390         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
22391         * haifa-sched.c (init_before_recovery): Likewise.
22392         (sched_create_recovery_edges): Likewise.
22393         * ifcvt.c (find_cond_trap): Likewise.
22394         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
22395         (expand_float, expand_fix): Likewise.
22396         * stmt.c (emit_jump): Likewise.
22397
22398 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22399
22400         * defaults.h (HAVE_load_multiple, gen_load_multiple)
22401         (HAVE_store_multiple, gen_store_multiple): Delete.
22402         * target-insns.def (load_multiple, store_multiple): New targetm
22403         instruction patterns.
22404         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
22405         of HAVE_*/gen_* interface.
22406
22407 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22408
22409         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
22410         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
22411         (gen_mem_signal_fence): Delete.
22412         * target-insns.def (mem_signal_fence, mem_thread_fence)
22413         (memory_barrier): New targetm instruction patterns.
22414         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
22415         interface.
22416         (expand_mem_signal_fence): Likewise.
22417
22418 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
22419
22420         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
22421         * target-insns.def (epilogue, prologue, sibcall_prologue): New
22422         targetm instruction patterns.
22423         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
22424         interface.
22425         * calls.c (expand_call): Likewise.
22426         * cfgrtl.c (cfg_layout_finalize): Likewise.
22427         * df-scan.c (df_get_entry_block_def_set): Likewise.
22428         (df_get_exit_block_use_set): Likewise.
22429         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
22430         * final.c (final_start_function): Likewise.
22431         * function.c (thread_prologue_and_epilogue_insns): Likewise.
22432         (reposition_prologue_and_epilogue_notes): Likewise.
22433         * reorg.c (find_end_label): Likewise.
22434         * toplev.c (process_options): Likewise.
22435
22436 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
22437
22438         * typed-splay-tree.h: New file.
22439
22440 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
22441
22442         PR debug/66691
22443         * lra-int.h (lra_substitute_pseudo): Add a parameter.
22444         (lra_substitute_pseudo_within_insn): Ditto.
22445         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
22446         of constant.
22447         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
22448         to lra_substitute_pseudo.
22449         * lra-lives.c (process_bb_lives): Add an argument to
22450         lra_substitute_pseudo_within_insn call.
22451         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
22452         argument to lra_substitute_pseudo and
22453         lra_substitute_pseudo_within_insn calls.
22454         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
22455
22456 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22457
22458         * configure: Regenerated.
22459
22460 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22461
22462         * config.gcc: Support i[34567]86-*-elfiamcu target.
22463         * config/i386/iamcu.h: New.
22464         * config/i386/i386.opt: Add -miamcu.
22465         * doc/invoke.texi: Document -miamcu.
22466         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
22467         off x87/MMX/SSE/AVX codegen for -miamcu.
22468         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22469         __iamcu/__iamcu__ for -miamcu.
22470         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
22471         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
22472         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
22473         * config/i386/i386.c (ix86_option_override_internal): Ignore and
22474         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
22475         MCU by default.  Default long double to 64-bit for Intel MCU.
22476         Turn on -freg-struct-return for Intel MCU.  Issue an error when
22477         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
22478         AVX is turned on.
22479         (function_arg_advance_32): Pass value whose size is no larger
22480         than 8 bytes in registers for Intel MCU.
22481         (function_arg_32): Likewise.
22482         (ix86_return_in_memory): Return value whose size is no larger
22483         than 8 bytes in registers for Intel MCU.
22484         (iamcu_alignment): New function.
22485         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
22486         true.
22487         (ix86_local_alignment): Don't increase alignment for Intel MCU.
22488         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
22489         true.
22490
22491 2015-06-30  Marek Polacek  <polacek@redhat.com>
22492
22493         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
22494         both operands of the resulting expression.
22495
22496         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
22497         the final expression with the operand's type and then convert
22498         it to the type of the expression.
22499
22500 2015-06-30  Richard Biener  <rguenther@suse.de>
22501
22502         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
22503         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
22504         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
22505         * match.pd: ... to patterns here.
22506
22507 2015-06-30  Richard Biener  <rguenther@suse.de>
22508
22509         PR tree-optimization/66704
22510         * tree-vect-data-refs.c (vect_setup_realignment): Use
22511         make_ssa_name for non-SSA name source.
22512
22513 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
22514
22515         PR middle-end/66702
22516         * omp-low.c (simd_clone_adjust): Handle addressable linear
22517         or uniform parameters or non-gimple type uniform parameters.
22518
22519 2015-06-30  Richard Biener  <rguenther@suse.de>
22520
22521         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
22522         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
22523         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
22524         * match.pd: ... here.
22525         Add a few cases of A - B -> A + (-B) when B "easily" negates.
22526         Move (x & y) | x -> x and friends before
22527         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
22528
22529 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
22530
22531         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
22532         -mfix-ut699 is not specified.
22533         (leon3_load): Rename into...
22534         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
22535         is specified.
22536
22537 2015-06-30  Marek Polacek  <polacek@redhat.com>
22538
22539         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
22540         * match.pd: ... here.
22541
22542 2015-06-30  Richard Biener  <rguenther@suse.de>
22543
22544         * target-insns.def (canonicalize_funcptr_for_compare): Add.
22545         * fold-const.c (build_range_check): Replace uses of
22546         HAVE_canonicalize_funcptr_for_compare.
22547         (fold_widened_comparison): Likewise.
22548         (fold_sign_changed_comparison): Likewise.
22549         * dojump.c: Include "target.h".
22550         (do_compare_and_jump): Replace uses of
22551         HAVE_canonicalize_funcptr_for_compare and
22552         gen_canonicalize_funcptr_for_compare.
22553         * expr.c (do_store_flag): Likewise.
22554
22555 2015-06-30  Tom de Vries  <tom@codesourcery.com>
22556
22557         PR tree-optimization/66652
22558         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22559         max_loop_iterations to determine if nit + 1 overflows.
22560
22561 2015-06-30  Richard Biener  <rguenther@suse.de>
22562
22563         * tree-vrp.c (register_edge_assert_for_2): Also register
22564         asserts for dominating conversion results.
22565
22566 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
22567
22568         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
22569         field in struct iv.
22570
22571 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
22572
22573         PR target/66509
22574         * configure.ac: Fix filds and fildq test for 64-bit.
22575         * configure: Regenerated.
22576
22577 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
22578
22579         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
22580         (nvptx_reorg): Here.  Keep the non-subreg pieces.
22581
22582 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
22583
22584         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
22585         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22586
22587 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
22588
22589         * config/i386/i386.md (*jcc_1): Use %! in asm template.
22590         Set attribute "length_nobnd" instead of "length".
22591         (*jcc_2): Ditto.
22592         (jump): Ditto.
22593         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
22594
22595 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
22596
22597         * config/nios2/nios2.c (nios2_delegitimize_address): Make
22598         assert less restrictive.
22599
22600 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22601
22602         PR fortran/66605
22603         * cgraphunit.c (cgraph_node::finalize_function): Do not call
22604         do_warn_unused_parameter.
22605         * function.c (do_warn_unused_parameter): Move from here.
22606         * function.h (do_warn_unused_parameter): Do not declare.
22607
22608 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22609
22610         PR target/65697
22611         * gcc.target/arm/armv-sync-comp-swap.c: New.
22612         * gcc.target/arm/armv-sync-op-acquire.c: New.
22613         * gcc.target/arm/armv-sync-op-full.c: New.
22614         * gcc.target/arm/armv-sync-op-release.c: New.
22615
22616 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22617
22618         PR target/65697
22619         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
22620         initial acquire barrier with final barrier.
22621
22622 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22623
22624         PR target/65697
22625         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
22626         initial acquire barrier with final barrier.
22627
22628 2015-06-29  Richard Henderson  <rth@redhat.com>
22629
22630         * config/i386/constraints.md (Bf): New constraint.
22631         * config/i386/i386-c.c (ix86_target_macros): Define
22632         __GCC_ASM_FLAG_OUTPUTS__.
22633         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
22634         as flags outputs.
22635         * doc/extend.texi (FlagOutputOperands): Document them.
22636
22637 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
22638
22639         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
22640         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
22641         unspec name.
22642         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
22643         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
22644         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
22645         (aarch64_symbol_context): Ditto.
22646         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
22647         and use new pattern name.
22648         (aarch64_expand_mov_immediate): Ditto.
22649         (aarch64_print_operand): Ditto.
22650         (aarch64_classify_tls_symbol): Ditto.
22651
22652 2015-06-29  Marek Polacek  <polacek@redhat.com>
22653             Marc Glisse  <marc.glisse@inria.fr>
22654
22655         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
22656         * match.pd: ... pattern here.
22657
22658 2015-06-29  Tom de Vries  <tom@codesourcery.com>
22659
22660         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
22661         function structure.
22662
22663 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
22664
22665         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
22666         feature description, split out the native option, add a link to
22667         the feature documentation, rearrange and slightly rewrite text.
22668         (Aarch64 options, -mcpu): Likewise.
22669         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
22670         +rdma implies Adv. SIMD.
22671
22672 2015-06-29  Marek Polacek  <polacek@redhat.com>
22673
22674         PR c/66322
22675         * function.c (stack_protect_epilogue): Remove a cast to int.
22676         * doc/invoke.texi: Update -Wswitch-bool description.
22677
22678 2015-06-29  Richard Biener  <rguenther@suse.de>
22679
22680         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
22681         * fold-const.c (fold_binary_loc): Move &A - &B simplification
22682         via ptr_difference_const ...
22683         * match.pd: ... here.
22684         When matching (X ^ Y) == Y also match with swapped operands.
22685
22686 2015-06-29  Richard Biener  <rguenther@suse.de>
22687
22688         * lto-streamer.h (LTO_major_version): Bump to 5.
22689
22690 2015-06-29  Richard Biener  <rguenther@suse.de>
22691
22692         PR tree-optimization/66677
22693         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
22694         STMT_VINFO_VEC_STMT clobbering less strict.
22695
22696 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
22697
22698         PR middle-end/64130
22699         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
22700         division, compute max and min when value ranges for dividend and
22701         divisor are available.
22702
22703 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
22704             Sandra Loosemore <sandra@codesourcery.com>
22705
22706         * regrename.h (regrename_do_replace): Change to return bool.
22707         * regrename.c (rename_chains): Check return value of
22708         regname_do_replace.
22709         (regrename_do_replace): Re-validate the modified insns and
22710         return bool status.
22711         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
22712         Update to match rename_chains changes.
22713         * config/c6x/c6x.c (try_rename_operands): Assert that
22714         regrename_do_replace returns true.
22715
22716 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
22717
22718         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
22719         operand 2 here.  Use copy_addr_to_reg to copy non-index
22720         register operand 2 to a temporary.
22721         (<mode>_stx): Ditto for operand 1.
22722         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
22723         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
22724         (ix86_store_bounds): Ditto.
22725
22726 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
22727
22728         * print-tree.c (print_node) [TREE_VEC]: Print its length.
22729
22730 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
22731
22732         * gimple.c (gimple_call_set_fndecl): Remove.
22733         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
22734         build1_loc directly instead of build_fold_addr_expr_loc.
22735
22736 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22737
22738         * hash-map.h (hash_map::traverse): Use the definition of the
22739         Key typedef rather than the typedef itself.
22740
22741 2015-06-26  Martin Jambor  <mjambor@suse.cz>
22742
22743         PR debug/66301
22744         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
22745         NULL instead of calling dump_enabled_p.
22746
22747 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22748
22749         * config/aarch64/aarch64.opt: (override): New.
22750         * doc/invoke.texi (override): Document.
22751         * config/aarch64/aarch64.c (aarch64_flag_desc): New
22752         (aarch64_fusible_pairs): Likewise.
22753         (aarch64_tuning_flags): Likewise.
22754         (aarch64_tuning_override_function): Likewise.
22755         (aarch64_tuning_override_functions): Likewise.
22756         (aarch64_parse_one_option_token): Likewise.
22757         (aarch64_parse_boolean_options): Likewise.
22758         (aarch64_parse_fuse_string): Likewise.
22759         (aarch64_parse_tune_string): Likewise.
22760         (aarch64_parse_one_override_token): Likewise.
22761         (aarch64_parse_override_string): Likewise.
22762         (aarch64_override_options): Parse the -override string if it
22763         is present.
22764
22765 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22766
22767         * config/aarch64/aarch64-protos.h (tune_params): Remove
22768         const from members.
22769         (aarch64_tune_params): Remove const, change to no longer be
22770         a pointer.
22771         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
22772         change to no longer be a pointer, initialize to generic_tunings.
22773         (aarch64_min_divisions_for_recip_mul): Change dereference of
22774         aarch64_tune_params to member access.
22775         (aarch64_reassociation_width): Likewise.
22776         (aarch64_rtx_mult_cost): Likewise.
22777         (aarch64_address_cost): Likewise.
22778         (aarch64_branch_cost): Likewise.
22779         (aarch64_rtx_costs): Likewise.
22780         (aarch64_register_move_cost): Likewise.
22781         (aarch64_memory_move_cost): Likewise.
22782         (aarch64_sched_issue_rate): Likewise.
22783         (aarch64_builtin_vectorization_cost): Likewise.
22784         (aarch64_override_options): Take a copy of the selected tuning
22785         struct in to aarch64_tune_params, rather than just setting
22786         a pointer, change dereferences of aarch64_tune_params to member
22787         accesses.
22788         (aarch64_override_options_after_change): Change dereferences of
22789         aarch64_tune_params to member access.
22790         (aarch64_macro_fusion_p): Likewise.
22791         (aarch_macro_fusion_pair_p): Likewise.
22792         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
22793
22794 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22795
22796         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
22797         (aarch64_tune_flags): Likewise.
22798         (AARCH64_TUNE_FMA_STEERING): Likewise.
22799         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
22800         to AARCH64_FL_USE_FMA_STEERING_PASS.
22801         (cortex-a57.cortex-a53): Likewise.
22802         (cortex-a72): Use cortexa72_tunings.
22803         (cortex-a72.cortex-a53): Likewise.
22804         (exynos-m1): Likewise.
22805         * config/aarch64/aarch64-protos.h (tune_params): Add
22806         a field: extra_tuning_flags.
22807         * config/aarch64/aarch64-tuning-flags.def: New.
22808         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
22809         (aarch64_extra_tuning_flags): Likewise.
22810         (aarch64_tune_params): Declare here.
22811         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
22812         (cortexa53_tunings): Likewise.
22813         (cortexa57_tunings): Likewise.
22814         (thunderx_tunings): Likewise.
22815         (xgene1_tunings): Likewise.
22816         (cortexa72_tunings): New.
22817         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
22818          (gate): Check against aarch64_tune_params.
22819         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
22820         aarch64-protos.h.
22821
22822 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
22823
22824         * config/aarch64/aarch64-fusion-pairs.def: New.
22825         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
22826         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
22827         aarch64_fusion_pairs.
22828         (AARCH64_FUSE_MOV_MOVK): Likewise.
22829         (AARCH64_FUSE_ADRP_ADD): Likewise.
22830         (AARCH64_FUSE_MOVK_MOVK): Likewise.
22831         (AARCH64_FUSE_ADRP_LDR): Likewise.
22832         (AARCH64_FUSE_CMP_BRANCH): Likewise.
22833
22834 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22835
22836         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
22837         SYMBOL_SMALL_GOT_28K.
22838         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
22839         relocation modifiers.
22840         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
22841         (ldr_got_small_28k_<mode>): New.
22842         (ldr_got_small_28k_sidi): New.
22843         * config/aarch64/iterators.md (got_modifier): New mode iterator.
22844         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
22845         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
22846         SYMBOL_SMALL_GOT_28K.
22847         (aarch64_rtx_costs): Add costs for new instruction sequences.
22848         (initialize_aarch64_code_model): Initialize new model.
22849         (aarch64_classify_symbol): Recognize new model and new symbol classification.
22850         (aarch64_asm_preferred_eh_data_format): Support new model.
22851         (aarch64_load_symref_appropriately): Generate new instruction
22852         sequences for -fpic.
22853         (TARGET_USE_PSEUDO_PIC_REG): New definition.
22854         (aarch64_use_pseudo_pic_reg): New function.
22855
22856 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
22857
22858         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
22859         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
22860         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
22861         (aarch64_expand_mov_immediate): Ditto.
22862         (aarch64_print_operand): Ditto.
22863         (aarch64_classify_symbol): Ditto.
22864
22865 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
22866
22867         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
22868
22869 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
22870
22871         PR bootstrap/66638
22872         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
22873         assertion failed.  Remove assertion itself.
22874
22875 2015-06-26  Richard Biener  <rguenther@suse.de>
22876
22877         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
22878         and -A CMP CST -> A CMP -CST which is redundant with a pattern
22879         in match.pd.
22880         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
22881         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
22882         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
22883         * match.pd: ... patterns here.
22884
22885 2015-06-26  Marek Polacek  <polacek@redhat.com>
22886
22887         * match.pd ((x | y) & ~(x & y) -> x ^ y,
22888         (x | y) & (~x ^ y) -> x & y): New patterns.
22889
22890 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
22891
22892         * rtl.h (emit): Add an optional boolean parameter to control
22893         whether barriers are emitted.
22894         * emit-rtl.c (emit): Likewise.
22895         * gensupport.c (get_emit_function): Return null rather than "emit".
22896         * genemit.c (gen_emit_seq): Handle the null return value.
22897         Don't emit barriers after the final instruction in the sequence.
22898         * gentarget-def.c (main): Don't emit barriers after the instruction.
22899
22900 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22901
22902         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
22903         TARGET_UNIFIED_ASM.
22904
22905 2015-06-26  Richard Biener  <rguenther@suse.de>
22906
22907         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
22908
22909 2015-06-26  Richard Biener  <rguenther@suse.de>
22910
22911         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
22912         irrespective on whether the inner operation has a single use
22913         of both off are constant.
22914
22915 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
22916             Segher Boessenkool  <segher@kernel.crashing.org>
22917
22918         PR target/66412
22919         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
22920         before doing PUT_MODE or PUT_CODE on operands to avoid
22921         in-place RTX modification.
22922
22923 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22924
22925         * gentarget-def.c (def_target_insn): Cast return of strtol to
22926         unsigned int.
22927
22928 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22929
22930         * gimple.h (gimple_call_set_fn): Move inline function.
22931         * gimple.c (gimple_call_set_fn): Relocate here.
22932
22933 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
22934
22935         PR target/65979
22936         PR target/66611
22937         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
22938         the replacement insn will work.
22939
22940 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22941
22942         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
22943         by default.
22944
22945 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22946
22947         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
22948         * cgraph.h: Include ipa-ref.h and plugin-api.h.
22949         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
22950         (symtab_node::address_can_be_compared_p): Move function.
22951         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
22952         definition here.
22953         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
22954         * auto-profile.c: Likewise.
22955         * bb-reorder.c: Likewise.
22956         * builtins.c: Likewise.
22957         * calls.c: Likewise.
22958         * cfgexpand.c: Likewise.
22959         * cgraphbuild.c: Likewise.
22960         * cgraphclones.c: Likewise.
22961         * cgraphunit.c: Likewise.
22962         * combine.c: Likewise.
22963         * coverage.c: Likewise.
22964         * data-streamer-in.c: Likewise.
22965         * data-streamer-out.c: Likewise.
22966         * data-streamer.c: Likewise.
22967         * dbxout.c: Likewise.
22968         * dwarf2out.c: Likewise.
22969         * except.c: Likewise.
22970         * expr.c: Likewise.
22971         * final.c: Likewise.
22972         * fold-const.c: Likewise.
22973         * ggc-page.c: Likewise.
22974         * gimple-fold.c: Likewise.
22975         * gimple-iterator.c: Likewise.
22976         * gimple-pretty-print.c: Likewise.
22977         * gimple-streamer-in.c: Likewise.
22978         * gimple-streamer-out.c: Likewise.
22979         * gimple.c: Likewise.
22980         * gimplify.c: Likewise.
22981         * ipa-chkp.c: Likewise.
22982         * ipa-comdats.c: Likewise.
22983         * ipa-cp.c: Likewise.
22984         * ipa-devirt.c: Likewise.
22985         * ipa-icf-gimple.c: Likewise.
22986         * ipa-icf.c: Likewise.
22987         * ipa-inline-analysis.c: Likewise.
22988         * ipa-inline-transform.c: Likewise.
22989         * ipa-inline.c: Likewise.
22990         * ipa-polymorphic-call.c: Likewise.
22991         * ipa-profile.c: Likewise.
22992         * ipa-prop.c: Likewise.
22993         * ipa-pure-const.c: Likewise.
22994         * ipa-ref.c: Likewise.
22995         * ipa-reference.c: Likewise.
22996         * ipa-split.c: Likewise.
22997         * ipa-utils.c: Likewise.
22998         * ipa-visibility.c: Likewise.
22999         * ipa.c: Likewise.
23000         * langhooks.c: Likewise.
23001         * lto-cgraph.c: Likewise.
23002         * lto-compress.c: Likewise.
23003         * lto-opts.c: Likewise.
23004         * lto-section-in.c: Likewise.
23005         * lto-section-out.c: Likewise.
23006         * lto-streamer-in.c: Likewise.
23007         * lto-streamer-out.c: Likewise.
23008         * lto-streamer.c: Likewise.
23009         * omp-low.c: Likewise.
23010         * opts-global.c: Likewise.
23011         * passes.c: Likewise.
23012         * predict.c: Likewise.
23013         * print-tree.c: Likewise.
23014         * profile.c: Likewise.
23015         * ree.c: Likewise.
23016         * sanopt.c: Likewise.
23017         * stor-layout.c: Likewise.
23018         * symtab.c: Likewise.
23019         * toplev.c: Likewise.
23020         * trans-mem.c: Likewise.
23021         * tree-cfg.c: Likewise.
23022         * tree-chkp.c: Likewise.
23023         * tree-eh.c: Likewise.
23024         * tree-emutls.c: Likewise.
23025         * tree-inline.c: Likewise.
23026         * tree-nested.c: Likewise.
23027         * tree-parloops.c: Likewise.
23028         * tree-pretty-print.c: Likewise.
23029         * tree-profile.c: Likewise.
23030         * tree-sra.c: Likewise.
23031         * tree-ssa-alias.c: Likewise.
23032         * tree-ssa-live.c: Likewise.
23033         * tree-ssa-loop-ivcanon.c: Likewise.
23034         * tree-ssa-loop-ivopts.c: Likewise.
23035         * tree-ssa-pre.c: Likewise.
23036         * tree-ssa-sccvn.c: Likewise.
23037         * tree-ssa-strlen.c: Likewise.
23038         * tree-ssa-structalias.c: Likewise.
23039         * tree-streamer-in.c: Likewise.
23040         * tree-streamer-out.c: Likewise.
23041         * tree-streamer.c: Likewise.
23042         * tree-switch-conversion.c: Likewise.
23043         * tree-tailcall.c: Likewise.
23044         * tree-vect-data-refs.c: Likewise.
23045         * tree-vect-stmts.c: Likewise.
23046         * tree-vectorizer.c: Likewise.
23047         * tree.c: Likewise.
23048         * tsan.c: Likewise.
23049         * ubsan.c: Likewise.
23050         * value-prof.c: Likewise.
23051         * varasm.c: Likewise.
23052         * varpool.c: Likewise.
23053         * config/arm/arm.c: Likewise.
23054         * config/bfin/bfin.c: Likewise.
23055         * config/c6x/c6x.c: Likewise.
23056         * config/cris/cris.c: Likewise.
23057         * config/darwin-c.c: Likewise.
23058         * config/darwin.c: Likewise.
23059         * config/i386/i386.c: Likewise.
23060         * config/i386/winnt.c: Likewise.
23061         * config/microblaze/microblaze.c: Likewise.
23062         * config/mips/mips.c: Likewise.
23063         * config/rs6000/rs6000.c: Likewise.
23064         * config/rx/rx.c: Likewise.
23065         * config/s390/s390.c: Likewise.
23066         * config/tilegx/mul-tables.c: Likewise.
23067
23068 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23069
23070         * config/aarch64/aarch64.c, config/alpha/alpha.c,
23071         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
23072         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
23073         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
23074         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23075         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23076         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23077         config/microblaze/microblaze.c, config/mips/mips.c,
23078         config/mmix/mmix.c, config/mn10300/mn10300.c,
23079         config/moxie/moxie.c, config/msp430/msp430.c,
23080         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23081         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23082         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23083         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23084         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23085         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23086         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
23087         target-def.h include.
23088         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
23089
23090 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23091
23092         * Makefile.in (TARGET_DEF): Add target-insns.def.
23093         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
23094         (build/gentarget-def.o): New rule.
23095         (genprogrtl): Add target-def.
23096         * target-insns.def, gentarget-def.c: New files.
23097         * target.def: Add targetm.have_* and targetm.gen_* hooks,
23098         based on the contents of target-insns.def.
23099         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
23100         (HAVE_return, gen_return): Delete.
23101         * target-def.h: Include insn-target-def.h.
23102         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
23103         instead of direct calls.  Rely on them to do the appropriate assertions.
23104         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
23105         (convert_jumps_to_returns): Use targetm interface instead of
23106         direct calls.
23107         (thread_prologue_and_epilogue_insns): Likewise.
23108         * reorg.c (find_end_label, dbr_schedule): Likewise.
23109         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
23110         * shrink-wrap.c (convert_to_simple_return): Likewise.
23111         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
23112
23113 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23114
23115         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
23116         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23117         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
23118         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
23119         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
23120         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
23121         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
23122         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
23123         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
23124         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
23125         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
23126         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
23127         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
23128         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
23129         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
23130         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
23131         includes to end.
23132
23133 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23134
23135         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
23136         (unbounded_int_hashmap_traits::key_type): Likewise.
23137         * hash-map.h (hash_map): Get the key type from the traits.
23138         * hash-traits.h (default_hash_traits): By default, inherit from the
23139         template parameter.
23140         * alias.c (alias_set_traits): Delete.
23141         (alias_set_entry_d::children): Use alias_set_hash as the first
23142         template parameter.
23143         (record_alias_subset): Update accordingly.
23144         * except.c (tree_hash_traits): Delete.
23145         (type_to_runtime_map): Use tree_hash as the first template parameter.
23146         (init_eh): Update accordingly.
23147         * genmatch.c (capture_id_map_hasher): Delete.
23148         (cid_map_t): Use nofree_string_hash as first template parameter.
23149         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
23150         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
23151         Use symbol_compare_hash as the first template parameter in
23152         subdivide_hash_map.
23153         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
23154         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
23155         template parameter.
23156         * passes.c (pass_registry_hasher): Delete.
23157         (name_to_pass_map): Use nofree_string_hash as the first template
23158         parameter.
23159         (register_pass_name): Update accordingly.
23160         * sanopt.c (sanopt_tree_map_traits): Delete.
23161         (sanopt_tree_triplet_map_traits): Delete.
23162         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
23163         template parameter.
23164         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
23165         the first template parameter.
23166         * sese.c (rename_map_hasher): Delete.
23167         (rename_map_type): Use tree_ssa_name_hash as the first template
23168         parameter.
23169         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
23170         (function_summary::m_map): Use map_hash as the first template
23171         parameter.
23172         (function_summary::release): Update accordingly.
23173         * tree-if-conv.c (phi_args_hash_traits): Delete.
23174         (predicate_scalar_phi): Use tree_operand_hash as the first template
23175         parameter to phi_arg_map.
23176         * tree-inline.h (dependence_hasher): Delete.
23177         (copy_body_data::dependence_map): Use dependence_hash as the first
23178         template parameter.
23179         * tree-inline.c (remap_dependence_clique): Update accordingly.
23180         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
23181         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
23182         parameter.
23183         (addr_stridxptr): Update accordingly.
23184         * value-prof.c (profile_id_traits): Delete.
23185         (cgraph_node_map): Use profile_id_hash as the first template
23186         parameter.
23187         (init_node_map): Update accordingly.
23188         * config/alpha/alpha.c (string_traits): Delete.
23189         (machine_function::links): Use nofree_string_hash as the first
23190         template parameter.
23191         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
23192         * config/m32c/m32c.c (pragma_traits): Delete.
23193         (pragma_htab): Use nofree_string_hash as the first template parameter.
23194         (m32c_note_pragma_address): Update accordingly.
23195         * config/mep/mep.c (pragma_traits): Delete.
23196         (pragma_htab): Use nofree_string_hash as the first template parameter.
23197         (mep_note_pragma_flag): Update accordingly.
23198         * config/mips/mips.c (mips16_flip_traits): Delete.
23199         (mflip_mips16_htab): Use nofree_string_hash as the first template
23200         parameter.
23201         (mflip_mips16_use_mips16_p): Update accordingly.
23202         (local_alias_traits): Delete.
23203         (mips16_local_aliases): Use nofree_string_hash as the first template
23204         parameter.
23205         (mips16_local_alias): Update accordingly.
23206
23207 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23208
23209         * hash-map-traits.h (default_hashmap_traits): Delete.
23210
23211 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23212
23213         * hash-map-traits.h (unbounded_hashmap_traits): New class.
23214         (unbounded_int_hashmap_traits): Likewise.
23215         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
23216
23217 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23218
23219         * ipa-icf.h (symbol_compare_hash): New class.
23220         (symbol_compare_hashmap_traits): Use it.
23221         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
23222         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
23223         (mem_alloc_description::reverse_mem_map_t): Remove redundant
23224         default_hashmap_traits.
23225         * sanopt.c (sanopt_tree_triplet_hash): New class.
23226         (sanopt_tree_triplet_map_traits): Use it.
23227
23228 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23229
23230         * gengtype-parse.c (require_template_declaration): Allow '+' in
23231         template parameters.  Consolidate cases.
23232         * hash-traits.h (int_hash): New class.
23233         * alias.c (alias_set_hash): New structure.
23234         (alias_set_traits): Use it.
23235         * symbol-summary.h (function_summary::map_hash): New class.
23236         (function_summary::summary_hashmap_traits): Use it.
23237         * tree-inline.h (dependence_hash): New class.
23238         (dependence_hasher): Use it.
23239         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
23240         * value-prof.c (profile_id_hash): New class.
23241         (profile_id_traits): Use it.
23242
23243 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23244
23245         * config/mips/mips.c (mips16_flip_traits): Use it.
23246         (local_alias_traits, mips16_local_aliases): Convert from a map of
23247         rtxes to a map of symbol names.
23248         (mips16_local_alias): Update accordingly.
23249
23250 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23251
23252         * hash-traits.h (string_hash, nofree_string_hash): New classes.
23253         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
23254         * passes.c (pass_registry_hasher): Likewise.
23255         * config/alpha/alpha.c (string_traits): Likewise.
23256         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
23257         * config/m32c/m32c.c (pragma_traits): Likewise.
23258         * config/mep/mep.c (pragma_traits): Likewise.
23259
23260 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23261
23262         * tree-hash-traits.h (tree_hash): New class.
23263         * except.c: Include tree-hash-traits.h.
23264         (tree_hash_traits): Use tree_hash.
23265
23266 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23267
23268         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
23269         * sese.c: Include tree-hash-traits.h.
23270         (rename_map_hasher): Use tree_ssa_name_hasher.
23271
23272 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23273
23274         * tree-hash-traits.h (tree_decl_hash): New class.
23275         * tree-ssa-strlen.c: Include tree-hash-traits.h.
23276         (stridxlist_hash_traits): Use tree_decl_hash.
23277
23278 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23279
23280         * tree-hash-traits.h: New file.
23281         (tree_operand_hash): New class.
23282         * sanopt.c: Include tree-hash-traits.h.
23283         (sanopt_tree_map_traits): Use tree_operand_hash.
23284         * tree-if-conv.c: Include tree-hash-traits.h.
23285         (phi_args_hash_traits): Use tree_operand_hash.
23286         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
23287         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
23288
23289 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23290
23291         * hash-map-traits.h: Include hash-traits.h.
23292         (simple_hashmap_traits): New class.
23293         * mem-stats.h (hash_map): Change the default traits to
23294         simple_hashmap_traits<default_hash_traits<Key> >.
23295
23296 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23297
23298         * hash-table.h: Update comments.
23299
23300 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23301
23302         * hash-traits.h (default_hash_traits): New structure.
23303         * hash-set.h (default_hashset_traits): Delete.
23304         (hash_set): Use default_hash_traits<Key> instead of
23305         default_hashset_traits.  Delete hash_entry type and use Key directly.
23306         * ipa-devirt.c (pair_traits): Delete.
23307         (default_hash_traits <type_pair>): Override.
23308         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
23309         (odr_types_equivalent_p, add_type_duplicate): Likewise.
23310
23311 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23312
23313         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
23314
23315 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23316
23317         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
23318         (has_is_empty, is_empty_helper): Delete.
23319         (has_mark_deleted, mark_deleted_helper): Delete.
23320         (has_mark_empty, mark_empty_helper): Delete.
23321         (hash_table::is_deleted): Call the Descriptor unconditionally.
23322         (hash_table::is_empty): Likewise.
23323         (hash_table::mark_deleted): Likewise.
23324         (hash_table::mark_empty): Likewise.
23325
23326 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23327
23328         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
23329         redundant typedefs and members.
23330         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
23331         redundant typedefs.
23332         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
23333         * ipa-devirt.c (odr_name_hasher): Likewise.
23334         (polymorphic_call_target_hasher): Likewise.
23335         * ira-costs.c (cost_classes_hasher): Likewise.
23336         * statistics.c (stats_counter_hasher): Likewise.
23337         * trans-mem.c (log_entry_hasher): Likewise.
23338         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
23339         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
23340         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
23341         * var-tracking.c (variable_hasher): Likewise.
23342         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
23343         Remove redundant typedefs and members.
23344
23345 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23346
23347         * hash-traits.h (ggc_cache_hasher): Rename to...
23348         (ggc_cache_remove): ...this and remove typedefs.
23349         (ggc_cache_ptr_hash): New class.
23350         * hash-table.h: Update commentary.
23351         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
23352         rather than ggc_cache_hasher.
23353         (const_wide_int_hasher, reg_attr_hasher): Likewise.
23354         (const_double_hasher, const_fixed_hasher): Likewise.
23355         * function.c (insn_cache_hasher): Likewise.
23356         * trans-mem.c (tm_wrapper_hasher): Likewise.
23357         * tree.h (tree_decl_map_cache_hasher): Likewise.
23358         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
23359         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
23360         * ubsan.c (tree_type_map_cache_hasher): Likewise.
23361         * varasm.c (tm_clone_hasher): Likewise.
23362         * config/i386/i386.c (dllimport_hasher): Likewise.
23363         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
23364         (tree_hasher): Likewise.
23365
23366 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23367
23368         * hash-traits.h (ggc_hasher): Rename to...
23369         (ggc_remover): ...this and remove typedefs.
23370         (ggc_cache_hasher): Update accordingly.  Add typedefs.
23371         (ggc_ptr_hash): New class.
23372         * hash-table.h: Update comment.
23373         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
23374         ggc_hasher.
23375         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
23376         (tree_descriptor_hasher): Likewise.
23377         * cgraph.c (function_version_hasher): Likewise.
23378         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
23379         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
23380         (dw_loc_list_hasher, addr_hasher): Likewise.
23381         * function.h (used_type_hasher): Likewise.
23382         * function.c (temp_address_hasher): Likewise.
23383         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
23384         * libfuncs.h (libfunc_hasher): Likewise.
23385         * lto-streamer.h (decl_state_hasher): Likewise.
23386         * optabs.c (libfunc_decl_hasher): Likewise.
23387         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
23388         * varasm.c (section_hasher, object_block_hasher): Likewise.
23389         (const_rtx_desc_hasher): Likewise.
23390         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
23391         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
23392
23393 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23394
23395         * hash-traits.h (free_ptr_hash): New class.
23396         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
23397         rather than typed_free_remove.  Remove redudant typedefs.
23398         (external_ref_hasher): Likewise.
23399         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
23400         (ehspec_hasher): Likewise.
23401         * ggc-common.c (saving_hasher): Likewise.
23402         * gimplify.c (gimplify_hasher): Likewise.
23403         * haifa-sched.c (delay_i2_hasher): Likewise.
23404         * loop-invariant.c (invariant_expr_hasher): Likewise.
23405         * loop-iv.c (biv_entry_hasher): Likewise.
23406         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
23407         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
23408         * tree-cfg.c (locus_discrim_hasher): Likewise.
23409         * tree-eh.c (finally_tree_hasher): Likewise.
23410         * tree-into-ssa.c (var_info_hasher): Likewise.
23411         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
23412         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
23413         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
23414         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
23415         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
23416         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
23417         (shared_bitmap_hasher): Likewise.
23418         * tree-ssa-threadupdate.c (redirection_data): Likewise.
23419         * tree-vectorizer.h (peel_info_hasher): Likewise.
23420         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
23421         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
23422
23423 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23424
23425         * hash-table.h: Update comments.
23426         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
23427         (nofree_ptr_hash): New class.
23428         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
23429         than typed_noop_remove.  Remove redudant typedefs.
23430         * attribs.c (attribute_hasher): Likewise.
23431         * cfg.c (bb_copy_hasher): Likewise.
23432         * cselib.c (cselib_hasher): Likewise.
23433         * dse.c (invariant_group_base_hasher): Likewise.
23434         * dwarf2cfi.c (trace_info_hasher): Likewise.
23435         * dwarf2out.c (macinfo_entry_hasher): Likewise.
23436         (comdat_type_hasher, loc_list_hasher): Likewise.
23437         * gcse.c (pre_ldst_expr_hasher): Likewise.
23438         * genmatch.c (id_base): Likewise.
23439         * genrecog.c (test_pattern_hasher): Likewise.
23440         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
23441         * haifa-sched.c (delay_i1_hasher): Likewise.
23442         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
23443         * ipa-icf.h (congruence_class_group_hash): Likewise.
23444         * ipa-profile.c (histogram_hash): Likewise.
23445         * ira-color.c (allocno_hard_regs_hasher): Likewise.
23446         * lto-streamer.h (string_slot_hasher): Likewise.
23447         * lto-streamer.c (tree_entry_hasher): Likewise.
23448         * plugin.c (event_hasher): Likewise.
23449         * postreload-gcse.c (expr_hasher): Likewise.
23450         * store-motion.c (st_expr_hasher): Likewise.
23451         * tree-sra.c (uid_decl_hasher): Likewise.
23452         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
23453         (ssa_name_var_hash): Likewise.
23454         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
23455         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
23456         * tree-ssa-pre.c (pre_expr_d): Likewise.
23457         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
23458         * vtable-verify.h (registration_hasher): Likewise.
23459         * vtable-verify.c (vtbl_map_hasher): Likewise.
23460         * config/arm/arm.c (libcall_hasher): Likewise.
23461         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
23462         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
23463         * config/sol2.c (comdat_entry_hasher): Likewise.
23464         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
23465         (print_fold_checksum, fold_checksum_tree): Likewise.
23466         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
23467         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
23468         (fold_build_call_array_loc): Likewise.
23469         * tree-ssa-ccp.c (gimple_htab): Likewise.
23470         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
23471         rather than pointer_type.
23472
23473 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23474
23475         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
23476         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
23477
23478 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23479
23480         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
23481         (ggc_hasher::ggc_mx): Likewise.
23482         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
23483         that duplicate ggc_hasher ones.
23484
23485 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23486
23487         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
23488         (gt_cleare_cache): Check here for deleted and empty entries.
23489         Replace handle_cache_entry with a call to keep_cache_entry.
23490         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
23491         (ggc_cache_hasher::keep_cache_entry): New function.
23492         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
23493         (tm_wrapper_hasher::keep_cache_entry): New function.
23494         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
23495         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23496         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
23497         (type_cache_hasher::keep_cache_entry): New function.
23498         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
23499         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
23500         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
23501         (tree_type_map_cache_hasher::keep_cache_entry): New function.
23502         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
23503         (tm_clone_hasher::keep_cache_entry): New function.
23504         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
23505         (dllimport_hasher::keep_cache_entry): New function.
23506
23507 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23508
23509         * hash-table.h: Include hash-traits.h.
23510         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
23511         (ggc_cache_hasher): Move to...
23512         * hash-traits.h: ...this new file.
23513
23514 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23515
23516         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
23517         struct cl_optimization.
23518         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
23519         * tree.c (make_node_stat): Allocate cl_optimization struct.
23520         (copy_node_stat): Allocate and copy cl_optimization struct.
23521
23522 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23523
23524         * function.h (struct incoming_args): Move struct.
23525         (pass_by_reference, reference_callee_copied): Remove prototypes.
23526         * emit-rtl.h (struct incoming_args): Relocate struct here.
23527         * calls.h (pass_by_reference, reference_callee_copied): Relocate
23528         prototypes here.
23529         * function.c (pass_by_reference, reference_callee_copied): Move.
23530         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
23531         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
23532         * ipa-chkp.c: Include calls.h.
23533
23534 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
23535
23536         * alias.h (alias_set_type): Move typedef.
23537         * coretypes.h (alias_set_type): Relocate typedef here.
23538         * rtl.h: Don't include alias.h.
23539
23540 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
23541
23542         * cgraph.h (cgraph_rtl_info): Move to rtl.h
23543         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
23544         and instance.
23545         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
23546         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
23547         doesn't exist.
23548         * calls.c: Include hard-reg-set.h before rtl.h.
23549         * ira.c: Likewise.
23550
23551 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
23552             Vladimir Makarov  <vmakarov@redhat.com>
23553
23554         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
23555         Add assert.
23556
23557 2015-06-25  Richard Biener  <rguenther@suse.de>
23558
23559         * fold-const.c (fold_binary_loc): Move simplification of
23560         (X <<>> C1) & C2 ...
23561         * match.pd: ... here.
23562
23563 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
23564
23565         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
23566
23567 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
23568
23569         * match.pd: Add patterns for vec_conds between 1 and 0.
23570
23571 2015-06-25  Richard Biener  <rguenther@suse.de>
23572
23573         * tree-vect-stmts.c (vectorizable_conversion): Do not set
23574         STMT_VINFO_VEC_STMT for SLP.
23575         (vectorizable_store): Likewise.
23576         (vectorizable_load): Likewise.
23577         (vect_transform_stmt): Catch SLP vectorization clobbering
23578         STMT_VINFO_VEC_STMT.
23579
23580 2015-06-25  Richard Biener  <rguenther@suse.de>
23581
23582         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
23583         dumping.
23584         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
23585         cleanup resulting dead code and parameters.
23586         (vect_transform_slp_perm_load): Adjust.
23587
23588 2015-06-25  Nick Clifton  <nickc@redhat.com>
23589
23590         * config/bfin/bfin.c (bfin_expand_prologue): Set
23591         current_function_static_stack_size if flag_stack_usage_info is set.
23592         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
23593         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
23594         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
23595         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
23596
23597 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23598
23599         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
23600         comment that the generated IV is unsigned.
23601
23602 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23603
23604         PR target/29693
23605         * config/arm/arm.c (arm_dbx_register_number): Return
23606         DWARF_FRAME_REGISTERS by default.
23607
23608 2015-06-25  Tom de Vries  <tom@codesourcery.com>
23609
23610         * dominance.c (calculate_dominance_info): Fix verify_dominators call
23611         argument.  Call verify_dominator when reusing dominator info.
23612
23613 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
23614
23615         PR target/66563
23616         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
23617         an additional element of the unspec vector.  Modify indices
23618         of operands.
23619         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
23620         * config/sh/sh.c (prepare_move_operands): Pass incremented
23621         const_int to gen_GOTaddr2picreg.
23622         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
23623
23624 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23625
23626         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
23627         Condition on TARGET_FLOAT.
23628
23629 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23630
23631         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
23632         and (no)crypto.
23633
23634 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
23635
23636         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
23637
23638         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
23639         aarch64_err_no_fpadvsimd.
23640
23641         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
23642         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
23643         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
23644         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
23645         Turn error into assert, test TARGET_FLOAT.
23646         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
23647         TARGET_FLOAT.
23648
23649 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
23650
23651         PR debug/66482
23652         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
23653
23654 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
23655
23656         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
23657
23658 2015-06-24  Renlin Li <renlin.li@arm.com>
23659
23660         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
23661         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
23662
23663 2015-06-24  Richard Biener  <rguenther@suse.de>
23664
23665         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
23666         (main): Likewise.
23667         (lower_opt_convert): Support lowering of conditional view_convert.
23668         (parser::parse_operation): Likewise.
23669         (parser::parse_for): Likewise.
23670
23671 2015-06-24  Renlin Li  <renlin.li@arm.com>
23672
23673         * varasm.c (emit_local): Use unsigned int for align variable.
23674
23675 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23676
23677         PR target/63408
23678         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
23679         for negative numbers.
23680
23681 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23682
23683         PR rtl-optimization/66306
23684         * reload.c (find_reloads): Swap the match_dup info for
23685         commutative operands.
23686
23687 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23688
23689         * config/s390/vx-builtins.md
23690         ("vec_scatter_element<mode>_<non_vec_int>")
23691         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
23692         attribute with bhfgq.
23693
23694 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23695
23696         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
23697
23698 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23699
23700         * config/s390/s390-builtin-types.def: Add flag to indicate the
23701         options under which the function type is needed.
23702         * config/s390/s390-builtins.def: Add flag to indicate the options
23703         under which the builtin is enabled.
23704         * config/s390/s390-builtins.h: Add flags parameter to macro
23705         definitions.
23706         (bflags_for_builtin): New function.
23707         (flags_for_builtin): Renamed to ...
23708         (opflags_for_builtin): ... this.
23709         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
23710         flags_for_builtin to bflags_for_builtin and
23711         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
23712         * config/s390/s390.c: Add initialization of bflags_builtin and
23713         opflags_builtin arrays.
23714         Remove code for flags_builtin.
23715         (s390_init_builtins): Only create builtin function types if one of
23716         their flags is active.
23717         Only create builtins if all of their flags are active.
23718         (s390_expand_builtin): Rename flags_for_builtin to
23719         opflags_for_builtin.
23720
23721 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23722
23723         * config/s390/vecintrin.h: Remove internal builtins.
23724
23725 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23726
23727         * config/s390/s390.c (s390_secondary_reload): Fix check for
23728         GENERAL_REGS register class.
23729
23730 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23731
23732         * config/s390/s390.c (s390_support_vector_misalignment): Call
23733         default implementation for !TARGET_VX.
23734
23735 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23736
23737         * config/s390/s390.c (s390_legitimate_constant_p): Add
23738         TARGET_VX check.
23739
23740 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23741
23742         * config/s390/s390.c (s390_vector_abi): New variable definition.
23743         (s390_check_type_for_vector_abi): New function.
23744         (TARGET_ASM_FILE_END): New macro definition.
23745         (s390_asm_file_end): New function.
23746         (s390_function_arg): Call s390_check_type_for_vector_abi.
23747         (s390_gimplify_va_arg): Likewise.
23748         * configure: Regenerate.
23749         * configure.ac: Check for .gnu_attribute Binutils feature.
23750
23751 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
23752
23753         PR target/65803
23754         * config/bfin/bfin.c (hwloop_optimize): Initialize
23755         JUMP_LABEL for newly created jump.
23756
23757 2015-06-23  Tristan Gingold  <gingold@adacore.com>
23758
23759         * collect-utils.c (collect_wait): Unlink the response file here
23760         instead of...
23761         (do_wait): ...here.
23762         (utils_cleanup): ...and here.
23763
23764 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
23765
23766         * df-scan.c: Don't include target-def.h.
23767         * targhooks.c: Likewise.
23768         * config/arm/arm-c.c: Likewise.
23769         * config/i386/i386-c.c: Likewise.
23770         * config/nds32/nds32-cost.c: Likewise.
23771         * config/nds32/nds32-fp-as-gp.c: Likewise.
23772         * config/nds32/nds32-intrinsic.c: Likewise.
23773         * config/nds32/nds32-isr.c: Likewise.
23774         * config/nds32/nds32-md-auxiliary.c: Likewise.
23775         * config/nds32/nds32-memory-manipulation.c: Likewise.
23776         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23777         * config/nds32/nds32-predicates.c: Likewise.
23778
23779 2015-06-23  Richard Biener  <rguenther@suse.de>
23780
23781         PR tree-optimization/66636
23782         * tree-vect-stmts.c (vectorizable_store): Properly compute the
23783         def type for further defs for strided stores.
23784
23785 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
23786
23787         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
23788         conditional selects.
23789         (setcc_int<mode>, setcc_float<mode>): Reformat.
23790
23791 2015-06-23  Marek Polacek  <polacek@redhat.com>
23792
23793         * match.pd ((x + y) - (x | y) -> x & y,
23794         (x + y) - (x & y) -> x | y): New patterns.
23795
23796 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
23797
23798         PR 65711
23799         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
23800         '-dynamic-linker' within %{!shared: ...}.
23801
23802 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
23803
23804         PR target/66560
23805         * config/i386/predicates.md (addsub_vm_operator): New predicate.
23806         (addsub_vs_operator): Ditto.
23807         (addsub_vs_parallel): Ditto.
23808         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
23809         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
23810         Put minus RTX before plus and adjust vec_merge selector.
23811         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
23812         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
23813         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
23814         (addsub vec_merge splitters): New combiner splitters.
23815         (addsub vec_select/vec_concat splitters): Ditto.
23816
23817 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
23818
23819         PR tree-optimization/66449
23820         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
23821         POINTER_PLUS_EXPR for pointers.
23822
23823 2015-06-23  Alan Modra  <amodra@gmail.com>
23824
23825         * rtlanal.c (commutative_operand_precedence): Correct comments.
23826         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
23827         declaration.  Return an int.  Distinguish REG,REG return from
23828         others.
23829         (struct simplify_plus_minus_op_data): Make local to function.
23830         (simplify_plus_minus): Don't set canonicalized if merely sorting
23831         registers.  Avoid packing ops if nothing changes.  White space fixes.
23832
23833 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
23834
23835         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
23836         -fdump-ada-spec is passed but not if -fsyntax-only is.
23837
23838 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
23839
23840         PR bootstrap/63740
23841         * lra-lives.c (process_bb_lives): Check insn copying the same
23842         reload pseudo and don't create a copy for it.
23843
23844 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23845
23846         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
23847         for cond_stmt.
23848
23849 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23850
23851         * builtins.def (DEF_GOMP_BUILTIN): Test
23852         'flag_tree_parallelize_loops > 1' instead of
23853         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
23854
23855 2015-06-22  Tom de Vries  <tom@codesourcery.com>
23856
23857         * dominance.c (calculate_dominance_info): Verify dominators if
23858         early-out.
23859
23860 2015-06-22  Marek Polacek  <polacek@redhat.com>
23861
23862         * match.pd ((x ^ y) ^ (x | y) -> x & y,
23863         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
23864         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
23865         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
23866
23867 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
23868
23869         PR target/65871
23870         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
23871         cost of embedded comparison.
23872
23873 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23874
23875         PR target/65914
23876         * config/rs6000/predicates.md (altivec_register_operand): Permit
23877         virtual stack registers.
23878         (vsx_register_operand): Likewise.
23879         (vfloat_operand): Likewise.
23880         (vint_operand): Likewise.
23881         (vlogical_operand): Likewise.
23882
23883 2015-06-22  Richard Biener  <rguenther@suse.de>
23884
23885         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
23886         and single_scalar_iteration_cost members.
23887         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
23888         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
23889         (vect_get_single_scalar_iteration_cost): Remove.
23890         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
23891         Use LOOP_VINFO_SCALAR_ITERATION_COST.
23892         * tree-vect-loop.c (destroy_loop_vec_info): Free
23893         scalar_cost_vec.
23894         (vect_get_single_scalar_iteration_cost): Compute result into
23895         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
23896         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
23897         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
23898         (vect_estimate_min_profitable_iters): Use them.
23899
23900 2015-06-22  Christian Bruel  <christian.bruel@st.com>
23901
23902         PR target/52144
23903         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
23904         (TARGET_INSERT_ATTRIBUTES): Define.
23905         (thumb_flipper): New var.
23906         * config/arm/arm.opt (-mflip-thumb): New switch.
23907
23908 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23909             Martin Liska  <mliska@suse.cz>
23910
23911         PR ipa/65908
23912         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
23913         construction of arg_types.
23914         (sem_function::sem_function): Likewise.
23915         (sem_function::~sem_function): Remove destruction of arg_types.
23916         (sem_function::compatible_parm_types_p): New function.
23917         (sem_function::equals_wpa): Reorg matching of return values
23918         and parameter types.
23919         (sem_function::equals_private): Reorg mathcing of argument types.
23920         (sem_function::parse_tree_args): Remove.
23921         * ipa-icf.h (init_wpa): Do not call it.
23922         (parse_tree_args): Remove.
23923         (compatible_parm_types_p): Declare.
23924         (result_type): Remove.
23925         (arg_types): Remove.
23926
23927 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
23928
23929         PR ipa/66351
23930         * ipa-polymorphic-call.c
23931         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
23932         initializing alias oracle; fix formating; set base_alias_set if it
23933         is known.
23934
23935 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
23936
23937         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
23938         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
23939         (find_inc): Likewise.
23940         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
23941         swapping.
23942         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
23943         * df-scan.c (df_swap_refs): Remove.
23944         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
23945         * dominance.c (link_roots): Use std::swap instead of manually swapping.
23946         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
23947         * fold-const.c (fold_relational_const): Likewise.
23948         * genattrtab.c (simplify_test_exp): Likewise.
23949         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
23950         gimple_simplify): Likewise.
23951         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
23952         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
23953         * ipa-devirt.c (add_type_duplicate): Likewise.
23954         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
23955         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
23956         * lra.c (lra_create_copy): Likewise.
23957         * lto-streamer-out.c (DFS::DFS): Likewise.
23958         * modulo-sched.c (get_sched_window): Likewise.
23959         * omega.c (omega_pretty_print_problem): Likewise.
23960         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
23961         * reload1.c (reloads_unique_chain_p): Likewise.
23962         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
23963         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
23964         use std::swap.
23965         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
23966         manually swapping.
23967         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
23968         predicate_mem_writes): Likewise.
23969         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
23970         * tree-predcom.c (combine_chains): Likewise.
23971         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
23972         refs_may_alias_p_1): Likewise.
23973         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
23974         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23975         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
23976         number_of_iterations_cond): Likewise.
23977         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
23978         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
23979         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
23980         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
23981         * tree-vrp.c (extract_range_from_binary_expr_1,
23982         extract_range_from_unary_expr_1): Likewise.
23983
23984 2015-06-20  Marek Polacek  <polacek@redhat.com>
23985
23986         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
23987
23988 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
23989
23990         PR target/66591
23991         * config/sh/sh.c (prepare_move_operands): Replace subreg
23992         index term with R0 for base and index addressing.
23993
23994 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
23995
23996         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
23997         op1 is an fp zero.
23998         (movsf_aarch64): Change condition from register_operand to
23999         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
24000         load1.  Change type for alternative 7 to store1.
24001         (movdf_aarch64): Likewise.
24002
24003 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
24004
24005         * config/vax/vax.md: Adjust sign/zero extend patterns to
24006         handle SUBREGs in operands[1].
24007
24008 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24009
24010         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
24011         of manually swapping.
24012         (expand_vec_perm_interleave2): Likewise.
24013
24014 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
24015
24016         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
24017         reuse bounds created for abnormal ssa names.
24018
24019 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
24020
24021         * config/nvptx/nvptx.md (allocate_stack): Rename to...
24022         (allocate_stack_<mode>): ... this, and add :P on both
24023         match_operand and unspec.
24024         (allocate_stack): New expander.
24025
24026 2015-06-19  Christian Bruel  <christian.bruel@st.com>
24027
24028         PR target/66541
24029         PR target/52144
24030         * config/arm/arm.c (arm_set_current_function): Handle
24031         explicit default options.
24032
24033 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24034
24035         * config/i386/i386.md (*movsicc_noc_zext): New insn.
24036         (zero-extended cmove with mem peephole2): New pattern.
24037         (cmove with mem peephole2): Merge patterns.
24038
24039 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
24040
24041         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
24042
24043 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
24044
24045         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
24046         * config/mips/mips.md (*madd4<mode>): Ditto.
24047         (*nmadd3<mode>) Ditto.
24048         (*nmadd4<mode>_fastmath): Ditto.
24049         (*nmadd3<mode>_fastmath): Ditto.
24050         (*nmsub4<mode>): Ditto.
24051         (*nmsub3<mode>): Ditto.
24052         (*nmsub4<mode>_fastmath): Ditto.
24053         (*nmsub3<mode>_fastmath): Ditto.
24054
24055 2015-06-18  Michael Matz  <matz@suse.de>
24056
24057         PR middle-end/66253
24058         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
24059         grouped strided stores.
24060         (vectorizable_load): Don't use the DR from first_stmt in
24061         the non-SLP grouped strided case.
24062
24063 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24064
24065         PR target/66569
24066         * function.c (assign_bounds): Add arguments assign_regs,
24067         assign_special, assign_bt.
24068         (assign_parms): For vararg functions handle bounds in BT
24069         and special slots after incoming vararg bounds.
24070
24071 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24072
24073         PR middle-end/66568
24074         * cfgexpand.c (expand_return): Handle missing bounds.
24075         (expand_gimple_stmt_1): Likewise.
24076         * tree-chkp.c (chkp_expand_zero_bounds): New.
24077         * tree-chkp.h (chkp_expand_zero_bounds): New.
24078
24079 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
24080
24081         PR middle-end/66567
24082         * ipa-chkp.c (chkp_maybe_create_clone): Require
24083         functions to be instrumentable.
24084         * tree-chkp.c (chkp_replace_function_pointer): Use
24085         chkp_instrumentable_p instead of attribute check.
24086
24087 2015-06-18  Richard Biener  <rguenther@suse.de>
24088
24089         PR tree-optimization/66510
24090         * tree-vect-stmts.c (vectorizable_load): Properly compute the
24091         number of vector loads for SLP permuted loads.
24092         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
24093         check the stride for loop vectorization.
24094         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
24095         vectorization factor.
24096         (vect_analyze_group_access): If the group size is not a power
24097         of two require a epilogue loop.
24098         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
24099         compute and optimizing and alias test pruning after final
24100         vectorization factor computation.
24101         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
24102         vector alignment.
24103         (vect_transform_slp_perm_load): Properly compute the original
24104         number of vector load stmts.
24105
24106 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
24107
24108         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
24109         "unlikely character , in @var" warning.
24110
24111 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
24112
24113         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
24114         (ix86_function_arg_advance): Ditto.
24115         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
24116
24117 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24118
24119         * function.h (struct rtl_data): Remove struct and accessor macros.
24120         * emit-rtl.h (struct rtl_data): Relocate to here.
24121         * Makefile.in (GTFILES): Add emit-rtl.h.
24122         * df-core.c: Include emit-rtl.h.
24123         * genattrtab.c: Likewise.
24124         * genconditions.c: Likewise.
24125         * genpreds.c: Likewise.
24126         * genrecog.c: Likewise.
24127         * regcprop.c: Likewise.
24128         * resource.c: Likewise.
24129         * sched-rgn.c: Likewise.
24130         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24131         * config/i386/winnt.c: Likewise.
24132
24133 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
24134
24135         PR middle-end/66429
24136         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
24137         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
24138         and has_force_vectorize_loops flags from cfun into
24139         child_cfun.
24140         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
24141         if simduid is non-NULL.
24142         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
24143         * passes.def (pass_simduid_cleanup): Add new pass after loop
24144         passes.
24145         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
24146         indirection from htab argument's type.
24147         (shrink_simd_arrays): New function.
24148         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
24149         Don't call adjust_simduid_builtins if there are no loops.
24150         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
24151         (pass_simduid_cleanup::execute): New method.
24152         (make_pass_simduid_cleanup): New function.
24153
24154 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
24155
24156         * tree-core.h (tree_target_option): Make opts field a pointer to a
24157         cl_target_option instead of an instance of the struct.
24158         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
24159         the structure.
24160         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
24161         TARGET_OPTION_NODE.
24162         (copy_node_stat): Allocate and copy struct cl_target_option.
24163
24164 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24165
24166         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
24167         Remove conditional exposure of prototypes.
24168         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
24169         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
24170         definitions in tree.h with functions.
24171         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
24172         anon_aggrname_p.
24173         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
24174
24175 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
24176
24177         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
24178         (*cmp<mode>_signed): ... this.
24179         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
24180         (*cmp<mode>_unsigned): ... this.  Remove %b.
24181
24182 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
24183
24184         * coretypes.h: Include input.h and as-a.h.
24185         * rtl.h: Include input.h and as-a.h for generator files.
24186         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
24187         * vec.c: Don't include diagnostic-core.h.
24188         * alias.c: Do not include input.h, line-map.h or is-a.h.
24189         * asan.c: Likewise.
24190         * attribs.c: Likewise.
24191         * auto-inc-dec.c: Likewise.
24192         * auto-profile.c: Likewise.
24193         * bb-reorder.c: Likewise.
24194         * bt-load.c: Likewise.
24195         * builtins.c: Likewise.
24196         * caller-save.c: Likewise.
24197         * calls.c: Likewise.
24198         * ccmp.c: Likewise.
24199         * cfg.c: Likewise.
24200         * cfganal.c: Likewise.
24201         * cfgbuild.c: Likewise.
24202         * cfgcleanup.c: Likewise.
24203         * cfgexpand.c: Likewise.
24204         * cfghooks.c: Likewise.
24205         * cfgloop.c: Likewise.
24206         * cfgloop.h: Likewise.
24207         * cfgloopanal.c: Likewise.
24208         * cfgloopmanip.c: Likewise.
24209         * cfgrtl.c: Likewise.
24210         * cgraph.c: Likewise.
24211         * cgraphbuild.c: Likewise.
24212         * cgraphclones.c: Likewise.
24213         * cgraphunit.c: Likewise.
24214         * cilk-common.c: Likewise.
24215         * combine-stack-adj.c: Likewise.
24216         * combine.c: Likewise.
24217         * compare-elim.c: Likewise.
24218         * convert.c: Likewise.
24219         * coverage.c: Likewise.
24220         * cppbuiltin.c: Likewise.
24221         * cprop.c: Likewise.
24222         * cse.c: Likewise.
24223         * cselib.c: Likewise.
24224         * data-streamer-in.c: Likewise.
24225         * data-streamer-out.c: Likewise.
24226         * data-streamer.c: Likewise.
24227         * dbxout.c: Likewise.
24228         * dce.c: Likewise.
24229         * ddg.c: Likewise.
24230         * debug.c: Likewise.
24231         * df-core.c: Likewise.
24232         * df-problems.c: Likewise.
24233         * df-scan.c: Likewise.
24234         * df.h: Likewise.
24235         * dfp.c: Likewise.
24236         * diagnostic-core.h: Likewise.
24237         * diagnostic.c: Likewise.
24238         * dojump.c: Likewise.
24239         * dominance.c: Likewise.
24240         * domwalk.c: Likewise.
24241         * double-int.c: Likewise.
24242         * dse.c: Likewise.
24243         * dumpfile.c: Likewise.
24244         * dumpfile.h: Likewise.
24245         * dwarf2asm.c: Likewise.
24246         * dwarf2cfi.c: Likewise.
24247         * dwarf2out.c: Likewise.
24248         * emit-rtl.c: Likewise.
24249         * et-forest.c: Likewise.
24250         * except.c: Likewise.
24251         * explow.c: Likewise.
24252         * expmed.c: Likewise.
24253         * expr.c: Likewise.
24254         * final.c: Likewise.
24255         * fixed-value.c: Likewise.
24256         * fold-const.c: Likewise.
24257         * function.c: Likewise.
24258         * fwprop.c: Likewise.
24259         * gcc-plugin.h: Likewise.
24260         * gcse.c: Likewise.
24261         * generic-match-head.c: Likewise.
24262         * ggc-page.c: Likewise.
24263         * gimple-builder.c: Likewise.
24264         * gimple-expr.c: Likewise.
24265         * gimple-fold.c: Likewise.
24266         * gimple-iterator.c: Likewise.
24267         * gimple-low.c: Likewise.
24268         * gimple-match-head.c: Likewise.
24269         * gimple-pretty-print.c: Likewise.
24270         * gimple-ssa-isolate-paths.c: Likewise.
24271         * gimple-ssa-strength-reduction.c: Likewise.
24272         * gimple-streamer-in.c: Likewise.
24273         * gimple-streamer-out.c: Likewise.
24274         * gimple-streamer.h: Likewise.
24275         * gimple-walk.c: Likewise.
24276         * gimple.c: Likewise.
24277         * gimplify-me.c: Likewise.
24278         * gimplify.c: Likewise.
24279         * godump.c: Likewise.
24280         * graph.c: Likewise.
24281         * graphite-blocking.c: Likewise.
24282         * graphite-dependences.c: Likewise.
24283         * graphite-interchange.c: Likewise.
24284         * graphite-isl-ast-to-gimple.c: Likewise.
24285         * graphite-optimize-isl.c: Likewise.
24286         * graphite-poly.c: Likewise.
24287         * graphite-scop-detection.c: Likewise.
24288         * graphite-sese-to-poly.c: Likewise.
24289         * graphite.c: Likewise.
24290         * haifa-sched.c: Likewise.
24291         * hw-doloop.c: Likewise.
24292         * ifcvt.c: Likewise.
24293         * init-regs.c: Likewise.
24294         * input.c: Likewise.
24295         * internal-fn.c: Likewise.
24296         * ipa-chkp.c: Likewise.
24297         * ipa-comdats.c: Likewise.
24298         * ipa-cp.c: Likewise.
24299         * ipa-devirt.c: Likewise.
24300         * ipa-icf-gimple.c: Likewise.
24301         * ipa-icf.c: Likewise.
24302         * ipa-inline-analysis.c: Likewise.
24303         * ipa-inline-transform.c: Likewise.
24304         * ipa-inline.c: Likewise.
24305         * ipa-polymorphic-call.c: Likewise.
24306         * ipa-profile.c: Likewise.
24307         * ipa-prop.c: Likewise.
24308         * ipa-pure-const.c: Likewise.
24309         * ipa-ref.c: Likewise.
24310         * ipa-reference.c: Likewise.
24311         * ipa-split.c: Likewise.
24312         * ipa-utils.c: Likewise.
24313         * ipa-visibility.c: Likewise.
24314         * ipa.c: Likewise.
24315         * ira-build.c: Likewise.
24316         * ira-color.c: Likewise.
24317         * ira-conflicts.c: Likewise.
24318         * ira-costs.c: Likewise.
24319         * ira-emit.c: Likewise.
24320         * ira-lives.c: Likewise.
24321         * ira.c: Likewise.
24322         * jump.c: Likewise.
24323         * langhooks.c: Likewise.
24324         * lcm.c: Likewise.
24325         * loop-doloop.c: Likewise.
24326         * loop-init.c: Likewise.
24327         * loop-invariant.c: Likewise.
24328         * loop-iv.c: Likewise.
24329         * loop-unroll.c: Likewise.
24330         * lower-subreg.c: Likewise.
24331         * lra-assigns.c: Likewise.
24332         * lra-coalesce.c: Likewise.
24333         * lra-constraints.c: Likewise.
24334         * lra-eliminations.c: Likewise.
24335         * lra-lives.c: Likewise.
24336         * lra-remat.c: Likewise.
24337         * lra-spills.c: Likewise.
24338         * lra.c: Likewise.
24339         * lto-cgraph.c: Likewise.
24340         * lto-compress.c: Likewise.
24341         * lto-opts.c: Likewise.
24342         * lto-section-in.c: Likewise.
24343         * lto-section-out.c: Likewise.
24344         * lto-streamer-in.c: Likewise.
24345         * lto-streamer-out.c: Likewise.
24346         * lto-streamer.c: Likewise.
24347         * mcf.c: Likewise.
24348         * mode-switching.c: Likewise.
24349         * modulo-sched.c: Likewise.
24350         * omega.c: Likewise.
24351         * omp-low.c: Likewise.
24352         * optabs.c: Likewise.
24353         * opts-global.c: Likewise.
24354         * opts.h: Likewise.
24355         * passes.c: Likewise.
24356         * plugin.c: Likewise.
24357         * postreload-gcse.c: Likewise.
24358         * postreload.c: Likewise.
24359         * predict.c: Likewise.
24360         * pretty-print.h: Likewise.
24361         * print-rtl.c: Likewise.
24362         * print-tree.c: Likewise.
24363         * profile.c: Likewise.
24364         * real.c: Likewise.
24365         * realmpfr.c: Likewise.
24366         * recog.c: Likewise.
24367         * ree.c: Likewise.
24368         * reg-stack.c: Likewise.
24369         * regcprop.c: Likewise.
24370         * reginfo.c: Likewise.
24371         * regrename.c: Likewise.
24372         * regstat.c: Likewise.
24373         * reload.c: Likewise.
24374         * reload1.c: Likewise.
24375         * reorg.c: Likewise.
24376         * resource.c: Likewise.
24377         * rtl-chkp.c: Likewise.
24378         * rtl-error.c: Likewise.
24379         * rtlanal.c: Likewise.
24380         * rtlhooks.c: Likewise.
24381         * sanopt.c: Likewise.
24382         * sched-deps.c: Likewise.
24383         * sched-ebb.c: Likewise.
24384         * sched-rgn.c: Likewise.
24385         * sched-vis.c: Likewise.
24386         * sdbout.c: Likewise.
24387         * sel-sched-dump.c: Likewise.
24388         * sel-sched-ir.c: Likewise.
24389         * sel-sched.c: Likewise.
24390         * sese.c: Likewise.
24391         * shrink-wrap.c: Likewise.
24392         * simplify-rtx.c: Likewise.
24393         * stack-ptr-mod.c: Likewise.
24394         * statistics.c: Likewise.
24395         * stmt.c: Likewise.
24396         * stor-layout.c: Likewise.
24397         * store-motion.c: Likewise.
24398         * streamer-hooks.c: Likewise.
24399         * stringpool.c: Likewise.
24400         * symtab.c: Likewise.
24401         * target-globals.c: Likewise.
24402         * targhooks.c: Likewise.
24403         * toplev.c: Likewise.
24404         * tracer.c: Likewise.
24405         * trans-mem.c: Likewise.
24406         * tree-affine.c: Likewise.
24407         * tree-browser.c: Likewise.
24408         * tree-call-cdce.c: Likewise.
24409         * tree-cfg.c: Likewise.
24410         * tree-cfgcleanup.c: Likewise.
24411         * tree-chkp-opt.c: Likewise.
24412         * tree-chkp.c: Likewise.
24413         * tree-chrec.c: Likewise.
24414         * tree-complex.c: Likewise.
24415         * tree-data-ref.c: Likewise.
24416         * tree-dfa.c: Likewise.
24417         * tree-diagnostic.c: Likewise.
24418         * tree-dump.c: Likewise.
24419         * tree-eh.c: Likewise.
24420         * tree-emutls.c: Likewise.
24421         * tree-if-conv.c: Likewise.
24422         * tree-inline.c: Likewise.
24423         * tree-into-ssa.c: Likewise.
24424         * tree-iterator.c: Likewise.
24425         * tree-loop-distribution.c: Likewise.
24426         * tree-nested.c: Likewise.
24427         * tree-nrv.c: Likewise.
24428         * tree-object-size.c: Likewise.
24429         * tree-outof-ssa.c: Likewise.
24430         * tree-parloops.c: Likewise.
24431         * tree-phinodes.c: Likewise.
24432         * tree-predcom.c: Likewise.
24433         * tree-pretty-print.c: Likewise.
24434         * tree-profile.c: Likewise.
24435         * tree-scalar-evolution.c: Likewise.
24436         * tree-sra.c: Likewise.
24437         * tree-ssa-address.c: Likewise.
24438         * tree-ssa-alias.c: Likewise.
24439         * tree-ssa-ccp.c: Likewise.
24440         * tree-ssa-coalesce.c: Likewise.
24441         * tree-ssa-copy.c: Likewise.
24442         * tree-ssa-copyrename.c: Likewise.
24443         * tree-ssa-dce.c: Likewise.
24444         * tree-ssa-dom.c: Likewise.
24445         * tree-ssa-dse.c: Likewise.
24446         * tree-ssa-forwprop.c: Likewise.
24447         * tree-ssa-ifcombine.c: Likewise.
24448         * tree-ssa-live.c: Likewise.
24449         * tree-ssa-loop-ch.c: Likewise.
24450         * tree-ssa-loop-im.c: Likewise.
24451         * tree-ssa-loop-ivcanon.c: Likewise.
24452         * tree-ssa-loop-ivopts.c: Likewise.
24453         * tree-ssa-loop-manip.c: Likewise.
24454         * tree-ssa-loop-niter.c: Likewise.
24455         * tree-ssa-loop-prefetch.c: Likewise.
24456         * tree-ssa-loop-unswitch.c: Likewise.
24457         * tree-ssa-loop.c: Likewise.
24458         * tree-ssa-math-opts.c: Likewise.
24459         * tree-ssa-operands.c: Likewise.
24460         * tree-ssa-phiopt.c: Likewise.
24461         * tree-ssa-phiprop.c: Likewise.
24462         * tree-ssa-pre.c: Likewise.
24463         * tree-ssa-propagate.c: Likewise.
24464         * tree-ssa-reassoc.c: Likewise.
24465         * tree-ssa-sccvn.c: Likewise.
24466         * tree-ssa-scopedtables.c: Likewise.
24467         * tree-ssa-sink.c: Likewise.
24468         * tree-ssa-strlen.c: Likewise.
24469         * tree-ssa-structalias.c: Likewise.
24470         * tree-ssa-tail-merge.c: Likewise.
24471         * tree-ssa-ter.c: Likewise.
24472         * tree-ssa-threadedge.c: Likewise.
24473         * tree-ssa-threadupdate.c: Likewise.
24474         * tree-ssa-uncprop.c: Likewise.
24475         * tree-ssa-uninit.c: Likewise.
24476         * tree-ssa.c: Likewise.
24477         * tree-ssanames.c: Likewise.
24478         * tree-stdarg.c: Likewise.
24479         * tree-streamer-in.c: Likewise.
24480         * tree-streamer-out.c: Likewise.
24481         * tree-streamer.c: Likewise.
24482         * tree-switch-conversion.c: Likewise.
24483         * tree-tailcall.c: Likewise.
24484         * tree-vect-data-refs.c: Likewise.
24485         * tree-vect-generic.c: Likewise.
24486         * tree-vect-loop-manip.c: Likewise.
24487         * tree-vect-loop.c: Likewise.
24488         * tree-vect-patterns.c: Likewise.
24489         * tree-vect-slp.c: Likewise.
24490         * tree-vect-stmts.c: Likewise.
24491         * tree-vectorizer.c: Likewise.
24492         * tree-vrp.c: Likewise.
24493         * tree.c: Likewise.
24494         * tsan.c: Likewise.
24495         * ubsan.c: Likewise.
24496         * valtrack.c: Likewise.
24497         * value-prof.c: Likewise.
24498         * var-tracking.c: Likewise.
24499         * varasm.c: Likewise.
24500         * varpool.c: Likewise.
24501         * vmsdbgout.c: Likewise.
24502         * vtable-verify.c: Likewise.
24503         * web.c: Likewise.
24504         * wide-int.cc: Likewise.
24505         * xcoffout.c: Likewise.
24506         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
24507         * common/common-targhooks.c: Likewise.
24508         * config/aarch64/aarch64-builtins.c: Likewise.
24509         * config/aarch64/aarch64.c: Likewise.
24510         * config/alpha/alpha.c: Likewise.
24511         * config/arc/arc.c: Likewise.
24512         * config/arm/aarch-common.c: Likewise.
24513         * config/arm/arm-builtins.c: Likewise.
24514         * config/arm/arm-c.c: Likewise.
24515         * config/arm/arm.c: Likewise.
24516         * config/avr/avr-c.c: Likewise.
24517         * config/avr/avr-log.c: Likewise.
24518         * config/avr/avr.c: Likewise.
24519         * config/bfin/bfin.c: Likewise.
24520         * config/c6x/c6x.c: Likewise.
24521         * config/cr16/cr16.c: Likewise.
24522         * config/cris/cris.c: Likewise.
24523         * config/darwin-c.c: Likewise.
24524         * config/darwin.c: Likewise.
24525         * config/default-c.c: Likewise.
24526         * config/epiphany/epiphany.c: Likewise.
24527         * config/epiphany/mode-switch-use.c: Likewise.
24528         * config/epiphany/resolve-sw-modes.c: Likewise.
24529         * config/fr30/fr30.c: Likewise.
24530         * config/frv/frv.c: Likewise.
24531         * config/ft32/ft32.c: Likewise.
24532         * config/glibc-c.c: Likewise.
24533         * config/h8300/h8300.c: Likewise.
24534         * config/i386/i386-c.c: Likewise.
24535         * config/i386/i386.c: Likewise.
24536         * config/i386/msformat-c.c: Likewise.
24537         * config/i386/winnt-cxx.c: Likewise.
24538         * config/i386/winnt-stubs.c: Likewise.
24539         * config/i386/winnt.c: Likewise.
24540         * config/ia64/ia64-c.c: Likewise.
24541         * config/ia64/ia64.c: Likewise.
24542         * config/iq2000/iq2000.c: Likewise.
24543         * config/lm32/lm32.c: Likewise.
24544         * config/m32c/m32c-pragma.c: Likewise.
24545         * config/m32c/m32c.c: Likewise.
24546         * config/m32r/m32r.c: Likewise.
24547         * config/m68k/m68k.c: Likewise.
24548         * config/mcore/mcore.c: Likewise.
24549         * config/mep/mep-pragma.c: Likewise.
24550         * config/mep/mep.c: Likewise.
24551         * config/microblaze/microblaze-c.c: Likewise.
24552         * config/microblaze/microblaze.c: Likewise.
24553         * config/mips/mips.c: Likewise.
24554         * config/mmix/mmix.c: Likewise.
24555         * config/mn10300/mn10300.c: Likewise.
24556         * config/moxie/moxie.c: Likewise.
24557         * config/msp430/msp430-c.c: Likewise.
24558         * config/msp430/msp430.c: Likewise.
24559         * config/nds32/nds32-cost.c: Likewise.
24560         * config/nds32/nds32-fp-as-gp.c: Likewise.
24561         * config/nds32/nds32-intrinsic.c: Likewise.
24562         * config/nds32/nds32-isr.c: Likewise.
24563         * config/nds32/nds32-md-auxiliary.c: Likewise.
24564         * config/nds32/nds32-memory-manipulation.c: Likewise.
24565         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24566         * config/nds32/nds32-predicates.c: Likewise.
24567         * config/nds32/nds32.c: Likewise.
24568         * config/nios2/nios2.c: Likewise.
24569         * config/nvptx/nvptx.c: Likewise.
24570         * config/pa/pa.c: Likewise.
24571         * config/pdp11/pdp11.c: Likewise.
24572         * config/rl78/rl78-c.c: Likewise.
24573         * config/rl78/rl78.c: Likewise.
24574         * config/rs6000/rs6000-c.c: Likewise.
24575         * config/rs6000/rs6000.c: Likewise.
24576         * config/rx/rx.c: Likewise.
24577         * config/s390/s390-c.c: Likewise.
24578         * config/s390/s390.c: Likewise.
24579         * config/sh/sh-c.c: Likewise.
24580         * config/sh/sh-mem.cc: Likewise.
24581         * config/sh/sh.c: Likewise.
24582         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24583         * config/sh/sh_treg_combine.cc: Likewise.
24584         * config/sol2-c.c: Likewise.
24585         * config/sol2-cxx.c: Likewise.
24586         * config/sol2-stubs.c: Likewise.
24587         * config/sol2.c: Likewise.
24588         * config/sparc/sparc-c.c: Likewise.
24589         * config/sparc/sparc.c: Likewise.
24590         * config/spu/spu-c.c: Likewise.
24591         * config/spu/spu.c: Likewise.
24592         * config/stormy16/stormy16.c: Likewise.
24593         * config/tilegx/mul-tables.c: Likewise.
24594         * config/tilegx/tilegx-c.c: Likewise.
24595         * config/tilegx/tilegx.c: Likewise.
24596         * config/tilepro/mul-tables.c: Likewise.
24597         * config/tilepro/tilepro-c.c: Likewise.
24598         * config/tilepro/tilepro.c: Likewise.
24599         * config/v850/v850-c.c: Likewise.
24600         * config/v850/v850.c: Likewise.
24601         * config/vax/vax.c: Likewise.
24602         * config/visium/visium.c: Likewise.
24603         * config/vms/vms-c.c: Likewise.
24604         * config/vms/vms.c: Likewise.
24605         * config/vxworks.c: Likewise.
24606         * config/winnt-c.c: Likewise.
24607         * config/xtensa/xtensa.c: Likewise.
24608
24609 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
24610
24611         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
24612         function.
24613         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
24614
24615 2015-06-17  Richard Biener  <rguenther@suse.de>
24616
24617         PR tree-optimization/66251
24618         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
24619         stmts for SLP strided stores.
24620
24621         Revert
24622         2015-05-22  Richard Biener  <rguenther@suse.de>
24623
24624         PR tree-optimization/66251
24625         * tree-vect-stmts.c (vectorizable_conversion): Properly
24626         set STMT_VINFO_VEC_STMT even for the SLP case.
24627
24628         2015-05-26  Michael Matz  <matz@suse.de>
24629
24630         PR middle-end/66251
24631         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
24632         STMT_VINFO_VEC_STMT, also with SLP.
24633
24634 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
24635
24636         PR target/56766
24637         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
24638         (*avx_addsubv4df3_1s): Ditto.
24639         (*sse3_addsubv2df3_1): Ditto.
24640         (*sse3_addsubv2df3_1s): Ditto.
24641         (*avx_addsubv8sf3_1): Ditto.
24642         (*avx_addsubv8sf3_1s): Ditto.
24643         (*sse3_addsubv4sf3_1): Ditto.
24644         (*sse3_addsubv4sf3_1s): Ditto.
24645
24646 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
24647
24648         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
24649         (SYSROOT_SUFFIX_SPEC): Update.
24650         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
24651         (STARTFILE_PREFIX_SPEC): Update.
24652         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
24653         (MULTILIB_REQUIRED): New.
24654         (MULTILIB_OSDIRNAMES): New.
24655         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
24656         (MULTILIB_REQUIRED): New.
24657         (MULTILIB_OSDIRNAMES): New.
24658
24659 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
24660
24661         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
24662         * config/aarch64/aarch64-options-extensions.def: Update "fP",
24663         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
24664         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
24665         (AARCH64_FL_PAN): New.
24666         (AARCH64_FL_LOR): New.
24667         (AARCH64_FL_RDMA): New.
24668         (AARCH64_FL_FOR_ARCH8_1): New.
24669         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
24670         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
24671
24672 2015-06-16  Martin Liska  <mliska@suse.cz>
24673
24674         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
24675         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
24676         guard.
24677
24678 2015-06-16  Richard Biener  <rguenther@suse.de>
24679
24680         * tree-vect-stmts.c (vectorizable_store): Adjust.
24681         (vectorizable_load): Likewise.
24682         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24683         Simplify.
24684         (vect_create_data_ref_ptr): Likewise.
24685         (bump_vector_ptr): Adjust.
24686
24687 2015-06-16  Richard Biener  <rguenther@suse.de>
24688
24689         * tree-vect-stmts.c (vectorizable_load): Properly start loads
24690         with the first element if this is grouped loads.
24691
24692 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
24693
24694         * config/arm/arm-protos.h (struct tune_params): Rename
24695         log_op_non_sc to log_op_non_short_circuit, and rename enum
24696         values to expand SC to SHORT_CIRCUIT.
24697         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
24698         to LOG_OP_NON_SHORT_CIRCUIT.
24699         (arm_fastmul_tune):Likewise
24700         (arm_strongarm_tune): Likewise.
24701         (arm_xscale_tune): Likewise.
24702         (arm_9e_tune): Likewise.
24703         (arm_marvell_pj4_tune): Likewise.
24704         (arm_v6t2_tune): Likewise.
24705         (arm_cortex_tune): Likewise.
24706         (arm_cortex_a8_tune): Likewise.
24707         (arm_cortex_a7_tune): Likewise.
24708         (arm_cortex_a15_tune): Likewise.
24709         (arm_cortex_a53_tune): Likewise.
24710         (arm_cortex_a57_tune): Likewise.
24711         (arm_xgene1_tune): Likewise.
24712         (arm_cortex_a5_tune): Likewise.
24713         (arm_cortex_a9_tune): Likewise.
24714         (arm_cortex_a12_tune): Likewise.
24715         (arm_v7m_tune): Likewise.
24716         (arm_cortex_m7_tune): Likewise.
24717         (arm_v6m_tune): Likewise.
24718         (arm_fa726te_tune): Likewise.
24719
24720 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
24721
24722         * altivec.md: Delete UNSPEC_VMLADDUHM.
24723         (mulv4si3_p8): New pattern.
24724         (mulv4si3): Use it for POWER8.
24725         (mulv8hi3): Use vmladduhm with zero addend.
24726         (altivec_vmladduhm): Descriptive RTL.
24727
24728 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
24729
24730         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
24731         to use neon_move instead of mov_imm.
24732         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
24733         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
24734
24735         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
24736         aarch64_float_const_zero_rtx_p check before TFmode check.
24737         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
24738         an fp zero.
24739         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
24740         code and attributes to match.  Change condition from register_operand
24741         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
24742         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
24743         to store2.
24744
24745 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
24746
24747         PR debug/66535
24748         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
24749         there is no parent.
24750
24751 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
24752
24753         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
24754         HOST_WIDE_INT parameter.
24755
24756 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
24757
24758         PR ipa/66181
24759         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
24760         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
24761         TYPE_NO_FORCE_BLK.
24762         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
24763
24764 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
24765
24766         * rtl.h (classify_insn): Declare.
24767         * emit-rtl.c (classify_insn): Move to...
24768         * rtl.c: ...here and add generator support.
24769         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
24770         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
24771         * genemit.c (gen_emit_seq): New function.
24772         (gen_expand, gen_split): Use it.
24773
24774 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
24775
24776         * tree.c (make_vector_stat): Fix comment to state that the
24777         function returns a VECTOR_CST.
24778
24779 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
24780
24781         * gensupport.h (add_implicit_parallel): Declare.
24782         * genrecog.c (add_implicit_parallel): Move to...
24783         * gensupport.c (add_implicit_parallel): ...here.
24784         (process_one_cond_exec): Use it.
24785         * genemit.c (gen_insn): Likewise.
24786
24787 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
24788
24789         PR bootstrap/66448
24790         * passes.c (rest_of_decl_compilation): Do not register globals for
24791         early debug if they are declared in built-ins.
24792
24793 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
24794
24795         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
24796
24797 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24798
24799         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
24800         manually swapping.
24801         (noce_try_cmove_arith): Likewise.
24802         (noce_get_alt_condition): Likewise.
24803
24804 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
24805
24806         * common/config/i386/i386-common.c
24807         (OPTION_MASK_ISA_MWAITX_SET): New.
24808         (ix86_handle_option): Handle mwaitx.
24809         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
24810         (x86_64-*-*): Likewise.
24811         * config/i386/mwaitxintrin.h: New header.
24812         * config/i386/cpuid.h (bit_MWAITX):  Define.
24813         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
24814         MWAITX support.
24815         * config/i386/i386.opt (mwaitx): New.
24816         * config/i386/i386-builtin-types.def
24817         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
24818         * config/i386/i386-c.c: Define __MWAITX__ if needed.
24819         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
24820         (PTA_MWAITX): New.
24821         (ix86_option_override_internal): Handle new option.
24822         (processor_alias_table): Added PTA_MWAITX.
24823         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
24824         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
24825         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
24826         IX86_BUILTIN_MONITORX  built-ins.
24827         * config/i386/i386.h (TARGET_MWAITX): New.
24828         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
24829         UNSPEC_MONITORX.
24830         (mwaitx):  New pattern.
24831         (monitorx_<mode>): New pattern.
24832         * config/i386/x86intrin.h: Include mwaitxintrin.h.
24833         * doc/extend.texi: Document monitorx and mwaitx builtins.
24834         * doc/invoke.texi: Document -mmwaitx option.
24835
24836 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
24837
24838         * emit-rtl.c (need_atomic_barrier_p): Mask model with
24839         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
24840
24841 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24842
24843         * dbxout.c (xcoff_debug_hooks): Provide a function for
24844         register_main_translation_unit hook.
24845
24846 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
24847
24848         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
24849         variants cases from switch.
24850         (rs6000_post_atomic_barrier): Same.
24851         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
24852         (rs6000_expand_atomic_exchange): Same.
24853         (rs6000_expand_atomic_op): Same.
24854         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
24855         SYNC variants cases from switch.
24856         (atomic_load): Same.
24857         (atomic_store): Same.
24858
24859 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
24860
24861         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
24862         CONST_INT for goto.
24863
24864 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
24865
24866         PR bootstrap/66448
24867         * dwarf2out.c (check_die): Check for common duplicate attributes.
24868         (add_location_or_const_value_attribute): Do not add duplicate
24869         attributes.
24870         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
24871         time around.
24872         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
24873         (gen_type_die_with_usage): Call check_die.
24874         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
24875
24876 2015-06-11  Jason Merrill  <jason@redhat.com>
24877
24878         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
24879         dies.
24880
24881 2015-06-11  Marek Polacek  <polacek@redhat.com>
24882
24883         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
24884
24885 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
24886
24887         PR bootstrap/66252
24888         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
24889         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
24890         (*addx_extend_sp32): Fix pasto.
24891         (*subx_extend): Rename into...
24892         (*subx_extend_sp32): ...this.
24893         (*adddi3_extend_sp32): Add earlyclobber.
24894         (*subdi3_insn_sp32): Likewise.
24895         (*subdi3_extend_sp32): Likewise.
24896         (*and_not_di_sp32): Likewise.
24897         (*or_not_di_sp32): Likewise.
24898         (*xor_not_di_sp32): Likewise.
24899         (*negdi2_sp32): Likewise.
24900         (*one_cmpldi2_sp32): Likewise.
24901
24902 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
24903
24904         * debug.h (struct gcc_debug_hooks): Add a
24905         register_main_translation_unit hook.
24906         * debug.c (do_nothing_debug_hooks): Provide a function for this
24907         new hook.
24908         * dbxout.c (dbx_debug_hooks): Likewise.
24909         * sdbout.c (sdb_debug_hooks): Likewise.
24910         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
24911         * dwarf2out.c (main_translation_unit): New global variable.
24912         (dwarf2out_register_main_translation_unit): New function
24913         implementing the new hook.
24914         (dwarf2_debug_hooks): Assign
24915         dwarf2out_register_main_translation_unit to this new hook.
24916         (dwarf2out_init): Associate any main translation unit to
24917         comp_unit_die ().
24918
24919 2015-06-11  Marek Polacek  <polacek@redhat.com>
24920
24921         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
24922
24923 2015-06-11  Marek Polacek  <polacek@redhat.com>
24924
24925         * match.pd: Use single_use throughout.
24926
24927 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24928
24929         * config/arm/arm.c (arm_option_params_internal): When optimising
24930         for speed set max_insns_skipped when arm_restrict_it.
24931
24932 2015-06-11  Christian Bruel  <christian.bruel@st.com>
24933
24934         PR target/52144
24935         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
24936          macros in ...
24937         (arm_cpu_builtins): New function.
24938         (arm_pragma_target_parse): Call arm_cpu_builtins.
24939         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
24940         (arm_register_target_pragmas): Likewise.
24941         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
24942          Call arm_register_target_pragmas.
24943         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
24944         (arm_pragma_target_parse): Likewise.
24945
24946 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24947
24948         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
24949         of the second operand.
24950
24951 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
24952
24953         PR target/66473
24954         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
24955         to prepare mask operand for AVX512 modes.
24956
24957 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
24958
24959         PR target/66474
24960         * doc/md.texi (Machine Constraints): Document that on the PowerPC
24961         if you use a constraint that targets a VSX register, you must use
24962         %x<n> in the template.
24963
24964 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
24965
24966         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
24967         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
24968         (define_insn "trap"): New definition.
24969
24970 2015-06-10  Richard Biener  <rguenther@suse.de>
24971
24972         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
24973         out from ...
24974         (vect_supported_load_permutation_p): ... here.  Handle
24975         supportable permutations in reductions.
24976         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
24977         for vectorizing strided group loads.
24978
24979 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
24980
24981         PR target/66470
24982         * config/i386/i386.c (ix86_split_long_move): For collisions
24983         involving direct tls segment refs, move the UNSPEC_TP possibly
24984         wrapped in ZERO_EXTEND out of the address for lea, to each of
24985         the memory loads.
24986
24987 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24988
24989         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
24990         dmb sy. Adjust tabs.
24991
24992 2015-06-10  Tom de Vries  <tom@codesourcery.com>
24993
24994         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
24995
24996 2015-06-10  Martin Liska  <mliska@suse.cz>
24997
24998         PR bootstrap/66471
24999         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
25000         all enum values in mem_alloc_origin.
25001         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
25002         name.
25003         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
25004         * bitmap.c (bitmap_register): Likewise.
25005         (dump_bitmap_statistics): Likewise.
25006         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
25007         (ggc_record_overhead): Likewise.
25008         * hash-map.h: Likewise.
25009         * hash-set.h: Likewise.
25010         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
25011         * hash-table.h: Likewise.
25012         * vec.c (vec_prefix::register_overhead): Likewise.
25013         (vec_prefix::release_overhead): Likewise.
25014         (dump_vec_loc_statistics): Likewise.
25015
25016 2015-06-09  Christian Bruel  <christian.bruel@st.com>
25017
25018         PR target/52144
25019         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
25020         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
25021         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
25022         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
25023         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
25024         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
25025         (arm_valid_target_attribute_p): Likewise.
25026         (arm_set_current_function, arm_can_inline_p): Likewise.
25027         (arm_valid_target_attribute_rec): Likewise.
25028         (arm_previous_fndecl): New variable.
25029         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
25030         (TARGET_CAN_INLINE_P): Define.
25031         (arm_asm_trampoline_template): Emit mode.
25032         (arm_file_start): Don't set unified syntax.
25033         (arm_declare_function_name): Set unified syntax and mode.
25034         (arm_option_override): Init target_option_default_node.
25035         and target_option_current_node.
25036         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
25037         (*call_symbol): Likewise.
25038         * doc/extend.texi: Document ARM/Thumb target attribute.
25039         * doc/invoke.texi: Likewise.
25040
25041 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25042
25043         Revert:
25044         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25045         PR rtl-optimization/64164
25046         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25047         * tree-ssa-copyrename.c: Removed.
25048         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25049         -ftree-coalesce-vars.
25050         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25051         * common.opt (ftree-copyrename): Ignore.
25052         (ftree-coalesce-inlined-vars): Likewise.
25053         * doc/invoke.texi: Remove the ignored options above.
25054         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25055         * tree-ssa-coalesce.h: ... here.
25056         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25057         headers required by it.
25058         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25059         across variables when flag_tree_coalesce_vars.  Check register
25060         use and promoted modes to allow coalescing.  Moved to
25061         tree-ssa-coalesce.c.
25062         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25063         with its member functions to tree-ssa-coalesce.c.
25064         (var_map_base_init): Likewise.  Renamed to
25065         compute_samebase_partition_bases.
25066         (partition_view_normal): Drop want_bases parameter.
25067         (partition_view_bitmap): Likewise.
25068         * tree-ssa-live.h: Adjust declarations.
25069         * tree-ssa-coalesce.c: Include explow.h.
25070         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25071         default defs at the entry point.
25072         (dump_part_var_map): New.
25073         (compute_optimized_partition_bases): New, called by...
25074         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25075         of compute_samebase_partition_bases.  Adjust.
25076         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25077         * cfgexpand.c (leader_merge): New.
25078         (get_rtl_for_parm_ssa_default_def): New.
25079         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25080         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25081         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25082         redundant MEM attr setting.
25083         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25084         from...
25085         (expand_one_stack_var): ... this.  New wrapper to check and
25086         skip already expanded SSA partitions.
25087         (record_alignment_for_reg_var): New, factored out of...
25088         (expand_one_var): ... this.
25089         (expand_one_ssa_partition): New.
25090         (adjust_one_expanded_partition_var): New.
25091         (expand_one_register_var): Check and skip already expanded SSA
25092         partitions.
25093         (expand_used_vars): Don't create DECLs for anonymous SSA
25094         names.  Expand all SSA partitions, then adjust all SSA names.
25095         (pass::execute): Replace the loops that set
25096         SA.partition_to_pseudo from partition leaders and cleared
25097         DECL_RTL for multi-location variables, and that which used to
25098         rename vars and set attrs, with one that clears DECL_RTL and
25099         checks that PARMs and RESULTs default_defs match DECL_RTL.
25100         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25101         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25102         * explow.c (promote_ssa_mode): New.
25103         * explow.h (promote_ssa_mode): Declare.
25104         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25105         * function.c: Include cfgexpand.h.
25106         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25107         (use_register_for_parm_decl): Wrapper for the above to
25108         special-case the result_ptr.
25109         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25110         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25111         multiple locations.
25112         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25113         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25114         (assign_parm_setup_block): Prefer SSA-assigned location.
25115         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25116         if stack_parm is NULL.
25117         (assign_parm_setup_stack): Prefer SSA-assigned location.
25118         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25119         rtl before testing for pointer bounds.  Special-case result_ptr.
25120         (expand_function_start): Maybe reset DECL_RTL of result.
25121         Prefer SSA-assigned location for result and static chain.
25122         Factor out DECL_RESULT and SET_DECL_RTL.
25123         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25124         anonymous SSA names.  Use promote_ssa_mode.
25125         (get_temp_reg): Likewise.
25126         (remove_ssa_form): Adjust.
25127         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25128         and get its reg_usage for reg invalidation.
25129         (compute_bb_dataflow): Pass it insn.
25130         (emit_notes_in_bb): Likewise.
25131         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25132         fail assert on conversion between unsigned types.
25133
25134 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25135
25136         PR tree-optimization/65460
25137         * omp-low.c (expand_omp_target): Set parallelized_function on
25138         cgraph_node for child_fn.
25139
25140 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25141
25142         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
25143         parallelized_function before add_new_function.
25144
25145 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
25146
25147         * gcc-plugin.h: Move decls to plugin.h and include it.
25148         * plugin.h: Relocate decls from gcc-plugin.h
25149         * ggc-page.c: Include required header files.
25150         * passes.c: Likewise.
25151         * cgraphunit.c: Likewise.
25152
25153 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25154
25155         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
25156
25157 2015-06-09  Jason Merrill  <jason@redhat.com>
25158
25159         PR bootstrap/66448
25160         * toplev.c (check_global_declaration): Don't warn about a clone.
25161
25162 2015-06-09  Marek Polacek  <polacek@redhat.com>
25163
25164         PR tree-optimization/66299
25165         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
25166         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
25167         patterns.
25168
25169 2015-06-09  Richard Biener  <rguenther@suse.de>
25170
25171         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
25172         (vect_analyze_slp_instance): Instead do not falsely drop
25173         load permutations.
25174
25175 2015-06-09  Richard Biener  <rguenther@suse.de>
25176
25177         PR middle-end/66423
25178         * match.pd: Handle A % (unsigned)(1 << B).
25179
25180 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
25181
25182         * varasm.c (output_object_block_htab): Remove.
25183         (output_object_block_compare): New.
25184         (output_object_blocks): Sort named object_blocks before outputting
25185         them.
25186
25187 2015-06-09  Richard Biener  <rguenther@suse.de>
25188
25189         PR tree-optimization/66419
25190         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
25191         consider GROUP_GAP when detecting a perfect subchain.
25192
25193 2015-06-09  Nick Clifton  <nickc@redhat.com>
25194
25195         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
25196         place read only data in the .frodata section.
25197
25198 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
25199
25200         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
25201         (atomic_store<mode>): Likewise.
25202
25203 2015-06-09  Richard Biener  <rguenther@suse.de>
25204
25205         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
25206
25207 2015-06-09  Richard Biener  <rguenther@suse.de>
25208
25209         PR middle-end/66413
25210         * tree-inline.c (insert_init_debug_bind): Unshare value.
25211
25212 2015-06-09  Richard Biener  <rguenther@suse.de>
25213
25214         PR tree-optimization/66396
25215         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
25216         Rename virtual operands.
25217
25218 2015-06-09  Tom de Vries  <tom@codesourcery.com>
25219
25220         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
25221         always return false.
25222
25223 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25224
25225         PR rtl-optimization/64164
25226         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
25227         * tree-ssa-copyrename.c: Removed.
25228         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
25229         -ftree-coalesce-vars.
25230         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
25231         * common.opt (ftree-copyrename): Ignore.
25232         (ftree-coalesce-inlined-vars): Likewise.
25233         * doc/invoke.texi: Remove the ignored options above.
25234         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
25235         * tree-ssa-coalesce.h: ... here.
25236         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
25237         headers required by it.
25238         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
25239         across variables when flag_tree_coalesce_vars.  Check register
25240         use and promoted modes to allow coalescing.  Moved to
25241         tree-ssa-coalesce.c.
25242         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
25243         with its member functions to tree-ssa-coalesce.c.
25244         (var_map_base_init): Likewise.  Renamed to
25245         compute_samebase_partition_bases.
25246         (partition_view_normal): Drop want_bases parameter.
25247         (partition_view_bitmap): Likewise.
25248         * tree-ssa-live.h: Adjust declarations.
25249         * tree-ssa-coalesce.c: Include explow.h.
25250         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
25251         default defs at the entry point.
25252         (dump_part_var_map): New.
25253         (compute_optimized_partition_bases): New, called by...
25254         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
25255         of compute_samebase_partition_bases.  Adjust.
25256         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
25257         * cfgexpand.c (leader_merge): New.
25258         (get_rtl_for_parm_ssa_default_def): New.
25259         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
25260         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
25261         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
25262         redundant MEM attr setting.
25263         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
25264         from...
25265         (expand_one_stack_var): ... this.  New wrapper to check and
25266         skip already expanded SSA partitions.
25267         (record_alignment_for_reg_var): New, factored out of...
25268         (expand_one_var): ... this.
25269         (expand_one_ssa_partition): New.
25270         (adjust_one_expanded_partition_var): New.
25271         (expand_one_register_var): Check and skip already expanded SSA
25272         partitions.
25273         (expand_used_vars): Don't create DECLs for anonymous SSA
25274         names.  Expand all SSA partitions, then adjust all SSA names.
25275         (pass::execute): Replace the loops that set
25276         SA.partition_to_pseudo from partition leaders and cleared
25277         DECL_RTL for multi-location variables, and that which used to
25278         rename vars and set attrs, with one that clears DECL_RTL and
25279         checks that PARMs and RESULTs default_defs match DECL_RTL.
25280         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
25281         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
25282         * explow.c (promote_ssa_mode): New.
25283         * explow.h (promote_ssa_mode): Declare.
25284         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
25285         * function.c: Include cfgexpand.h.
25286         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
25287         (use_register_for_parm_decl): Wrapper for the above to
25288         special-case the result_ptr.
25289         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
25290         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
25291         multiple locations.
25292         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
25293         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
25294         (assign_parm_setup_block): Prefer SSA-assigned location.
25295         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
25296         if stack_parm is NULL.
25297         (assign_parm_setup_stack): Prefer SSA-assigned location.
25298         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
25299         rtl before testing for pointer bounds.  Special-case result_ptr.
25300         (expand_function_start): Maybe reset DECL_RTL of result.
25301         Prefer SSA-assigned location for result and static chain.
25302         Factor out DECL_RESULT and SET_DECL_RTL.
25303         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
25304         anonymous SSA names.  Use promote_ssa_mode.
25305         (get_temp_reg): Likewise.
25306         (remove_ssa_form): Adjust.
25307         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
25308         and get its reg_usage for reg invalidation.
25309         (compute_bb_dataflow): Pass it insn.
25310         (emit_notes_in_bb): Likewise.
25311         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
25312         fail assert on conversion between unsigned types.
25313
25314 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
25315
25316         PR debug/58315
25317         * tree-inline.c (reset_debug_binding): New.
25318         (reset_debug_bindings): Likewise.
25319         (expand_call_inline): Call it.
25320
25321 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25322
25323         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
25324         TYPE_STRING_FLAG.
25325
25326 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25327
25328         * lto-streamer-out.c (lto_output_location): Stream
25329         reserved locations correctly.
25330         * lto-streamer-in.c (lto_output_location): Likewise.
25331
25332 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
25333
25334         * coretypes.h: Include hash-table.h and hash-set.h for host files.
25335         * ggc.h: Don't include statistics.h>
25336         * hash-map.h: Remove all includes.
25337         * hash-set.h: Likewise.
25338         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
25339         the include list. Remove <new>.
25340         * inchash.h: Remove all includes.
25341         * mem-stats.h: Likewise.
25342         * vec.h: No special processing for generators or ggc.
25343         * alias.c : Adjust include files.
25344         * alloc-pool.c : Likewise.
25345         * alloc-pool.h : Likewise.
25346         * asan.c : Likewise.
25347         * attribs.c : Likewise.
25348         * auto-inc-dec.c : Likewise.
25349         * auto-profile.c : Likewise.
25350         * bb-reorder.c : Likewise.
25351         * bitmap.c : Likewise.
25352         * bitmap.h : Likewise.
25353         * bt-load.c : Likewise.
25354         * builtins.c : Likewise.
25355         * caller-save.c : Likewise.
25356         * calls.c : Likewise.
25357         * ccmp.c : Likewise.
25358         * cfg.c : Likewise.
25359         * cfganal.c : Likewise.
25360         * cfgbuild.c : Likewise.
25361         * cfgcleanup.c : Likewise.
25362         * cfgexpand.c : Likewise.
25363         * cfghooks.c : Likewise.
25364         * cfgloop.c : Likewise.
25365         * cfgloop.h : Likewise.
25366         * cfgloopanal.c : Likewise.
25367         * cfgloopmanip.c : Likewise.
25368         * cfgrtl.c : Likewise.
25369         * cgraph.c : Likewise.
25370         * cgraphbuild.c : Likewise.
25371         * cgraphclones.c : Likewise.
25372         * cgraphunit.c : Likewise.
25373         * cilk-common.c : Likewise.
25374         * combine-stack-adj.c : Likewise.
25375         * combine.c : Likewise.
25376         * compare-elim.c : Likewise.
25377         * context.c : Likewise.
25378         * convert.c : Likewise.
25379         * coverage.c : Likewise.
25380         * cppbuiltin.c : Likewise.
25381         * cprop.c : Likewise.
25382         * cse.c : Likewise.
25383         * cselib.c : Likewise.
25384         * data-streamer-in.c : Likewise.
25385         * data-streamer-out.c : Likewise.
25386         * data-streamer.c : Likewise.
25387         * data-streamer.h : Likewise.
25388         * dbxout.c : Likewise.
25389         * dce.c : Likewise.
25390         * ddg.c : Likewise.
25391         * debug.c : Likewise.
25392         * df-core.c : Likewise.
25393         * df-problems.c : Likewise.
25394         * df-scan.c : Likewise.
25395         * df.h : Likewise.
25396         * dfp.c : Likewise.
25397         * dojump.c : Likewise.
25398         * dominance.c : Likewise.
25399         * domwalk.c : Likewise.
25400         * double-int.c : Likewise.
25401         * dse.c : Likewise.
25402         * dumpfile.c : Likewise.
25403         * dwarf2asm.c : Likewise.
25404         * dwarf2cfi.c : Likewise.
25405         * dwarf2out.c : Likewise.
25406         * emit-rtl.c : Likewise.
25407         * et-forest.c : Likewise.
25408         * except.c : Likewise.
25409         * except.h : Likewise.
25410         * explow.c : Likewise.
25411         * expmed.c : Likewise.
25412         * expr.c : Likewise.
25413         * final.c : Likewise.
25414         * fixed-value.c : Likewise.
25415         * fold-const.c : Likewise.
25416         * function.c : Likewise.
25417         * fwprop.c : Likewise.
25418         * gcc-plugin.h : Likewise.
25419         * gcc.c : Likewise.
25420         * gcse-common.c : Likewise.
25421         * gcse.c : Likewise.
25422         * genattrtab.c : Likewise.
25423         * genautomata.c : Likewise.
25424         * genconditions.c : Likewise.
25425         * genemit.c : Likewise.
25426         * generic-match-head.c : Likewise.
25427         * genextract.c : Likewise.
25428         * gengtype-state.c : Likewise.
25429         * gengtype.c : Likewise.
25430         * genhooks.c : Likewise.
25431         * genmatch.c : Likewise.
25432         * genmodes.c : Likewise.
25433         * genrecog.c : Likewise.
25434         * gensupport.c : Likewise.
25435         * ggc-common.c : Likewise.
25436         * ggc-internal.h : Likewise.
25437         * ggc-none.c : Likewise.
25438         * ggc-page.c : Likewise.
25439         * gimple-builder.c : Likewise.
25440         * gimple-expr.c : Likewise.
25441         * gimple-fold.c : Likewise.
25442         * gimple-iterator.c : Likewise.
25443         * gimple-low.c : Likewise.
25444         * gimple-match-head.c : Likewise.
25445         * gimple-pretty-print.c : Likewise.
25446         * gimple-ssa-isolate-paths.c : Likewise.
25447         * gimple-ssa-strength-reduction.c : Likewise.
25448         * gimple-ssa.h : Likewise.
25449         * gimple-streamer-in.c : Likewise.
25450         * gimple-streamer-out.c : Likewise.
25451         * gimple-streamer.h : Likewise.
25452         * gimple-walk.c : Likewise.
25453         * gimple.c : Likewise.
25454         * gimplify-me.c : Likewise.
25455         * gimplify.c : Likewise.
25456         * godump.c : Likewise.
25457         * graph.c : Likewise.
25458         * graphds.c : Likewise.
25459         * graphite-blocking.c : Likewise.
25460         * graphite-dependences.c : Likewise.
25461         * graphite-interchange.c : Likewise.
25462         * graphite-isl-ast-to-gimple.c : Likewise.
25463         * graphite-optimize-isl.c : Likewise.
25464         * graphite-poly.c : Likewise.
25465         * graphite-scop-detection.c : Likewise.
25466         * graphite-sese-to-poly.c : Likewise.
25467         * graphite.c : Likewise.
25468         * haifa-sched.c : Likewise.
25469         * hard-reg-set.h : Likewise.
25470         * hw-doloop.c : Likewise.
25471         * ifcvt.c : Likewise.
25472         * inchash.c : Likewise.
25473         * incpath.c : Likewise.
25474         * init-regs.c : Likewise.
25475         * input.c : Likewise.
25476         * internal-fn.c : Likewise.
25477         * ipa-chkp.c : Likewise.
25478         * ipa-comdats.c : Likewise.
25479         * ipa-cp.c : Likewise.
25480         * ipa-devirt.c : Likewise.
25481         * ipa-icf-gimple.c : Likewise.
25482         * ipa-icf.c : Likewise.
25483         * ipa-inline-analysis.c : Likewise.
25484         * ipa-inline-transform.c : Likewise.
25485         * ipa-inline.c : Likewise.
25486         * ipa-polymorphic-call.c : Likewise.
25487         * ipa-profile.c : Likewise.
25488         * ipa-prop.c : Likewise.
25489         * ipa-pure-const.c : Likewise.
25490         * ipa-ref.c : Likewise.
25491         * ipa-reference.c : Likewise.
25492         * ipa-split.c : Likewise.
25493         * ipa-utils.c : Likewise.
25494         * ipa-visibility.c : Likewise.
25495         * ipa.c : Likewise.
25496         * ira-build.c : Likewise.
25497         * ira-color.c : Likewise.
25498         * ira-conflicts.c : Likewise.
25499         * ira-costs.c : Likewise.
25500         * ira-emit.c : Likewise.
25501         * ira-lives.c : Likewise.
25502         * ira.c : Likewise.
25503         * jump.c : Likewise.
25504         * langhooks.c : Likewise.
25505         * lcm.c : Likewise.
25506         * libfuncs.h : Likewise.
25507         * lists.c : Likewise.
25508         * loop-doloop.c : Likewise.
25509         * loop-init.c : Likewise.
25510         * loop-invariant.c : Likewise.
25511         * loop-iv.c : Likewise.
25512         * loop-unroll.c : Likewise.
25513         * lower-subreg.c : Likewise.
25514         * lra-assigns.c : Likewise.
25515         * lra-coalesce.c : Likewise.
25516         * lra-constraints.c : Likewise.
25517         * lra-eliminations.c : Likewise.
25518         * lra-lives.c : Likewise.
25519         * lra-remat.c : Likewise.
25520         * lra-spills.c : Likewise.
25521         * lra.c : Likewise.
25522         * lto-cgraph.c : Likewise.
25523         * lto-compress.c : Likewise.
25524         * lto-opts.c : Likewise.
25525         * lto-section-in.c : Likewise.
25526         * lto-section-out.c : Likewise.
25527         * lto-streamer-in.c : Likewise.
25528         * lto-streamer-out.c : Likewise.
25529         * lto-streamer.c : Likewise.
25530         * lto-streamer.h : Likewise.
25531         * mcf.c : Likewise.
25532         * mode-switching.c : Likewise.
25533         * modulo-sched.c : Likewise.
25534         * omega.c : Likewise.
25535         * omp-low.c : Likewise.
25536         * optabs.c : Likewise.
25537         * opts-global.c : Likewise.
25538         * opts.h : Likewise.
25539         * passes.c : Likewise.
25540         * plugin.c : Likewise.
25541         * postreload-gcse.c : Likewise.
25542         * postreload.c : Likewise.
25543         * predict.c : Likewise.
25544         * print-rtl.c : Likewise.
25545         * print-tree.c : Likewise.
25546         * profile.c : Likewise.
25547         * read-md.c : Likewise.
25548         * read-md.h : Likewise.
25549         * read-rtl.c : Likewise.
25550         * real.c : Likewise.
25551         * realmpfr.c : Likewise.
25552         * recog.c : Likewise.
25553         * ree.c : Likewise.
25554         * reg-stack.c : Likewise.
25555         * regcprop.c : Likewise.
25556         * reginfo.c : Likewise.
25557         * regrename.c : Likewise.
25558         * regstat.c : Likewise.
25559         * reload.c : Likewise.
25560         * reload1.c : Likewise.
25561         * reorg.c : Likewise.
25562         * resource.c : Likewise.
25563         * rtl-chkp.c : Likewise.
25564         * rtl.c : Likewise.
25565         * rtl.h : Likewise.
25566         * rtlanal.c : Likewise.
25567         * rtlhash.c : Likewise.
25568         * rtlhash.h : Likewise.
25569         * rtlhooks.c : Likewise.
25570         * sanopt.c : Likewise.
25571         * sched-deps.c : Likewise.
25572         * sched-ebb.c : Likewise.
25573         * sched-rgn.c : Likewise.
25574         * sched-vis.c : Likewise.
25575         * sdbout.c : Likewise.
25576         * sel-sched-dump.c : Likewise.
25577         * sel-sched-ir.c : Likewise.
25578         * sel-sched-ir.h : Likewise.
25579         * sel-sched.c : Likewise.
25580         * sese.c : Likewise.
25581         * shrink-wrap.c : Likewise.
25582         * shrink-wrap.h : Likewise.
25583         * simplify-rtx.c : Likewise.
25584         * stack-ptr-mod.c : Likewise.
25585         * statistics.c : Likewise.
25586         * stmt.c : Likewise.
25587         * stor-layout.c : Likewise.
25588         * store-motion.c : Likewise.
25589         * stringpool.c : Likewise.
25590         * symtab.c : Likewise.
25591         * target-globals.c : Likewise.
25592         * targhooks.c : Likewise.
25593         * tlink.c : Likewise.
25594         * toplev.c : Likewise.
25595         * tracer.c : Likewise.
25596         * trans-mem.c : Likewise.
25597         * tree-affine.c : Likewise.
25598         * tree-affine.h : Likewise.
25599         * tree-browser.c : Likewise.
25600         * tree-call-cdce.c : Likewise.
25601         * tree-cfg.c : Likewise.
25602         * tree-cfgcleanup.c : Likewise.
25603         * tree-chkp-opt.c : Likewise.
25604         * tree-chkp.c : Likewise.
25605         * tree-chrec.c : Likewise.
25606         * tree-complex.c : Likewise.
25607         * tree-data-ref.c : Likewise.
25608         * tree-dfa.c : Likewise.
25609         * tree-diagnostic.c : Likewise.
25610         * tree-dump.c : Likewise.
25611         * tree-eh.c : Likewise.
25612         * tree-eh.h : Likewise.
25613         * tree-emutls.c : Likewise.
25614         * tree-hasher.h : Likewise.
25615         * tree-if-conv.c : Likewise.
25616         * tree-inline.c : Likewise.
25617         * tree-inline.h : Likewise.
25618         * tree-into-ssa.c : Likewise.
25619         * tree-iterator.c : Likewise.
25620         * tree-loop-distribution.c : Likewise.
25621         * tree-nested.c : Likewise.
25622         * tree-nrv.c : Likewise.
25623         * tree-object-size.c : Likewise.
25624         * tree-outof-ssa.c : Likewise.
25625         * tree-parloops.c : Likewise.
25626         * tree-phinodes.c : Likewise.
25627         * tree-predcom.c : Likewise.
25628         * tree-pretty-print.c : Likewise.
25629         * tree-profile.c : Likewise.
25630         * tree-scalar-evolution.c : Likewise.
25631         * tree-sra.c : Likewise.
25632         * tree-ssa-address.c : Likewise.
25633         * tree-ssa-alias.c : Likewise.
25634         * tree-ssa-ccp.c : Likewise.
25635         * tree-ssa-coalesce.c : Likewise.
25636         * tree-ssa-copy.c : Likewise.
25637         * tree-ssa-copyrename.c : Likewise.
25638         * tree-ssa-dce.c : Likewise.
25639         * tree-ssa-dom.c : Likewise.
25640         * tree-ssa-dse.c : Likewise.
25641         * tree-ssa-forwprop.c : Likewise.
25642         * tree-ssa-ifcombine.c : Likewise.
25643         * tree-ssa-live.c : Likewise.
25644         * tree-ssa-loop-ch.c : Likewise.
25645         * tree-ssa-loop-im.c : Likewise.
25646         * tree-ssa-loop-ivcanon.c : Likewise.
25647         * tree-ssa-loop-ivopts.c : Likewise.
25648         * tree-ssa-loop-manip.c : Likewise.
25649         * tree-ssa-loop-niter.c : Likewise.
25650         * tree-ssa-loop-prefetch.c : Likewise.
25651         * tree-ssa-loop-unswitch.c : Likewise.
25652         * tree-ssa-loop.c : Likewise.
25653         * tree-ssa-math-opts.c : Likewise.
25654         * tree-ssa-operands.c : Likewise.
25655         * tree-ssa-phiopt.c : Likewise.
25656         * tree-ssa-phiprop.c : Likewise.
25657         * tree-ssa-pre.c : Likewise.
25658         * tree-ssa-propagate.c : Likewise.
25659         * tree-ssa-reassoc.c : Likewise.
25660         * tree-ssa-sccvn.c : Likewise.
25661         * tree-ssa-scopedtables.c : Likewise.
25662         * tree-ssa-sink.c : Likewise.
25663         * tree-ssa-strlen.c : Likewise.
25664         * tree-ssa-structalias.c : Likewise.
25665         * tree-ssa-tail-merge.c : Likewise.
25666         * tree-ssa-ter.c : Likewise.
25667         * tree-ssa-threadedge.c : Likewise.
25668         * tree-ssa-threadupdate.c : Likewise.
25669         * tree-ssa-uncprop.c : Likewise.
25670         * tree-ssa-uninit.c : Likewise.
25671         * tree-ssa.c : Likewise.
25672         * tree-ssanames.c : Likewise.
25673         * tree-stdarg.c : Likewise.
25674         * tree-streamer-in.c : Likewise.
25675         * tree-streamer-out.c : Likewise.
25676         * tree-streamer.c : Likewise.
25677         * tree-streamer.h : Likewise.
25678         * tree-switch-conversion.c : Likewise.
25679         * tree-tailcall.c : Likewise.
25680         * tree-vect-data-refs.c : Likewise.
25681         * tree-vect-generic.c : Likewise.
25682         * tree-vect-loop-manip.c : Likewise.
25683         * tree-vect-loop.c : Likewise.
25684         * tree-vect-patterns.c : Likewise.
25685         * tree-vect-slp.c : Likewise.
25686         * tree-vect-stmts.c : Likewise.
25687         * tree-vectorizer.c : Likewise.
25688         * tree-vectorizer.h : Likewise.
25689         * tree-vrp.c : Likewise.
25690         * tree.c : Likewise.
25691         * tsan.c : Likewise.
25692         * ubsan.c : Likewise.
25693         * valtrack.c : Likewise.
25694         * valtrack.h : Likewise.
25695         * value-prof.c : Likewise.
25696         * var-tracking.c : Likewise.
25697         * varasm.c : Likewise.
25698         * varpool.c : Likewise.
25699         * vec.c: Likewise.
25700         * vmsdbgout.c : Likewise.
25701         * vtable-verify.c : Likewise.
25702         * vtable-verify.h : Likewise.
25703         * web.c : Likewise.
25704         * wide-int.cc : Likewise.
25705         * xcoffout.c : Likewise.
25706         * config/aarch64/aarch64-builtins.c : Likewise.
25707         * config/aarch64/aarch64.c : Likewise.
25708         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
25709         * config/alpha/alpha.c : Likewise.
25710         * config/arc/arc.c : Likewise.
25711         * config/arm/aarch-common.c : Likewise.
25712         * config/arm/arm-builtins.c : Likewise.
25713         * config/arm/arm-c.c : Likewise.
25714         * config/arm/arm.c : Likewise.
25715         * config/avr/avr-c.c : Likewise.
25716         * config/avr/avr-log.c : Likewise.
25717         * config/avr/avr.c : Likewise.
25718         * config/bfin/bfin.c : Likewise.
25719         * config/c6x/c6x.c : Likewise.
25720         * config/cr16/cr16.c : Likewise.
25721         * config/cris/cris.c : Likewise.
25722         * config/darwin-c.c : Likewise.
25723         * config/darwin.c : Likewise.
25724         * config/default-c.c : Likewise.
25725         * config/epiphany/epiphany.c : Likewise.
25726         * config/epiphany/mode-switch-use.c : Likewise.
25727         * config/epiphany/resolve-sw-modes.c : Likewise.
25728         * config/fr30/fr30.c : Likewise.
25729         * config/frv/frv.c : Likewise.
25730         * config/ft32/ft32.c : Likewise.
25731         * config/glibc-c.c : Likewise.
25732         * config/h8300/h8300.c : Likewise.
25733         * config/i386/i386-c.c : Likewise.
25734         * config/i386/i386.c : Likewise.
25735         * config/i386/msformat-c.c : Likewise.
25736         * config/i386/winnt-cxx.c : Likewise.
25737         * config/i386/winnt-stubs.c : Likewise.
25738         * config/i386/winnt.c : Likewise.
25739         * config/ia64/ia64-c.c : Likewise.
25740         * config/ia64/ia64.c : Likewise.
25741         * config/iq2000/iq2000.c : Likewise.
25742         * config/lm32/lm32.c : Likewise.
25743         * config/m32c/m32c-pragma.c : Likewise.
25744         * config/m32c/m32c.c : Likewise.
25745         * config/m32r/m32r.c : Likewise.
25746         * config/m68k/m68k.c : Likewise.
25747         * config/mcore/mcore.c : Likewise.
25748         * config/mep/mep-pragma.c : Likewise.
25749         * config/mep/mep.c : Likewise.
25750         * config/microblaze/microblaze-c.c : Likewise.
25751         * config/microblaze/microblaze.c : Likewise.
25752         * config/mips/mips.c : Likewise.
25753         * config/mmix/mmix.c : Likewise.
25754         * config/mn10300/mn10300.c : Likewise.
25755         * config/moxie/moxie.c : Likewise.
25756         * config/msp430/msp430-c.c : Likewise.
25757         * config/msp430/msp430.c : Likewise.
25758         * config/nds32/nds32-cost.c : Likewise.
25759         * config/nds32/nds32-fp-as-gp.c : Likewise.
25760         * config/nds32/nds32-intrinsic.c : Likewise.
25761         * config/nds32/nds32-isr.c : Likewise.
25762         * config/nds32/nds32-md-auxiliary.c : Likewise.
25763         * config/nds32/nds32-memory-manipulation.c : Likewise.
25764         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
25765         * config/nds32/nds32-predicates.c : Likewise.
25766         * config/nds32/nds32.c : Likewise.
25767         * config/nios2/nios2.c : Likewise.
25768         * config/nvptx/nvptx.c : Likewise.
25769         * config/pa/pa.c : Likewise.
25770         * config/pdp11/pdp11.c : Likewise.
25771         * config/rl78/rl78-c.c : Likewise.
25772         * config/rl78/rl78.c : Likewise.
25773         * config/rs6000/rs6000-c.c : Likewise.
25774         * config/rs6000/rs6000.c : Likewise.
25775         * config/rx/rx.c : Likewise.
25776         * config/s390/s390-c.c : Likewise.
25777         * config/s390/s390.c : Likewise.
25778         * config/sh/sh-c.c : Likewise.
25779         * config/sh/sh-mem.cc : Likewise.
25780         * config/sh/sh.c : Likewise.
25781         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
25782         * config/sh/sh_treg_combine.cc : Likewise.
25783         * config/sol2-c.c : Likewise.
25784         * config/sol2-cxx.c : Likewise.
25785         * config/sol2-stubs.c : Likewise.
25786         * config/sol2.c : Likewise.
25787         * config/sparc/sparc-c.c : Likewise.
25788         * config/sparc/sparc.c : Likewise.
25789         * config/spu/spu-c.c : Likewise.
25790         * config/spu/spu.c : Likewise.
25791         * config/stormy16/stormy16.c : Likewise.
25792         * config/tilegx/mul-tables.c : Likewise.
25793         * config/tilegx/tilegx-c.c : Likewise.
25794         * config/tilegx/tilegx.c : Likewise.
25795         * config/tilepro/mul-tables.c : Likewise.
25796         * config/tilepro/tilepro-c.c : Likewise.
25797         * config/tilepro/tilepro.c : Likewise.
25798         * config/v850/v850-c.c : Likewise.
25799         * config/v850/v850.c : Likewise.
25800         * config/vax/vax.c : Likewise.
25801         * config/visium/visium.c : Likewise.
25802         * config/vms/vms-c.c : Likewise.
25803         * config/vms/vms.c : Likewise.
25804         * config/vxworks.c : Likewise.
25805         * config/winnt-c.c : Likewise.
25806         * config/xtensa/xtensa.c : Likewise.
25807
25808 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
25809
25810         PR lto/65378
25811         * ipa-utils.h (warn_types_mismatch): Update prototype.
25812         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
25813         parameters.
25814         (type_mismatch_p): New function.
25815         (warn_types_mismatch): Reorg to work better on non-C++ types.
25816         (odr_types_equivalent_p): Add loc1/loc2 parameters.
25817         (add_type_duplicate): Update.
25818
25819 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25820
25821         PR rtl-optimization/66444
25822         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
25823         call_used_regs.
25824
25825 2015-06-08  Richard Biener  <rguenther@suse.de>
25826
25827         PR tree-optimization/66422
25828         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
25829         block after inserted gcc_unreachable.
25830
25831 2015-06-08  Nick Clifton  <nickc@redhat.com>
25832
25833         * config/rx/rx.c (rx_function_value): Do not promote vector types.
25834         (rx_promote_function_mode): Likewise.
25835         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
25836
25837 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
25838
25839         * genattrtab.c (insn_alternatives): Change type from int *
25840         to uint64_t *.
25841         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
25842         (get_attr_value): Change type of num_alt to uint64_t.
25843         (compute_alternative_mask): Change return type from
25844         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
25845         (make_alternative_compare, mk_attr_alt): Change argument type
25846         from int to uint64_t.
25847         (simplify_test_exp): Change type of i from int to uint64_t.
25848         Shift ((uint64_t) 1) instead of 1 up.
25849         (main): Adjust oballocvec first argument from int to uint64_t.
25850         Shift ((uint64_t) 1) instead of 1 up.
25851
25852 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
25853
25854         PR other/65366
25855         * gdbhooks.py: Import sys.
25856         (intptr): New function.  Replace int(...) by intptr(...).
25857
25858 2015-06-08  Richard Biener  <rguenther@suse.de>
25859
25860         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
25861         adjustment for gaps at the end of a SLP load group properly.
25862         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
25863         all permutations we can generate.
25864         (vect_transform_slp_perm_load): Use the correct group-size.
25865
25866 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
25867
25868         * genmatch.c (expr::gen_transform): For conditions, guess the type
25869         from the second operand.
25870
25871 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25872
25873         PR tree-optimization/66442
25874         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
25875         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
25876         if the loop latch is not a singleton.  Use
25877         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
25878
25879 2015-06-08  Marek Polacek  <polacek@redhat.com>
25880
25881         PR sanitizer/66452
25882         * toplev.c (check_global_declaration): Don't warn about artificial
25883         decls.
25884
25885 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25886
25887         PR tree-optimization/66436
25888         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
25889         dump file.
25890         * gimplify.c: Add tree-dump.h include.
25891         (gimplify_function_tree): Dump function to gimple dump file.
25892         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
25893         dump file.
25894
25895 2015-06-08  Tom de Vries  <tom@codesourcery.com>
25896
25897         PR tree-optimization/66435
25898         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
25899         function.
25900
25901 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
25902
25903         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
25904         of ptr_type_node to not be ptr_to_node.
25905         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
25906         TREE_TYPE of pointers.
25907         * gimple-expr.c (useless_type_conversion): Reorder the check for
25908         function pointers and TYPE_CANONICAL.
25909
25910 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
25911
25912         PR bootstrap/66319
25913         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
25914         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
25915         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
25916         later.
25917         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
25918         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
25919         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
25920         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
25921         and non iso if unix2003.
25922
25923 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
25924
25925         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
25926
25927 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
25928
25929         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
25930         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
25931         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
25932         except.c, final.c, function.c, gcse-common.c, genemit.c,
25933         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
25934         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
25935         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
25936         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
25937         more derived ones.
25938
25939 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
25940
25941         * combine.c (combine_split_insns): Remove cast.
25942         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
25943         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
25944         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
25945         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
25946         * genemit.c (gen_split): Change return type of generated functions to
25947         rtx_insn.
25948         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
25949         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
25950         gen_peephole2_* functions.
25951         (print_subroutine, main): Likewise.
25952         * recog.c (peephole2_optimize): Remove cast.
25953         (peep2_next_insn): Promote return type to rtx_insn.
25954         * recog.h (peep2_next_insn): Fix prototype.
25955         * rtl.h (try_split, split_insns): Likewise.
25956
25957 2015-06-06  DJ Delorie  <dj@redhat.com>
25958
25959         * config/msp430/msp430.c (msp430_asm_integer): Support addition
25960         and subtraction too.
25961
25962 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
25963
25964         PR target/66410
25965         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
25966         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
25967         instead of Snd.  Disparage Sid/z alternative with '^'.
25968
25969 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
25970
25971         * dwarf2out.c: Remove deferred_locations*.
25972         (dwarf2_debug_hooks): Add early_finish hook.
25973         Remove global_decl hook.
25974         Add early_global_decl and late_global_decl hook.
25975         New global early_dwarf.
25976         New structure set_early_dwarf.
25977         (output_die): Indicate whether a DIE was generated early
25978         when generating assembly with -dA.
25979         (struct limbo_die_struct): Document created_for field.
25980         Remove file_table_last_lookup.
25981         (remove_AT): Return TRUE if successful.
25982         (remove_child_TAG): Clear die_parent.
25983         (reparent_child): New function abstracted from...
25984         (splice_child_die): ...here.
25985         (new_die): ICE if a DIE ends up in limbo too late.
25986         (check_die): New.
25987         (defer_location): Remove.
25988         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
25989         (fill_variable_array_bounds): New.
25990         (decl_start_label): Call fill_variable_array_bounds.
25991         (gen_formal_parameter_die): Rewrite to reuse previously generated
25992         DIEs.
25993         (gen_subprogram_die): Same.
25994         (gen_variable_die): Same.
25995         (gen_const_die): Same.
25996         (gen_label_die): Same.
25997         (gen_lexical_block_die): Same.
25998         (decl_will_get_specification_p): New.
25999         (local_function_static): New.
26000         (gen_struct_or_union_type_die): Fill in variable-length fields.
26001         (gen_typedef_die): Fill in variable-length typedefs.
26002         (gen_tagged_type_die): Gracefully return on error_mark_node.
26003         Handle re-entrancy.
26004         (gen_type_die_with_usage): Handle variable-length types.
26005         Remove duplicate code for ARRAY_TYPE case.
26006         (process_scope_var): Only process imported modules during early
26007         dwarf.
26008         (dwarf2out_early_global_decl): New.
26009         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
26010         (dwarf2out_type_decl): Set early_dwarf while calling
26011         dwarf2out_decl.
26012         (dwarf2out_decl): Verify that we did not recreate a previously
26013         generated DIE.
26014         Do not return on DECL_EXTERNALs in VAR_DECLs.
26015         Abstract some code to local_function_static.
26016         (lookup_filename): Remove use of file_table_last_lookup.
26017         Gracefully exit on missing file_name.
26018         (dwarf2out_finish): Verify limbo list.
26019         Remove deferred_locations_list use.
26020         Move deferred_asm_name and limbo flushing to...
26021         (dwarf2out_early_finish): ...here.  New.
26022         (dwarf2out_c_finalize): Remove set of deferred_location_list,
26023         deferred_asm_name, and file_table_last_lookup.
26024         * cgraph.h (referred_to_p): Add default argument.
26025         * cgraphunit.c (referred_to_p): Add and handle include_self
26026         argument.
26027         (analyze_functions): Add first_time argument.
26028         Call check_global_declaration for all symbols.
26029         Call late_global_decl for nodes for moribund nodes.
26030         (finalize_compilation_unit): Add new argument to
26031         analyze_functions.
26032         Call early_global_decl for functions.
26033         Call early_finish debug hook.
26034         * dbxout.c (dbxout_early_global_decl): New.
26035         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
26036         (dbx_debug_hooks): Add new hooks.
26037         (xcoff_debug_hooks): Same.
26038         * debug.c (do_nothing_debug_hooks): Add early_finish field.
26039         Add early and late debug hooks.
26040         Remove global_decl hook.
26041         * debug.h (struct gcc_debug_hooks): Add early_finish,
26042         early_global_decl, and late_global_decl fields.
26043         Remove global_decl field.
26044         Document gcc_debug_hooks.
26045         * gengtype.c (output_typename): Remove.
26046         * godump.c (go_early_global_decl): New.
26047         (go_late_global_decl): New.
26048         (go_global_decl): Remove.
26049         (dump_go_spec_init): Remove global_decl.  Add
26050         {early,late}_global_decl.
26051         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
26052         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
26053         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
26054         (write_global_declarations): Remove.
26055         (global_decl_processing): New.
26056         * langhooks.h (struct lang_hooks_for_decls): Remove
26057         final_write_globals field.
26058         Add post_compilation_parsing_cleanups field.
26059         * passes.c (rest_of_decl_compilation): Call early_global_decl.
26060         * sdbout.c: Add early and late_global_decl hooks.  Remove
26061         sdbout_global_decl hook.
26062         Add early_finish field for sdb_debug_hooks.
26063         (sdbout_global_decl): Remove.
26064         (sdbout_early_global_decl): New.
26065         (sdbout_late_global_decl): New.
26066         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
26067         * toplev.c (check_global_declaration): Rename from
26068         check_global_declaration_1.
26069         Adapt to use symtab infrastructure.
26070         (check_global_declarations): Remove.
26071         (emit_debug_global_declarations): Remove.
26072         (compile_file): Remove call to final_write_globals langhook.
26073         Run the actual compilation process.
26074         Perform any post compilation parser cleanups.
26075         Generate late debug info.
26076         * toplev.h (check_global_declaration): New.
26077         (check_global_declaration_1): Remove.
26078         (check_global_declarations): Remove.
26079         (write_global_declarations): Remove.
26080         (emit_debug_global_declarations): Remove.
26081         (global_decl_processing): New.
26082         * tree-core.h (struct tree_block): Add DIE field.
26083         * tree.h (BLOCK_DIE): New.
26084         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
26085         throughout.
26086         (vmsdbgout_early_global_decl): New.
26087         (vmsdbgout_late_global_decl): New.
26088         Add early_finish debug hook field to vmsdbg_debug_hooks.
26089         Remove vmsdbgout_decl to vmsdbgout_function_decl.
26090         Add early and late_global_decl debug hooks.
26091
26092 2015-06-05  Julian Brown  <julian@codesourcery.com>
26093             Sandra Loosemore  <sandra@codesourcery.com>
26094
26095         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
26096         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
26097         to print-sysroot-suffix.sh script.
26098
26099 2015-06-05  Tom de Vries  <tom@codesourcery.com>
26100
26101         merge from gomp4 branch:
26102         2015-05-28  Tom de Vries  <tom@codesourcery.com>
26103
26104         PR tree-optimization/65443
26105         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
26106         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
26107         (try_transform_to_exit_first_loop_alt): New function.
26108         (transform_to_exit_first_loop): Use
26109         try_transform_to_exit_first_loop_alt.
26110
26111 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
26112
26113         * builtins.c (expand_builtin_atomic_compare_exchange): Call
26114         emit_cmp_and_jump_insns with the mode of target.
26115
26116 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26117
26118         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
26119
26120 2015-06-04  DJ Delorie  <dj@redhat.com>
26121
26122         * config/msp430/msp430.md (movsi_s): New.  Special case for
26123         storing a 20-bit symbol into a 32-bit register.
26124         * config/msp430/msp430.c (msp430_subreg): Add support for it.
26125         * config/msp430/predicates.md (msp430_symbol_operand): New.
26126
26127 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
26128
26129         * c-family/c-common.c (noplt): New attribute.
26130         (handle_noplt_attribute): New handler.
26131         * calls.c (prepare_call_address): Check for noplt
26132         attribute.
26133         * config/i386/i386.c (ix86_expand_call): Check
26134         for noplt attribute.
26135         (ix86_nopic_noplt_attribute_p): New function.
26136         (ix86_output_call_insn): Output indirect call for non-pic
26137         no plt calls.
26138         * doc/extend.texi (noplt): Document new attribute.
26139         * doc/invoke.texi: Document new attribute.
26140
26141 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
26142
26143         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
26144         real.h, and fixed-value.h when included in host source files.
26145         * double-int.h: Remove redundant #includes listed above.
26146         * fixed-value.h: Likewise.
26147         * real.h: Likewise.
26148         * wide-int.h: Likewise.
26149         * inchash.h: Likewise.
26150         * rtl.h: Add some include files When included from a generator file.
26151         * target.h: Remove wide-int.h and insn-modes.h from the include list.
26152         * internal-fn.h: Don't include coretypes.h.
26153         * alias.c: Adjust includes for restructured coretypes.h.
26154         * asan.c: Likewise.
26155         * attribs.c: Likewise.
26156         * auto-inc-dec.c: Likewise.
26157         * auto-profile.c: Likewise.
26158         * bb-reorder.c: Likewise.
26159         * bt-load.c: Likewise.
26160         * builtins.c: Likewise.
26161         * caller-save.c: Likewise.
26162         * calls.c: Likewise.
26163         * ccmp.c: Likewise.
26164         * cfg.c: Likewise.
26165         * cfganal.c: Likewise.
26166         * cfgbuild.c: Likewise.
26167         * cfgcleanup.c: Likewise.
26168         * cfgexpand.c: Likewise.
26169         * cfghooks.c: Likewise.
26170         * cfgloop.c: Likewise.
26171         * cfgloop.h: Likewise.
26172         * cfgloopanal.c: Likewise.
26173         * cfgloopmanip.c: Likewise.
26174         * cfgrtl.c: Likewise.
26175         * cgraph.c: Likewise.
26176         * cgraphbuild.c: Likewise.
26177         * cgraphclones.c: Likewise.
26178         * cgraphunit.c: Likewise.
26179         * cilk-common.c: Likewise.
26180         * combine-stack-adj.c: Likewise.
26181         * combine.c: Likewise.
26182         * compare-elim.c: Likewise.
26183         * convert.c: Likewise.
26184         * coverage.c: Likewise.
26185         * cppbuiltin.c: Likewise.
26186         * cprop.c: Likewise.
26187         * cse.c: Likewise.
26188         * cselib.c: Likewise.
26189         * data-streamer-in.c: Likewise.
26190         * data-streamer-out.c: Likewise.
26191         * data-streamer.c: Likewise.
26192         * dbxout.c: Likewise.
26193         * dce.c: Likewise.
26194         * ddg.c: Likewise.
26195         * debug.c: Likewise.
26196         * df-core.c: Likewise.
26197         * df-problems.c: Likewise.
26198         * df-scan.c: Likewise.
26199         * df.h: Likewise.
26200         * dfp.c: Likewise.
26201         * dojump.c: Likewise.
26202         * dominance.c: Likewise.
26203         * domwalk.c: Likewise.
26204         * double-int.c: Likewise.
26205         * dse.c: Likewise.
26206         * dumpfile.c: Likewise.
26207         * dwarf2asm.c: Likewise.
26208         * dwarf2cfi.c: Likewise.
26209         * dwarf2out.c: Likewise.
26210         * dwarf2out.h: Likewise.
26211         * emit-rtl.c: Likewise.
26212         * et-forest.c: Likewise.
26213         * except.c: Likewise.
26214         * explow.c: Likewise.
26215         * expmed.c: Likewise.
26216         * expr.c: Likewise.
26217         * final.c: Likewise.
26218         * fixed-value.c: Likewise.
26219         * fold-const.c: Likewise.
26220         * function.c: Likewise.
26221         * fwprop.c: Likewise.
26222         * gcc-plugin.h: Likewise.
26223         * gcse.c: Likewise.
26224         * generic-match-head.c: Likewise.
26225         * ggc-page.c: Likewise.
26226         * gimple-builder.c: Likewise.
26227         * gimple-expr.c: Likewise.
26228         * gimple-fold.c: Likewise.
26229         * gimple-iterator.c: Likewise.
26230         * gimple-low.c: Likewise.
26231         * gimple-match-head.c: Likewise.
26232         * gimple-pretty-print.c: Likewise.
26233         * gimple-ssa-isolate-paths.c: Likewise.
26234         * gimple-ssa-strength-reduction.c: Likewise.
26235         * gimple-streamer-in.c: Likewise.
26236         * gimple-streamer-out.c: Likewise.
26237         * gimple-streamer.h: Likewise.
26238         * gimple-walk.c: Likewise.
26239         * gimple.c: Likewise.
26240         * gimplify-me.c: Likewise.
26241         * gimplify.c: Likewise.
26242         * godump.c: Likewise.
26243         * graph.c: Likewise.
26244         * graphite-blocking.c: Likewise.
26245         * graphite-dependences.c: Likewise.
26246         * graphite-interchange.c: Likewise.
26247         * graphite-isl-ast-to-gimple.c: Likewise.
26248         * graphite-optimize-isl.c: Likewise.
26249         * graphite-poly.c: Likewise.
26250         * graphite-scop-detection.c: Likewise.
26251         * graphite-sese-to-poly.c: Likewise.
26252         * graphite.c: Likewise.
26253         * haifa-sched.c: Likewise.
26254         * hooks.h: Likewise.
26255         * hw-doloop.c: Likewise.
26256         * ifcvt.c: Likewise.
26257         * incpath.c: Likewise.
26258         * init-regs.c: Likewise.
26259         * internal-fn.c: Likewise.
26260         * ipa-chkp.c: Likewise.
26261         * ipa-comdats.c: Likewise.
26262         * ipa-cp.c: Likewise.
26263         * ipa-devirt.c: Likewise.
26264         * ipa-icf-gimple.c: Likewise.
26265         * ipa-icf.c: Likewise.
26266         * ipa-inline-analysis.c: Likewise.
26267         * ipa-inline-transform.c: Likewise.
26268         * ipa-inline.c: Likewise.
26269         * ipa-polymorphic-call.c: Likewise.
26270         * ipa-profile.c: Likewise.
26271         * ipa-prop.c: Likewise.
26272         * ipa-pure-const.c: Likewise.
26273         * ipa-ref.c: Likewise.
26274         * ipa-reference.c: Likewise.
26275         * ipa-split.c: Likewise.
26276         * ipa-utils.c: Likewise.
26277         * ipa-visibility.c: Likewise.
26278         * ipa.c: Likewise.
26279         * ira-build.c: Likewise.
26280         * ira-color.c: Likewise.
26281         * ira-conflicts.c: Likewise.
26282         * ira-costs.c: Likewise.
26283         * ira-emit.c: Likewise.
26284         * ira-lives.c: Likewise.
26285         * ira.c: Likewise.
26286         * jump.c: Likewise.
26287         * langhooks.c: Likewise.
26288         * lcm.c: Likewise.
26289         * loop-doloop.c: Likewise.
26290         * loop-init.c: Likewise.
26291         * loop-invariant.c: Likewise.
26292         * loop-iv.c: Likewise.
26293         * loop-unroll.c: Likewise.
26294         * lower-subreg.c: Likewise.
26295         * lra-assigns.c: Likewise.
26296         * lra-coalesce.c: Likewise.
26297         * lra-constraints.c: Likewise.
26298         * lra-eliminations.c: Likewise.
26299         * lra-lives.c: Likewise.
26300         * lra-remat.c: Likewise.
26301         * lra-spills.c: Likewise.
26302         * lra.c: Likewise.
26303         * lto-cgraph.c: Likewise.
26304         * lto-compress.c: Likewise.
26305         * lto-opts.c: Likewise.
26306         * lto-section-in.c: Likewise.
26307         * lto-section-out.c: Likewise.
26308         * lto-streamer-in.c: Likewise.
26309         * lto-streamer-out.c: Likewise.
26310         * lto-streamer.c: Likewise.
26311         * mcf.c: Likewise.
26312         * mode-switching.c: Likewise.
26313         * modulo-sched.c: Likewise.
26314         * omega.c: Likewise.
26315         * omp-low.c: Likewise.
26316         * optabs.c: Likewise.
26317         * opts-global.c: Likewise.
26318         * passes.c: Likewise.
26319         * plugin.c: Likewise.
26320         * postreload-gcse.c: Likewise.
26321         * postreload.c: Likewise.
26322         * predict.c: Likewise.
26323         * print-rtl.c: Likewise.
26324         * print-tree.c: Likewise.
26325         * profile.c: Likewise.
26326         * real.c: Likewise.
26327         * realmpfr.c: Likewise.
26328         * realmpfr.h: Likewise.
26329         * recog.c: Likewise.
26330         * ree.c: Likewise.
26331         * reg-stack.c: Likewise.
26332         * regcprop.c: Likewise.
26333         * reginfo.c: Likewise.
26334         * regrename.c: Likewise.
26335         * regs.h: Likewise.
26336         * regstat.c: Likewise.
26337         * reload.c: Likewise.
26338         * reload1.c: Likewise.
26339         * reorg.c: Likewise.
26340         * resource.c: Likewise.
26341         * rtl-chkp.c: Likewise.
26342         * rtlanal.c: Likewise.
26343         * rtlhooks.c: Likewise.
26344         * sanopt.c: Likewise.
26345         * sched-deps.c: Likewise.
26346         * sched-ebb.c: Likewise.
26347         * sched-rgn.c: Likewise.
26348         * sched-vis.c: Likewise.
26349         * sdbout.c: Likewise.
26350         * sel-sched-dump.c: Likewise.
26351         * sel-sched-ir.c: Likewise.
26352         * sel-sched.c: Likewise.
26353         * sese.c: Likewise.
26354         * shrink-wrap.c: Likewise.
26355         * shrink-wrap.h: Likewise.
26356         * simplify-rtx.c: Likewise.
26357         * stack-ptr-mod.c: Likewise.
26358         * statistics.c: Likewise.
26359         * stmt.c: Likewise.
26360         * stor-layout.c: Likewise.
26361         * store-motion.c: Likewise.
26362         * stringpool.c: Likewise.
26363         * symtab.c: Likewise.
26364         * target-globals.c: Likewise.
26365         * targhooks.c: Likewise.
26366         * toplev.c: Likewise.
26367         * tracer.c: Likewise.
26368         * trans-mem.c: Likewise.
26369         * tree-affine.c: Likewise.
26370         * tree-affine.h: Likewise.
26371         * tree-browser.c: Likewise.
26372         * tree-call-cdce.c: Likewise.
26373         * tree-cfg.c: Likewise.
26374         * tree-cfgcleanup.c: Likewise.
26375         * tree-chkp-opt.c: Likewise.
26376         * tree-chkp.c: Likewise.
26377         * tree-chrec.c: Likewise.
26378         * tree-complex.c: Likewise.
26379         * tree-data-ref.c: Likewise.
26380         * tree-dfa.c: Likewise.
26381         * tree-diagnostic.c: Likewise.
26382         * tree-dump.c: Likewise.
26383         * tree-eh.c: Likewise.
26384         * tree-emutls.c: Likewise.
26385         * tree-if-conv.c: Likewise.
26386         * tree-inline.c: Likewise.
26387         * tree-into-ssa.c: Likewise.
26388         * tree-iterator.c: Likewise.
26389         * tree-loop-distribution.c: Likewise.
26390         * tree-nested.c: Likewise.
26391         * tree-nrv.c: Likewise.
26392         * tree-object-size.c: Likewise.
26393         * tree-outof-ssa.c: Likewise.
26394         * tree-parloops.c: Likewise.
26395         * tree-phinodes.c: Likewise.
26396         * tree-predcom.c: Likewise.
26397         * tree-pretty-print.c: Likewise.
26398         * tree-pretty-print.h: Likewise.
26399         * tree-profile.c: Likewise.
26400         * tree-scalar-evolution.c: Likewise.
26401         * tree-sra.c: Likewise.
26402         * tree-ssa-address.c: Likewise.
26403         * tree-ssa-alias.c: Likewise.
26404         * tree-ssa-ccp.c: Likewise.
26405         * tree-ssa-coalesce.c: Likewise.
26406         * tree-ssa-copy.c: Likewise.
26407         * tree-ssa-copyrename.c: Likewise.
26408         * tree-ssa-dce.c: Likewise.
26409         * tree-ssa-dom.c: Likewise.
26410         * tree-ssa-dse.c: Likewise.
26411         * tree-ssa-forwprop.c: Likewise.
26412         * tree-ssa-ifcombine.c: Likewise.
26413         * tree-ssa-live.c: Likewise.
26414         * tree-ssa-loop-ch.c: Likewise.
26415         * tree-ssa-loop-im.c: Likewise.
26416         * tree-ssa-loop-ivcanon.c: Likewise.
26417         * tree-ssa-loop-ivopts.c: Likewise.
26418         * tree-ssa-loop-manip.c: Likewise.
26419         * tree-ssa-loop-niter.c: Likewise.
26420         * tree-ssa-loop-prefetch.c: Likewise.
26421         * tree-ssa-loop-unswitch.c: Likewise.
26422         * tree-ssa-loop.c: Likewise.
26423         * tree-ssa-loop.h: Likewise.
26424         * tree-ssa-math-opts.c: Likewise.
26425         * tree-ssa-operands.c: Likewise.
26426         * tree-ssa-phiopt.c: Likewise.
26427         * tree-ssa-phiprop.c: Likewise.
26428         * tree-ssa-pre.c: Likewise.
26429         * tree-ssa-propagate.c: Likewise.
26430         * tree-ssa-reassoc.c: Likewise.
26431         * tree-ssa-sccvn.c: Likewise.
26432         * tree-ssa-scopedtables.c: Likewise.
26433         * tree-ssa-sink.c: Likewise.
26434         * tree-ssa-strlen.c: Likewise.
26435         * tree-ssa-structalias.c: Likewise.
26436         * tree-ssa-tail-merge.c: Likewise.
26437         * tree-ssa-ter.c: Likewise.
26438         * tree-ssa-threadedge.c: Likewise.
26439         * tree-ssa-threadupdate.c: Likewise.
26440         * tree-ssa-uncprop.c: Likewise.
26441         * tree-ssa-uninit.c: Likewise.
26442         * tree-ssa.c: Likewise.
26443         * tree-ssanames.c: Likewise.
26444         * tree-stdarg.c: Likewise.
26445         * tree-streamer-in.c: Likewise.
26446         * tree-streamer-out.c: Likewise.
26447         * tree-streamer.c: Likewise.
26448         * tree-switch-conversion.c: Likewise.
26449         * tree-tailcall.c: Likewise.
26450         * tree-vect-data-refs.c: Likewise.
26451         * tree-vect-generic.c: Likewise.
26452         * tree-vect-loop-manip.c: Likewise.
26453         * tree-vect-loop.c: Likewise.
26454         * tree-vect-patterns.c: Likewise.
26455         * tree-vect-slp.c: Likewise.
26456         * tree-vect-stmts.c: Likewise.
26457         * tree-vectorizer.c: Likewise.
26458         * tree-vrp.c: Likewise.
26459         * tree.c: Likewise.
26460         * tsan.c: Likewise.
26461         * ubsan.c: Likewise.
26462         * valtrack.c: Likewise.
26463         * value-prof.c: Likewise.
26464         * var-tracking.c: Likewise.
26465         * varasm.c: Likewise.
26466         * varpool.c: Likewise.
26467         * vmsdbgout.c: Likewise.
26468         * vtable-verify.c: Likewise.
26469         * web.c: Likewise.
26470         * wide-int-print.cc: Likewise.
26471         * wide-int-print.h: Likewise.
26472         * wide-int.cc: Likewise.
26473         * xcoffout.c: Likewise.
26474         * config/aarch64/aarch64-builtins.c: Likewise.
26475         * config/aarch64/aarch64.c: Likewise.
26476         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26477         * config/alpha/alpha.c: Likewise.
26478         * config/arc/arc.c: Likewise.
26479         * config/arm/aarch-common.c: Likewise.
26480         * config/arm/arm-builtins.c: Likewise.
26481         * config/arm/arm-c.c: Likewise.
26482         * config/arm/arm.c: Likewise.
26483         * config/avr/avr-c.c: Likewise.
26484         * config/avr/avr-log.c: Likewise.
26485         * config/avr/avr.c: Likewise.
26486         * config/bfin/bfin.c: Likewise.
26487         * config/c6x/c6x.c: Likewise.
26488         * config/cr16/cr16.c: Likewise.
26489         * config/cris/cris.c: Likewise.
26490         * config/darwin-c.c: Likewise.
26491         * config/darwin.c: Likewise.
26492         * config/default-c.c: Likewise.
26493         * config/epiphany/epiphany.c: Likewise.
26494         * config/epiphany/mode-switch-use.c: Likewise.
26495         * config/epiphany/resolve-sw-modes.c: Likewise.
26496         * config/fr30/fr30.c: Likewise.
26497         * config/frv/frv.c: Likewise.
26498         * config/ft32/ft32.c: Likewise.
26499         * config/glibc-c.c: Likewise.
26500         * config/h8300/h8300.c: Likewise.
26501         * config/i386/i386-c.c: Likewise.
26502         * config/i386/i386.c: Likewise.
26503         * config/i386/msformat-c.c: Likewise.
26504         * config/i386/winnt-cxx.c: Likewise.
26505         * config/i386/winnt-stubs.c: Likewise.
26506         * config/i386/winnt.c: Likewise.
26507         * config/ia64/ia64-c.c: Likewise.
26508         * config/ia64/ia64.c: Likewise.
26509         * config/iq2000/iq2000.c: Likewise.
26510         * config/lm32/lm32.c: Likewise.
26511         * config/m32c/m32c-pragma.c: Likewise.
26512         * config/m32c/m32c.c: Likewise.
26513         * config/m32r/m32r.c: Likewise.
26514         * config/m68k/m68k.c: Likewise.
26515         * config/mcore/mcore.c: Likewise.
26516         * config/mep/mep-pragma.c: Likewise.
26517         * config/mep/mep.c: Likewise.
26518         * config/microblaze/microblaze-c.c: Likewise.
26519         * config/microblaze/microblaze.c: Likewise.
26520         * config/mips/mips.c: Likewise.
26521         * config/mmix/mmix.c: Likewise.
26522         * config/mn10300/mn10300.c: Likewise.
26523         * config/moxie/moxie.c: Likewise.
26524         * config/msp430/msp430-c.c: Likewise.
26525         * config/msp430/msp430.c: Likewise.
26526         * config/nds32/nds32-cost.c: Likewise.
26527         * config/nds32/nds32-fp-as-gp.c: Likewise.
26528         * config/nds32/nds32-intrinsic.c: Likewise.
26529         * config/nds32/nds32-isr.c: Likewise.
26530         * config/nds32/nds32-md-auxiliary.c: Likewise.
26531         * config/nds32/nds32-memory-manipulation.c: Likewise.
26532         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26533         * config/nds32/nds32-predicates.c: Likewise.
26534         * config/nds32/nds32.c: Likewise.
26535         * config/nios2/nios2.c: Likewise.
26536         * config/nvptx/nvptx.c: Likewise.
26537         * config/pa/pa.c: Likewise.
26538         * config/pdp11/pdp11.c: Likewise.
26539         * config/rl78/rl78-c.c: Likewise.
26540         * config/rl78/rl78.c: Likewise.
26541         * config/rs6000/rs6000-c.c: Likewise.
26542         * config/rs6000/rs6000.c: Likewise.
26543         * config/rx/rx.c: Likewise.
26544         * config/s390/s390-c.c: Likewise.
26545         * config/s390/s390.c: Likewise.
26546         * config/sh/sh-c.c: Likewise.
26547         * config/sh/sh-mem.cc: Likewise.
26548         * config/sh/sh.c: Likewise.
26549         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
26550         * config/sh/sh_treg_combine.cc: Likewise.
26551         * config/sol2-c.c: Likewise.
26552         * config/sol2-cxx.c: Likewise.
26553         * config/sol2-stubs.c: Likewise.
26554         * config/sol2.c: Likewise.
26555         * config/sparc/sparc-c.c: Likewise.
26556         * config/sparc/sparc.c: Likewise.
26557         * config/spu/spu-c.c: Likewise.
26558         * config/spu/spu.c: Likewise.
26559         * config/stormy16/stormy16.c: Likewise.
26560         * config/tilegx/mul-tables.c: Likewise.
26561         * config/tilegx/tilegx-c.c: Likewise.
26562         * config/tilegx/tilegx.c: Likewise.
26563         * config/tilepro/mul-tables.c: Likewise.
26564         * config/tilepro/tilepro-c.c: Likewise.
26565         * config/tilepro/tilepro.c: Likewise.
26566         * config/v850/v850-c.c: Likewise.
26567         * config/v850/v850.c: Likewise.
26568         * config/vax/vax.c: Likewise.
26569         * config/visium/visium.c: Likewise.
26570         * config/vms/vms-c.c: Likewise.
26571         * config/vms/vms.c: Likewise.
26572         * config/vxworks.c: Likewise.
26573         * config/winnt-c.c: Likewise.
26574         * config/xtensa/xtensa.c: Likewise.
26575         * common/config/bfin/bfin-common.c: Likewise.
26576
26577 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
26578
26579         * tree.h (tree_code_for_canonical_type_merging): New function.
26580         * tree.c (gimple_canonical_types_compatible_p): Use
26581         tree_code_for_canonical_type_merging..
26582
26583 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26584
26585         PR c++/66192
26586         PR target/66200
26587         * doc/tm.texi: Regenerate.
26588         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
26589         * target.def (TARGET_RELAXED_ORDERING): Likewise.
26590         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
26591         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
26592         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
26593         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
26594         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
26595         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
26596         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
26597
26598 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26599
26600         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
26601         register fma steering pass.
26602         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
26603         AARCH64_TUNE_FMA_STEERING.
26604
26605 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
26606
26607         * tree.c (verify_type_variant): Verify that type and variant is
26608         compatible.
26609         (gimple_canonical_types_compatible_p): Look for main variants.
26610
26611 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
26612
26613         * config.gcc (powerpc*-*-*): Add support for a new configure
26614         option --with-advance-toolchain=<xxx> which overrides using the
26615         default header files, libraries and dynamic linker.
26616
26617         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
26618         specs to support the configure --with-advance-toolchain=<xxx>
26619         option.
26620         (INCLUDE_EXTRA_SPEC): Likewise.
26621         (LINK_OS_EXTRA_SPEC32): Likewise.
26622         (LINK_OK_EXTRA_SPEC64): Likewise.
26623         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
26624         (DYNAMIC_LINKER_PREFIX): Likewise.
26625         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
26626         toolchain support.
26627         (GLIBC_DYNAMIC_LINKER32): Likewise.
26628         (GLIBC_DYNAMIC_LINKER64): Likewise.
26629         (LINK_OS_LINUX_SPEC32): Likewise.
26630         (LINK_OS_LINUX_SPEC64): Likewise.
26631
26632         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
26633         configuration option.
26634
26635 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
26636
26637         PR target/66275
26638         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
26639         to determine current function ABI.
26640         (ix86_function_value_regno_p): Ditto.
26641
26642 2015-06-03  Martin Liska  <mliska@suse.cz>
26643
26644         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
26645         * bitmap.h (struct bitmap_usage): Likewise.
26646         * ggc-common.c (struct ggc_usage): Likewise.
26647         * mem-stats.h (struct mem_location): Likewise.
26648         (struct mem_usage): Likewise.
26649         * vec.c (struct vec_usage): Likewise.
26650
26651 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
26652
26653         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
26654         -Bsymbolic.
26655
26656 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
26657
26658         * doc/plugins.texi (enum plugin_event): New event.
26659         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
26660         and PLUGIN_FINISH_FUNCTION.
26661         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
26662         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
26663
26664 2015-06-03  Richard Biener  <rguenther@suse.de>
26665
26666         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26667         compute GROUP_GAP for the first element.
26668         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
26669         on in-group gaps.
26670
26671 2015-06-03  Nick Clifton  <nickc@redhat.com>
26672
26673         * config/rl78/rl78-real.md: Add peepholes to avoid a register
26674         copy when calling a function.
26675         * config/rl78/rl78.c (need_to_save): Do not push the frame
26676         pointer in an interrupt handler prologue if it is never used.
26677
26678 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26679
26680         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
26681
26682 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26683
26684         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
26685         reference when cloning alias node.
26686
26687 2015-06-03  Martin Liska  <mliska@suse.cz>
26688
26689         * alloc-pool.h (struct pool_usage): Correct space padding.
26690         * ggc-page.c (ggc_print_statistics): Align columns in a report.
26691         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
26692         * tree.c (dump_tree_statistics): Align columns in a report.
26693
26694 2015-06-03  Martin Liska  <mliska@suse.cz>
26695
26696         * alloc-pool.c (allocate_pool_descriptor): Remove.
26697         (struct pool_output_info): Likewise.
26698         (print_alloc_pool_statistics): Likewise.
26699         (dump_alloc_pool_statistics): Likewise.
26700         * alloc-pool.h (struct pool_usage): New struct.
26701         (pool_allocator::initialize): Change usage of memory statistics
26702         to a new interface.
26703         (pool_allocator::release): Likewise.
26704         (pool_allocator::allocate): Likewise.
26705         (pool_allocator::remove): Likewise.
26706         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
26707         for a pool allocator.
26708         * mem-stats.h (struct mem_location): Add new ctor.
26709         (struct mem_usage): Add counter for number of
26710         instances.
26711         (mem_alloc_description::register_descriptor): New overload of
26712         * mem-stats.h (mem_location::to_string): New function.
26713         * bitmap.h (struct bitmap_usage): Use this new function.
26714         * ggc-common.c (struct ggc_usage): Likewise.
26715         the function.
26716
26717 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26718
26719         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
26720         of GCC_INSN_FLAGS_H block.
26721
26722 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
26723
26724         * explow.c (plus_constant): Update check after force_const_mem call
26725         to see if the value returned is not a NULL_RTX.
26726
26727 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
26728
26729         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
26730         remove instumentation thunks calling reachable functions.
26731         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
26732         * lto/lto-partition.c (privatize_symbol_name_1): New.
26733         (privatize_symbol_name): Privatize both decl and orig_decl
26734         names for instrumented functions.
26735         * cgraph.c (cgraph_node::verify_node): Add transparent
26736         alias chain check for instrumented node.
26737
26738 2015-06-03  Marek Polacek  <polacek@redhat.com>
26739
26740         PR c/64223
26741         PR c/29358
26742         * tree.c (attribute_value_equal): Handle attribute format.
26743         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
26744
26745 2015-06-03  Richard Biener  <rguenther@suse.de>
26746
26747         PR tree-optimization/63916
26748         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
26749         Forward-propagate non-invariant addresses by splicing their
26750         reference ops if the result isn't going to be used by PRE.
26751         (vn_reference_lookup_3): Remove pointless assert.
26752
26753 2015-06-03  Richard Biener  <rguenther@suse.de>
26754
26755         PR tree-optimization/66375
26756         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
26757         add to the evolution before following SSA edges.
26758
26759 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
26760
26761         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
26762         (dump_use, dump_cand, find_induction_variables): Pass new argument
26763         to dump_iv.
26764         (record_use): Preserve the ssa name information in IV.
26765
26766 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
26767
26768         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
26769         NO_MODE_TEST.
26770         (add_mode_tests): Don't add mode tests if the predicate only
26771         accepts scalar constant integers.  Otherwise, allow the mode
26772         of "op" to be VOIDmode if the predicate does accept such integers.
26773
26774 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
26775
26776         PR target/66258
26777         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
26778         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
26779         (aarch64_secondary_reload): Likewise
26780         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
26781         to !TARGET_FLOAT.
26782         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
26783         Likewise.
26784
26785 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
26786             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26787
26788         PR target/65768
26789         * cprop.c (try_replace_reg): Check cost of constants before propagating.
26790
26791 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26792
26793         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
26794         provide access to the IBM extended double floating point mode if
26795         long double is IEEE 128-bit floating point.
26796         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
26797         point if long double is the IBM extended double type.
26798
26799         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
26800         enable adding IEEE 128-bit floating point support.
26801         (-mfloat128-software): Likewise.
26802         (-mfloat128-sw): Likewise.
26803
26804         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
26805         128-bit floating point types to occupy any register if
26806         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
26807         -mfloat128-software is enabled.
26808         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
26809         support.
26810         (rs6000_option_override_internal): Add -mfloat128-* support.
26811         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
26812
26813         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
26814         and float128 type nodes.
26815         (ieee128_float_type_node): Likewise.
26816         (ibm128_float_type_node): Likewise.
26817
26818 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26819
26820         PR target/66136
26821         * config/aarch64/geniterators.sh: Rewrite in awk.
26822
26823 2015-06-02  Martin Liska  <mliska@suse.cz>
26824
26825         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
26826         values to avoid -Wmaybe-uninitialized errors.
26827
26828 2015-06-02  Richard Biener  <rguenther@suse.de>
26829
26830         PR debug/65549
26831         * dwarf2out.c (lookup_context_die): New function.
26832         (resolve_addr): Avoid forcing a full DIE for the
26833         target of a DW_TAG_GNU_call_site during late compilation.
26834         Instead create a stub DIE without a type if we have a
26835         context DIE present.
26836
26837 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
26838
26839         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
26840
26841 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26842
26843         PR tree-optimization/48052
26844         * cfgloop.h (struct control_iv): New.
26845         (struct loop): New field control_ivs.
26846         * tree-ssa-loop-niter.c : Include "stor-layout.h".
26847         (number_of_iterations_lt): Set no_overflow information.
26848         (number_of_iterations_exit): Init control iv in niter struct.
26849         (record_control_iv): New.
26850         (estimate_numbers_of_iterations_loop): Call record_control_iv.
26851         (loop_exits_before_overflow): New.  Interface factored out of
26852         scev_probably_wraps_p.
26853         (scev_probably_wraps_p): Factor loop niter related code into
26854         loop_exits_before_overflow.
26855         (free_numbers_of_iterations_estimates_loop): Free control ivs.
26856         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
26857
26858 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
26859
26860         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
26861         the target doesn't belong to the current function.
26862
26863 2015-06-02  Marek Polacek  <polacek@redhat.com>
26864
26865         PR middle-end/66345
26866         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
26867         get_maxval_strlen does not produce an INTEGER_CST.
26868
26869 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
26870
26871         * config/arc/constraints.md: Use lower-case names in match_code.
26872         * config/mmix/constraints.md: Likewise.
26873
26874 2015-06-02  Richard Biener  <rguenther@suse.de>
26875
26876         PR tree-optimization/65961
26877         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
26878         check and clarify dump message.
26879         (vect_build_slp_tree): If all children are built up from scalars
26880         build up the parent from scalars instead.
26881         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
26882
26883 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
26884
26885         PR other/65366
26886         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
26887         instead of print ... .
26888
26889 2015-06-02  Alan Modra  <amodra@gmail.com>
26890
26891         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
26892         2014-08-11 change.
26893
26894 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
26895
26896         PR tree-optimization/52563
26897         PR tree-optimization/62173
26898         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
26899         (alloc_iv, set_iv): New parameter.
26900         (determine_biv_step): Delete.
26901         (find_bivs): Inline original determine_biv_step.  Pass new
26902         argument to set_iv.
26903         (idx_find_step): Use no_overflow information for conversion.
26904         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
26905         resolve_mixers handle folded_casts.
26906         (instantiate_scev_name): Change bool parameter to bool pointer.
26907         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
26908         (instantiate_array_ref, instantiate_scev_not): Ditto.
26909         (instantiate_scev_3, instantiate_scev_2): Ditto.
26910         (instantiate_scev_1, instantiate_scev_r): Ditto.
26911         (instantiate_scev_convert, ): Change parameter.  Pass argument
26912         to chrec_convert_aggressive.
26913         (instantiate_scev): Change argument.
26914         (resolve_mixers): New parameter and set it.
26915         (scev_const_prop): New argument.
26916         * tree-scalar-evolution.h (resolve_mixers): New parameter.
26917         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
26918         of chrec_conert_1.
26919         (chrec_convert): New parameter.  Move definition below.
26920         (chrec_convert_aggressive): New parameter and set it.  Call
26921         convert_affine_scev.
26922         * tree-chrec.h (chrec_convert): New parameter.
26923         (chrec_convert_aggressive): Ditto.
26924
26925 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
26926
26927         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
26928         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
26929         the LHS of a no-return call if its type has variable size.
26930         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
26931         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
26932
26933 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
26934
26935         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
26936         * config.in: Regenerate.
26937
26938 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
26939
26940         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
26941         consecutive accesses within outer-loop with force_vectorize
26942         for references with zero step in inner-loop.
26943
26944 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26945
26946         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
26947         rather than from gcc/build directory.
26948
26949 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26950
26951         PR target/65697
26952         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
26953         for __sync memory models, emit initial loads and final barriers as
26954         appropriate.
26955
26956 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26957
26958         PR target/65697
26959         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
26960         (aarch64_split_atomic_op): Check for __sync memory models, emit
26961         appropriate initial loads and final barriers.
26962
26963 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26964
26965         * Makefile.in: Fix gcov dependencies that should
26966         not point to a build folder.
26967
26968 2015-06-01  Richard Biener  <rguenther@suse.de>
26969
26970         Revert
26971         2015-05-29  Richard Biener  <rguenther@suse.de>
26972
26973         PR tree-optimization/66314
26974         * tree-ssa-threadupdate.c (create_block_for_threading): Add
26975         parameter that says which loop the new block belongs to.
26976         (ssa_create_duplicates): Blocks duplicated for the threaded
26977         path belong to the loop of the thread destination.
26978
26979 2015-06-01  Martin Liska  <mliska@suse.cz>
26980
26981         * sched-deps.c: Include pool-alloc.h before
26982         cselib.h header file is included.
26983
26984 2015-06-01  Richard Biener  <rguenther@suse.de>
26985
26986         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
26987         functions.
26988
26989 2015-06-01  Martin Liska  <mliska@suse.cz>
26990
26991         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
26992         a function local variable.
26993
26994 2015-06-01  Martin Liska  <mliska@suse.cz>
26995
26996         * alloc-pool.c (create_alloc_pool): Remove.
26997         (empty_alloc_pool): Likewise.
26998         (free_alloc_pool): Likewise.
26999         (free_alloc_pool_if_empty): Likewise.
27000         (pool_alloc): Likewise.
27001         (pool_free): Likewise.
27002         * alloc-pool.h: Remove old declarations.
27003
27004 2015-06-01  Martin Liska  <mliska@suse.cz>
27005
27006         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
27007         (ira_create_object): Likewise.
27008         (ira_create_allocno): Likewise.
27009         (ira_create_live_range): Likewise.
27010         (copy_live_range): Likewise.
27011         (ira_finish_live_range): Likewise.
27012         (ira_free_allocno_costs): Likewise.
27013         (finish_allocno): Likewise.
27014         (finish_allocnos): Likewise.
27015         (initiate_prefs): Likewise.
27016         (ira_create_pref): Likewise.
27017         (finish_pref): Likewise.
27018         (finish_prefs): Likewise.
27019         (initiate_copies): Likewise.
27020         (ira_create_copy): Likewise.
27021         (finish_copy): Likewise.
27022         (finish_copies): Likewise.
27023         (finish_prefs): Likewise.
27024
27025 2015-06-01  Martin Liska  <mliska@suse.cz>
27026
27027         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
27028         (allocate_and_init_ipcp_value): Likewise.
27029         (ipcp_lattice::add_value): Likewise.
27030         (merge_agg_lats_step): Likewise.
27031         (ipcp_driver): Likewise.
27032         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
27033         (ipa_free_all_structures_after_iinln): Likewise.
27034         * ipa-prop.h: Likewise.
27035
27036 2015-06-01  Martin Liska  <mliska@suse.cz>
27037
27038         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
27039         pool allocator.
27040         (set_hint_predicate): Likewise.
27041         (inline_summary_alloc): Likewise.
27042         (reset_inline_edge_summary): Likewise.
27043         (reset_inline_summary): Likewise.
27044         (set_cond_stmt_execution_predicate): Likewise.
27045         (set_switch_stmt_execution_predicate): Likewise.
27046         (compute_bb_predicates): Likewise.
27047         (estimate_function_body_sizes): Likewise.
27048         (inline_free_summary): Likewise.
27049
27050 2015-06-01  Martin Liska  <mliska@suse.cz>
27051
27052         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
27053         (ipa_edge_duplication_hook): Likewise.
27054         (ipa_free_all_structures_after_ipa_cp): Likewise.
27055         (ipa_free_all_structures_after_iinln): Likewise.
27056
27057 2015-06-01  Martin Liska  <mliska@suse.cz>
27058
27059         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
27060         (ipa_profile_generate_summary): Likewise.
27061         (ipa_profile_read_summary): Likewise.
27062         (ipa_profile): Likewise.
27063
27064 2015-06-01  Martin Liska  <mliska@suse.cz>
27065
27066         * tree-ssa-structalias.c (new_var_info): Use new type-based
27067         pool allocator.
27068         (new_constraint): Likewise.
27069         (init_alias_vars): Likewise.
27070         (delete_points_to_sets): Likewise.
27071
27072 2015-06-01  Martin Liska  <mliska@suse.cz>
27073
27074         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
27075         (free_strinfo): Likewise.
27076         (pass_strlen::execute): Likewise.
27077
27078 2015-06-01  Martin Liska  <mliska@suse.cz>
27079
27080         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
27081         pool allocator.
27082         (vn_reference_insert_pieces): Likewise.
27083         (vn_phi_insert): Likewise.
27084         (visit_reference_op_call): Likewise.
27085         (copy_phi): Likewise.
27086         (copy_reference): Likewise.
27087         (process_scc): Likewise.
27088         (allocate_vn_table): Likewise.
27089         (free_vn_table): Likewise.
27090
27091 2015-06-01  Martin Liska  <mliska@suse.cz>
27092
27093         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
27094         pool allocator.
27095         (add_repeat_to_ops_vec): Likewise.
27096         (get_ops): Likewise.
27097         (maybe_optimize_range_tests): Likewise.
27098         (init_reassoc): Likewise.
27099         (fini_reassoc): Likewise.
27100
27101 2015-06-01  Martin Liska  <mliska@suse.cz>
27102
27103         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
27104         pool allocator.
27105         (bitmap_set_new): Likewise.
27106         (get_or_alloc_expr_for_constant): Likewise.
27107         (get_or_alloc_expr_for): Likewise.
27108         (phi_translate_1): Likewise.
27109         (compute_avail): Likewise.
27110         (init_pre): Likewise.
27111         (fini_pre): Likewise.
27112
27113 2015-06-01  Martin Liska  <mliska@suse.cz>
27114
27115         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
27116         (delete_dep_node): Likewise.
27117         (create_deps_list): Likewise.
27118         (free_deps_list): Likewise.
27119         (sched_deps_init): Likewise.
27120         (sched_deps_finish): Likewise.
27121
27122 2015-06-01  Martin Liska  <mliska@suse.cz>
27123
27124         * regcprop.c (free_debug_insn_changes): Use new type-based
27125         pool allocator.
27126         (replace_oldest_value_reg): Likewise.
27127         (pass_cprop_hardreg::execute): Likewise.
27128
27129 2015-06-01  Martin Liska  <mliska@suse.cz>
27130
27131         * ira-build.c (initiate_cost_vectors): Use new type-based
27132         pool allocator.
27133         (ira_allocate_cost_vector): Likewise.
27134         (ira_free_cost_vector): Likewise.
27135         (finish_cost_vectors): Likewise.
27136
27137 2015-06-01  Martin Liska  <mliska@suse.cz>
27138
27139         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
27140         pool allocator.
27141         (free_sched_pools): Likewise.
27142         * sel-sched-ir.h (_list_alloc): Likewise.
27143         (_list_remove): Likewise.
27144
27145 2015-06-01  Martin Liska  <mliska@suse.cz>
27146
27147         * stmt.c (add_case_node): Use new type-based pool allocator.
27148         (expand_case): Likewise.
27149         (expand_sjlj_dispatch_table): Likewise.
27150
27151 2015-06-01  Martin Liska  <mliska@suse.cz>
27152
27153         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
27154         (free_bb): Likewise.
27155         (pass_cse_reciprocals::execute): Likewise.
27156
27157 2015-06-01  Martin Liska  <mliska@suse.cz>
27158
27159         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
27160         (sra_deinitialize) Likewise.
27161         (create_access_1) Likewise.
27162         (build_accesses_from_assign) Likewise.
27163         (create_artificial_child_access) Likewise.
27164
27165 2015-06-01  Martin Liska  <mliska@suse.cz>
27166
27167         * dse.c (get_group_info):Use new type-based pool allocator.
27168         (dse_step0) Likewise.
27169         (free_store_info) Likewise.
27170         (delete_dead_store_insn) Likewise.
27171         (free_read_records) Likewise.
27172         (record_store) Likewise.
27173         (replace_read) Likewise.
27174         (check_mem_read_rtx) Likewise.
27175         (scan_insn) Likewise.
27176         (dse_step1) Likewise.
27177         (dse_step7) Likewise.
27178
27179 2015-06-01  Martin Liska  <mliska@suse.cz>
27180
27181         * df-scan.c (struct df_scan_problem_data):Use new type-based
27182         pool allocator.
27183         (df_scan_free_internal) Likewise.
27184         (df_scan_alloc) Likewise.
27185         (df_grow_reg_info) Likewise.
27186         (df_free_ref) Likewise.
27187         (df_insn_create_insn_record) Likewise.
27188         (df_mw_hardreg_chain_delete) Likewise.
27189         (df_insn_info_delete) Likewise.
27190         (df_free_collection_rec) Likewise.
27191         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
27192         (df_sort_and_compress_mws) Likewise.
27193         (df_ref_create_structure) Likewise.
27194         (df_ref_record) Likewise.
27195
27196 2015-06-01  Martin Liska  <mliska@suse.cz>
27197
27198         * df-problems.c (df_chain_create):Use new type-based pool allocator.
27199         (df_chain_unlink_1) Likewise.
27200         (df_chain_unlink) Likewise.
27201         (df_chain_remove_problem) Likewise.
27202         (df_chain_alloc) Likewise.
27203         (df_chain_free) Likewise.
27204         * df.h (struct dataflow) Likewise.
27205
27206 2015-06-01  Martin Liska  <mliska@suse.cz>
27207
27208         * cselib.c (new_elt_list):Use new type-based pool allocator.
27209         (new_elt_loc_list) Likewise.
27210         (unchain_one_elt_list) Likewise.
27211         (unchain_one_elt_loc_list) Likewise.
27212         (unchain_one_value) Likewise.
27213         (new_cselib_val) Likewise.
27214         (cselib_init) Likewise.
27215         (cselib_finish) Likewise.
27216
27217 2015-06-01  Martin Liska  <mliska@suse.cz>
27218
27219         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
27220         (sh_reorg) Likewise.
27221
27222 2015-06-01  Martin Liska  <mliska@suse.cz>
27223
27224         * cfg.c (initialize_original_copy_tables):Use new type-based
27225         pool allocator.
27226         (free_original_copy_tables) Likewise.
27227         (copy_original_table_clear) Likewise.
27228         (copy_original_table_set) Likewise.
27229
27230 2015-06-01  Martin Liska  <mliska@suse.cz>
27231
27232         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
27233         pool allocator.
27234         (asan_mem_ref_new) Likewise.
27235         (free_mem_ref_resources) Likewise.
27236
27237 2015-06-01  Martin Liska  <mliska@suse.cz>
27238
27239         * var-tracking.c (variable_htab_free):Use new type-based
27240         pool allocator.
27241         (attrs_list_clear) Likewise.
27242         (attrs_list_insert) Likewise.
27243         (attrs_list_copy) Likewise.
27244         (shared_hash_unshare) Likewise.
27245         (shared_hash_destroy) Likewise.
27246         (unshare_variable) Likewise.
27247         (var_reg_delete_and_set) Likewise.
27248         (var_reg_delete) Likewise.
27249         (var_regno_delete) Likewise.
27250         (drop_overlapping_mem_locs) Likewise.
27251         (variable_union) Likewise.
27252         (insert_into_intersection) Likewise.
27253         (canonicalize_values_star) Likewise.
27254         (variable_merge_over_cur) Likewise.
27255         (dataflow_set_merge) Likewise.
27256         (remove_duplicate_values) Likewise.
27257         (variable_post_merge_new_vals) Likewise.
27258         (dataflow_set_preserve_mem_locs) Likewise.
27259         (dataflow_set_remove_mem_locs) Likewise.
27260         (variable_from_dropped) Likewise.
27261         (variable_was_changed) Likewise.
27262         (set_slot_part) Likewise.
27263         (clobber_slot_part) Likewise.
27264         (delete_slot_part) Likewise.
27265         (loc_exp_insert_dep) Likewise.
27266         (notify_dependents_of_changed_value) Likewise.
27267         (emit_notes_for_differences_1) Likewise.
27268         (vt_emit_notes) Likewise.
27269         (vt_initialize) Likewise.
27270         (vt_finalize) Likewise.
27271
27272 2015-06-01  Martin Liska  <mliska@suse.cz>
27273
27274         * ira-color.c (init_update_cost_records):Use new type-based
27275         pool allocator.
27276         (get_update_cost_record) Likewise.
27277         (free_update_cost_record_list) Likewise.
27278         (finish_update_cost_records) Likewise.
27279         (initiate_cost_update) Likewise.
27280
27281 2015-06-01  Martin Liska  <mliska@suse.cz>
27282
27283         * lra.c (init_insn_regs): Use new type-based pool allocator.
27284         (new_insn_reg) Likewise.
27285         (free_insn_reg) Likewise.
27286         (free_insn_regs) Likewise.
27287         (finish_insn_regs) Likewise.
27288         (init_insn_recog_data) Likewise.
27289         (init_reg_info) Likewise.
27290         (finish_reg_info) Likewise.
27291         (lra_free_copies) Likewise.
27292         (lra_create_copy) Likewise.
27293         (invalidate_insn_data_regno_info) Likewise.
27294
27295 2015-06-01  Martin Liska  <mliska@suse.cz>
27296
27297         * lra-lives.c (free_live_range): Use new type-based pool allocator.
27298         (free_live_range_list) Likewise.
27299         (create_live_range) Likewise.
27300         (copy_live_range) Likewise.
27301         (lra_merge_live_ranges) Likewise.
27302         (remove_some_program_points_and_update_live_ranges) Likewise.
27303         (lra_live_ranges_init) Likewise.
27304         (lra_live_ranges_finish) Likewise.
27305
27306 2015-06-01  Martin Liska  <mliska@suse.cz>
27307
27308         * et-forest.c (et_new_occ): Use new type-based pool allocator.
27309         (et_new_tree): Likewise.
27310         (et_free_tree): Likewise.
27311         (et_free_tree_force): Likewise.
27312         (et_free_pools): Likewise.
27313         (et_split): Likewise.
27314
27315 2015-06-01  Martin Liska  <mliska@suse.cz>
27316
27317         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
27318         to header file.
27319         * alloc-pool.h (pool_allocator::pool_allocator): New function.
27320         (pool_allocator::release): Likewise.
27321         (inline pool_allocator::release_if_empty): Likewise.
27322         (inline pool_allocator::~pool_allocator): Likewise.
27323         (pool_allocator::allocate): Likewise.
27324         (pool_allocator::remove): Likewise.
27325
27326 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27327
27328         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
27329         in comment.
27330
27331 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27332
27333         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
27334         to fusible_ops.
27335         * config/arm/arm.c (arm_print_tune_info): Likewise.
27336         (arm_macro_fusion_p): Likewise.
27337         (arm_macro_fusion_pair_p): Likewise.
27338
27339 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
27340
27341         * config/aarch64/aarch64-protos.h (tune_params): Rename
27342         fuseable_ops to fusible_ops.
27343         * config/aarch64/aarch64.c (generic_tunings): Rename
27344         fuseable_ops to fusible_ops.
27345         (cortexa53_tunings): Likewise.
27346         (cortexa57_tunings): Likewise.
27347         (thunderx_tunings): Likewise.
27348         (xgene1_tunings): Likewise.
27349         (aarch64_macro_fusion_p): Likewise.
27350         (aarch64_macro_fusion_pair_p): Likewise.
27351
27352 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27353
27354         * config/s390/driver-native.c: New file.
27355         * config/s390/x-native: New file.
27356         * config.host: Add new files for s390.
27357         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
27358         and -march=native
27359         * config.gcc: Likewise.
27360         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
27361         * config/s390/s390-opts.h (enum processor_type): Ditto.
27362         * config/s390/s390.c (s390_option_override): Catch unhandled
27363         PROCESSOR_NATIVE
27364
27365 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
27366
27367         PR target/65527
27368         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
27369         redirection for instrumented calls.
27370         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
27371         (append_compiler_options): Append -fcheck-pointer-bounds.
27372         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
27373         (chkp_redirect_edge): New.
27374         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
27375         (chkp_redirect_edge): New.
27376
27377 2015-06-01  Richard Biener  <rguenther@suse.de>
27378
27379         PR tree-optimization/66280
27380         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
27381         def-use walking.
27382
27383 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27384
27385         * config/aarch64/aarch64.md
27386         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
27387         logic_shift_imm.
27388
27389 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
27390
27391         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
27392         Remove obsolete kludge.
27393
27394 2015-06-01  Richard Biener  <rguenther@suse.de>
27395
27396         * tree-ssa-reassoc.c (get_rank): Simplify.
27397
27398 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
27399
27400         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
27401         * configure: Regenerated.
27402
27403 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
27404
27405         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
27406         issue (add space between string literal and macro).
27407         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
27408
27409 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
27410
27411         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
27412         implict or explicit -fPIE or -fpie.
27413
27414 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
27415
27416         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
27417
27418 2015-05-28  DJ Delorie  <dj@redhat.com>
27419
27420         * expmed.c (extract_bit_field_1): Avoid clobbering a
27421         yet-to-be-used base/index register.
27422
27423 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
27424
27425         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
27426         (alias_stats): Add num_universal.
27427         (alias_set_subset_of): Special case pointers; be ready for NULL
27428         children.
27429         (alias_sets_conflict_p): Special case pointers; be ready for NULL
27430         children.
27431         (init_alias_set_entry): Break out from ...
27432         (record_alias_subset): ... here; propagate new fields;
27433         allocate children only when really needed.
27434         (get_alias_set): Do less generous pointer globbing.
27435         (dump_alias_stats_in_alias_c): Update statistics.
27436
27437 2015-05-30  Alan Modra  <amodra@gmail.com>
27438
27439         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
27440         correct block for use of r12.
27441         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
27442
27443 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27444
27445         PR target/66215
27446         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
27447         with -mhotpatch=.
27448
27449 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
27450
27451         PR tree-optimization/66142
27452         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
27453         virtual phis that feed themselves.
27454
27455 2015-05-29  Richard Biener  <rguenther@suse.de>
27456
27457         PR tree-optimization/66314
27458         * tree-ssa-threadupdate.c (create_block_for_threading): Add
27459         parameter that says which loop the new block belongs to.
27460         (ssa_create_duplicates): Blocks duplicated for the threaded
27461         path belong to the loop of the thread destination.
27462
27463 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27464
27465         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
27466         to cleanup-saved-temps.
27467         * doc/sourcebuild.texi (Clean up generated test files): Expand
27468         introduction.
27469         (dg-keep-saved-temps): Document new proc.
27470         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
27471         cleanup-saved-temps): Remove.
27472
27473 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
27474
27475         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
27476         gcc_AC_CHECK_DECLS.
27477         * configure: Regenerate.
27478
27479 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27480
27481         * config/nios2/linux.h (CPP_SPEC): Define.
27482
27483 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27484
27485         * config/microblaze/linux.h (CPP_SPEC): Define.
27486
27487 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
27488
27489         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
27490         -pthread is specified.
27491
27492 2015-05-28  Richard Biener  <rguenther@suse.de>
27493
27494         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
27495         (vect_fixup_scalar_cycles_with_patterns): Likewise.
27496         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
27497         after pattern recog.
27498         (vect_create_epilog_for_reduction): Properly handle reductions
27499         with patterns.
27500         (vectorizable_reduction): Likewise.
27501         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
27502         reduction chains.
27503         (vect_get_constant_vectors): Create the correct number of
27504         initial values for reductions.
27505         (vect_schedule_slp_instance): Handle reduction chains that are
27506         type changing properly.
27507         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
27508
27509 2015-05-28  Richard Biener  <rguenther@suse.de>
27510
27511         PR tree-optimization/66142
27512         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
27513         values better in memcpy destination handling.  Handle non-aliasing
27514         we discover here.
27515
27516 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
27517
27518         PR target/63810
27519         * config/darwin-c.c (version_components): New global enum.
27520         (parse_version, version_as_legacy_macro)
27521         (version_as_modern_macro, macosx_version_as_macro): New functions.
27522         (version_as_macro): Remove.
27523         (darwin_cpp_builtins): Use new function.
27524
27525 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
27526
27527         * builtins.c (expand_builtin_acc_on_device): Mark parameters
27528         with ATTRIBUTE_UNUSED.
27529
27530 2015-05-28  Julian Brown  <julian@codesourcery.com>
27531
27532         PR libgomp/65742
27533
27534         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
27535         sequence for !ACCEL_COMPILER.
27536
27537 2015-05-28  Nick Clifton  <nickc@redhat.com>
27538
27539         * config/rx/rx.c (push_regs): New function.  Extracts code from...
27540         (rx_expand_prologue): ... here.  Use push_regs to push even small
27541         spans of registers.
27542         (pop_regs): New function.
27543         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
27544         registers.
27545
27546 2015-05-28  Richard Biener  <rguenther@suse.de>
27547
27548         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
27549         member.
27550         (SLP_INSTANCE_BODY_COST_VEC): Remove.
27551         (vect_update_slp_costs_according_to_vf): Likewise.
27552         (vect_slp_analyze_operations): Update prototype.
27553         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
27554         vect_update_slp_costs_according_to_vf, adjust.
27555         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
27556         (vect_analyze_slp_cost_1): Likewise.
27557         (vect_analyze_slp_cost): Likewise.  Properly deal with
27558         widening reduction ops.  Commit body costs.
27559         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
27560         cost for loops from here.
27561         (vect_slp_analyze_operations): But do it from here when
27562         the vectorization factor is known and stmts are analyzed.
27563         (vect_bb_vectorization_profitable_p): Simplify.
27564         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
27565         (vect_update_slp_costs_according_to_vf): Remove.
27566
27567 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
27568             H.J. Lu  <hongjiu.lu@intel.com>
27569
27570         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
27571         (BUILD_CFLAGS): Likewise.
27572         (BUILD_CXXFLAGS): Likewise.
27573         (LINKER): Add @NO_PIE_FLAG@.
27574         (BUILD_LDFLAGS): Likewise.
27575         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
27576         --enable-default-pie.
27577         * common.opt (fPIE): Initialize to -1.
27578         (fpie): Likewise.
27579         (no-pie): New option.
27580         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
27581         * configure.ac: Add --enable-default-pie.
27582         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
27583         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
27584         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
27585         * gcc.c (NO_PIE_SPEC): New.
27586         (PIE_SPEC): Likewise.
27587         (NO_FPIE1_SPEC): Likewise.
27588         (FPIE1_SPEC): Likewise.
27589         (NO_FPIE2_SPEC): Likewise.
27590         (FPIE2_SPEC): Likewise.
27591         (NO_FPIE2_SPEC): Likewise.
27592         (FPIE_SPEC): Likewise.
27593         (NO_FPIE_SPEC): Likewise.
27594         (NO_FPIC1_SPEC): Likewise.
27595         (FPIC1_SPEC): Likewise.
27596         (NO_FPIC2_SPEC): Likewise.
27597         (FPIC2_SPEC): Likewise.
27598         (NO_FPIC2_SPEC): Likewise.
27599         (FPIC_SPEC): Likewise.
27600         (NO_FPIC_SPEC): Likewise.
27601         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
27602         (FPIE1_OR_FPIC1_SPEC): Likewise.
27603         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
27604         (FPIE2_OR_FPIC2_SPEC): Likewise.
27605         (NO_FPIE_AND_FPIC_SPEC): Likewise.
27606         (FPIE_OR_FPIC_SPEC): Likewise.
27607         (LD_PIE_SPEC): Likewise.
27608         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
27609         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
27610         * config/darwin.h (PIE_SPEC): Renamed to ...
27611         (DARWIN_PIE_SPEC): This.
27612         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
27613         * config/darwin9.h (PIE_SPEC): Renamed to ...
27614         (DARWIN_PIE_SPEC): This.
27615         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
27616         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
27617         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
27618         FPIE2_OR_FPIC2_SPEC.
27619         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
27620         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
27621         * config/sol2.h (ASM_PIC_SPEC): Likewise.
27622         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27623         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27624         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
27625         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
27626         * config/m32r/m32r.h (ASM_SPEC): Likewise.
27627         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
27628         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
27629         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
27630         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
27631         * config/sparc/linux.h (ASM_SPEC): Likewise.
27632         * config/sparc/linux64.h (ASM_SPEC): Likewise.
27633         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
27634         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
27635         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
27636         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27637         * config/sparc/sparc.h (ASM_SPEC): Likewise.
27638         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
27639         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
27640         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
27641         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
27642         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
27643         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
27644         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
27645         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
27646         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
27647         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
27648         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
27649         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
27650         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
27651         * config/vax/linux.h (ASM_SPEC): Likewise.
27652         * doc/install.texi: Document --enable-default-pie.
27653         * doc/invoke.texi: Document -no-pie.
27654         * config.in: Regenerated.
27655         * configure: Likewise.
27656
27657 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27658
27659         PR rtl-optimization/66168
27660         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
27661         can_move_invariant_reg.
27662
27663 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
27664
27665         PR target/66148
27666         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
27667         REG_EQUAL note when doing insert.
27668
27669         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
27670         instead of "%d" for 'o' operand.
27671
27672 2015-05-27  Nathan Sidwell  <nathan@acm.org>
27673
27674         PR c++/66270
27675         * tree.c (build_pointer_type_for_mode): Canonical type does not
27676         inherit can_alias_all.
27677         (build_reference_type_for_mode): Likewise.
27678
27679 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27680
27681         * expr.h (array_at_struct_end_p): Move to...
27682         (array_ref_element_size): Likewise.
27683         (component_ref_field_offset): Likewise.
27684         * tree.h (array_ref_element_size): ...here.
27685         (array_at_struct_end_p): Likewise.
27686         (component_ref_field_offset): Likewise.
27687         * expr.c (array_ref_element_size): Move to...
27688         (array_ref_low_bound): Likewise.
27689         (array_at_struct_end_p): Likewise.
27690         (array_ref_up_bound): Likewise.
27691         (component_ref_field_offset): Likewise.
27692         * tree.c (array_ref_element_size): ...here.
27693         (array_ref_low_bound): Likewise.
27694         (array_ref_up_bound): Likewise.
27695         (array_at_struct_end_p): Likewise.
27696         (component_ref_field_offset): Likewise.
27697
27698 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27699             Szabolcs Nagy  <szabolcs.nagy@arm.com>
27700
27701         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
27702
27703 2015-05-27  Jason Merrill  <jason@redhat.com>
27704
27705         PR bootstrap/66304
27706         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
27707         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
27708         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
27709
27710 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
27711
27712         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
27713         is true.
27714
27715         * statistics.c (statistics_fini_pass): Print pass name.
27716
27717 2015-05-27  Richard Biener  <rguenther@suse.de>
27718
27719         PR tree-optimization/66272
27720         Revert parts of
27721         2014-08-15  Richard Biener  <rguenther@suse.de>
27722
27723         PR tree-optimization/62031
27724         * tree-data-ref.c (dr_analyze_indices): Do not set
27725         DR_UNCONSTRAINED_BASE.
27726         (dr_may_alias_p): All indirect accesses have to go the
27727         formerly DR_UNCONSTRAINED_BASE path.
27728         * tree-data-ref.h (struct indices): Remove
27729         unconstrained_base member.
27730         (DR_UNCONSTRAINED_BASE): Remove.
27731
27732 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
27733
27734         * dwarf2out.c: Remove block_map.
27735         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
27736         (gen_lexical_block_die): Same.
27737         (dwarf2out_function_decl): Remove block_map use.
27738         (dwarf2out_c_finalize): Same.
27739         * tree-core.h (struct tree_block): Add die field.
27740         * tree.h (BLOCK_DIE): New.
27741
27742 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27743
27744         PR target/65358
27745         * expr.c (memory_load_overlap): New function.
27746         (emit_push_insn): When pushing partial args to the stack would
27747         clobber the register part load the overlapping part into a pseudo
27748         and put it into the hard reg after pushing.  Change return type
27749         to bool.  Add bool argument.
27750         * expr.h (emit_push_insn): Change return type to bool.
27751         Add bool argument.
27752         * calls.c (expand_call): Cancel sibcall optimization when encountering
27753         partial argument on targets with ARGS_GROW_DOWNWARD and
27754         !STACK_GROWS_DOWNWARD.
27755         (emit_library_call_value_1): Update callsite of emit_push_insn.
27756         (store_one_arg): Likewise.
27757
27758 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
27759
27760         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
27761
27762 2015-05-27  Martin Liska  <mliska@suse.cz>
27763
27764         * Makefile.in: Add additional dependencies related to memory report
27765         enhancement.
27766         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
27767         * bitmap.c (struct bitmap_descriptor_d): Remove.
27768         (struct loc): Likewise.
27769         (struct bitmap_desc_hasher): Likewise.
27770         (bitmap_desc_hasher::hash): Likewise.
27771         (bitmap_desc_hasher::equal): Likewise.
27772         (get_bitmap_descriptor): Likewise.
27773         (bitmap_register): User new memory descriptor API.
27774         (register_overhead): Likewise.
27775         (bitmap_find_bit): Register nsearches and search_iter statistics.
27776         (struct bitmap_output_info): Remove.
27777         (print_statistics): Likewise.
27778         (dump_bitmap_statistics): Use new memory descriptor.
27779         * bitmap.h (struct bitmap_usage): New class.
27780         * genmatch.c: Extend header file inclusion.
27781         * genpreds.c: Likewise.
27782         * ggc-common.c (struct ggc_usage): New class.
27783         (struct ggc_loc_desc_hasher): Remove.
27784         (ggc_loc_desc_hasher::hash): Likewise.
27785         (ggc_loc_desc_hasher::equal): Likewise.
27786         (struct ggc_ptr_hash_entry): Likewise.
27787         (struct ptr_hash_hasher): Likewise.
27788         (ptr_hash_hasher::hash): Likewise.
27789         (ptr_hash_hasher::equal): Likewise.
27790         (make_loc_descriptor): Likewise.
27791         (ggc_prune_ptr): Likewise.
27792         (dump_ggc_loc_statistics): Use new memory descriptor.
27793         (ggc_record_overhead): Likewise.
27794         (ggc_free_overhead): Likewise.
27795         (final_cmp_statistic): Remove.
27796         (cmp_statistic): Likewise.
27797         (ggc_add_statistics): Liekwise.
27798         (ggc_prune_overhead_list): Likewise.
27799         * hash-map-traits.h: New file.
27800         * hash-map.h (struct default_hashmap_traits): Move the traits to a
27801         separate header file.
27802         * hash-set.h: Pass memory statistics info to ctor.
27803         * hash-table.c (void dump_hash_table_loc_statistics): New function.
27804         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
27805         (hash_table::~hash_table): Register memory release operation.
27806         (hash_table::alloc_entries): Handle memory allocation operation.
27807         (hash_table::expand): Likewise.
27808         * inchash.c (iterative_hash_hashval_t): Move implementation to header
27809         file.
27810         (iterative_hash_host_wide_int): Likewise.
27811         * inchash.h (class hash): Likewise.
27812         * mem-stats-traits.h: New file.
27813         * mem-stats.h: New file.
27814         (mem_location): Add new class.
27815         (mem_usage): Likewise.
27816         (mem_alloc_description): Likewise.
27817         * sese.c: Add new header file inclusision.
27818         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
27819         and hash_set.
27820         * tree-sra.c: Add new header file inclusision.
27821         * vec.c (struct vec_descriptor): Remove.
27822         (hash_descriptor): Likewise.
27823         (struct vec_usage): Likewise.
27824         (struct ptr_hash_entry): Likewise.
27825         (hash_ptr): Likewise.
27826         (eq_ptr): Likewise.
27827         (vec_prefix::register_overhead): Use new memory descriptor API.
27828         (vec_prefix::release_overhead): Likewise.
27829         (add_statistics): Remove.
27830         (dump_vec_loc_statistics): Use new memory descriptor API.
27831         * vec.h (struct vec_prefix): Likewise.
27832         (va_heap::reserve): Likewise.
27833         (va_heap::release): Likewise.
27834         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
27835
27836 2015-05-27  Richard Biener  <rguenther@suse.de>
27837
27838         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
27839         earlier and remove ??? comment.
27840         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
27841         and got called from loop analysis bail out.  Always pass the SLP
27842         node to the vectorizable_* functions.
27843         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
27844         the premature SLP check here.
27845         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
27846         detected SLP stmts.
27847         (vect_detect_hybrid_slp_1): Likewise.
27848
27849 2015-05-26  Jeff Law  <law@redhat.com>
27850
27851         * combine.c (find_split_point): Verify that the shift count is a
27852         constant when choosing (plus (ashift ...)) as a split point.
27853
27854         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
27855         No functional changes.
27856
27857 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
27858
27859         * ipa-polymorphic-call.c
27860         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
27861         case when call target is already known.
27862
27863 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
27864
27865         PR target/65979
27866         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
27867         take into account the case that operands[1] and operands[2]
27868         are the same register.
27869
27870 2015-05-26  Michael Matz  <matz@suse.de>
27871
27872         PR middle-end/66251
27873
27874         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
27875         stores.
27876         (vect_create_vectorized_demotion_stmts): Always set
27877         STMT_VINFO_VEC_STMT, also with SLP.
27878         (vectorizable_store): Handle strided group stores.
27879
27880 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
27881
27882         PR target/66049
27883         * config/aarch64/aarch64.md
27884         (*adds_shift_imm_<mode>):  New pattern.
27885         (*subs_shift_imm_<mode>):  Likewise.
27886         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
27887         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
27888         (*add_uxt<mode>_shift2): Likewise.
27889         (*add_uxtsi_shift2_uxtw): Likewise.
27890         (*sub_uxt<mode>_shift2): Likewise.
27891         (*sub_uxtsi_shift2_uxtw): Likewise.
27892
27893 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
27894
27895         * config/rs6000/constraints.md (Y, U): Use match_test.
27896
27897 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27898
27899         PR target/52144
27900         * config/arm/arm.c (arm_option_check_internal)
27901         (arm_option_params_internal): Check opts->target_flags to set macros.
27902         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27903         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
27904         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27905         (builtin_define): Replaced with def_or_undef_macro.
27906         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
27907         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
27908         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
27909         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
27910         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
27911         (TARGET_ARM_FEATURE_LDREX_P)
27912         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
27913         * config/arm/arm-c.c (def_or_undef_macro): New function.
27914         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
27915
27916 2015-05-26  Christian Bruel  <christian.bruel@st.com>
27917
27918         * c-common.h (builtin_define_with_int_value)
27919         (builtin_define_type_sizeof): Declare.
27920         * c-cppbuiltin.c (builtin_define_with_int_value)
27921         (builtin_define_type_sizeof): Externalize.
27922         (builtin_define_std): Cleanup declaration.
27923         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
27924         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
27925         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
27926         (builtin_define, builtin_assert): New macros.
27927
27928 2015-05-26  Richard Biener  <rguenther@suse.de>
27929
27930         PR tree-optimization/66142
27931         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
27932         MEM_REFs for the same base address.
27933
27934 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27935
27936         PR ipa/66181
27937         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
27938
27939 2015-05-26  Jason Merrill  <jason@redhat.com>
27940
27941         * configure.ac: Set CXXFLAGS for ISL test.
27942         * configure: Regenerate.
27943
27944         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
27945         strstr and basename.
27946         * configure: Regenerate.
27947
27948 2015-05-26  Richard Biener  <rguenther@suse.de>
27949
27950         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
27951         X % C -> X & (C - 1) for C being a power-of two to ...
27952         * match.pd: ... patterns.
27953
27954 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
27955
27956         * match.pd (swapped_tcc_comparison): New operator list.
27957         (-A CMP -B): New simplification.
27958         * fold-const.c (fold_comparison): Remove corresponding code.
27959
27960 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27961
27962         * caller-save.c (init_caller_save): Base temporary register numbers
27963         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
27964         * cfgloopanal.c (init_set_costs): Likewise.
27965         * dojump.c (prefer_and_bit_test): Likewise.
27966         * expr.c (init_expr_target): Likewise.
27967         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27968         * lower-subreg.c (init_lower_subreg): Likewise.
27969         * postreload.c (reload_cse_regs_1): Likewise.
27970
27971 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27972
27973         * gensupport.h (compute_test_codes): Declare.
27974         * gensupport.c (compute_predicate_codes): Rename to...
27975         (compute_test_codes): ...this.  Generalize error message.
27976         (process_define_predicate): Update accordingly.
27977         * genpreds.c (compute_maybe_allows): Delete.
27978         (add_constraint): Use compute_test_codes to determine whether
27979         something can accept a SUBREG, REG or MEM.
27980
27981 2015-05-26  Torvald Riegel  <triegel@redhat.com>
27982
27983         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
27984         'memory model' to align with C++11; fix description of memory orders;
27985         fix a few typos.
27986
27987 2015-05-26  Richard Biener  <rguenther@suse.de>
27988
27989         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
27990         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
27991         detect whether we apply SLP.  Remove call to
27992         vect_update_slp_costs_according_to_vf.
27993         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
27994         vect_update_slp_costs_according_to_vf from here.  Dispatch
27995         to vect_slp_analyze_operations to analyze SLP stmts.
27996         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
27997         unused bb_vec_info parameter, adjust assert.
27998         (vect_slp_analyze_operations): Pass in the slp instance tree
27999         instead of bb_vec_info.
28000         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
28001         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
28002
28003 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28004
28005         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
28006         Q_REGS.  Expand comment.
28007         (REG_CLASS_NAMES): Ditto.
28008         (REG_CLASS_CONTENTS): Ditto.
28009
28010 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
28011
28012         PR target/66274
28013         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
28014         when LEGACY_INT_REGNO_P is processed.
28015
28016 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
28017
28018         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
28019
28020 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
28021
28022         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
28023         register if not marked dead/unused, before return.
28024
28025 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28026
28027         PR lto/66180
28028         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
28029         is set; check for assembler name at LTO time.
28030         (type_in_anonymous_namespace): Remove hacks, check that all
28031         anonymous types are called "<anon>"
28032         (odr_type_p): Simplify; add check for "<anon>"
28033         (odr_subtypes_equivalent): Add odr_type_p check.
28034         * tree.c (need_assembler_name_p): Even anonymous namespace needs
28035         assembler name.
28036
28037 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28038
28039         * ipa-utils.h (method_class_type): Remove.
28040         * cgraphunit.c (walk_polymorphic_call_targets): Use
28041         TYPE_METHOD_BASETYPE.
28042         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
28043         on main variants only.
28044         (method_class_type): Remove.
28045         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
28046         (build_type_inheritance_graph): Likewise.
28047         * ipa-icf.c (sem_function::equals_wpa): Likewise.
28048         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
28049         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
28050
28051 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
28052
28053         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
28054         is_typedef_decl, typedef_variant_p): Constify.
28055         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
28056         is_typedef_decl, typedef_variant_p): Constify.
28057
28058 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28059
28060         * defaults.h (gen_tablejump): New function.
28061         (HAVE_tablejump): Add default value.
28062         * expr.c: Adjust.
28063         * stmt.c: Likewise.
28064
28065 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28066
28067         * defaults.h (gen_store_multiple): New function.
28068         (HAVE_store_multiple): Add default value.
28069         * expr.c (move_block_from_reg): Adjust.
28070
28071 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28072
28073         * defaults.h (gen_load_multiple): New function.
28074         (HAVE_load_multiple): Add default value.
28075         * expr.c (move_block_to_reg): Adjust.
28076
28077 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28078
28079         * defaults.h (gen_mem_signal_fence): New function.
28080         (HAVE_mem_signal_fence): Add default value.
28081         * optabs.c: Adjust.
28082
28083 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28084
28085         * defaults.h (gen_memory_barrier): New function.
28086         (HAVE_memory_barrier): Add default value.
28087         * optabs.c: Adjust.
28088
28089 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28090
28091         * defaults.h (gen_mem_thread_fence): New function.
28092         (HAVE_mem_thread_fence): Add default definition.
28093         * optabs.c: Adjust.
28094
28095 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28096
28097         * combine.c (find_split_point): Check the value of HAVE_lo_sum
28098         instead of if it is defined.
28099         (combine_simplify_rtx): Likewise.
28100         * lra-constraints.c (process_address_1): Likewise.
28101         * config/darwin.c: Adjust.
28102         * genconfig.c (main): Always define HAVE_lo_sum.
28103
28104 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28105
28106         * genmatch.c (parser::parse_operation): Reject expanding
28107         operator-list inside 'for'.
28108
28109 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28110
28111         * genmatch.c (parser::parse_for): Reject iterator if used as
28112         operator-list.
28113
28114 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28115
28116         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
28117         after end of id-list.
28118
28119 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28120
28121         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
28122         we do not try to compute canonical type for type that does not need
28123         alias set.
28124         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
28125         FUNCITON_TYPE.
28126         * tree.h (type_with_alias_set_p): New.
28127
28128 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
28129
28130         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
28131         function attributes.
28132         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
28133
28134 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
28135
28136         * Makefile.in (check_gcc_parallelize): Delete.
28137         (lang_checks_parallelized): Update comment.
28138
28139 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
28140
28141         PR rtl-optimization/66237
28142         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
28143         location of an "as_a" cast.
28144
28145 2015-05-22  Jeff Law  <law@redhat.com>
28146
28147         * config/pa/pa.md (non-canonical shift-add insns): Remove.
28148         (peepholes with non-canonical RTL sources): Remove.
28149         (peepholes for indexed stores of FP regs in integer modes): Match and
28150         generate canonical RTL.
28151
28152 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28153
28154         PR tree-optimization/63387
28155         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
28156         ((x ord x) & (y ord y) -> (x ord y),
28157         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
28158         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
28159         vectors like scalars.
28160
28161 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28162
28163         * convert.c (convert_to_integer, convert_to_vector): Include the
28164         types in the error message.
28165
28166 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
28167
28168         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
28169         simplifications.
28170
28171 2015-05-22  Jeff Law  <law@redhat.com>
28172
28173         * config/pa/pa.md (integer_indexed_store splitters): Use
28174         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
28175         insns -- adjusting the constant 2nd operand accordingly.
28176
28177         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
28178         (plus (ashift X log2) Y) if it is a split point.
28179
28180         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
28181         out of hppa_legitimize_address to handle both forms of a multiply
28182         by 2, 4 or 8.
28183         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
28184         Always generate the ASHIFT variant as the result is not directly
28185         used in a MEM.  Update comments and refactor slightly to improve
28186         readability.
28187
28188 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28189
28190         PR target/65491
28191         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
28192         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
28193         (aarch64_composite_type_p): Return false if given type and mode are
28194         for a short vector.
28195
28196 2015-05-22  Richard Biener  <rguenther@suse.de>
28197
28198         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
28199         member.
28200         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
28201         patterns when determining whether SLP is pure.
28202         (vect_is_slp_reduction): Remove check for pattern stmts.
28203         (vect_is_simple_reduction_1): Remove dead code.
28204         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
28205         (vect_get_and_check_slp_defs): Pass in the stmt number.
28206         Allow the first def in a reduction to be not a pattern stmt when
28207         the rest of the stmts def are patterns.
28208         (vect_build_slp_tree_1): Allow tcc_expression codes like
28209         SAD_EXPR and DOT_PROD_EXPR.
28210         (vect_build_slp_tree): Adjust.
28211         (vect_analyze_slp): Refactor and move BB vect error message ...
28212         (vect_slp_analyze_bb_1): ... here.
28213
28214 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
28215
28216         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
28217         for CSWTCH temporary.
28218
28219 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28220
28221         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
28222         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
28223         unknown unspecs.
28224
28225 2015-05-22  Richard Biener  <rguenther@suse.de>
28226
28227         PR tree-optimization/66251
28228         * tree-vect-stmts.c (vectorizable_conversion): Properly
28229         set STMT_VINFO_VEC_STMT even for the SLP case.
28230
28231 2015-05-22  Marek Polacek  <polacek@redhat.com>
28232
28233         * doc/extend.texi: Use @pxref instead of @xref.
28234
28235 2015-05-22  hiraditya  <hiraditya@msn.com>
28236
28237         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
28238         redundant if.
28239
28240 2015-05-22  Richard Biener  <rguenther@suse.de>
28241
28242         PR tree-optimization/65701
28243         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
28244         Move peeling cost models into one place.  Peel for alignment
28245         for single loads only if an aligned load is cheaper than
28246         an unaligned load.
28247
28248 2015-05-22  Marek Polacek  <polacek@redhat.com>
28249
28250         PR c/47043
28251         * doc/extend.texi (Enumerator Attributes): New section.
28252         Document syntax of enumerator attributes.
28253
28254 2015-05-22  Richard Biener  <rguenther@suse.de>
28255
28256         * tree-vect-loop.c (get_reduction_op): New function.
28257         (vect_model_reduction_cost): Use it, add reduc_index parameter.
28258         Make ready for BB reductions.
28259         (vect_create_epilog_for_reduction): Use get_reduction_op.
28260         (vectorizable_reduction): Init reduc_index to a valid value.
28261         Adjust vect_model_reduction_cost call.
28262         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
28263         operand for reduction defaults.  Add SAD_EXPR support.
28264         Assert we have a neutral op for SLP reductions.
28265         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
28266         walking pattern stmt ops only recurse to SSA names.
28267
28268 2015-05-22  Richard Biener  <rguenther@suse.de>
28269
28270         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
28271         assert with guard, remove check on detected reduction.
28272         (vect_recog_sad_pattern): Likewise.
28273         (vect_recog_widen_sum_pattern): Likewise.
28274
28275 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28276
28277         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
28278         __always_inline__ attribute.
28279         (vaesdq_u8): Likewise.
28280         (vaesmcq_u8): Likewise.
28281         (vaesimcq_u8): Likewise.
28282         (vsha1cq_u32): Likewise.
28283         (vsha1mq_u32): Likewise.
28284         (vsha1pq_u32): Likewise.
28285         (vsha1h_u32): Likewise.
28286         (vsha1su0q_u32): Likewise.
28287         (vsha1su1q_u32): Likewise.
28288         (vsha256hq_u32): Likewise.
28289         (vsha256h2q_u32): Likewise.
28290         (vsha256su0q_u32): Likewise.
28291         (vsha256su1q_u32): Likewise.
28292         (vmull_p64): Likewise.
28293         (vmull_high_p64): Likewise.
28294
28295 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28296
28297         * final.c (final_scan_insn): Don't check HAVE_peephole with the
28298         preprocessor.
28299         * output.h: Likewise.
28300         * genconfig.c (main): Alwways define HAVE_peephole.
28301         * genpeep.c: Don't emit checks of HAVE_peephole.
28302
28303 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28304
28305         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
28306         check HAVE_conditional_move with the preprocessor.
28307
28308 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28309
28310         * genconfig.c (main): Always define HAVE_conditional_move.
28311         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
28312         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
28313         is defined.
28314
28315 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28316
28317         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
28318         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
28319         and FRAME_POINTER_REGNUM with the preprocessor.
28320
28321 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28322
28323         * defaults.h: Add default for STACK_PUSH_CODE.
28324         * expr.c: Don't redefine STACK_PUSH_CODE.
28325         * recog.c: Likewise.
28326
28327 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28328
28329         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
28330         sched-deps.c: Use if instead of preprocessor checks with
28331         STACK_GROWS_DOWNWARD.
28332
28333 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28334
28335         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
28336         is defined.
28337         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
28338         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
28339         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
28340         * doc/tm.texi: Regenerate.
28341
28342 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
28343
28344         PR target/66232
28345         * config/i386/constraints.md (Bg): New constraint for GOT memory
28346         operand.
28347         * config/i386/i386.md (*call_got_x32): New pattern.
28348         (*call_value_got_x32): Likewise.
28349         * config/i386/predicates.md (GOT_memory_operand): New predicate.
28350
28351 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
28352
28353         PR tree-optimization/66233
28354         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
28355         Simplify.
28356
28357 2015-05-21  Jeff Law  <law@redhat.com>
28358
28359         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
28360         than MULT for shadd sequences.
28361
28362 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
28363
28364         * alias.c (alias_stats): New static var.
28365         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
28366         (dump_alias_stats_in_alias_c): New function.
28367         * alias.h (dump_alias_stats_in_alias_c): Declare.
28368         * tree-ssa-alias.c (dump_alias_stats): Call it.
28369
28370 2015-05-08  Michael Matz  <matz@suse.de>
28371
28372         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
28373         to strided_p.
28374         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
28375         (STMT_VINFO_STRIDED_P): ... this.
28376         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
28377         (vect_verify_datarefs_alignment): Likewise.
28378         (vect_enhance_data_refs_alignment): Likewise.
28379         (vect_analyze_data_ref_access): Likewise.
28380         (vect_analyze_data_refs): Accept strided stores.
28381         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
28382         (vect_model_load_cost): Adjust for macro rename.
28383         (vectorizable_mask_load_store): Likewise.
28384         (vectorizable_load): Likewise.
28385         (vectorizable_store): Open code strided stores.
28386
28387 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28388
28389         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
28390         Document sqrt_insn.
28391
28392 2015-05-21  Richard Biener  <rguenther@suse.de>
28393
28394         PR c++/66211
28395         * match.pd: Guard pattern optimzing (int)(float)int
28396         conversions to apply only on GIMPLE.
28397
28398 2015-05-21  Jeff Law  <law@redhat.com>
28399
28400         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
28401         multiply-accumulate/shift-add insn generation.
28402
28403 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
28404
28405         PR target/54236
28406         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
28407         operands[1] are the same.
28408
28409 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
28410
28411         PR middle-end/66221
28412         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
28413         build_distinct_type_copy to copy bounds.
28414
28415 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
28416
28417         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
28418         Change to unsigned int.
28419
28420 2015-05-20  Jeff Law  <law@redhat.com>
28421
28422         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
28423         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
28424         (pa_shadd_constant_p): Allow constants for shadd insns rather
28425         than valid scaling constants for memory addresses.
28426         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
28427         * config/pa/predicates.md (mem_shadd_operand): New predicate.
28428         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
28429         (shift-add insns using ASHIFT): New patterns.
28430
28431 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
28432
28433         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
28434         feasible.
28435         (fix_up_fall_thru_edges): Likewise.
28436         (fix_crossing_conditional_branches): Likewise. Promote jump targets
28437         from to rtx_insn to rtx_code_label where feasible.
28438         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
28439         gen_move_insn (returned type changed to rtx_insn).
28440         * builtins.c (expand_errno_check): Fix arguments of
28441         do_compare_rtx_and_jump (now expects rtx_code_label).
28442         (expand_builtin_acc_on_device): Likewise.
28443         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
28444         invert_jump (now exprects rtx_jump_insn).
28445         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
28446         (construct_init_block): Use rtx_code_label.
28447         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
28448         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
28449         calling redirect_jump.
28450         (patch_jump_insn): Likewise.
28451         (redirect_branch_edge): Likewise.
28452         (force_nonfallthru_and_redirect): Likewise.
28453         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
28454         when suitable.
28455         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
28456         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
28457         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
28458         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
28459         to store the value retured by gen_label_rtx.
28460         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
28461         rtx_jump_insn.
28462         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
28463         (split_branches): Fix calls of redirect_jump.
28464         * dojump.c (jumpifnot): Promote argument type from rtx to
28465         rtx_code_label.
28466         (jumpifnot_1): Likewise.
28467         (jumpif): Likewise.
28468         (jumpif_1): Likewise.
28469         (do_jump_1): Likewise.
28470         (do_jump): Likewise. Use rtx_code_label when feasible.
28471         (do_jump_by_parts_greater_rtx): Likewise.
28472         (do_jump_by_parts_zero_rtx): Likewise.
28473         (do_jump_by_parts_equality_rtx): Likewise.
28474         (do_compare_rtx_and_jump): Likewise.
28475         * dojump.h: Update function prototypes.
28476         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
28477         returns rtx_insn).
28478         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
28479         rtx_jump_insn.
28480         (emit_label_before): Likewise.
28481         (emit_jump_insn_after_noloc): Likewise.
28482         (emit_jump_insn_after_setloc): Likewise.
28483         (emit_jump_insn_after): Likewise
28484         (emit_jump_insn_before_setloc): Likewise.
28485         (emit_jump_insn_before): Likewise.
28486         (emit_label_before): Promote return type to rtx_code_label.
28487         (emit_label): Likewise.
28488         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
28489         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
28490         gen_move_insn.
28491         (emit_stack_restore): Likewise.
28492         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
28493         (do_cmp_and_jump): Likewise.
28494         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
28495         from rtx to rtx_code_label.
28496         (gen_move_insn_uncast): New function.
28497         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
28498         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
28499         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
28500         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
28501         invert_jump_1 and redirect_jump_1.
28502         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
28503         do_compare_rtx_and_jump.
28504         (expand_addsub_overflow): Likewise.
28505         (expand_neg_overflow): Likewise.
28506         (expand_mul_overflow): Likewise.
28507         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
28508         return value of gen_move_insn.
28509         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
28510         * loop-doloop.c (add_test): Use rtx_code_label.
28511         (doloop_modify): Likewise.
28512         (doloop_optimize): Likewise.
28513         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
28514         * lra-constraints.c (emit_spill_move): Remove cast of value returned
28515         by gen_move_insn.
28516         (inherit_reload_reg): Add cast when calling dump_insn_slim.
28517         (split_reg): Likewise.
28518         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
28519         gen_move_insn.
28520         * optabs.c (expand_binop_directly): Remove casts of values returned by
28521         maybe_gen_insn.
28522         (expand_unop_direct): Likewise.
28523         (expand_abs): Likewise.
28524         (maybe_emit_unop_insn): Likewise.
28525         (maybe_gen_insn): Promote return type to rtx_insn.
28526         * optabs.h: Update prototype of maybe_gen_insn.
28527         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
28528         redundant cast.
28529         * recog.c (struct peep2_insn_data): Promote type of insn field to
28530         rtx_insn.
28531         (peep2_reinit_state): Use NULL instead of NULL_RTX.
28532         (peep2_attempt): Remove casts of insn in peep2_insn_data.
28533         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
28534         * recog.h (struct insn_gen_fn): Promote return types of function
28535         pointers and operator ().from rtx to rtx_insn.
28536         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
28537         (fill_eager_delay_slots): Likewise.
28538         (relax_delay_slots): Likewise.
28539         (make_return_insns): Likewise.
28540         (dbr_schedule): Likewise.
28541         (optimize_skips): Likewise.
28542         (reorg_redirect_jump): Likewise.
28543         (fill_slots_from_thread): Likewise.
28544         * reorg.h: Update prototypes.
28545         * resource.c (find_dead_or_set_registers): Use dyn_cast to
28546         rtx_jump_insn instead of check.  Use it's jump_target method.
28547         * rtl.h (rtx_jump_insn::jump_label): Define new method.
28548         (rtx_jump_insn::jump_target): Define new method.
28549         (rtx_jump_insn::set_jump_target): Define new method.
28550         * rtlanal.c (tablejump_p): Promote type of one local variable.
28551         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
28552         (sched_analyze_insn): Likewise.
28553         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
28554         (print_insn): Likewise.
28555         * stmt.c (label_rtx): Promote return type to rtx_insn.
28556         (force_label_rtx): Likewise.
28557         (jump_target_rtx): Define new function.
28558         (expand_label): Use it, get rid of one cast.
28559         (expand_naked_return): Promote rtx to rtx_code_label.
28560         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
28561         (expand_case): Use rtx_code_label instread of rtx where feasible.
28562         (expand_sjlj_dispatch_table): Likewise.
28563         (emit_case_nodes): Likewise.
28564         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
28565         * store-motion.c (insert_store): Make use of new return type of
28566         gen_move_insn and remove a cast.
28567         (replace_store_insn): Likewise.
28568
28569 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
28570
28571         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
28572         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
28573
28574 2015-05-20  Jeff Law  <law@redhat.com>
28575
28576         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
28577         dispose of the jump thread path when the jump threading
28578         opportunity is cancelled.
28579
28580 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28581
28582         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
28583         when printing the caret character.
28584
28585 2015-05-20  Marek Polacek  <polacek@redhat.com>
28586
28587         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
28588
28589 2015-05-20  Marek Polacek  <polacek@redhat.com>
28590
28591         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
28592         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
28593         * gimple-fold.c (canonicalize_bool): Likewise.
28594         (same_bool_result_p): Likewise.
28595         * tree-if-conv.c (parse_predicate): Likewise.
28596
28597 2015-05-20  Marek Polacek  <polacek@redhat.com>
28598
28599         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
28600         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
28601
28602 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28603
28604         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
28605         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
28606         values.
28607
28608 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
28609
28610         * config/mips/mips.h (micromips_globals): Declare.
28611
28612 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
28613
28614         * timevar.def (TV_INITIALIZE_RTL): New.
28615         * toplev.c (initialize_rtl): Use an auto_timevar to account this
28616         function's time to TV_INITIALIZE_RTL.
28617
28618 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
28619
28620         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
28621         gimple_build_nop calls.
28622         (chkp_find_bounds_for_elem): Likewise.
28623         (chkp_get_zero_bounds): Likewise.
28624         (chkp_get_none_bounds): Likewise.
28625         (chkp_get_bounds_by_definition): Likewise.
28626         (chkp_generate_extern_var_bounds): Likewise.
28627         (chkp_get_bounds_for_decl_addr): Likewise.
28628         (chkp_get_bounds_for_string_cst): Likewise.
28629
28630 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
28631
28632         PR tree-optimization/65447
28633         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
28634         (dump_use, dump_uses): Support to dump sub use.
28635         (record_use): New parameters to support sub use.  Remove call to
28636         dump_use.
28637         (record_sub_use, record_group_use): New functions.
28638         (compute_max_addr_offset, split_all_small_groups): New functions.
28639         (group_address_uses, rewrite_use_address): New functions.
28640         (strip_offset): New declaration.
28641         (find_interesting_uses_address): Call record_group_use.
28642         (add_candidate): New assertion.
28643         (infinite_cost_p): Move definition forward.
28644         (add_costs): Check INFTY cost and return immediately.
28645         (get_computation_cost_at): Clear setup cost and dependent bitmap
28646         for sub uses.
28647         (determine_use_iv_cost_address): Compute cost for sub uses.
28648         (rewrite_use_address_1): Rename from old rewrite_use_address.
28649         (free_loop_data): Free sub uses.
28650         (tree_ssa_iv_optimize_loop): Call group_address_uses.
28651
28652 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28653             Jim Wilson  <jim.wilson@linaro.org>
28654
28655         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
28656         new  fields loadv and storev.
28657         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
28658         Initialize loadv and storev.
28659         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
28660         (cortexa53_extra_costs): Likewise.
28661         (cortexa57_extra_costs): Likewise.
28662         (xgene1_extra_costs): Likewise.
28663         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
28664         rtx_costs.
28665
28666 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
28667
28668         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
28669          storev.
28670         (cortexa8_extra_costs): Likewise.
28671         (cortexa5_extra_costs): Likewise.
28672         (cortexa7_extra_costs): Likewise.
28673         (cortexa12_extra_costs): Likewise.
28674         (cortexa15_extra_costs): Likewise.
28675         (v7m_extra_costs): Likewise.
28676
28677 2015-05-20  Jeff Law  <law@redhat.com>
28678
28679         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
28680         instead of open-coded version.  Also delete the jump thread created
28681         within this function.
28682
28683 2015-05-20  Alan Modra  <amodra@gmail.com>
28684
28685         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
28686         stack adjusting insn.  Formatting.
28687         (rs6000_emit_prologue): Track stack adjusting insn, and use of
28688         r12.  If possible, emit first -fsplit-stack arg pointer insn
28689         before stack adjust.  Don't use r12 to save cr if split-stack.
28690
28691 2015-05-20  Alan Modra  <amodra@gmail.com>
28692
28693         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
28694         Define.
28695         (rs6000_supports_split_stack): New function.
28696         * config/rs6000/rs6000.c (machine_function): Add
28697         split_stack_arg_pointer.
28698         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
28699         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
28700         rather than virtual_incoming_args_rtx.
28701         (rs6000_va_start): Likewise.
28702         (split_stack_arg_pointer_used_p): New function.
28703         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
28704         (morestack_ref): New var.
28705         (gen_add3_const, rs6000_expand_split_stack_prologue,
28706         rs6000_internal_arg_pointer, rs6000_live_on_entry,
28707         rs6000_split_stack_space_check): New functions.
28708         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
28709         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
28710         (UNSPECV_SPLIT_STACK_RETURN): Define.
28711         (split_stack_prologue, load_split_stack_limit,
28712         load_split_stack_limit_di, load_split_stack_limit_si,
28713         split_stack_return, split_stack_space_check): New expands and insns.
28714         * config/rs6000/rs6000-protos.h
28715         (rs6000_expand_split_stack_prologue): Declare.
28716         (rs6000_split_stack_space_check): Declare.
28717
28718 2015-05-20  Alan Modra  <amodra@gmail.com>
28719
28720         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
28721         (direct_return): Test vrsave_size rather than vrsave_mask.
28722         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
28723         (rs6000_emit_epilogue): Likewise.
28724
28725 2015-05-20  Alan Modra  <amodra@gmail.com>
28726
28727         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
28728         when not saving registers.
28729         (debug_stack_info): Adjust to omit printing unused offsets,
28730         as before.
28731         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
28732         expression.
28733
28734 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28735
28736         PR c++/65835
28737         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
28738         value_type to const char *.
28739
28740 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
28741
28742         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
28743         to build a biarch toolchain again.
28744
28745 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28746
28747         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
28748         or implicit declarations.
28749         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
28750         into it.
28751         (get_odr_type): Check type has linkage before adding bases.
28752         (register_odr_type): Check that type has linkage before adding it.
28753         (type_known_to_have_no_deriavations_p): Rename to ..
28754         (type_known_to_have_no_derivations_p): This one.
28755         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
28756         (type_known_to_have_no_derivations_p): This one.
28757         * ipa-polymorphic-call.c
28758         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
28759         type has linkage.
28760
28761 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28762
28763         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
28764         (layout_type): Use RECORD_OR_UNION_TYPE_P.
28765
28766 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28767
28768         * config/s390/s390.c (s390_vector_bool_type_p): New function.
28769         (s390_invalid_binary_op): New function.
28770         (TARGET_INVALID_BINARY_OP): Define macro.
28771
28772 2015-05-19  David Sherwood  <david.sherwood@arm.com>
28773
28774         * loop-invariant.c (create_new_invariant): Don't calculate address cost
28775         if mode is not a scalar integer.
28776         (get_inv_cost): Increase computational cost for unused invariants.
28777
28778 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28779
28780         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
28781         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
28782         * config/s390/s390-builtin-types.def: New file.
28783         * config/s390/s390-builtins.def: New file.
28784         * config/s390/s390-builtins.h: New file.
28785         * config/s390/s390-c.c: New file.
28786         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
28787         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
28788         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
28789         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
28790         prototypes.
28791         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
28792         Include.
28793         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
28794         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
28795         variable definitions.
28796         (s390_const_operand_ok): New function.
28797         (s390_expand_builtin): Rewrite.
28798         (s390_init_builtins): New function.
28799         (s390_handle_vectorbool_attribute): New function.
28800         (s390_attribute_table): Add s390_vector_bool attribute.
28801         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
28802         (s390_branch_condition_mask): Generate masks for new modes.
28803         (s390_expand_vec_compare_cc): New function.
28804         (s390_mangle_type): Add mangling for vector bool types.
28805         (enum s390_builtin): Remove.
28806         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
28807         efpc builtins.
28808         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
28809         s390_cpu_cpp_builtins.
28810         (REGISTER_TARGET_PRAGMAS): New macro.
28811         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
28812         (insn_cmp mode attribute): Add new CC modes.
28813         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
28814         (lcbb): New pattern definition.
28815         * config/s390/s390intrin.h: Include vecintrin.h.
28816         * config/s390/t-s390: New file.
28817         * config/s390/vecintrin.h: New file.
28818         * config/s390/vector.md: Include vx-builtins.md.
28819         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
28820         support.
28821
28822 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28823
28824         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
28825         CCVFHE.
28826         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
28827         (s390_select_ccmode): Likewise.
28828         (s390_canonicalize_comparison): Swap operands if necessary.
28829         (s390_expand_vec_compare_scalar): Expand DFmode compare using
28830         single element vector instructions.
28831         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
28832         (s390_branch_condition_mask): Generate CC masks for the new modes.
28833         * config/s390/s390.md (v0, vf, vd): New mode attributes.
28834         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
28835         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
28836         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
28837         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
28838         (*extend<DSF:mode><BFP:mode>2): New insn definition.
28839         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
28840         (extend<DSF:mode><BFP:mode>2): Turn into expander.
28841         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
28842         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
28843         (sqrt<mode>2): Add vector instruction.
28844
28845 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28846
28847         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
28848         constraints.
28849         * config/s390/predicates.md (const0_operand, constm1_operand)
28850         (constable_operand): Accept vector operands.
28851         * config/s390/s390-modes.def: Add supported vector modes.
28852         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
28853         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
28854         (s390_bytemask_vector_p, s390_expand_vec_strlen)
28855         (s390_expand_vec_compare, s390_expand_vcond)
28856         (s390_expand_vec_init): Add prototypes.
28857         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
28858         (s390_vector_mode_supported_p): New function.
28859         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
28860         (s390_contiguous_bitmask_vector_p): New function.
28861         (s390_bytemask_vector_p): New function.
28862         (s390_split_ok_p): Vector regs don't work either.
28863         (regclass_map): Add VEC_REGS.
28864         (s390_legitimate_constant_p): Handle vector constants.
28865         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
28866         (legitimate_reload_vector_constant_p): New function.
28867         (s390_preferred_reload_class): Handle CONST_VECTOR.
28868         (s390_reload_symref_address):  Likewise.
28869         (s390_secondary_reload): Vector memory instructions only support
28870         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
28871         (s390_emit_ccraw_jump): New function.
28872         (s390_expand_vec_strlen): New function.
28873         (s390_expand_vec_compare): New function.
28874         (s390_expand_vcond): New function.
28875         (s390_expand_vec_init): New function.
28876         (s390_dwarf_frame_reg_mode): New function.
28877         (print_operand): Handle addresses with 'O' and 'R' constraints.
28878         (NR_C_MODES, constant_modes): Add vector modes.
28879         (s390_output_pool_entry): Handle vector constants.
28880         (s390_hard_regno_mode_ok): Handle vector registers.
28881         (s390_class_max_nregs): Likewise.
28882         (s390_cannot_change_mode_class): New function.
28883         (s390_invalid_arg_for_unprototyped_fn): New function.
28884         (s390_function_arg_vector): New function.
28885         (s390_function_arg_float): Remove size variable.
28886         (s390_pass_by_reference): Handle vector arguments.
28887         (s390_function_arg_advance): Likewise.
28888         (s390_function_arg): Likewise.
28889         (s390_return_in_memory): Vector values are returned in a VR if
28890         possible.
28891         (s390_function_and_libcall_value): Handle vector arguments.
28892         (s390_gimplify_va_arg): Likewise.
28893         (s390_call_saved_register_used): Consider the arguments named.
28894         (s390_conditional_register_usage): Disable v16-v31 for non-vec
28895         targets.
28896         (s390_preferred_simd_mode): New function.
28897         (s390_support_vector_misalignment): New function.
28898         (s390_vector_alignment): New function.
28899         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
28900         (TARGET_VECTOR_MODE_SUPPORTED_P)
28901         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
28902         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
28903         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
28904         (TARGET_VECTOR_ALIGNMENT): Define target macro.
28905         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
28906         (FIRST_PSEUDO_REGISTER): Increase value.
28907         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
28908         (VECTOR_REG_P): Define macros.
28909         (FIXED_REGISTERS, CALL_USED_REGISTERS)
28910         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
28911         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
28912         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
28913         Add vector registers.
28914         (CANNOT_CHANGE_MODE_CLASS): Call C function.
28915         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
28916         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
28917         memory.
28918         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
28919         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
28920         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
28921         (VR*_REGNUM): New constants.
28922         (ALL): New mode iterator.
28923         (INTALL): Remove mode iterator.
28924         Include vector.md.
28925         (movti): Implement TImode moves for VRs.
28926         Disable TImode splitter for VR targets.
28927         Implement splitting TImode GPR<->VR moves.
28928         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
28929         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
28930         reload<mode>_la_in, reload<mode>_la_out.
28931         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
28932         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
28933         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
28934         (mov<mode> SF SD): Prefer lder, lde for loading.
28935         Add lrl and strl instructions.
28936         Add vector instructions.
28937         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
28938         Call s390_expand_vec_strlen on z13.
28939         (*cc_to_int): Change predicate to nonimmediate_operand.
28940         (addti3): Rename to *addti3.  New expander.
28941         (subti3): Rename to *subti3.  New expander.
28942         * config/s390/vector.md: New file.
28943
28944 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28945
28946         * common/config/s390/s390-common.c (processor_flags_table): Add
28947         z13.
28948         * config.gcc: Add z13.
28949         * config/s390/s390-opts.h (enum processor_type): Add
28950         PROCESSOR_2964_Z13.
28951         * config/s390/s390.c (s390_adjust_priority): Check for
28952         PROCESSOR_2964_Z13.
28953         (s390_reorg): Likewise.
28954         (s390_sched_reorder): Likewise.
28955         (s390_sched_variable_issue): Likewise.
28956         (s390_loop_unroll_adjust): Likewise.
28957         (s390_option_override): Likewise. Default to -mvx when available.
28958         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
28959         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
28960         (TARGET_VX_ABI): Define macros.
28961         macros.
28962         (TARGET_DEFAULT): Add MASK_OPT_VX.
28963         * config/s390/s390.md ("cpu" attribute): Add z13.
28964         ("cpu_facility" attribute): Add vec.
28965         * config/s390/s390.opt (processor_type): Add z13.
28966         (mvx): New options.
28967         * doc/invoke.texi: Add z13 option for -march.
28968
28969 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28970
28971         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
28972         mode check to make sure that only scalar integer values are
28973         accepted.
28974
28975 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28976
28977         * tree.c (verify_type_variant): Fix #undef.
28978         (gimple_canonical_types_compatible_p): Move here from lto.c
28979         (verify_type): Verify TYPE_CANONICAL compatibility.
28980         * tree.h (gimple_canonical_types_compatible_p): Declare.
28981
28982 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28983
28984         PR middle-end/66199
28985         * tree.h (OMP_TEAMS_COMBINED): Define.
28986         * gimplify.c (enum gimplify_omp_var_data): Add
28987         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
28988         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
28989         (omp_notice_variable): Accept both ORT_TEAMS
28990         and ORT_COMBINED_TEAMS.  Don't recurse if
28991         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
28992         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
28993         GOVD_FIRSTPRIVATE.
28994         (omp_no_lastprivate): New function.
28995         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
28996         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
28997         notice_outer and set appropriate bits, otherwise make
28998         sure default(none) combined constructs won't complain.
28999         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
29000         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
29001         omp_no_lastprivate either remove the clause or turn it
29002         into OMP_CLAUSE_PRIVATE.
29003         (gimplify_omp_for): Fix up handling of implicit
29004         lastprivate or linear iterators.
29005         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
29006         ORT_COMBINED_TEAMS.
29007         * omp-low.c (lower_omp_for_lastprivate): For combined
29008         for simd use fd.loop.n2 from the for rather than simd.
29009
29010 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29011
29012         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
29013         instead of gen_rtx_raw_REG.
29014         (cris_expand_epilogue): Likewise.
29015         * config/microblaze/microblaze.c (microblaze_classify_address):
29016         Likewise.
29017         * config/sparc/sparc.md: Likewise.
29018
29019 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
29020
29021         * config/alpha/alpha.c (alpha_legitimize_reload_address)
29022         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
29023         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
29024         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
29025         Use CASE_CONST_SCALAR_INT.
29026         (print_operand) <case 'M'>: Use mode_width_operand to check the
29027         value of the constant.
29028         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
29029         * config/alpha/predicates.md (input_operand): Use general_operand
29030         instead of match_code as operand check.
29031         (symbolic_operand): Use match_code with subexpression digits.
29032         * config/alpha/constraints.md (Q): Ditto.
29033
29034 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29035
29036         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
29037
29038 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29039
29040         * config/s390/s390.c (s390_secondary_reload): Fix check for
29041         load/store relative.
29042
29043 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29044
29045         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
29046         alternative_mask to uint64_t.
29047
29048 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
29049
29050         PR tree-optimization/66187
29051         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
29052         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
29053         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
29054
29055 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
29056
29057         * diagnostic.c (diagnostic_report_current_module): Strengthen
29058         local "new_map" from const line_map * to
29059         const line_map_ordinary *.
29060         * genmatch.c (error_cb): Likewise for local "map".
29061         (output_line_directive): Likewise for local "map".
29062         * input.c (expand_location_1): Likewise for local "map".
29063         Pass NULL rather than &map to
29064         linemap_unwind_to_first_non_reserved_loc, since the value is never
29065         read from there, and the value written back not read from here.
29066         (is_location_from_builtin_token): Strengthen local "map" from
29067         const line_map * to const line_map_ordinary *.
29068         (dump_location_info): Strengthen locals "map" from
29069         line_map *, one to const line_map_ordinary *, the other
29070         to const line_map_macro *.
29071         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
29072         const line_map * to const line_map_macro *.
29073         (maybe_unwind_expanded_macro_loc): Add a call to
29074         linemap_check_macro when writing to the "map" field of the
29075         loc_map_pair.
29076         Introduce local const line_map_ordinary * "ord_map", using it in
29077         place of "map" in the part of the function where we know we have
29078         an ordinary map.  Strengthen local "m" from const line_map * to
29079         const line_map_ordinary *.
29080
29081 2015-05-19  Nick Clifton  <nickc@redhat.com>
29082
29083         PR target/66156
29084         * config/msp430/msp430.md (zero_extendhisi2): Add support for
29085         separate source and destination registers.
29086
29087 2015-05-19  Richard Biener  <rguenther@suse.de>
29088
29089         PR tree-optimization/66165
29090         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
29091         for no load permutation.
29092
29093         PR tree-optimization/66185
29094         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
29095         when building the SLP node from scalars.
29096
29097 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29098             Tristan Gingold  <gingold@adacore.com>
29099
29100         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
29101         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
29102         (expand_stack_restore): Call record_new_stack_level.
29103         (expand_stack_save): Do not call do_pending_stack_adjust.
29104         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
29105         * calls.c (expand_call): Call record_new_stack_level for alloca.
29106         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
29107         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
29108         (update_sjlj_context): New global function.
29109         * except.h (update_sjlj_context): Declare.
29110         * explow.c (record_new_stack_level): New global function.
29111         (allocate_dynamic_stack_space): Call record_new_stack_level.
29112         * explow.h (record_new_stack_level): Declare.
29113         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
29114         * cfgrtl.c (duplicate_insn_chain): Likewise.
29115
29116 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29117
29118         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
29119         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
29120         STACK_GROWS_DOWNWARD as normal if.
29121         (expand_call): Likewise.
29122
29123 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
29124
29125         PR target/54236
29126         * config/sh/sh.md (*round_int_even): New insn_and_split and
29127         accompanying new unnamed split.
29128
29129 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29130
29131         * bitmap.c (bitmap_set_range): Handle count==1 specially.
29132         (bitmap_clear_range): Likewise.
29133         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
29134         bitmap_set_range unconditionally.
29135         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29136         * df-scan.c (df_mark_reg): Likewise.
29137         * haifa-sched.c (setup_ref_regs): Likewise.
29138         * sched-rgn.c (update_live_1): Likewise.
29139
29140 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29141
29142         * regs.h (END_HARD_REGNO): Delete.
29143         (END_REGNO): Move to...
29144         * rtl.h: ...here.
29145         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
29146         * caller-save.c (mark_set_regs): Likewise.
29147         * combine.c (move_deaths, distribute_notes): Likewise.
29148         * cse.c (invalidate, invalidate_for_call): Likewise.
29149         * df-scan.c (df_ref_record): Likewise.
29150         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
29151         (record_last_reg_set_info): Likewise.
29152         * reg-stack.c (convert_regs_exit): Likewise.
29153         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
29154         * resource.c (update_live_status): Likewise.
29155         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
29156
29157 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29158
29159         * rtl.h (reg_info): Add an nregs field.
29160         (REG_NREGS): Use it.
29161         (SET_REGNO_RAW): Delete.
29162         (set_regno_raw): New function.
29163         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
29164         (END_REGNO): Redefine in terms of REG_NREGS.
29165         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
29166         SET_REGNO_RAW.
29167         * emit-rtl.c (set_mode_and_regno): Likewise.
29168         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
29169         instead of SET_REGNO_RAW.
29170
29171 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29172
29173         * rtl.h (PUT_MODE_RAW): New macro.
29174         (PUT_REG_NOTE_KIND): Use it.
29175         (set_mode_and_regno): Declare.
29176         (gen_raw_REG): Change regno to "unsigned int".
29177         (gen_rtx_REG): Change "unsigned" to "unsigned int".
29178         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
29179         use set_mode_and_regno to change the mode of registers.
29180         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
29181         * emit-rtl.c (set_mode_and_regno): New function.
29182         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
29183         * caller-save.c (reg_save_code): Use set_mode_and_regno.
29184         * expr.c (init_expr_target): Likewise.
29185         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29186         * postreload.c (reload_cse_simplify_operands): Likewise.
29187
29188 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29189
29190         * caller-save.c (init_caller_save): Use word_mode and
29191         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
29192         * expr.c (init_expr_target): Likewise.
29193         * ira.c (setup_prohibited_mode_move_regs): Likewise.
29194         * postreload.c (reload_cse_regs_1): Likewise.
29195
29196 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29197
29198         * rtl.def (REG): Change format to "r".
29199         * rtl.h (rtunion): Remove rt_reg.
29200         (reg_info): New structure.
29201         (rtx_def): Add reg field to main union.
29202         (X0REGATTR): Delete.
29203         (REG_CHECK): New macro.
29204         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
29205         * rtl.c (rtx_format): Document "r".
29206         (rtx_code_size): Handle REG specially.
29207         * gengenrtl.c (special_format): Return true for formats
29208         that include 'r'.
29209         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
29210         Deal with REG_ATTRS after the field loop.
29211         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
29212         * expmed.c (init_expmed): Call gen_raw_REG instead of
29213         gen_rtx_raw_REG.
29214         * expr.c (init_expr_target): Likewise.
29215         * regcprop.c (maybe_mode_change): Likewise.
29216         * varasm.c (make_decl_rtl): Likewise.
29217         * final.c (leaf_renumber_regs_insn): Return early after
29218         handling REGs.
29219         * genemit.c (gen_exp): Handle 'r' fields.
29220         * genpeep.c (match_rtx): Likewise.
29221         * gensupport.c (subst_pattern_match): Likewise.
29222         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
29223         (alter_constraints, subst_dup): Likewise.
29224         * read-rtl.c (read_rtx_code): Likewise.
29225         * print-rtl.c (print_rtx): Likewise.
29226         * genrecog.c (find_operand, find_matching_operand): Likewise.
29227         (validate_pattern, match_pattern_2): Likewise.
29228         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
29229         (rtx_test::regno_field): New function.
29230         (operator ==, safe_to_hoist_p, transition_parameter_type)
29231         (parameter_type_string, print_parameter_value)
29232         (print_nonbool_test, print_test): Handle new enum values.
29233         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
29234         * lra-constraints.c (operands_match_p): Likewise.
29235
29236 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29237
29238         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
29239         Change type of new_regno to unsigned int.
29240         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
29241         new_regno to unsigned int.
29242         (df_ref_change_reg_with_loc): Remove old_regno parameter.
29243         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
29244         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
29245         (SET_REGNO_RAW): Add space after ",".
29246
29247 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29248
29249         * rtl.h (REG_NREGS): New macro
29250         * alias.c (record_set): Use it.
29251         * cfgcleanup.c (mark_effect): Likewise.
29252         * combine.c (likely_spilled_retval_1): Likewise.
29253         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
29254         (move_deaths, distribute_notes): Likewise.
29255         * cselib.c (cselib_record_set): Likewise.
29256         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
29257         * df-scan.c (df_mark_reg): Likewise.
29258         * dse.c (look_for_hardregs): Likewise.
29259         * dwarf2out.c (reg_loc_descriptor): Likewise.
29260         (multiple_reg_loc_descriptor): Likewise.
29261         * expr.c (write_complex_part, read_complex_part): Likewise.
29262         (emit_move_complex): Likewise.
29263         * haifa-sched.c (setup_ref_regs): Likewise.
29264         * ira-lives.c (mark_hard_reg_live): Likewise.
29265         * lra.c (lra_set_insn_recog_data): Likewise.
29266         * mode-switching.c (create_pre_exit): Likewise.
29267         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
29268         (reload_combine_recognize_pattern): Likewise.
29269         (reload_combine_note_use, move2add_record_mode): Likewise.
29270         (reload_cse_move2add): Likewise.
29271         * reg-stack.c (subst_stack_regs_pat): Likewise.
29272         * regcprop.c (kill_value, copy_value): Likewise.
29273         (copyprop_hardreg_forward_1): Likewise.
29274         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
29275         (build_def_use): Likewise.
29276         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
29277         (deps_analyze_insn): Likewise.
29278         * sched-rgn.c (check_live_1, update_live_1): Likewise.
29279         * sel-sched.c (count_occurrences_equiv): Likewise.
29280         * valtrack.c (dead_debug_insert_temp): Likewise.
29281
29282 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
29283
29284         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
29285         * dse.c (note_add_store): Likewise.
29286         * ira-lives.c (mark_hard_reg_dead): Likewise.
29287         * loop-invariant.c (mark_reg_store): Likewise.
29288         (mark_reg_death): Likewise.
29289         * postreload.c (reload_combine): Likewise.
29290         (reload_combine_note_store): Likewise.
29291         (reload_combine_note_use): Likewise.
29292         * recog.c (peep2_reg_dead_p): Likewise.
29293
29294 2015-05-19  Alan Modra  <amodra@gmail.com>
29295
29296         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
29297         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
29298         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
29299         unused predicates.
29300         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
29301         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
29302         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
29303         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
29304
29305 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
29306
29307         * config/mips/mips.md (JOIN_MODE): New mode iterator.
29308         (join2_load_Store<JOIN_MODE:mode>): New pattern.
29309         (join2_loadhi): Likewise.
29310         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
29311         load-load and store-stores.
29312         * config/mips/mips.opt (mload-store-pairs): New option.
29313         (TARGET_LOAD_STORE_PAIRS): New macro.
29314         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
29315         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
29316         * config/mips/mips.c (mips_load_store_bonding_p): New function.
29317
29318 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
29319
29320         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
29321         explicit swaps.
29322         * dojump.c (do_compare_rtx_and_jump): Likewise.
29323         * expmed.c (emit_store_flag_1): Likewise.
29324         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
29325         * final.c (sprint_ul): Use std::reverse for reversing a string.
29326         * fold-const.c (extract_muldiv_1): Use std::swap.
29327         * genmodes.c (emit_mode_int_n): Likewise.
29328         * ifcvt.c (dead_or_predicable): Likewise.
29329         * ira-build.c (ira_merge_live_ranges): Likewise.
29330         (swap_allocno_copy_ends_if_necessary): Likewise.
29331         * ira.c (ira_setup_alts): Likewise.
29332         * loop-iv.c (iv_analyze_expr): Likewise.
29333         (implies_p): Likewise.
29334         (canon_condition): Likewise.
29335         * lra-constraints.c (swap_operands): Likewise.
29336         * lra-lives.c (lra_merge_live_ranges): Likewise.
29337         * omega.c (swap): Remove.
29338         (bswap): Remove.
29339         (omega_unprotect_1): Use std::swap.
29340         (omega_solve_geq): Likewise.
29341         * optabs.c (expand_binop_directly): Likewise.
29342         (expand_binop): Likewise.
29343         (emit_conditional_move): Likewise.
29344         (emit_conditional_add): Likewise.
29345         * postreload.c (reload_cse_simplify_operands): Likewise.
29346         * reg-stack.c (emit_swap_insn): Likewise.
29347         (swap_to_top): Likewise.
29348         (compare_for_stack_reg): Likewise.
29349         (subst_asm_stack_regs): Likewise.
29350         * reload.c (find_reloads): Likewise.
29351         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
29352         * sel-sched.c (invoke_reorder_hooks): Likewise.
29353         (create_block_for_bookkeeping): Likewise.
29354         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
29355         (lambda_matrix_right_hermite): Use std::swap.
29356         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
29357         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29358         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
29359         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
29360         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
29361         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
29362         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
29363         * tree-vrp.c (compare_ranges): Likewise.
29364         * var-tracking.c (add_with_sets): Likewise.
29365         (vt_find_locations): Likewise.
29366
29367 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
29368
29369         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
29370         pie executables.
29371         (FBSD_ENDFILE_SPEC): Likewise.
29372         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
29373         config/freebsd-spec.h.
29374         (ENDFILE_SPEC): Likewise.
29375
29376 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
29377             Richard Henderson  <rth@redhat.com>
29378
29379         PR target/57032
29380         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
29381         Check for a memory location that is not a reference (using an AND)
29382         to an unaligned location here.
29383         * config/alpha/predicates.md (normal_memory_operand): Remove.
29384
29385 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
29386
29387         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
29388         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
29389
29390 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
29391
29392         * config/mips/mips.c (micromips_globals): New variable.
29393         (mips_set_compression_mode): Save and reinitialize target-dependent
29394         state for microMIPS.
29395
29396 2015-05-18  Martin Liska  <mliska@suse.cz>
29397
29398         * dbgcnt.def: Add new counter.
29399         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
29400
29401 2015-05-18  Martin Liska  <mliska@suse.cz>
29402
29403         * dbgcnt.def: Sort counters.
29404         * opts.c (common_handle_option): Do not compile if
29405         -fdbg-cnt-list is enabled.
29406
29407 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29408
29409         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
29410         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
29411         address operator to va_list operand.
29412         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
29413         unconditionally.
29414         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
29415         operand.
29416         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
29417         * config/s390/s390.c (s390_gimplify_va_arg): Same.
29418         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
29419
29420 2015-05-18  Tom de Vries  <tom@codesourcery.com>
29421
29422         * tree-ssa-tail-merge.c: Fix whitespace.
29423
29424 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
29425
29426         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
29427         cortex-a17, and cortex-a17.cortex-a7.
29428
29429 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
29430
29431         PR target/54236
29432         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
29433
29434 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
29435
29436         PR target/66174
29437         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
29438         QImode inner modes for TARGET_AVX512BW.  Force mask operand
29439         to a register for AVX512F modes.
29440
29441 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29442
29443         * toplev.c (emit_debug_global_declarations): Do not output debug info
29444         when doing slim LTO objects.
29445
29446 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29447
29448         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
29449         odr_types_equivalent_p): Declare.
29450         (odr_type_p): Use gcc_checking_assert.
29451         (type_in_anonymous_namespace_p) Declare.
29452         (type_with_linkage_p): Declare.
29453         * common.opt (Wlto-type-mismatch): New warning.
29454         * ipa-devirt.c (compound_type_base): New function.
29455         (odr_or_derived_type_p): New function.
29456         (odr_types_equivalent_p): New function.
29457         (add_type_duplicate): Simplify.
29458         (type_with_linkage_p): Add hack to prevent false positives on C types
29459         (type_in_anonymous_namespace_p): Likewise.
29460         * tree.c (need_assembler_name_p): Use type_with_linkage.
29461         * tree.h (type_in_anonymous_namespace_p): Remove.
29462         * doc/invoke.texi (-Wlto-type-mismatch): Document
29463
29464 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
29465
29466         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
29467         (verify_type): Verify STRING_FLAG.
29468
29469 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29470
29471         PR fortran/44054
29472         * tree-pretty-print.c (percent_K_format): Replace locus pointer
29473         with accessor function.
29474         * tree-diagnostic.c (diagnostic_report_current_function): Use
29475         diagnostic_location function.
29476         (maybe_unwind_expanded_macro_loc): Likewise.
29477         (virt_loc_aware_diagnostic_finalizer): Likewise.
29478         (default_tree_printer): Replace locus pointer with accessor function.
29479         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
29480         (diagnostic_set_info_translated): Initialize second location.
29481         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
29482         (diagnostic_show_locus): Handle two locations. Call
29483         diagnostic_print_caret_line.
29484         (diagnostic_print_caret_line): New.
29485         (default_diagnostic_starter): Use diagnostic_location function.
29486         (diagnostic_report_diagnostic): Use diagnostic_location function.
29487         (verbatim): Do not set text.locus.
29488         * diagnostic.h (struct diagnostic_info): Remove location field.
29489         (struct diagnostic_context): Make caret_chars an array of two.
29490         (diagnostic_location): New inline.
29491         (diagnostic_expand_location): Handle two locations.
29492         (diagnostic_same_line): New inline.
29493         (diagnostic_print_caret_line): Declare.
29494         (CARET_LINE_MARGIN): New constant.
29495         * pretty-print.c (pp_printf): Do not set text.locus.
29496         (pp_verbatim): Do not set text.locus.
29497         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
29498         (struct text_info): Replace locus pointer with locations
29499         array. Add accessor functions.
29500
29501 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
29502             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29503
29504         PR target/65768
29505         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
29506         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
29507          large constants in register instead of splitting them.
29508
29509 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
29510
29511         PR target/66140
29512         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
29513         replacements in memory addresses.
29514         (get_unaligned_address): Ditto.
29515
29516 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
29517
29518         * config/ft32/*: New files for FT32 port.
29519         * doc/install.texi: Add FT32 information.
29520         * doc/invoke.texi: Add FT32 information.
29521         * doc/md.texi: Add FT32 information.
29522         * doc/contrib.texi: Self added.
29523
29524 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
29525
29526         PR tree-optimization/64454
29527         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
29528         (-1 - A -> ~A): Remove unnecessary condition.
29529
29530 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
29531
29532         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
29533         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
29534         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
29535
29536 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
29537
29538         * ipa-chkp.h (chkp_wrap_function): New.
29539         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
29540         (chkp_wrap_function_name): New.
29541         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
29542         to get wrapper name.
29543         * lto-cgraph.c: Include ipa-chkp.h.
29544         (input_cgraph_1): Avoid alias chain for wrappers.
29545
29546 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
29547
29548         PR middle-end/66134
29549         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
29550         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
29551
29552 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29553
29554         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
29555         (AARCH64_FL_SLOWMUL): Delete.
29556         (AARCH64_FL_CRC): Redefine to 1<<3.
29557         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
29558
29559 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29560
29561         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
29562         casting.
29563
29564 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29565
29566         * config/alpha/alpha.md (extendqidi2): Use general_operand
29567         instead of some_operand for operand[1] predicate.
29568         (extendhidi2): Ditto.
29569         (cbranchdi4): Use general_operand instead of some_operand
29570         for operand[1] and operands[2] predicates.
29571         (cstoredi4): Ditto.
29572         * config/alpha/predicates.md (some_operand): Remove unused predicate.
29573         (some_ni_operand): Ditto.
29574
29575 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
29576
29577         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
29578         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
29579         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
29580         low part of the constant using alpha_emit_set_const_1.
29581         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
29582
29583 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
29584
29585         * varasm.c (output_constant_pool_1): Pass down alignment from
29586         constant pool entry's descriptor to output_constant_pool_2.
29587         (output_object_block): Add comment prior to call to
29588         output_constant_pool_1.
29589
29590 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
29591
29592         PR rtl-optimization/65862
29593         * target.def (ira_change_pseudo_allocno_class): New hook.
29594         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
29595         value of the hook.
29596         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
29597         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
29598         hook.
29599         * ira-costs.c (find_costs_and_classes): Call the hook and change
29600         classes when it is necessary.
29601         * doc/tm.texi: Update.
29602
29603 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
29604
29605         * config/i386/i386.md (sibcall_memory): Check that register with
29606         callee address is not also used as one of the arguments, instead
29607         of checking that it is not live after the sibcall.
29608         (sibcall_pop_memory): Ditto.
29609         (sibcall_value_memory): Ditto.
29610         (sibcall_value_pop_memory): Ditto.
29611
29612 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
29613
29614         * generic-match-head.c (types_match): Handle non-types.
29615         * gimple-match-head.c (types_match): Likewise.
29616         * match.pd: Remove unnecessary TREE_TYPE for types_match.
29617
29618 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
29619
29620         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
29621         (csneg3<mode>_insn): Enable expansion of pattern.
29622
29623 2015-05-14  Nick Clifton  <nickc@redhat.com>
29624
29625         * config/rl78/rl78.c (rl78_select_section): Select the correct
29626         default section based upon the category of the decl.
29627
29628 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29629
29630         PR rtl-optimization/30967
29631         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
29632         destination mode for the cost of scc patterns.
29633
29634 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29635
29636         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
29637         using SWIM248 mode iterator.
29638         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
29639         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
29640         for operand[2] constraint.
29641         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
29642
29643 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29644
29645         PR middle-end/66133
29646         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
29647         make sure it is never noreturn, even when the task body does not
29648         return.
29649         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
29650         right before GIMPLE_OMP_RETURN.
29651         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
29652         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
29653         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
29654
29655 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29656
29657         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
29658         * tree-ssa-math-opts.c: Include params.h
29659         (pow_synth_sqrt_info): New struct.
29660         (representable_as_half_series_p): New function.
29661         (get_fn_chain): Likewise.
29662         (print_nested_fn): Likewise.
29663         (dump_fractional_sqrt_sequence): Likewise.
29664         (dump_integer_part): Likewise.
29665         (expand_pow_as_sqrts): Likewise.
29666         (gimple_expand_builtin_pow): Use above to attempt to expand
29667         pow as series of square roots.  Removed now unused variables.
29668
29669 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
29670
29671         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
29672         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
29673         Remove *p0 and *p1 arguments.  Rewrite function.
29674         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
29675         (alpha_split_const_mov): Update calls to alpha_extract_integer and
29676         alpha_emit_set_long_const.
29677         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
29678         (alpha_output_mi_thunk_osf): Ditto.
29679         * config/alpha/alpha.md (movti): Do not check operands[1]
29680         for CONST_DOUBLE.
29681
29682 2015-05-13  Richard Biener  <rguenther@suse.de>
29683
29684         PR tree-optimization/66129
29685         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
29686         commutative.
29687         (vect_schedule_slp_instance): Fix typo.
29688
29689 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
29690
29691         * common.opt (fdump-internal-locations): New option.
29692         * input.c: Include diagnostic-core.h.
29693         (get_end_location): New function.
29694         (write_digit): New function.
29695         (write_digit_row): New function.
29696         (dump_location_range): New function.
29697         (dump_labelled_location_range): New function.
29698         (dump_location_info): New function.
29699         * input.h (dump_location_info): New prototype.
29700         * toplev.c (compile_file): Handle flag_dump_locations.
29701
29702 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
29703
29704         * gimple-expr.h (is_gimple_constant): Reorder.
29705         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
29706
29707 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
29708
29709         * combine.c (simplify_set): When generating a CC set, if the
29710         source already is in the correct mode, do not wrap it in a
29711         compare.  Simplify the rest of that code.
29712
29713 2015-05-13  Richard Biener  <rguenther@suse.de>
29714
29715         PR tree-optimization/66123
29716         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
29717         a taken edge.
29718
29719 2015-05-13  Richard Biener  <rguenther@suse.de>
29720
29721         PR middle-end/66110
29722         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
29723         specially.
29724         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
29725
29726 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29727
29728         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
29729         * aclocal.m4: Regenerated with automake-1.11.6.
29730
29731 2015-05-13  Tom de Vries  <tom@codesourcery.com>
29732
29733         PR tree-optimization/66010
29734         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
29735         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
29736         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
29737         and rval based on do_deref.
29738
29739 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29740
29741         PR target/65103
29742         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
29743         link time constants into adress expressions and therefore set
29744         their cost to 0.
29745
29746 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
29747
29748         PR target/66112
29749         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
29750         Use SWI248 iterator instead of SWI.
29751         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
29752         Use eq_attr "alternative" "0" instead of match_test in
29753         length_immediate attribute computation.
29754         (*mulvhi4, *mulvhi4_1): New define_insns.
29755
29756         PR target/66112
29757         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
29758         SIGNED to get precision of non-negative value.
29759
29760 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29761
29762         PR target/66048
29763         * function.c (diddle_return_value_1): Process bounds first.
29764         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
29765         register.
29766
29767 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29768
29769         PR rtl-optimization/64616
29770         * loop-invariant.c (can_move_invariant_reg): New.
29771         (move_invariant_reg): Call above new function to decide whether
29772         instruction can just be moved, skipping creation of temporary
29773         register.
29774
29775 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29776
29777         PR target/pr66047.c
29778         * i386.c (ix86_function_sseregparm): Only return -1 if local function
29779         with implied regparm is called from -mno-sse function.
29780         (init_cumulative_args): Output error if ix86_function_sseregparm
29781         return -1 and SSE register would be needed.
29782         (function_arg_advance_32): Likewise.
29783         (function_arg_32): Likewise.
29784         * i386.h (ix86_args): Add decl field.
29785
29786 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29787
29788         PR ipa/65873
29789         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
29790         inlines across optimization boundary.
29791
29792 2015-05-12  Jason Merrill  <jason@redhat.com>
29793
29794         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
29795         string literal and macro name.
29796
29797 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
29798
29799         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
29800         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
29801         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
29802
29803 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29804
29805         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
29806         (-Wmisleading-indentation): New option.
29807         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
29808
29809 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
29810
29811         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
29812         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
29813         (alpha_extract_integer): Ditto.
29814         (alpha_legitimate_constant_p): Ditto.
29815         (alpha_split_tmode_pair): Ditto.
29816         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
29817         (alpha_expand_mov): Ditto.
29818         (print_operand): Remove handling of 'H' modifier.
29819         <case 'm'>: Remove CONST_DOUBLE handling.
29820         (summarize_insn): Handle CONST_WIDE_INT.
29821         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
29822         (anddi3): Ditto.
29823         (movti): Handle CONST_WIDE_INT.
29824         * config/alpha/constraints.md ('H'): Remove constraint definition.
29825         ('G'): Do not match MODE_FLOAT class.
29826         * config/alpha/predicates.md (const0_operand): Also match
29827         const_wide_int.
29828         (non_add_const_operand): Ditto.
29829         (non_zero_const_operand): Ditto.
29830         (some_operand): Ditto.
29831         (input_operand): Ditto.  Handle CONST_WIDE_INT.
29832         (and_operand): Do not match const_double.
29833         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
29834
29835 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
29836
29837         PR target/65697
29838         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
29839         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
29840         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
29841         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
29842         is_mm_seq_cst, is_mm_sync): New accessor functions.
29843         * builtins.c (expand_builtin_sync_operation,
29844         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
29845         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
29846         (get_memmodel,  expand_builtin_atomic_compare_exchange,
29847         expand_builtin_atomic_load, expand_builtin_atomic_store,
29848         expand_builtin_atomic_clear): Use new accessor routines.
29849         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
29850         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
29851         (maybe_emit_sync_lock_test_and_set): Use new accessors and
29852         MEMMODEL_SYNC_ACQUIRE.
29853         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
29854         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
29855         expand_atomic_store): Use new accessors.
29856         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
29857         * tsan.c (instrument_builtin_call): Update check for memory model beyond
29858         final enum to use MEMMODEL_LAST.
29859         * c-family/c-common.c: Use new accessor for memmodel_base.
29860         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
29861         accessors.
29862         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
29863         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
29864         mem_thread_fence, *dmb): Likewise.
29865         * config/alpha/alpha.c (alpha_split_compare_and_swap,
29866         alpha_split_compare_and_swap_12): Likewise.
29867         * config/arm/arm.c (arm_expand_compare_and_swap,
29868         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
29869         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
29870         atomic_loaddi): Likewise.
29871         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
29872         Likewise.
29873         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
29874         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
29875         use new accessors.
29876         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
29877         atomic_store<mode>, atomic_compare_and_swap<mode>,
29878         atomic_exchange<mode>): Use new accessors.
29879         * config/mips/mips.c (mips_process_sync_loop): Likewise.
29880         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
29881         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
29882         rs6000_post_atomic_barrier): Add new cases.
29883         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
29884         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
29885         (atomic_load<mode>): Add new cases and use new accessors.
29886         (store_quadpti): Add new cases.
29887         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
29888         accessors.
29889         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
29890         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
29891         model, not 8.
29892
29893 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
29894
29895         * ipa-devirt.c (type_with_linkage_p): New function.
29896         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
29897         type has linkage.
29898         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
29899         (can_be_name_hashed_p): Simplify.
29900         (hash_odr_name): Check that type has linkage before checking if it is
29901         anonymous.
29902         (types_same_for_odr): Likewise.
29903         (odr_name_hasher::equal): Likewise.
29904         (odr_subtypes_equivalent_p): Likewise.
29905         (warn_types_mismatch): Likewise.
29906         (get_odr_type): Likewise.
29907         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
29908         * ipa-utils.h (odr_type_p): Move offline.
29909         * tree.c (need_assembler_name_p): Fix handling of types
29910         without linkages.
29911         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
29912
29913 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
29914
29915         * timevar.c (timevar_enable): Delete in favor of...
29916         (g_timer): New global.
29917         (struct timevar_def): Move to timevar.h inside class timer.
29918         (struct timevar_stack_def): Likewise.
29919         (timevars): Delete global in favor of field "m_timevars" within
29920         class timer in timevar.h
29921         (stack): Likewise, in favor of field "m_stack".
29922         (unused_stack_instances): Likewise, in favor of field
29923         "m_unused_stack_instances".
29924         (start_time): Likewise, in favor of field "m_start_time".
29925         (get_time): Eliminate check for timevar_enable.
29926         (timer::timer): New function, built from part of timevar_init.
29927         (timevar_init): Rewrite idempotency test from using
29928         "timevar_enable" bool to using dynamic allocation of "g_timer".
29929         Move rest of implementation into timer's constructor.
29930         (timevar_push_1): Rename to...
29931         (timer::push): ...this, adding "m_" prefixes to variables that
29932         are now fields of timer.
29933         (timevar_pop_1): Likewise, rename to...
29934         (timer::pop): ...this, and add "m_" prefixes.
29935         (timevar_start): Replace test for "timevar_enable" with one for
29936         "g_timer", and move bulk of implementation to...
29937         (timer::start): ...here, adding "m_" prefixes.
29938         (timevar_stop): Likewise, from here...
29939         (timer::stop): ...to here.
29940         (timevar_cond_start): Likewise, from here...
29941         (timer::cond_start): ...to here.
29942         (timevar_cond_stop): Likewise, from here...
29943         (timer::cond_stop): ...to here.
29944         (validate_phases): Rename to...
29945         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
29946         locals "total" and "tv" const.
29947         (timevar_print): Rename to...
29948         (timer::print): ...this, and add "m_" prefixes.  Make locals
29949         "total" and "tv" const.  Eliminate test for timevar_enable.
29950         * timevar.h (timevar_enable): Eliminate.
29951         (g_timer): New declaration.
29952         (timevar_push_1): Eliminate.
29953         (timevar_pop_1): Eliminate.
29954         (timevar_print): Eliminate.
29955         (class timer): New class.
29956         (timevar_push): Rewrite to use g_timer.
29957         (timevar_pop): Likewise.
29958         * toplev.c (toplev::~toplev): Likewise.
29959
29960 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
29961
29962         * arm-protos.h (arm_sched_autopref): Delete.
29963         (tune_params): Re-organize, use enums for flag values.
29964         (FUSE_OPS): New macro.
29965         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
29966         (ARM_PREFETCH_BENEFICIAL): Likewise.
29967         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
29968         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
29969         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
29970         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
29971         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
29972         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
29973         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
29974         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
29975         format.
29976         (arm_option_override, thumb2_reorg, arm_print_tune_info)
29977         (aarch_macro_fusion_pair_p): Update uses of current_tune.
29978         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
29979
29980 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
29981
29982         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
29983         "break".
29984
29985 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
29986             Sandra Loosemore <sandra@codesourcery.com>
29987
29988         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
29989         value.
29990         (REG_CLASS_NAMES): Add "IJMP_REGS".
29991         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
29992         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
29993         use new "c" register constraint.
29994         * config/nios2/constraint.md (c): New register constraint
29995         corresponding to IJMP_REGS.
29996
29997 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29998
29999         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
30000         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
30001         define_splits): Delete, revamp, transmogrify into ...
30002         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
30003         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
30004         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
30005         New.
30006
30007 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30008
30009         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
30010         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
30011
30012 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30013
30014         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
30015         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
30016         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
30017         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
30018         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
30019         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
30020         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
30021         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
30022         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
30023         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
30024         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
30025         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
30026         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
30027         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
30028         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
30029         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
30030         and 30 corresponding splitters): Delete.
30031
30032 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30033
30034         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
30035         zero_extract.
30036
30037 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30038
30039         * combine.c (recog_for_combine_1): New function, factored out
30040         from recog_for_combine.
30041         (change_zero_ext): New function.
30042         (recog_for_combine): If recog fails, try again with the pattern
30043         modified by change_zero_ext; if that still fails, restore the
30044         pattern.
30045
30046 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
30047
30048         * combine.c (get_undo_marker): New function.
30049         (undo_to_marker): New function, largely factored out from ...
30050         (undo_all): ... this.  Adjust.
30051
30052 2015-05-12  Richard Biener  <rguenther@suse.de>
30053
30054         PR tree-optimization/66101
30055         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
30056         fixup if we turn a loop exit edge to a fallthru edge.
30057
30058 2015-05-12  Richard Biener  <rguenther@suse.de>
30059
30060         PR tree-optimization/37021
30061         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
30062         (SLP_TREE_TWO_OPERATORS): New define.
30063         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
30064         SLP_TREE_TWO_OPERATORS.
30065         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
30066         SLP node.
30067         (vect_build_slp_tree): Adjust.
30068         (vect_analyze_slp_cost_1): Likewise.
30069         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
30070         emitting two vector stmts and mixing the results.
30071
30072 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30073
30074         * call.c (print_z_candidates): Remove dead code.
30075
30076 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30077
30078         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
30079         and zEC12_simple_fp.
30080         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
30081         to 1.
30082
30083 2015-05-12  Tom de Vries  <tom@codesourcery.com>
30084
30085         PR tree-optimization/66010
30086         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
30087         ifn_va_arg.
30088         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
30089         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
30090         va_lists are passed, and remove corresponding handling.
30091         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
30092         do_deref argument to ifn_va_arg.
30093         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
30094         ifn_va_arg.
30095
30096 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30097
30098         PR target/65955
30099         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
30100         REG before taking its REGNO.
30101
30102 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30103
30104         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
30105         rsp->sign_bit_copies and rsp->nonzero_bits into ...
30106         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
30107         present to get more accurate information about the number of sign bit
30108         copies and non zero bits.
30109
30110 2015-05-12  Richard Biener  <rguenther@suse.de>
30111
30112         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
30113         do not allow unrolling.
30114
30115 2015-05-11  Richard Henderson  <rth@redhat.com>
30116
30117         * config/i386/i386-modes.def (CCP): New.
30118         * config/i386/i386.c (put_condition_code): Handle it.
30119         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
30120
30121 2015-05-11  Richard Henderson  <rth@redhat.com>
30122
30123         * target.def (md_asm_clobbers): Replace with...
30124         (md_asm_adjust): this.
30125         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
30126         (TARGET_MD_ASM_ADJUST): New.
30127         * tm.texi: Rebuild.
30128         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
30129         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
30130         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
30131
30132         * cfgexpand.c (check_operand_nalternatives): Accept vector of
30133         constraints instead of lists of outputs and inputs.
30134         (expand_asm_stmt): Save and restore input_location around the
30135         body of the function.  Move asm data into vectors instead of
30136         building tree lists.  Generate cleanup sequences as needed,
30137         rather than waiting til the end.  Use new md_asm_adjust hook.
30138
30139         * config/vxworks.c: Include vec.h before target.h.
30140         * gimple.c: Likewise.
30141         * incpath.c: Likewise.
30142         * mode-switching.c: Likewise.
30143
30144         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
30145         (cris_md_asm_adjust): this.
30146         (TARGET_MD_ASM_CLOBBERS): Remove.
30147         (TARGET_MD_ASM_ADJUST): New.
30148         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
30149         (ix86_md_asm_adjust): this.
30150         (TARGET_MD_ASM_CLOBBERS): Remove.
30151         (TARGET_MD_ASM_ADJUST): New.
30152         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
30153         (mn10300_md_asm_adjust): this.
30154         (TARGET_MD_ASM_CLOBBERS): Remove.
30155         (TARGET_MD_ASM_ADJUST): New.
30156         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
30157         (rs6000_md_asm_adjust): this.
30158         (TARGET_MD_ASM_CLOBBERS): Remove.
30159         (TARGET_MD_ASM_ADJUST): New.
30160         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
30161         (visium_md_asm_adjust): this.
30162         (TARGET_MD_ASM_CLOBBERS): Remove.
30163         (TARGET_MD_ASM_ADJUST): New.
30164
30165 2015-05-11  Richard Henderson  <rth@redhat.com>
30166
30167         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
30168         if noutputs is zero.
30169         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
30170
30171         * cfgexpand.c (expand_asm_operands): Merge into...
30172         (expand_asm_stmt): ... here.
30173
30174         * cfgexpand.c (expand_asm_operands): Don't call
30175         resolve_asm_operand_names.
30176         * stmt.c (resolve_asm_operand_names): Clarify block comment.
30177
30178 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
30179
30180         * dwarf2out.c (gen_member_die): Sanity check that we access
30181         TYPE_MAIN_VARIANT for TYPE_METHODS.
30182         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
30183         checking TYPE_METHODS.
30184         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
30185         if non-null.
30186         (build_distinct_type_copy): Clear TYPE_METHODS.
30187         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
30188         (verify_type): Allow TYPE_METHODS to be error_mark_node.
30189         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
30190
30191 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
30192
30193         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
30194         (emit_pattern_before_setloc): Likewise.
30195
30196 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30197
30198         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
30199         for define_peephole2s.
30200         (get_peephole2_pattern): New function.
30201         (main): Use it.  Call validate_pattern.
30202
30203 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30204
30205         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
30206         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
30207         (Last callee saved reg is different for AVR_TINY architecture)
30208
30209 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30210
30211         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
30212         when looking for memory references.
30213
30214 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30215
30216         PR target/65753
30217         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
30218         via function pointers.
30219
30220 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
30221
30222         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
30223         indirect call by forcing address into a pseudo with -fno-plt.
30224         * common.opt (flag_plt): New option.
30225         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
30226         ([-fno-plt]): Document.
30227
30228 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
30229
30230         PR bootstrap/66105
30231         * config/rs6000/option-defaults.h: Add space between string literal
30232         and macro name.
30233
30234 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30235
30236         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
30237         accross ARM targets.
30238
30239 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30240
30241         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
30242         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
30243
30244 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
30245
30246         PR rtl-optimization/66076
30247         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
30248         Don't grow the heap array if it is already big enough from a
30249         previous iteration.
30250
30251 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30252
30253         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
30254         (is_called_in_ARM_mode): Remove.
30255         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
30256         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
30257         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
30258          arm_declare_function_name.
30259
30260 2015-05-11  Christian Bruel  <christian.bruel@st.com>
30261
30262         * config/arm/arm.c (arm_option_override): Reoganized and split into :
30263         (arm_option_params_internal); New function.
30264         (arm_option_check_internal): New function.
30265         (arm_option_override_internal): New function.
30266         (thumb_code, thumb1_code): Remove.
30267         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
30268         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
30269         (thumb_code, thumb1_code): Remove.
30270         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
30271
30272 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
30273
30274         * config/alpha/alpha.c (alpha_emit_set_const_1)
30275         (alpha_emit_set_long_const, alpha_extract_integer)
30276         (alpha_legitimate_constant_p, alpha_split_const_mov)
30277         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
30278         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30279         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
30280         HOST_WIDE_INT_1U.
30281         * config/alpha/predicates.md (mode_mask_operand): Do not match
30282         const_double RTX.
30283         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30284         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
30285         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
30286         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
30287         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
30288
30289 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
30290
30291         PR target/65780
30292         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
30293         default_binds_local_p_2.
30294         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
30295         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
30296
30297 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30298
30299         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
30300
30301 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30302
30303         Patch by Richard Biener
30304         * coverage.c (coverage_obj_init): Delay building of type variant
30305         until the type is finished.
30306
30307 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30308
30309         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
30310         mismatch between C and C++ type; compoare correctly ARG_TYPES
30311         for non-prototypes and output correctly parameter index for METHOD_TYPE.
30312         (odr_types_equivalent_p): Fix wording of warning about attributes;
30313         it is OK to match prototype and non-prototype.
30314
30315 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30316
30317         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
30318         TYPE_ARG_TYPES list.
30319         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
30320         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
30321
30322 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
30323
30324         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
30325         * tree.h (is_lang_specific): Constify.
30326
30327 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
30328
30329         PR tree-optimization/64454
30330         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
30331         Rewrite.
30332
30333 2015-05-08  Jason Merrill  <jason@redhat.com>
30334
30335         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
30336         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
30337         config/darwin.h, config/darwin9.h, config/elfos.h,
30338         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
30339         config/microblaze/microblaze.h, config/mips/mips.h,
30340         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
30341         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
30342         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
30343         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
30344         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
30345         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
30346         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
30347         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
30348         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
30349         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
30350         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
30351         between string literal and macro name.
30352
30353 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30354
30355         * jump.c: Change argument types to rtx_insn *.
30356         * rtl.h: Adjust.
30357
30358 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30359
30360         * lra-constraints.c: Change argument type to rtx_insn *.
30361
30362 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30363
30364         * df-problems.c: Change argument type to rtx_insn *.
30365
30366 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30367
30368         * combine.c: Change argument type to rtx_insn *.
30369
30370 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30371
30372         * rtl.h: Adjust.
30373         * rtlanal.c: Change argument type to rtx_insn *.
30374
30375 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30376
30377         * sched-deps.c: Change argument types to rtx_insn *.
30378         * sched-int.h: Adjust.
30379
30380 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30381
30382         * dwarf2cfi.c: Change argument type to rtx_insn *.
30383
30384 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30385
30386         * ira.c (decrease_live_ranges_number): Changetype of local
30387         variable to rtx_insn *.
30388         * recog.c: Change argument types to rtx_insn *.
30389         * recog.h: Adjust.
30390
30391 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30392
30393         * reorg.c: Change argument types to rtx_insn *.
30394
30395 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30396
30397         * ira-color.c: Change argument types to rtx_insn *.
30398         * lra-eliminations.c: Likewise.
30399         * ira.h: Adjust.
30400
30401 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30402
30403         * gcse.c: Change argument types to rtx_insn *.
30404
30405 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30406
30407         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
30408
30409 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30410
30411         * emit-rtl.c (emit_debug_insn_before): Change argument type to
30412         rtx_insn *.
30413         * rtl.h: Adjust.
30414
30415 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30416
30417         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
30418         * rtl.h: Adjust.
30419
30420 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30421
30422         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
30423         * rtl.h: Adjust.
30424
30425 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30426
30427         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
30428         * rtl.h: Adjust.
30429
30430 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30431
30432         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
30433         * rtl.h: Adjust.
30434
30435 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30436
30437         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
30438         to rtx_insn *.
30439         * rtl.h: Adjust.
30440
30441 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30442
30443         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
30444         to rtx_insn *.
30445         * rtl.h: Likewise.
30446
30447 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30448
30449         * except.c (can_nonlocal_goto): Change type of argument to
30450         rtx_insn *.
30451         * rtl.h: Adjust.
30452
30453 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30454
30455         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
30456         * rtl.h: Adjust.
30457
30458 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30459
30460         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
30461         * cfgrtl.c (can_delete_label_p): Adjust.
30462         * rtl.h: likewise.
30463
30464 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30465
30466         * reorg.c (stop_search_p): Change argument to rtx_insn *.
30467
30468 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30469
30470         * except.c (make_reg_eh_region_note): Change argument to
30471         rtx_insn *.
30472         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
30473         * except.h: Adjust.
30474
30475 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30476
30477         * mode-switching.c (commit_mode_sets): Change type of local
30478         variable from rtx to rtx_insn *.
30479
30480 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
30481
30482         * doc/install.texi (--enable-languages): Add missing jit and lto info.
30483         Add ^ to grep command.
30484         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
30485         arg to last gimple_simplify declaration.  Add missing gimple_build
30486         declaration for built-in function case with four tree args.
30487
30488 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30489             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30490
30491         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
30492         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
30493         (GNU_USER_DYNAMIC_LINKERN32): Update.
30494
30495 2015-05-08  Richard Biener  <rguenther@suse.de>
30496
30497         PR tree-optimization/66036
30498         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30499         Handle strided group loads.
30500         (vect_verify_datarefs_alignment): Likewise.
30501         (vect_enhance_data_refs_alignment): Likewise.
30502         (vect_analyze_group_access): Likewise.
30503         (vect_analyze_data_ref_access): Likewise.
30504         (vect_analyze_data_ref_accesses): Likewise.
30505         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
30506         (vectorizable_load): Likewise.
30507
30508 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
30509
30510         * config/rs6000/rs6000.md: Require operand inequality in one
30511         of the peepholes.
30512
30513 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30514             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
30515
30516         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
30517         from (set ...).
30518         * config/rx/rx.md (movdi, movdf): Likewise.
30519         Likewise for define_peephole2s.
30520
30521 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30522
30523         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
30524         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
30525         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
30526         vtst_u64): Rewrite using gcc vector extensions.
30527
30528 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30529
30530         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
30531         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
30532
30533 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
30534
30535         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
30536
30537 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30538
30539         * config/glibc-stdint.h (OPTION_MUSL): Define.
30540         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
30541         Change the definition based on OPTION_MUSL for 64 bit targets.
30542         * config/linux.h (OPTION_MUSL): Redefine.
30543         * config/alpha/linux.h (OPTION_MUSL): Redefine.
30544         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
30545         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
30546
30547 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
30548             Szabolcs Nagy  <szabolcs.nagy@arm.com>
30549
30550         * config.gcc (LIBC_MUSL): New tm_defines macro.
30551         * config/linux.h (OPTION_MUSL): Define.
30552         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
30553         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
30554         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30555         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30556         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30557         * config/linux.opt (mmusl): New option.
30558         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
30559         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30560         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30561         * configure: Regenerate.
30562
30563 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
30564             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30565
30566         PR target/48904
30567         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
30568         * config/i386/knetbsd-gnu64.h: New file.
30569
30570 2015-05-08  Marek Polacek  <polacek@redhat.com>
30571
30572         PR c/64918
30573         * doc/invoke.texi: Document -Woverride-init-side-effects.
30574
30575 2015-05-07  Marek Polacek  <polacek@redhat.com>
30576
30577         PR c/65179
30578         * doc/invoke.texi: Document -Wshift-negative-value.
30579
30580 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
30581
30582         * gcov-tool.c (do_merge): Refactore to remove int ret.
30583         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
30584         !type == FUNC to type != FUNC.
30585         * reload.h (struct target_reload): Changee to type of
30586         x_spill_indirect_levels from bool to unsigned char.
30587
30588 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
30589
30590         * rtl.h (always_void_p): New function.
30591         * gengenrtl.c (always_void_p): Likewise.
30592         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
30593         with code foo are always VOIDmode.
30594         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
30595         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
30596         compare-elim.c, config/aarch64/aarch64.c,
30597         config/aarch64/aarch64.md, config/alpha/alpha.c,
30598         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
30599         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
30600         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
30601         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
30602         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
30603         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
30604         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
30605         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
30606         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
30607         config/ia64/vect.md, config/iq2000/iq2000.c,
30608         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
30609         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
30610         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
30611         config/mep/mep.c, config/microblaze/microblaze.c,
30612         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
30613         config/mn10300/mn10300.c, config/msp430/msp430.c,
30614         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
30615         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
30616         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
30617         config/rs6000/altivec.md, config/rs6000/rs6000.c,
30618         config/rs6000/rs6000.md, config/rs6000/vector.md,
30619         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
30620         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
30621         config/sh/sh.md, config/sh/sh_treg_combine.cc,
30622         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
30623         config/spu/spu.md, config/stormy16/stormy16.c,
30624         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
30625         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
30626         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
30627         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
30628         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
30629         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
30630         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
30631         var-tracking.c: Update calls accordingly.
30632
30633 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
30634
30635         PR middle-end/192
30636         PR middle-end/54303
30637         * varasm.c (function_mergeable_rodata_prefix): New function.
30638         (mergeable_string_section): Use it.
30639         (mergeable_constant_section): Use it.
30640
30641 2015-05-07  Jeff Law  <law@redhat.com>
30642
30643         PR target/39726
30644         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30645         simplifier to narrow arithmetic.
30646         * generic-match-head.c: (types_match, single_use): New functions.
30647         * gimple-match-head.c: (types_match, single_use): New functions.
30648
30649 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
30650
30651         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
30652         rtx type.
30653
30654 2015-05-07  Richard Biener  <rguenther@suse.de>
30655
30656         PR tree-optimization/66002
30657         * passes.def: Schedule another pass_merge_phi after ifcombine, right
30658         before phiopt.
30659
30660 2015-05-07  Marek Polacek  <polacek@redhat.com>
30661             Martin Uecker  <uecker@eecs.berkeley.edu>
30662
30663         * doc/invoke.texi: Document -fsanitize=bounds-strict.
30664         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
30665         into SANITIZE_NONDEFAULT.
30666         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
30667
30668 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
30669
30670         PR target/66015
30671         * config/alpha/alpha.c (alpha_override_options_after_change): New.
30672         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
30673         (alpha_override_options): Move align_loops, align_jumps and
30674         align_functions handling into alpha_override_options_after_change.
30675
30676 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
30677             Chris Jones  <chrisj@nvidia.com>
30678             Joshua Conner  <jconner@nvidia.com>
30679
30680         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
30681         linking of crtfastmath.o.
30682         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
30683
30684 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
30685
30686         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
30687         (cstore<mode>4_unsigned_imm): New expander.
30688         (cstore<mode>4): Remove empty constraint strings.  Use the new
30689         expanders.
30690
30691 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
30692
30693         PR target/64208
30694         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
30695         alternatives.
30696
30697 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
30698
30699         * config/aarch64/geniterators.sh: Use standard BRE in sed.
30700
30701 2015-05-06  Alan Modra  <amodra@gmail.com>
30702
30703         PR target/66033
30704         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
30705         (UNSPEC_NOP): Define.
30706         (reload_vsx_from_gpr<mode>): Add missing DONE.
30707         (reload_gpr_from_vsx<mode>): Likewise.
30708         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
30709         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
30710
30711 2015-05-06  Christian Bruel  <christian.bruel@st.com>
30712
30713         PR target/66015
30714         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
30715         align_jumps, align_functions into aarch64_override_options_after_change.
30716
30717 2015-05-06  Richard Biener  <rguenther@suse.de>
30718
30719         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
30720         vect_transform_slp_perm_load to check if we support a permutation
30721         for basic-block vectorization.
30722
30723 2015-05-06  Nick Clifton  <nickc@redhat.com>
30724
30725         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
30726         used, even if it is not being used as a frame pointer.
30727
30728 2015-05-05  Jason Merrill  <jason@redhat.com>
30729
30730         * dwarf2out.c (gen_member_die): Don't emit anything for an
30731         anonymous class constructor.
30732
30733 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
30734
30735         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
30736         that it reflects the block structure.
30737         (afdo_propagate_edge): Likewise.
30738         (afdo_calculate_branch_prob): Likewise.
30739         (afdo_annotate_cfg): Likewise.
30740         * cfgcleanup.c (equal_different_set_p): Likewise.
30741         (try_crossjump_to_edge): Likewise.
30742         * cgraph.c (cgraph_node::verify_node): Likewise.
30743         * cgraphunit.c (expand_all_functions): Likewise.
30744         * config/i386/i386.c (ix86_expand_copysign): Likewise.
30745         (exact_dependency_1): Likewise.
30746         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
30747         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
30748         * gensupport.c (process_define_subst): Likewise.
30749         * lto-wrapper.c (merge_and_complain): Likewise.
30750         * tree-if-conv.c (if_convertible_bb_p): Likewise.
30751         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
30752         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
30753         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
30754         * tree-vect-loop.c (vectorizable_reduction): Likewise.
30755         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
30756         * tree-vect-stmts.c (vectorizable_shift): Likewise.
30757         * tree-vrp.c (vrp_finalize): Likewise.
30758         * tree.c (variably_modified_type_p): Likewise.
30759
30760 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
30761
30762         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
30763         on darwin12 and later.
30764         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
30765         file to pass -rdynamic on darwin12 and later.
30766         * config/darwin.opt (rdynamic): Add.
30767
30768 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30769
30770         * doc/extend.texi (C Extensions): Update menu for moved Variable
30771         Attributes and Type Attributes sections.
30772
30773 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30774
30775         PR target/65990
30776         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
30777         if rep_8byte stringop strategy was specified for 32-bit target.
30778
30779 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
30780
30781         PR target/65915
30782         * config/i386/i386.md (vector convert to float spltiter): Check for
30783         xmm16+, when splitting scalar float conversion.
30784         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
30785
30786 2015-05-05  Nick Clifton  <nickc@redhat.com>
30787
30788         * config/msp430/msp430-opts.h (enum msp430_regions): New.
30789         * config/msp430/msp430.c (msp430_override_options): Complain if
30790         -mcode-region or -mdata-region is used on a non MSP430X.
30791         (msp430_section_attr): New function.  Checks lower, upper and
30792         either attributes.
30793         (msp430_attribute_table): Add lower, upper and either.
30794         (gen_prefix): New function.  Generates a prefix for a section
30795         name.
30796         (msp430_select_section): New function - handles the choice of
30797         section for an object.  Takes into account memory region
30798         attributes and options.
30799         (msp430_function_section): Use gen_prefix.
30800         (TARGET_SECTION_TYPE_FLAGS): Define.
30801         (msp430_section_type_flags): New function.
30802         (TARGET_ASM_UNIQUE_SECTION): Define.
30803         (msp430_unique_section): New function.
30804         (msp430_output_aligned_decl_common): New function.
30805         (msp430_do_not_relax_short_jumps): New function.
30806         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
30807         Define.
30808         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
30809         * config/msp430/msp430-protos.h
30810         (msp430_do_not_relax_short_jumps): New prototype.
30811         (msp430_output_aligned_decl_common): New prototype.
30812         * config/msp430/msp430.md (length): New attribute.
30813         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
30814         then use a long code sequence for short jumps.
30815         * config/msp430/msp430.opt (mcode-region): New.
30816         (mdata-region): New.
30817         * doc/invoke.texi: Document new options.
30818         * doc/extend.texi: Document new attributes.
30819
30820 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30821
30822         * config/aarch64-protos.h (struct cpu_branch_cost): New.
30823         (tune_params): Add field branch_costs.
30824         (aarch64_branch_cost): Declare.
30825         * config/aarch64.c (generic_branch_cost): New.
30826         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
30827         (cortexa53_tunings): Likewise.
30828         (cortexa57_tunings): Likewise.
30829         (thunderx_tunings): Likewise.
30830         (xgene1_tunings): Likewise.
30831         (aarch64_branch_cost): Define.
30832         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
30833
30834 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30835
30836         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
30837         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
30838         * config/i386/i386.md: Ditto.
30839         * config/i386/winnt.c: Ditto.
30840
30841 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
30842
30843         * doc/extend.texi (__atomic Builtins): Move implementation details
30844         to the end of the description, rewrite opening paragraphs, state
30845         difference with __sync builtins, state C11/C++11 assumptions,
30846         weaken itemized descriptions, add explanation of memory model
30847         behaviour, expand description of compare-exchange, simplify text.
30848
30849 2015-05-05  Renlin Li  <renlin.li@arm.com>
30850
30851         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
30852
30853 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
30854
30855         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
30856         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30857         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
30858         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
30859         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
30860         * configure: Regenerate.
30861         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
30862         * doc/install.texi (aarch64*-*-*): Document new
30863         --enable-fix-cortex-a53-843419 option.
30864         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
30865         and -mno-fix-cortex-a53-843419 options.
30866
30867 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
30868
30869         PR target/65871
30870         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
30871
30872 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
30873
30874         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
30875         fix overactive TYPE_MIN_VALUE check and add FIXME for type
30876         compatibility problems.
30877
30878 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30879
30880         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
30881         constraints.
30882         (cbranchsi4_reg): New.
30883         * config/microblaze/microblaze.c
30884         (microblaze_expand_conditional_branch_reg): New.
30885         * config/microblaze/microblaze-protos.h
30886         (microblaze_expand_conditional_branch_reg): New prototype.
30887
30888 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
30889
30890         * config/microblaze/microblaze.md (peephole2): New.
30891
30892 2015-05-04  Jeff Law  <law@redhat.com>
30893
30894         Revert:
30895         2015-05-04  Jeff Law  <law@redhat.com>
30896
30897         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30898         simplifier to narrow arithmetic.
30899         * generic-match-head.c: (types_match, single_use): New functions.
30900         * gimple-match-head.c: (types_match, single_use): New functions.
30901
30902 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30903
30904         PR target/65987
30905         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
30906         (split_branches): Likewise.
30907
30908 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
30909
30910         * common.opt (fdelete-null-pointer-checks): Init to -1.
30911         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
30912         override flag_delete_null_pointer_checks default.
30913         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
30914         behavior re address zero.  Better document target-specific behavior.
30915         (-fisolate-errneous-paths-dereference): Mention relationship to
30916         -fdelete-null-pointer-checks.
30917
30918 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30919
30920         PR tree-optimization/65984
30921         * ubsan.c: Include tree-cfg.h.
30922         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
30923         stmt_could_throw_p test, rename can_throw variable to ends_bb.
30924
30925 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30926
30927         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
30928         to CONST_DOUBLE_P predicate.
30929         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
30930         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
30931         allow only operands that satisfy standard_sse_constant_p predicate.
30932         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
30933         to CONST_DOUBLE_P predicate.
30934
30935 2015-05-04  Jeff Law  <law@redhat.com>
30936
30937         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30938         simplifier to narrow arithmetic.
30939         * generic-match-head.c: (types_match, single_use): New functions.
30940         * gimple-match-head.c: (types_match, single_use): New functions.
30941
30942 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
30943
30944         * config/arm/arm.c: Restore bootstrap.
30945
30946 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30947
30948         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
30949         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
30950         as CONST_WIDE_INT, not CONST_DOUBLE.
30951         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
30952         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
30953         (ix86_find_base_term): Do not check for CONST_DOUBLE.
30954         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
30955         (ix86_build_signbit_mask): Rewrite using wide ints.
30956         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
30957         (ix86_rtx_costs): Handle CONST_WIDE_INT.
30958         (find_constant): Ditto.
30959         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
30960         using gen_int_mode.
30961         * config/i386/predicates.md (x86_64_immediate_operand)
30962         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30963         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
30964         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30965         (const0_operand): Also match const_wide_int.
30966         (constm1_operand): Ditto.
30967         (const1_operand): Ditto.
30968
30969 2015-05-04  Richard Biener  <rguenther@suse.de>
30970
30971         PR tree-optimization/65965
30972         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
30973         store groups at gaps.
30974
30975 2015-05-04  Richard Biener  <rguenther@suse.de>
30976
30977         PR tree-optimization/65935
30978         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
30979         then make sure to apply that swapping to the IL.
30980
30981 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30982
30983         * Makefile.in (PATCHLEVEL_c): New variable.
30984         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
30985         expand the same way as if DEVPHASE_c was non-empty.
30986
30987 2015-05-04  Kai Tietz  <ktietz@redhat.com>
30988
30989         PR target/65559
30990         * lto-wrapper.c (run_gcc): Open filename
30991         in binary-mode.
30992
30993 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
30994
30995         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
30996         sections up in file, to immediately after the Function Attributes
30997         section.
30998
30999 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
31000
31001         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
31002
31003 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31004
31005         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
31006         (insert_partition_copy_on_edge): Adjust.
31007         (insert_rtx_to_part_on_edge): Likewise.
31008         (insert_part_to_rtx_on_edge): Likewise.
31009
31010 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31011
31012         * function.c (set_return_jump_label): Change type of argument to
31013         rtx_insn *.
31014         * function.h (set_return_jump_label): Adjust.
31015
31016 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31017
31018         * reload.h (struct reg_equivs_t): Change type of init to
31019         rtx_insn *.
31020         * ira.c (fix_reg_equiv_init): Adjust.
31021         * reload1.c (eliminate_regs_1): Likewise.
31022         (init_eliminable_invariants): Likewise.
31023
31024 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31025
31026         * cselib.c (fp_setter_insn): Take a rtx_insn *.
31027         * cselib.h (fp_setter_insn): Adjust.
31028
31029 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31030
31031         * recog.c (struct validate_replace_src_data): Change type of
31032         insn field to rtx_insn *.
31033         (validate_replace_src_group): Change type of argument to rtx_insn *.
31034         * recog.h (validate_replace_src_group): Adjust.
31035
31036 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31037
31038         * haifa-sched.c: Change the type of some variables to rtx_insn *.
31039         * sched-deps.c: Likewise.
31040         * sched-int.h: Likewise.
31041         * sched-rgn.c: Likewise.
31042         * sel-sched.c: Likewise.
31043
31044 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31045
31046         to rtx_insn *.
31047         * config/i386/i386.c: Change the type of some arguments to
31048         rtx_insn *.
31049         * config/arm/arm.c: Likewise.
31050
31051 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31052
31053         * lra-constraints.c: Change type of some arguments to rtx_insn *.
31054
31055 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31056
31057         * regcprop.c (kill_autoinc_value): Change type of argument to
31058         rtx_insn *.
31059
31060 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31061
31062         * genrecog.c (print_subroutine): Adjust.
31063         * recog.c (get_bool_attr_mask_uncached): Likewise.
31064         * recog.h (struct recog_data_d): Change the type of insn to
31065         rtx_insn *.
31066
31067 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31068
31069         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
31070
31071 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31072
31073         * df-problems.c (df_set_note): Change type of argument to
31074         rtx_insn *.
31075
31076 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31077
31078         * builtins.c (expand_builtin_trap): Change type of local
31079         variable to rtx_insn *.
31080         (add_sched_insns_for_speculation): Likewise.
31081         (ix86_emit_save_regs): Likewise.
31082         (get_scratch_register_on_entry): Likewise.
31083         (ix86_emit_restore_reg_using_pop): Likewise.
31084         (ix86_emit_leave): Likewise.
31085         (ix86_emit_restore_regs_using_mov): Likewise.
31086         (ix86_expand_epilogue): Likewise.
31087         Likewise.
31088         (rl78_alloc_physical_registers_umul): Likewise.
31089         * cselib.c (discard_useless_locs): Likewise.
31090         (cselib_invalidate_regno): Likewise.
31091         (cselib_invalidate_mem): Likewise.
31092         * function.c (expand_function_start): Likewise.
31093         (emit_use_return_register_into_block): Likewise.
31094         * gcse.c: Likewise.
31095         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
31096         * ifcvt.c (noce_get_alt_condition): Likewise.
31097         * loop-doloop.c (doloop_condition_get): Likewise.
31098         * lra-constraints.c (inherit_in_ebb): Likewise.
31099         * modulo-sched.c (sms_schedule_by_order): Likewise.
31100         * recog.c (next_insn_tests_no_inequality): Likewise.
31101         * reorg.c (emit_delay_sequence): Likewise.
31102         (update_reg_dead_notes): Likewise.
31103         (fix_reg_dead_note): Likewise.
31104         (fill_slots_from_thread): Likewise.
31105         (delete_computation): Likewise.
31106
31107 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
31108
31109         * doc/extend.texi (Variable Attributes): Add menu and proper
31110         @nodes to subsections.  Move Microsoft Windows attributes to
31111         their own subsection.
31112         (Type Attributes): Reorganize introduction to remove duplicate
31113         list of attributes.  Add menu and proper @nodes to subsections.
31114         Alphabetize the main table of common attributes.
31115
31116 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
31117
31118         * match.pd: New simplification patterns.
31119         (x + (x & 1))  -> ((x + 1) & ~1)
31120         (x & ~(x & y)) -> ((x & ~y))
31121         (x | ~(x | y)) -> ((x | ~y))
31122
31123 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31124
31125         * target.def (attribute_table): Mention that struct attribute_spec
31126         is defined in tree-core.h rather than tree.h
31127         * doc/tm.texi: Regenerate.
31128
31129 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
31130
31131         * genrecog.c (test): Rename to rtx_test.  Update rest of file
31132         accordingly.
31133
31134 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
31135
31136         PR translation/65959
31137         * params.h (DEFPARAM): Rename msgid to nocmsgid.
31138
31139 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31140
31141         * config/aarch64/aarch64-protos.h (tune_params):
31142         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
31143         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
31144         Return value depending on target.
31145         (generic_tunings): Initialize new target settings.
31146         (cortexa53_tunings): Likewise.
31147         (cortexa57_tunings): Likewise.
31148         (thunderx_tunings): Likewise.
31149         (xgene1_tunings): Likewise.
31150
31151 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31152
31153         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
31154         Make Cortex-A53 shift costs more accurate.
31155
31156 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31157
31158         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
31159         UNSIGNED_FLOAT.
31160
31161 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
31162
31163         * config/aarch64/aarch64.c (aarch64_rtx_costs):
31164         Calculate cost of op0 and op1 in PLUS and MINUS cases.
31165
31166 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31167
31168         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
31169         Add cost of op0 in the compare-with-fpzero case.
31170
31171 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
31172
31173         * builtins.c (fold_builtin_1): Remove spurious second
31174         semicolon.
31175         * cgraph.h (symtab_node::get_availability): Likewise.
31176         * opts.c (common_handle_option): Remove spurious second semicolon.
31177         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
31178         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
31179
31180 2015-04-30  Caroline Tice  <cmtice@google.com>
31181
31182         PR gcov-profile/65929
31183         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
31184         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
31185         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
31186         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
31187         * doc/tm.texi: Regenerate.
31188         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
31189         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
31190         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
31191         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
31192
31193 2015-04-30  Marek Polacek  <polacek@redhat.com>
31194
31195         * varasm.c (handle_cache_entry): Fix logic.
31196
31197 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31198
31199         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
31200         (*extrsi5_insn_uxtw_alt): Likewise.
31201         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
31202         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
31203         operations.
31204
31205 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31206
31207         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
31208         fabd in ABS case.
31209
31210 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31211
31212         * config/aarch64/aarch64.md
31213         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
31214         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
31215         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
31216         appropriately.  Handle alternative EON form.
31217
31218 2015-04-30  Renlin Li  <renlin.li@arm.com>
31219
31220         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
31221         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
31222
31223 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31224
31225         PR ipa/65873
31226         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
31227         -fstrict-aliasing boundaries.
31228
31229 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31230
31231         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
31232         and [SU]MNEGL patterns.
31233
31234 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31235
31236         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
31237         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
31238         combined arithmetic-shift ops.  Properly handle all shift and extend
31239         operations that can occur in combination with PLUS/MINUS.
31240         Rename maybe_fma to compound_p.
31241         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
31242         arithmetic and shift operations.
31243
31244 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31245
31246         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
31247         rather than arith_shift cost when costing ADD/MINUS of an
31248         extended value.
31249
31250 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
31251
31252         PR lto/65948
31253         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
31254         to itself.
31255
31256 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
31257
31258         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
31259         are for the same position.
31260
31261 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
31262
31263         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
31264         vectorize_loops.
31265         (vectorize_loops): Use it.
31266
31267 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31268
31269         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
31270         for aggregate types.
31271         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
31272         type to be non_ODR.
31273         * tree.c (need_assembler_name_p): Compute mangled name for
31274         non-fundamental types and integer types.
31275
31276 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
31277
31278         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
31279         manual swaps.
31280         * expr.c (expand_expr_real_2): Likewise.
31281
31282 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31283
31284         * tree.c (build_common_builtin_nodes): Do not build
31285         __builtin_alloca_with_align as equivalent of library alloca.
31286
31287 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
31288
31289         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
31290         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
31291         bugus variants.
31292         * tree.c: Include print-tree.h and ipa-utils.h
31293         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
31294         (free_lang_data_in_cgraph): Call verify_type.
31295         (verify_type_variant): New function.
31296         (verify_type): New function.
31297         * tree.h (verify_type): Declare.
31298
31299 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
31300
31301         * config/mips/mips-cpus.def: (mips4): Change default processor
31302         from PROCESSOR_R8000 to PROCESSOR_R10000.
31303
31304 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
31305
31306         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
31307         la/jalr instead of jal.
31308
31309 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
31310
31311         PR target/65871
31312         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
31313         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
31314         (setcc+movzbl peephole2): Check also clobbered reg.
31315         (setcc+andl peephole2): Ditto.
31316
31317 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31318
31319         PR libgomp/65099
31320         * config/nvptx/mkoffload.c (target_ilp32): New variable.
31321         (main): Set it depending on "-foffload-abi=[...]".
31322         (compile_native, main): Use it to pass "-m32" or "-m64" to the
31323         compiler.
31324
31325 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31326
31327         PR target/65770
31328         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
31329         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
31330         Flip lane index back at assembly time for bigendian.
31331
31332 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
31333
31334         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
31335         * gimplify.c (gimplify_omp_workshare): Use it.
31336
31337 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31338
31339         * Makefile.in (build/genrecog.o): Depend on inchash.h.
31340         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
31341         build/inchash.o
31342         * genrecog.c: Rewrite most of the code except for the third page.
31343
31344 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31345
31346         * inchash.h, inchash.c: Include bconfig.h for build objects.
31347         * Makefile.in (build/inchash.o): New rule.
31348
31349 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
31350
31351         PR target/65924
31352         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
31353         number in type attribute expression.
31354
31355 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
31356
31357         * loop-iv.c (canon_condition): Generalize to all types of integer
31358         constant.
31359
31360 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
31361
31362         * gimple-walk.c: Prune duplicate or unneeded includes.
31363         (walk_gimple_asm): Only call parse_input_constraint or
31364         parse_output_constraint if their findings are used.
31365         Honour parse_input_constraint and parse_output_constraint
31366         result.
31367
31368 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
31369
31370         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
31371
31372 2015-04-29  Tom de Vries  <tom@codesourcery.com>
31373
31374         PR tree-optimization/65893
31375         * passes.def (pass_all_optimizations): Move pass_stdarg to after
31376         pass_dce.
31377
31378 2015-04-29  Richard Biener  <rguenther@suse.de>
31379
31380         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
31381         compute GROUP_SIZE for basic-block SLP.
31382         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
31383         take into account gaps.
31384         (vect_get_mask_element): Properly reject references to previous
31385         vectors.
31386         (vect_transform_slp_perm_load): Likewise.
31387
31388 2015-04-29  Christian Bruel  <christian.bruel@st.com>
31389
31390         PR target/64835
31391         * config/i386/i386.c (ix86_default_align): New function.
31392         (ix86_override_options_after_change): Call ix86_default_align.
31393         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
31394         (ix86_override_options_after_change): New function.
31395
31396 2015-04-28  Jeff Law  <law@redhat.com>
31397
31398         * tree-ssa-dom.c (record_equality); Fix comment typos.
31399
31400 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31401
31402         PR tree-optimization/65887
31403         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
31404
31405 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
31406
31407         * doc/extend.texi (Declaring Attributes of Functions): Split into
31408         subsections by target.  Alphabetize the table of common attributes.
31409         Rewrite some of the introductory text to reflect the new structure.
31410         Update some cross-references to point to the new subsections.
31411         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
31412         duplicate copies in the discussion of function, label, and type
31413         attributes.
31414
31415 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
31416
31417         PR bootstrap/65910
31418         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
31419
31420 2015-04-28  Jason Merrill  <jason@redhat.com>
31421
31422         PR c++/65734
31423         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
31424         (finalize_type_size): Respect TYPE_USER_ALIGN.
31425         (layout_type) [ARRAY_TYPE]: Likewise.
31426
31427 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
31428
31429         * config/arm/arm.md (*arm_movt): Fix type attribute.
31430         (*cmpsi_shiftsi): Likewise.
31431         (*cmpsi_shiftsi_swp): Likewise.
31432         (*movsicc_insn): Likewise.
31433         (*cond_move): Likewise.
31434         (*if_plus_move): Likewise.
31435         (*if_move_plus): Likewise.
31436         (*if_arith_move): Likewise.
31437         (*if_move_arith): Likewise.
31438         (*if_shift_move): Likewise.
31439         (*if_move_shift): Likewise.
31440         (*arm_movtas_ze): Likewise.
31441         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
31442         redundancy and type attribute.
31443         (*thumb2_movsi_insn): Fix type attribute.
31444         (*thumb2_addsi_short): Likewise.
31445         (thumb2_addsi3_compare0): Likewise.
31446         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
31447         attributes accordingly.
31448
31449 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
31450
31451         PR other/65911
31452         * function.c (pad_to_arg_alignment): Add parentheses.
31453
31454 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
31455
31456         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
31457         libgcc/config/frv/elf-lib.h.
31458
31459 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31460
31461         * tree-call-cdce.c: Fix example in header comment.
31462
31463 2015-04-28  Richard Biener  <rguenther@suse.de>
31464
31465         PR tree-optimization/62283
31466         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
31467         fails fatally and we are vectorizing a basic-block simply
31468         cause the child to be constructed piecewise.
31469         (vect_analyze_slp_cost_1): Adjust.
31470         (vect_detect_hybrid_slp_stmts): Likewise.
31471         (vect_bb_slp_scalar_cost): Likewise.
31472         (vect_get_constant_vectors): For piecewise constructed
31473         constants place them after the last def.
31474         (vect_get_slp_defs): Adjust.
31475         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
31476         externals for basic-block vectorization.
31477
31478 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31479
31480         PR target/63503
31481         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
31482         aarch64-*-*.
31483         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
31484         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
31485         (AARCH64_TUNE_FMA_STEERING): Likewise.
31486         * config/aarch64/aarch64-cores.def: Set
31487         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
31488         FMUL/FMADD instructions.
31489         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
31490         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
31491         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
31492         * config/aarch64/cortex-a57-fma-steering.h: New file.
31493         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
31494
31495 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
31496
31497         * gensupport.c (std_preds): Add missing codes to address_operand entry.
31498
31499 2015-04-28  Richard Biener  <rguenther@suse.de>
31500
31501         PR tree-optimization/65851
31502         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
31503         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
31504         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
31505         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
31506         (ccp_visit_phi_node): Adjust.
31507         (evaluate_stmt): For simplifications to SSA names return its
31508         lattice value if that isn't VARYING.  Return immediately when
31509         simplified to a constant.
31510         (visit_assignment): Adjust.
31511         (ccp_visit_stmt): Likewise.
31512
31513 2015-04-28  Tom de Vries  <tom@codesourcery.com>
31514
31515         PR tree-optimization/65818
31516         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
31517         evaluated.
31518
31519 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31520
31521         * calls.c (save_fixed_argument_area): Don't check
31522         ARGS_GROW_DOWNWARD with the preprocessor.
31523         (restore_fixed_argument_area): Likewise.
31524         (mem_overlaps_already_clobbered_arg_p): Likewise.
31525         (check_sibcall_argument_overlap): Likewise.
31526         (expand_call): Likewise.
31527         (emit_library_call_value_1): Likewise.
31528         (store_one_arg): Likewise.
31529         * function.c (assign_parms): Likewise.
31530         (locate_and_pad_parm): Likewise.
31531         (pad_to_arg_alignment): Likewise.
31532         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31533
31534 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31535
31536         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
31537         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
31538         * calls.c (save_fixed_argument_area): Don't chekc if
31539         ARGS_GROW_DOWNWARD is defined.
31540         (restore_fixed_argument_area): Likewise.
31541         (mem_overlaps_already_clobbered_arg_p): Likewise.
31542         (check_sibcall_argument_overlap): Likewise.
31543         (expand_call): Likewise.
31544         (emit_library_call_value_1): Likewise.
31545         (store_one_arg): Likewise.
31546         * function.c (assign_parms): Likewise.
31547         (locate_and_pad_parm): Likewise.
31548         (pad_to_arg_alignment): Likewise.
31549         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
31550
31551 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31552
31553         * defaults.h (gen_epilogue): New function.
31554         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
31555         defined.
31556         * cfgrtl.c (cfg_layout_finalize): Likewise.
31557         * df-scan.c: Likewise.
31558         * function.c (thread_prologue_and_epilogue_insns): Likewise.
31559         (reposition_prologue_and_epilogue_notes): Likewise.
31560         * reorg.c (find_end_label): Likewise.
31561         * toplev.c: Likewise.
31562
31563 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31564
31565         * bb-reorder.c (HAVE_return): Don't check if its undefined.
31566         * defaults.h (gen_simple_return): New function.
31567         (gen_simple_return): Likewise.
31568         (HAVE_return): Add default definition to false.
31569         (HAVE_simple_return): Likewise.
31570         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
31571         HAVE_return and HAVE_simple_return are defined.
31572         * function.c (gen_return_pattern): Likewise.
31573         (convert_jumps_to_returns): Likewise.
31574         (thread_prologue_and_epilogue_insns): Likewise.
31575         * reorg.c (find_end_label): Likewise.
31576         (dbr_schedule): Likewise.
31577         * shrink-wrap.c: Likewise.
31578         * shrink-wrap.h: Likewise.
31579
31580 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31581
31582         * defaults.h (EPILOGUE_USES): Add default definition of false.
31583         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
31584         * resource.c (init_resource_info): Likewise.
31585
31586 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31587
31588         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
31589         to false.
31590         * dwarf2out.c (field_byte_offset): REmove check if
31591         PCC_BITFIELD_TYPE_MATTERS is defined.
31592         * stor-layout.c (layout_decl): Likewise.
31593         (update_alignment_for_field): Likewise.
31594         (place_field): Likewise.
31595
31596 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31597
31598         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
31599         true.
31600         * regrename.c (check_new_reg_p): Remove check if
31601         HARD_REGNO_RENAME_OK is defined.
31602         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
31603
31604 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31605
31606         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
31607         * cse.c (fold_rtx): Likewise.
31608         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
31609         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
31610         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
31611         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
31612         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
31613         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
31614         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
31615         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
31616         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
31617         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
31618         * Likewise.
31619         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
31620         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
31621         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
31622         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
31623         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
31624         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
31625         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
31626         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
31627         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
31628         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
31629         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
31630         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
31631         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
31632         * doc/tm.texi: Regenerate.
31633         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
31634         either true or false.
31635
31636 2015-04-27  Jeff Law  <law@redhat.com>
31637
31638         PR tree-optimization/65217
31639         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
31640         of them has a single use, make sure it is the LHS of the implied
31641         copy.
31642
31643 2015-04-28  Alan Modra  <amodra@gmail.com>
31644
31645         PR target/65810
31646         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
31647         (offsettable_ok_by_alignment): Use minimum of decl and toc
31648         pointer alignment.  Replace dead code with assertion.
31649         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
31650         case if size exceeds toc pointer alignment.
31651         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
31652         (rs6000_emit_move): Likewise.
31653         * configure.ac: Add linker toc pointer alignment check.
31654         * configure: Regenerate.
31655         * config.in: Regenerate.
31656
31657 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
31658
31659         * config.gcc: Add h8300-*-linux.
31660         * config/h8300/linux.h: New.
31661         * config/h8300/t-linux: New.
31662         * config/h8300/h8300.c (h8300_option_override): Normal mode
31663         is not supported for h8300-*-linux.
31664         (h8300_file_start): Target priority change.
31665         (get_shift_alg): Likewise.
31666         (h8300_shift_need_scratch_p): Likewise.
31667         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
31668         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
31669
31670 2015-04-27  Caroline Tice  <cmtice@google.com>
31671
31672         * final.c (final_scan_insn):  Output cold_function_name as function
31673         type.
31674         * varasm.c (cold_function_name):  Make global.
31675         (assemble_start_function):  Re-set cold_function_name.
31676         (assemble_end_function): Output cold partition size.
31677         * varasm.h (cold_function_name):  Declare global.
31678
31679 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
31680
31681         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
31682         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
31683         constraint.
31684         (*movxi_internal_avx512f): Ditto.
31685         (define_split): Check for xmm16+, when splitting scalar float_extend.
31686         (*extendsfdf2_mixed): Use "v" constraint.
31687         (define_split): Check for xmm16+, when splitting scalar float_truncate.
31688         (*truncdfsf_fast_sse): Use "v" constraint.
31689         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
31690         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
31691         (define_peephole2): Check for xmm16+, when converting scalar
31692         float_truncate.
31693         (define_peephole2): Check for xmm16+, when converting scalar
31694         float_extend.
31695         (*fop_<mode>_comm_mixed): Use "v" constraint.
31696         (*fop_<mode>_comm_sse): Ditto.
31697         (*fop_<mode>_1_mixed): Ditto.
31698         (*sqrt<mode>2_sse): Ditto.
31699         (*ieee_s<ieee_maxmin><mode>3): Ditto.
31700
31701 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31702
31703         * combine.c (simplify_if_then_else): Use std::swap instead
31704         of manually swapping.
31705         (known_cond): Likewise.
31706         (simplify_comparison): Likewise.
31707
31708 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
31709
31710         PR target/64579
31711         * config/rs6000/htm.md: Remove all define_expands.
31712         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
31713         UNSPECV_HTM_TABORTWCI): Remove.
31714         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
31715         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
31716         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
31717         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
31718         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
31719         tabortwci_internal): Remove define_insns.
31720         (tabort<wd>c, tabort<wd>ci): New define_insns.
31721         (tabort): Use gpc_reg_operand.
31722         (tcheck): Remove operand.
31723         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
31724         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
31725         expected value.
31726         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
31727         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
31728         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
31729         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
31730         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
31731         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
31732         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
31733         (tcheck): Remove builtin argument.
31734         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
31735         not TARGET_64BIT.
31736         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
31737         tabortdc and tabortdci builtins when not in 64-bit mode.
31738         Modify code to handle the loss of the HTM define_expands.
31739         Emit code to copy the CR register to TARGET.
31740         (htm_init_builtins): Modify code to handle the loss of the HTM
31741         define_expands.
31742         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
31743         (RS6000_BTC_64BIT): Likewise.
31744         (RS6000_BTC_CR): New macro.
31745         * doc/extend.texi: Update documentation for htm builtins.
31746
31747 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31748
31749         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
31750         of manually swapping.
31751         (simplify_associative_operation): Likewise.
31752         (simplify_binary_operation): Likewise.
31753         (simplify_plus_minus): Likewise.
31754         (simplify_relational_operation): Likewise.
31755         (simplify_ternary_operation): Likewise.
31756
31757 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31758
31759         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
31760         (xs_hi_nonmemory_operand): Remove error.
31761         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
31762         general_operand rather than xs_hi_general_operand.
31763
31764 2015-04-27  Richard Biener  <rguenther@suse.de>
31765
31766         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
31767         (record_equivalences_from_stmt): Valueize rhs.
31768         (record_equality): Canonicalize x and y order via
31769         tree_swap_operands_p.  Do not swap operands for same loop depth.
31770
31771 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
31772
31773         PR target/65296
31774         PR target/65895
31775         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
31776         Add hint how to use own spec file.
31777
31778 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
31779
31780         PR tree-optimization/65875
31781         * tree-vrp.c (update_value_range): If in is_new case setting
31782         old_vr to VR_VARYING, also set new_vr to it.  Remove
31783         old_vr->type == VR_VARYING test.
31784         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
31785         SSA_PROP_INTERESTING if update_value_range returned true,
31786         but new range is VR_VARYING.
31787
31788 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31789
31790         * combine.c (sign_extend_short_imm): New.
31791         (set_nonzero_bits_and_sign_copies): Use above new function for sign
31792         extension of src short immediate.
31793         (reg_nonzero_bits_for_combine): Likewise for tem.
31794
31795 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31796
31797         * stor-layout.c (self_referential_component_ref_p): New predicate.
31798         (copy_self_referential_tree_r): Use it.
31799         (self_referential_size): Punt for simple operations directly involving
31800         self-referential component references.
31801         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
31802
31803 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31804
31805         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
31806
31807 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
31808
31809         * vec.h (vec): Make splice arguments const.  Update definitions
31810         accordingly.
31811
31812 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
31813
31814         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
31815         alternatives.
31816
31817 2015-04-26  Tom de Vries  <tom@codesourcery.com>
31818
31819         PR tree-optimization/65826
31820         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
31821
31822 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
31823
31824         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
31825         (*madd3<mode>): Ditto.
31826         (*msub4<mode>): Ditto.
31827         (*msub3<mode>): Ditto.
31828         (*nmadd4<mode>): Ditto.
31829         (*nmadd3<mode>): Ditto.
31830         (*nmadd4<mode>_fastmath): Ditto.
31831         (*nmadd3<mode>_fastmath): Ditto.
31832         (*nmsub4<mode>): Ditto.
31833         (*nmsub3<mode>): Ditto.
31834         (*nmsub4<mode>_fastmath): Ditto.
31835         (*nmsub3<mode>_fastmath): Ditto.
31836
31837 2015-04-24  Jason Merrill  <jason@redhat.com>
31838
31839         PR c++/50800
31840         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
31841         down when building TYPE_CANONICAL.
31842         (build_pointer_type_for_mode): Likewise.
31843
31844 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
31845
31846         * genrecog.c (validate_pattern): Check matching constraint refers
31847         to a lower numbered operand.
31848
31849 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31850
31851         PR target/65849
31852         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
31853         save to independent variables use the Save attribute.  This will
31854         allow these options to be modified with the #pragma/attribute
31855         target support.
31856         (-mallow-movmisalign): Likewise.
31857         (-mallow-df-permute): Likewise.
31858         (-msched-groups): Likewise.
31859         (-malways-hint): Likewise.
31860         (-malign-branch-targets): Likewise.
31861         (-mvectorize-builtins): Likewise.
31862         (-msave-toc-indirect): Likewise.
31863
31864         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
31865         can be set via the #pragma/attribute target support.
31866         (rs6000_opt_vars): Likewise.
31867         (rs6000_inner_target_options): If VSX was set, also set
31868         -mno-avoid-indexed-addresses.
31869
31870 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31871
31872         * config/arm/iterators.md (shiftable_ops): Rename to...
31873         (SHIFTABLE_OPS): ... This.  Update use in comments.
31874         (ior_xor): Rename to...
31875         (IOR_XOR): ... This.
31876         (vqh_ops): Rename to...
31877         (VQH_OPS): ... This.
31878         (vqhs_ops): Rename to...
31879         (VQHS_OPS): ... This.
31880         (rshifts): Rename to...
31881         (RSHIFTS): ... This.
31882         (returns): Rename to...
31883         (RETURNS): ... This.
31884         * config/arm/arm.md: Update uses of the above.
31885         * config/arm/neon.md: Likewise.
31886
31887 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31888
31889         * config.host (case ${host}): Add aarch64*-*-linux case.
31890         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
31891         fields to all the cores.
31892         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
31893         Add MCPU_MTUNE_NATIVE_SPECS.
31894         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
31895         field to all extensions.
31896         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
31897         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
31898         Adjust definition of AARCH64_OPT_EXTENSION.
31899         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
31900         (MCPU_MTUNE_NATIVE_SPECS): Define.
31901         * config/aarch64/driver-aarch64.c: New file.
31902         * config/aarch64/x-arch64: New file.
31903         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
31904         -mtune and -march.
31905
31906 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31907             Wei Mi  <wmi@google.com>
31908
31909         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
31910         * config/i386/i386.c (extract_base_offset_in_addr): New function.
31911         (ix86_operands_ok_for_move_multiple): Ditto.
31912         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
31913         (movlpd/movhpd to movupd peephole2): Ditto.
31914
31915 2015-04-24  Marek Polacek  <polacek@redhat.com>
31916
31917         PR c/61534
31918         * input.h (from_macro_expansion_at): Define.
31919
31920         PR c/63357
31921         * doc/invoke.texi: Update description of -Wlogical-op.
31922
31923 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31924
31925         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
31926         ternary operator in fprintf and harmonize spacing.
31927
31928 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31929
31930         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
31931         Mark operand1 commutative.
31932
31933 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
31934
31935         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
31936         input operands in memory.
31937         (*vec_concatv2si_sse4_1): Ditto.
31938         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
31939         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
31940         register_operand.
31941         (vec_extract_hi_v32hi): Ditto.
31942         (vec_extract_hi_v64hi): Ditto.
31943         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
31944
31945 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31946             Steven Bosscher <steven@gcc.gnu.org>
31947
31948         PR rtl-optimization/34503
31949         * cprop.c (cprop_reg_p): New.
31950         (hash_scan_set): Use above function to check if register can be
31951         propagated.
31952         (find_avail_set): Return up to two sets, one whose source is a
31953         register and one whose source is a constant.  Sets are returned in an
31954         array passed as parameter rather than as a return value.
31955         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
31956         sets returned by find_avail_set, starting with the one whose source is
31957         a constant. Use cprop_reg_p to check if register can be propagated.
31958         (do_local_cprop): Use cprop_reg_p to check if register can be
31959         propagated.
31960         (implicit_set_cond_p): Likewise.
31961
31962 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31963
31964         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
31965         (sem_function::equals): IGNORED_NODES parameter is now unused;
31966         update call of equals_private.
31967         (sem_function::equals_private): Do not call equals_wpa; skip
31968         gimple body matching if there is no body.
31969         (sem_function::init): Add logic to hash tthunk info.
31970         (sem_function::parse): Also parse thunks.
31971         * ipa-icf.h (equals_private): Update declaration.
31972
31973 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31974
31975         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
31976         asterisk from name so this can be generated directly.
31977         (*altivec_stvx_<mode>_internal): Likewise.
31978         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
31979         that this is never called during or after reload/lra.
31980         (rs6000_frame_related): Remove split_reg
31981         argument and logic that references it.
31982         (emit_frame_save): Remove last parameter from call to
31983         rs6000_frame_related.
31984         (rs6000_emit_prologue): Remove last parameter from eight calls to
31985         rs6000_frame_related.  Force generation of stvx instruction for
31986         Altivec register saves.  Remove split_reg handling, which is no
31987         longer needed.
31988         (rs6000_emit_epilogue):  Force generation of lvx instruction for
31989         Altivec register restores.
31990
31991 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31992
31993         * config/rs6000/rs6000.opt (mcrypto): Change option description to
31994         match category changes in ISA 2.07B.
31995
31996 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31997
31998         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
31999         iterators.
32000         (cmp_op, cmp_type): New code attributes.
32001         (NEON_VCMP, NEON_VACMP): New int iterators.
32002         (cmp_op_unsp): New int attribute.
32003         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
32004         (neon_vceq<mode>): Delete.
32005         (neon_vc<cmp_op><mode>_insn): New pattern.
32006         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
32007         (neon_vcgeu<mode>): Delete.
32008         (neon_vcle<mode>): Likewise.
32009         (neon_vclt<mode>: Likewise.
32010         (neon_vcage<mode>): Likewise.
32011         (neon_vcagt<mode>): Likewise.
32012         (neon_vca<cmp_op><mode>): New define_expand.
32013         (neon_vca<cmp_op><mode>_insn): New pattern.
32014         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
32015
32016 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32017
32018         * tree.h (attribute_value_equal): Declare.
32019         * tree.c (attribute_value_equal): Export.
32020
32021 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32022
32023         * ipa-icf.c (sem_item::compare_attributes): New function.
32024         (sem_item::compare_referenced_symbol_properties): Compare variable
32025         attributes.
32026         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
32027         (sem_function::param_used_p): New function.
32028         (sem_function::equals_wpa): Fix attribute comparsion; match
32029         parameter type codes; do not compare paremter flags when
32030         they are not used; compare edge flags; compare indirect calls.
32031         (sem_item::update_hash_by_addr_refs): Hash reference type.
32032         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
32033         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
32034         reference use type.
32035         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
32036         * ipa-icf.h (compare_attributes, param_used_p): Declare.
32037
32038 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
32039
32040         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
32041         cleanup.
32042         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
32043         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
32044         (sem_item::compare_referenced_symbol_properties): New.
32045         (sem_item::hash_referenced_symbol_properties): New.
32046         (sem_item::compare_cgraph_references): Rename to ...
32047         (sem_item::compare_symbol_references): ... this one; use
32048         compare_referenced_symbol_properties.
32049         (sem_function::equals_wpa): Do not compare
32050         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
32051         DECL_IS_OPERATOR_NEW; compare pointer sizes.
32052         (sem_item::update_hash_by_addr_refs): Call
32053         hash_referenced_symbol_properties.
32054         (sem_item::update_hash_by_local_refs): Cleanup.
32055         (sem_function::merge): Do not mix up symbol properties.
32056         (sem_variable::equals_wpa): Use compare_symbol_references.
32057         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
32058         (sem_item::hash_referenced_symbol_properties): New.
32059         (sem_item::compare_symbol_references): New.
32060         (sem_item::compare_cgraph_references): Remove.
32061
32062 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
32063
32064         PR target/26702
32065         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
32066         Emit size of local.
32067
32068 2015-04-23  Nick Clifton  <nickc@redhat.com>
32069
32070         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
32071         ATTRIBUTE_UNUSED to x parameter.
32072         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
32073
32074 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32075
32076         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
32077         TARGET_CRYPTO to TARGET_P8_VECTOR>
32078         (crypto_vpermxor_<mode>): Likewise.
32079         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
32080         (BU_CRYPTO_3A): Likewise.
32081         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
32082         (BU_CRYPTO_OVERLOAD_3A): New #define.
32083         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
32084         (VPMSUMH): Likewise.
32085         (VPMSUMW): Likewise.
32086         (VPMSUMD): Likewise.
32087         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
32088         (VPERMXOR_V4SI): Likewise.
32089         (VPERMXOR_V8HI): Likewise.
32090         (VPERMXOR_V16QI): Likewise.
32091         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
32092         BU_CRYPTO_OVERLOAD_2A.
32093         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
32094         BU_CRYPTO_OVERLOAD_3A.
32095         * config/rs6000/rs6000.opt (mcrypto): Change description of
32096         option.
32097
32098 2015-04-23  Richard Biener  <rguenther@suse.de>
32099
32100         * passes.def: Remove copy propagation passes run directly after CCP.
32101         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
32102         SSA names.
32103         (ccp_visit_phi_node): Rework to handle first executable edge
32104         specially.
32105
32106 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
32107
32108         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32109         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32110         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
32111         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
32112         (thumb_legimitimize_reload_address): Remove.
32113         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
32114         Remove.
32115         (thumb_legimitimize_reload_address): Remove.
32116
32117 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32118
32119         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
32120
32121 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32122
32123         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
32124         MAX_LDM_STM_OPS.
32125         (store_multiple): Likewise.
32126
32127 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32128
32129         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
32130         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
32131         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
32132         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
32133         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
32134         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
32135         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
32136         Specify issue_rate value.
32137         (arm_issue_rate): Look up issue rate from tuning structs. Remove
32138         large switch statement.
32139         (arm_marvell_pj4_tune): New struct.
32140         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
32141         struct.
32142
32143 2015-04-23  Richard Biener  <rguenther@suse.de>
32144
32145         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
32146         (vect_find_last_store_in_slp_instance): Rename to ...
32147         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
32148         (vect_analyze_slp_cost_1): Use vector_load for constant defs
32149         and vec_construct for external defs when estimating prologue cost.
32150         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
32151         Compute costs here only when vectorizing loops.
32152         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
32153         have been determined.
32154         (vect_schedule_slp_instance): Simplify vectorized code placement
32155         and prepare for in-BB external defs.
32156         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
32157         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
32158         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
32159         guard.
32160         (vect_model_load_cost): Likewise.
32161         (vectorizable_store): Instead add it here.
32162         (vectorizable_load): Likewise.
32163         (vect_is_simple_use): Dump def type textually.
32164
32165 2015-04-23  Richard Biener  <rguenther@suse.de>
32166
32167         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
32168         * cfgloop.c (verify_loop_structure): Verify the root loop node.
32169         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
32170         instead of get_eh_region_from_lp_number.
32171         * loop-init.c (fix_loop_structure): If we removed a loop, reset
32172         the SCEV cache.
32173
32174 2015-04-23  Anton Blanchard  <anton@samba.org>
32175
32176         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
32177         need for -mprofile-kernel to save LR to stack.
32178
32179 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32180
32181         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
32182         adjustments.
32183         (insn_is_swappable_p): Return 1 for a convert from double to
32184         single precision when all of its uses are splats of BE element
32185         zero.
32186
32187 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
32188
32189         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
32190
32191 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32192
32193         PR target/65456
32194         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
32195         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
32196         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
32197         option.
32198         (rs6000_builtin_mask_for_load): Return 0 for targets with
32199         efficient unaligned VSX accesses so that the vectorizer will use
32200         direct unaligned loads.
32201         (rs6000_builtin_support_vector_misalignment): Always return true
32202         for targets with efficient unaligned VSX accesses.
32203         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
32204         stores on targets with efficient unaligned VSX accesses is almost
32205         always the same as the cost of an aligned load or store, so model
32206         it that way.
32207         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
32208         unaligned vectors if we have efficient unaligned VSX accesses.
32209         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
32210         undocumented option.
32211
32212 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32213
32214         Revert:
32215         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32216
32217         * config.gcc (LIBC_MUSL): New tm_defines macro.
32218         * config/linux.h (OPTION_MUSL): Define.
32219         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32220         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32221         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32222
32223         * config/linux.opt (mmusl): New option.
32224         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32225         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32226
32227         * configure: Regenerate.
32228
32229 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
32230
32231         * config.gcc (LIBC_MUSL): New tm_defines macro.
32232         * config/linux.h (OPTION_MUSL): Define.
32233         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
32234         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
32235         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
32236
32237         * config/linux.opt (mmusl): New option.
32238         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
32239         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
32240
32241         * configure: Regenerate.
32242
32243 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
32244
32245         * doc/invoke.texi (-fsanitize-sections): Update description.
32246         * asan.c (set_sanitized_sections): Parse incoming arg.
32247         (section_sanitized_p): Support wildcards.
32248
32249 2015-04-22  Tom de Vries  <tom@codesourcery.com>
32250
32251         PR tree-optimization/65823
32252         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
32253         equality between ap_copy and ap.
32254
32255 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32256
32257         PR target/47098
32258         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
32259
32260 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32261
32262         PR target/47122
32263         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
32264
32265 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32266
32267         PR target/55144
32268         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
32269         remove already contained t-files.
32270
32271 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32272
32273         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
32274         Remove unneeded forward declarations.
32275         (suitable_for_tail_call_opt_p): Commentary typo fix.
32276
32277 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32278
32279         * varasm.c (emit_bss): Remove redundant guard.
32280
32281 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32282
32283         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
32284
32285 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32286
32287         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
32288
32289 2015-04-22  Hale Wang  <hale.wang@arm.com>
32290             Terry Guo  <terry.guo@arm.com>
32291
32292         PR rtl-optimization/64818
32293         * combine.c (can_combine_p): Don't combine user-specified
32294         register if it is in an asm input.
32295
32296 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
32297
32298         PR ipa/65076
32299         * passes.def (early_optimizations): Add pass_dse.
32300
32301 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32302
32303         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
32304         * reorg.c (redundant_insn): Remove ifdef
32305         INSN_REFERENCES_ARE_DELAYED.
32306         * resource.c (mark_referenced_resources): Likewise.
32307
32308 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32309
32310         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
32311         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
32312         * resource.c (mark_set_resources): Likewise.
32313
32314 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32315
32316         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
32317         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32318         (flow_find_head_matching_sequence): Likewise.
32319         (try_head_merge_bb): Likewise.
32320         * combine.c (can_combine_p): Likewise.
32321         (try_combine): Likewise.
32322         (distribute_notes): Likewise.
32323         * df-problems.c (can_move_insns_across): Likewise.
32324         * final.c (final): Likewise.
32325         * gcse.c (insert_insn_end_basic_block): Likewise.
32326         * ira.c (find_moveable_pseudos): Likewise.
32327         * reorg.c (try_merge_delay_insns): Likewise.
32328         (fill_simple_delay_slots): Likewise.
32329         (fill_slots_from_thread): Likewise.
32330         * sched-deps.c (sched_analyze_2): Likewise.
32331
32332 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32333
32334         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
32335         PIC_OFFSET_TABLE_REGNUM.
32336
32337 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32338
32339         * alias.c (init_alias_target): Remove ifdef
32340         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
32341         * df-scan.c (df_insn_refs_collect): Likewise.
32342         (df_get_regular_block_artificial_uses): Likewise.
32343         (df_get_eh_block_artificial_uses): Likewise.
32344         (df_get_entry_block_def_set): Likewise.
32345         (df_get_exit_block_use_set): Likewise.
32346         * emit-rtl.c (gen_rtx_REG): Likewise.
32347         * ira.c (ira_setup_eliminable_regset): Likewise.
32348         * reginfo.c (init_reg_sets_1): Likewise.
32349         * regrename.c (rename_chains): Likewise.
32350         * reload1.c (reload): Likewise.
32351         (eliminate_regs_in_insn): Likewise.
32352         * resource.c (mark_referenced_resources): Likewise.
32353         (init_resource_info): Likewise.
32354
32355 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32356
32357         * defaults.h (MASK_RETURN_ADDR): New definition.
32358         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32359         MASK_RETURN_ADDR.
32360
32361 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32362
32363         * defaults.h (RETURN_ADDR_OFFSET): New definition.
32364         * except.c (expand_builtin_extract_return_addr): Remove ifdef
32365         RETURN_ADDR_OFFSET.
32366         (expand_builtin_frob_return_addr): Likewise.
32367
32368 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32369
32370         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
32371         (try_redirect_by_replacing_jump): Likewise.
32372         (rtl_tidy_fallthru_edge): Likewise.
32373         * combine.c (insn_a_feeds_b): Likewise.
32374         (find_split_point): Likewise.
32375         (simplify_set): Likewise.
32376         * cprop.c (cprop_jump): Likewise.
32377         * cse.c (cse_extended_basic_block): Likewise.
32378         * df-problems.c (can_move_insns_across): Likewise.
32379         * function.c (emit_use_return_register_into_block): Likewise.
32380         * haifa-sched.c (sched_init): Likewise.
32381         * ira.c (find_moveable_pseudos): Likewise.
32382         * loop-invariant.c (find_invariant_insn): Likewise.
32383         * lra-constraints.c (curr_insn_transform): Likewise.
32384         * postreload.c (reload_combine_recognize_const_pattern):
32385         * Likewise.
32386         * reload.c (find_reloads): Likewise.
32387         * reorg.c (delete_scheduled_jump): Likewise.
32388         (steal_delay_list_from_target): Likewise.
32389         (steal_delay_list_from_fallthrough): Likewise.
32390         (redundant_insn): Likewise.
32391         (fill_simple_delay_slots): Likewise.
32392         (fill_slots_from_thread): Likewise.
32393         (delete_computation): Likewise.
32394         * sched-rgn.c (add_branch_dependences): Likewise.
32395
32396 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32397
32398         * genconfig.c (main): Always define HAVE_cc0.
32399         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
32400         HAVE_cc0.
32401         * cfgcleanup.c (flow_find_cross_jump): Likewise.
32402         (flow_find_head_matching_sequence): Likewise.
32403         (try_head_merge_bb): Likewise.
32404         * cfgrtl.c (rtl_merge_blocks): Likewise.
32405         (try_redirect_by_replacing_jump): Likewise.
32406         (rtl_tidy_fallthru_edge): Likewise.
32407         * combine.c (do_SUBST_MODE): Likewise.
32408         (insn_a_feeds_b): Likewise.
32409         (combine_instructions): Likewise.
32410         (can_combine_p): Likewise.
32411         (try_combine): Likewise.
32412         (find_split_point): Likewise.
32413         (subst): Likewise.
32414         (simplify_set): Likewise.
32415         (distribute_notes): Likewise.
32416         * cprop.c (cprop_jump): Likewise.
32417         * cse.c (cse_extended_basic_block): Likewise.
32418         * df-problems.c (can_move_insns_across): Likewise.
32419         * final.c (final): Likewise.
32420         (final_scan_insn): Likewise.
32421         * function.c (emit_use_return_register_into_block): Likewise.
32422         * gcse.c (insert_insn_end_basic_block): Likewise.
32423         * haifa-sched.c (sched_init): Likewise.
32424         * ira.c (find_moveable_pseudos): Likewise.
32425         * loop-invariant.c (find_invariant_insn): Likewise.
32426         * lra-constraints.c (curr_insn_transform): Likewise.
32427         * optabs.c (prepare_cmp_insn): Likewise.
32428         * postreload.c (reload_combine_recognize_const_pattern):
32429         * Likewise.
32430         * reload.c (find_reloads): Likewise.
32431         (find_reloads_address_1): Likewise.
32432         * reorg.c (delete_scheduled_jump): Likewise.
32433         (steal_delay_list_from_target): Likewise.
32434         (steal_delay_list_from_fallthrough): Likewise.
32435         (try_merge_delay_insns): Likewise.
32436         (redundant_insn): Likewise.
32437         (fill_simple_delay_slots): Likewise.
32438         (fill_slots_from_thread): Likewise.
32439         (delete_computation): Likewise.
32440         (relax_delay_slots): Likewise.
32441         * sched-deps.c (sched_analyze_2): Likewise.
32442         * sched-rgn.c (add_branch_dependences): Likewise.
32443
32444 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32445
32446         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
32447         that is trivially ded on non cc0 targets.
32448         (simplify_set): Likewise.
32449         (mark_used_regs_combine): Likewise.
32450         * cse.c (new_basic_block): Likewise.
32451         (fold_rtx): Likewise.
32452         (cse_insn): Likewise.
32453         (cse_extended_basic_block): Likewise.
32454         (set_live_p): Likewise.
32455         * rtlanal.c (canonicalize_condition): Likewise.
32456         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
32457
32458 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32459
32460         * conditions.h: Define macros even if HAVE_cc0 is undefined.
32461         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
32462         * final.c: Likewise.
32463         * jump.c: Likewise.
32464         * recog.c: Likewise.
32465         * recog.h: Declare functions even when HAVE_cc0 is undefined.
32466         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
32467
32468 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
32469
32470         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
32471         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
32472         * builtins.c (expand_builtin): Remove check if
32473         EH_RETURN_DATA_REGNO is defined.
32474         * df-scan.c (df_bb_refs_collect): Likewise.
32475         (df_get_exit_block_use_set): Likewise.
32476         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
32477         * ira-lives.c (process_bb_node_lives): Likewise.
32478         * lra-lives.c (process_bb_lives): Likewise.
32479
32480 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32481
32482         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
32483         FIRST_PSEUDO_REG): New.
32484         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
32485         (ARG_POINTER_REGNUM): Define to ARGP_REG.
32486         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
32487         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
32488         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
32489         (FIRST_INT_REG): New.
32490         (LAST_INT_REG): New.
32491         (FIRST_*_REG): Define using *_REG.
32492         (LAST_*_REG): Ditto.
32493         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
32494         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
32495         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
32496
32497 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32498
32499         * expmed.c: (synth_mult): Only assume overlapping
32500         shift with previous steps in alg_sub_t_m2 case.
32501
32502 2015-04-21  Richard Biener  <rguenther@suse.de>
32503
32504         PR tree-optimization/65650
32505         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
32506         transitions involving copies.
32507         (set_lattice_value): Adjust for copy lattice state.
32508         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
32509         if that doesn't dominate the merge point.
32510         (bit_value_unop): Adjust what we treat as varying mask.
32511         (bit_value_binop): Likewise.
32512         (bit_value_assume_aligned): Likewise.
32513         (evaluate_stmt): When we simplified to a SSA name record a copy
32514         instead of dropping to varying.
32515         (visit_assignment): Simplify.
32516
32517         * gimple-match.h (gimple_simplify): Add another callback.
32518         * gimple-fold.c (fold_stmt_1): Adjust caller.
32519         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
32520         for the 2nd callback.
32521         * gimple-match-head.c (gimple_simplify): Add a callback that is
32522         used to valueize the stmt operands and use it that way.
32523
32524 2015-04-21  Richard Biener  <rguenther@suse.de>
32525
32526         PR tree-optimization/65788
32527         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
32528
32529 2015-04-21  Richard Biener  <rguenther@suse.de>
32530
32531         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
32532         vec_construct cost by vec_stmt_cost.
32533
32534 2015-04-21  Richard Biener  <rguenther@suse.de>
32535
32536         * cfghooks.h (create_basic_block): Replace with two overloads
32537         for RTL and GIMPLE.
32538         (split_block): Likewise.
32539         * cfghooks.c (split_block): Rename to ...
32540         (split_block_1): ... this.
32541         (split_block): Add two type-safe overloads for RTL and GIMPLE.
32542         (split_block_after_labels): Call split_block_1.
32543         (create_basic_block): Rename to ...
32544         (create_basic_block_1): ... this.
32545         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
32546         (create_empty_bb): Call create_basic_block_1.
32547         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
32548         split_block_after_labels.
32549         * omp-low.c (expand_parallel_call): Likewise.
32550         (expand_omp_target): Likewise.
32551         (simd_clone_adjust): Likewise.
32552         * tree-chkp.c (chkp_get_entry_block): Likewise.
32553         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
32554         create_basic_block overload.
32555         (cgraph_node::expand_thunk): Likewise.
32556         * tree-cfg.c (make_blocks): Likewise.
32557         (handle_abnormal_edges): Likewise.
32558         * tree-inline.c (copy_bb): Likewise.
32559
32560 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32561
32562         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
32563         New pattern.
32564         (*xor_one_cmplsidi3_ze): Likewise.
32565
32566 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32567
32568         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
32569         use df_remove_problem rather than manually removing problems, leaving
32570         holes in df->problems_in_order[].
32571
32572 2015-04-21  Tom de Vries  <tom@codesourcery.com>
32573
32574         PR tree-optimization/65802
32575         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
32576
32577 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32578
32579         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
32580         Increase to 128.
32581         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
32582         at '.'.  Assert that there's enough space for everything.
32583
32584 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
32585
32586         PR tree-optimization/64950
32587         Revert:
32588         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
32589
32590         PR target/41089
32591         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
32592         as volatile.
32593
32594 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
32595
32596         PR rtl-optimization/64916
32597         * cfgcleanup.c (values_equal_p): New function.
32598         (can_replace_by): Use it.
32599
32600 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
32601
32602         PR c++/65801
32603         * doc/invoke.texi ([-Wnarrowing]): Update.
32604
32605 2015-04-20  Jeff Law  <law@redhat.com>
32606
32607         PR tree-optimization/65658
32608         * tree-ssa-threadupdate.c (redirection_block_p): Remove
32609         redundant test for GIMPLE_ASSIGN in last change.
32610
32611 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
32612
32613         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
32614         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
32615         (legitimize_tls_address): Ditto.
32616         (ix86_expand_move): Ditto.
32617         (ix86_expand_binary_operator): Remove reload_in_progress checks.
32618         (ix86_expand_unary_operator): Ditto.
32619         * config/i386/predicates.md (index_register_operand): Ditto.
32620
32621 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
32622
32623         * reorg.c (try_merge_delay_insns): Improve correctness checking
32624         for targets with multiple delay slots.
32625
32626 2015-04-20  Jeff Law  <law@redhat.com>
32627
32628         PR tree-optimization/65658
32629         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
32630         statements too.
32631
32632 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32633
32634         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
32635         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
32636         Delete.
32637
32638 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
32639
32640         PR debug/65807
32641         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
32642
32643 2015-04-20  Richard Biener  <rguenther@suse.de>
32644
32645         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
32646         * gimple-fold.c (gimple_build_valueize): New function.
32647         (gimple_build): Always use gimple_build_valueize as valueize hook.
32648
32649 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
32650
32651         PR target/64134
32652         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
32653         and overwrite variable parts if <= 1/2 the elements are variable.
32654
32655 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32656
32657         PR rtl-optimization/65805
32658         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
32659         Don't use difference of offset and previous offset if
32660         update_sp_offset is non-zero.
32661         (eliminate_regs_in_insn): Ditto.
32662         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
32663         lra_eliminate_regs_1 call.
32664         * lra-constraints.c (get_equiv_with_elimination): Ditto.
32665
32666 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
32667
32668         * hash-table.h: Remove version of hash_table that stored value_type *.
32669         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
32670         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
32671         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
32672         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
32673         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
32674         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
32675         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32676         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
32677         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
32678         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
32679         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
32680         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
32681         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
32682         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32683         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
32684         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
32685
32686 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32687             Jakub Jelinek  <jakub@redhat.com>
32688
32689         PR target/65787
32690         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
32691         subsequent SH_NONE operand does not overwrite an existing *special
32692         value.
32693         (adjust_extract): Handle case where a vec_extract operation is
32694         wrapped in a PARALLEL.
32695
32696 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32697
32698         PR target/65780
32699         * config/i386/i386.c (ix86_binds_local_p): Define only if
32700         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
32701
32702 2015-04-17  Jeff Law  <law@redhat.com>
32703
32704         PR tree-optimization/47679
32705         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
32706         * tree-ssa-scopedtables.c: New file.
32707         * tree-ssa-scopedtables.h: New file.
32708         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
32709         (const_and_copies): Change name/type.
32710         (record_const_or_copy): Move into tree-ssa-scopedtables.c
32711         (record_const_or_copy_1): Similarly.
32712         (restore_vars_to_original_value): Similarly.
32713         (pass_dominator::execute): Create and destroy const_and_copies table.
32714         (thread_across_edge): Update passing of const_and_copies.
32715         (record_temporary_equivalence): Use method calls rather than
32716         manipulating const_and_copies directly.
32717         (record_equality, cprop_into_successor_phis): Similarly.
32718         (dom_opt_dom_walker::before_dom_children): Similarly.
32719         (dom_opt_dom_walker::after_dom_children): Similarly.
32720         (eliminate_redundant_computations): Similarly.
32721         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
32722         (record_temporary_equivalence): Likewise.
32723         (invalidate_equivalences): Likewise.
32724         (record_temporary_equivalences_from_phis): Update due to type
32725         change of const_and_copies.  Use method calls rather than
32726         manipulating the stack directly.
32727         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
32728         (thread_through_normal_block, thread_across_edge): Likewise.
32729         (thread_across_edge): Likewise.
32730         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
32731         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
32732         of equiv_stack.
32733         (identify_jump_threads): Update due to type change of equiv_stack.
32734         (finalize_jump_threads): Delete the equiv_stack when complete.
32735
32736 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
32737
32738         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
32739         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
32740         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
32741
32742 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
32743
32744         PR target/65535
32745         * config.gcc: Exit with a comment when we do not have a major version
32746         number for the FreeBSD target.
32747
32748 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32749
32750         PR target/65689
32751         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
32752         maybe_allows_mem bitfields.
32753         (maybe_allows_none_start, maybe_allows_none_end,
32754         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
32755         maybe_allows_mem_end): New variables.
32756         (compute_maybe_allows): New function.
32757         (add_constraint): Use it to initialize maybe_allows_reg and
32758         maybe_allows_mem fields.
32759         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
32760         is_address constraints such that those that allow neither mem nor
32761         reg come first, then those that only allow reg but not mem, then
32762         those that only allow mem but not reg, then the rest.
32763         (write_allows_reg_mem_function): New function.
32764         (write_tm_preds_h): Call it.
32765         * stmt.c (parse_output_constraint, parse_input_constraint): Use
32766         the generated insn_extra_constraint_allows_reg_mem function
32767         instead of always setting *allows_reg = true; *allows_mem = true;
32768         for unknown extra constraints.
32769
32770 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
32771
32772         PR target/65780
32773         * output.h (default_binds_local_p_3): New.
32774         * varasm.c (default_binds_local_p_3): Make it public.  Take an
32775         argument to indicate if common symbol may be local.  If common
32776         symbol may be local, treat non-external variable as defined
32777         locally.
32778         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
32779         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
32780         * config/i386/i386.c (ix86_binds_local_p): New.
32781         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
32782         ix86_binds_local_p.
32783
32784 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32785
32786         PR debug/65771
32787         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
32788         trying mem_loc_descriptor on XEXP (rtl, 0).
32789
32790 2015-04-17  Martin Liska  <mliska@suse.cz>
32791
32792         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
32793         Release symbol_compare_collection.
32794         * ipa-reference.c: Add TODO that a vector should be released.
32795
32796 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
32797
32798         PR target/65296
32799         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
32800         to new AVR-LibC file layout (bug #44574).
32801         (*avrlibc_devicelib): Same.
32802         * config/avr/avr-mcus.def: Adjust comments.
32803         * config/avr/avr.opt (nodevicelib): Adjust help.
32804
32805 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
32806
32807         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
32808
32809 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
32810
32811         PR c++/64527
32812         * gimplify.c (gimplify_init_constructor): Always emit a
32813         side-effecting constructor.
32814
32815 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32816
32817         PR tree-optimization/64950
32818         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
32819         in cfun->curr_properties.
32820         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
32821         if we generate an IFN_VA_ARG.
32822         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
32823         function if PROP_gimple_lva is not set in src function.
32824
32825 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32826             Michael Matz  <matz@suse.de>
32827
32828         PR tree-optimization/64950
32829         * gimple-iterator.c (update_modified_stmts): Remove static.
32830         * gimple-iterator.h (update_modified_stmts): Declare.
32831         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
32832         (gimplify_va_arg_internal): New function.
32833         (gimplify_va_arg_expr): Use IFN_VA_ARG.
32834         * gimplify.h (gimplify_va_arg_internal): Declare.
32835         * internal-fn.c (expand_VA_ARG): New unreachable function.
32836         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
32837         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
32838         (expand_ifn_va_arg): New function.
32839         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
32840         (pass_stdarg::execute): Call expand_ifn_va_arg.
32841         (pass_data_lower_vaarg): New pass_data.
32842         (pass_lower_vaarg): New gimple_opt_pass.
32843         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
32844         (make_pass_lower_vaarg): New function.
32845         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
32846         properties_required field.
32847         * passes.def (all_passes): Add pass_lower_vaarg.
32848         * tree-pass.h (PROP_gimple_lva): Add define.
32849         (make_pass_lower_vaarg): Declare.
32850
32851 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32852
32853         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
32854         * calls.c (call_expr_flags): Same.
32855
32856 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32857
32858         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
32859         (pass_stdarg::execute): ... here.
32860
32861 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32862             Michael Matz  <matz@suse.de>
32863
32864         * tree-cfg.c (make_blocks_1): Factor out of ...
32865         (make_blocks): ... here.
32866         (make_edges_bb): Factor out of ...
32867         (make_edges): ... here.
32868         (gimple_find_sub_bbs): New function.
32869         * tree-cfg.h (gimple_find_sub_bbs): Declare.
32870
32871 2015-04-17  Tom de Vries  <tom@codesourcery.com>
32872
32873         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
32874
32875 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
32876
32877         * asan.c (set_sanitized_sections): New function.
32878         (section_sanitized_p): Ditto.
32879         (asan_protect_global): Optionally sanitize user-defined
32880         sections.
32881         * asan.h (set_sanitized_sections): Declare new function.
32882         * common.opt (fsanitize-sections): New option.
32883         * doc/invoke.texi (-fsanitize-sections): Document new option.
32884         * opts-global.c (handle_common_deferred_options): Handle new
32885         option.
32886
32887 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
32888
32889         PR debug/65771
32890         * dwarf2out.c (loc_list_from_tree): Return NULL
32891         for DEBUG_EXPR_DECL.
32892
32893 2015-04-17  Christian Bruel  <christian.bruel@st.com>
32894
32895         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
32896         same attributes.
32897
32898 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
32899
32900         * ira-color.c (setup_left_conflict_sizes_p): Do not process
32901         node itself when computing left conflict subnode size.
32902
32903 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32904
32905         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
32906         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
32907         *fop_<mode>_1_sse using enabled attribute.  Use
32908         register_mixssei387nonimm_operand operand 1 predicate. Change
32909         alternative 3 constraints from "x" to "v".
32910
32911 2015-04-16  Richard Biener  <rguenther@suse.de>
32912
32913         PR tree-optimization/65774
32914         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
32915         bit-value tracking on.
32916
32917 2015-04-16  Richard Biener  <rguenther@suse.de>
32918
32919         PR tree-optimization/64277
32920         * tree-vrp.c (check_array_ref): Fix anti-range handling,
32921         simplify upper bound handling.
32922         (search_for_addr_array): Simplify.
32923         (check_array_bounds): Handle ADDR_EXPRs here.
32924         (check_all_array_refs): Simplify.
32925
32926 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
32927
32928         * config/i386/i386.c (print_reg): Rewrite function.
32929
32930 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32931
32932         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
32933         Invert the condition.
32934
32935 2015-04-16  Renlin Li  <renlin.li@arm.com>
32936
32937         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
32938         simplifications for UNSIGNED_FLOAT.
32939
32940 2015-04-16  Nick Clifton  <nickc@redhat.com>
32941
32942         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
32943         MUL_UNINIT.
32944         (enum rl78_cpu_type): New.
32945         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
32946         (umulhi3_shift_virt): Remove m constraint from operand 1.
32947         (umulqihi3_virt): Likewise.
32948         * config/rl78/rl78.c (rl78_option_override): Add code to process
32949         -mcpu and -mmul options.
32950         (rl78_alloc_physical_registers): Add code to handle divhi and
32951         divsi valloc attributes.
32952         (set_origin): Likewise.
32953         * config/rl78/rl78.h (RL78_MUL_G14): Define.
32954         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
32955         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
32956         __RL78_Gxx__.
32957         (ASM_SPEC): Pass -mcpu on to assembler.
32958         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
32959         (mulqi3_rl78): Likewise.
32960         (mulhi3_g13): Likewise.
32961         (mulhi3): Generate the G13 or G14 versions of the insn directly.
32962         (mulsi3): Likewise.
32963         (mulhi3_g14): Add clobbers of AX and BC.
32964         (mulsi3_g14): Likewise.
32965         (mulsi3_g13): Likewise.
32966         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
32967         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
32968         * config/rl78/rl78.opt (mmul): Initialise value to
32969         RL78_MUL_UNINIT.
32970         (mcpu): New option.
32971         (m13, m14, mrl78): New option aliases.
32972         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
32973         (MULTILIB_DIRNAMES): Add g13 and g14.
32974         * doc/invoke.texi: Document -mcpu and -mmul options.
32975
32976 2015-04-16  Richard Biener  <rguenther@suse.de>
32977
32978         * tree-ssa-ccp.c (likely_value): See if we have operands that
32979         are marked as never simulate again and return CONSTANT in this
32980         case.
32981         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
32982         not have any operands that will be simulated again as
32983         not being simulated again.
32984
32985 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
32986
32987         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
32988         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
32989         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
32990         attribute.
32991         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
32992         enabled attribute.
32993         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
32994         *float<SWI48:mode><MODEF:mode>2_sse.
32995         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
32996         enabled attribute.
32997         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
32998         enabled attribute.
32999
33000 2015-04-15  Tom de Vries  <tom@codesourcery.com>
33001
33002         PR other/65487
33003         * function.c (push_dummy_function): New function.
33004         (init_dummy_function_start): Use push_dummy_function.
33005         (pop_dummy_function): New function.  Factored out of ...
33006         (expand_dummy_function_end): ... here.
33007         * function.h (push_dummy_function, pop_dummy_function): Declare.
33008         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
33009         pop_dummy_function.
33010         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
33011
33012 2015-04-15  Jeff Law  <law@redhat.com>
33013
33014         PR tree-optimization/47679
33015         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
33016         need for forward declaration in upcoming changes.
33017         (record_conditions, record_edge_info): Likewise.
33018
33019         PR rtl-optimization/42522
33020         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
33021         SIGN_EXTRACT as a whole object rather than simplifying
33022         its operand.
33023
33024 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
33025
33026         PR ipa/65765
33027         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
33028         and GIMPLE_PREDICT use break instead of return true. For
33029         GIMPLE_EH_DISPATCH, compare dispatch region.
33030
33031 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
33032
33033         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
33034         details about the implementation.  Make clear preference for
33035         __atomic builtins.  Reduce possibility of future change.
33036
33037 2015-04-15  Nick Clifton  <nickc@redhat.com>
33038
33039         * config/rx/rx.opt (mallow-string-insns): New option.
33040         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
33041         builtin if string instructions are denied.
33042         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
33043         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
33044         appropriate.
33045         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
33046         * config/rx/rx.md (movstr): Enable pattern only if string
33047         instructions are allowed.
33048         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
33049         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
33050         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
33051         (MULTILIB_DIRNAMES): Add no-strings.
33052         * doc/invoke.texi: Document -mno-allow-string-insns.
33053
33054 2015-04-15  Alan Modra  <amodra@gmail.com>
33055
33056         PR target/65408
33057         PR target/58744
33058         PR middle-end/36043
33059         * calls.c (load_register_parameters): Don't load past end of
33060         mem unless suitably aligned.
33061
33062 2015-04-15  Nick Clifton  <nickc@redhat.com>
33063
33064         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
33065         decrement instruction as being frame related.
33066         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
33067         based addresses.
33068         If zero extending a function address enclose the operation in
33069         %code(...).
33070         (rl78_preferred_reload_class): New function.
33071         (TARGET_PREFERRED_RELOAD_CLASS): Define.
33072         * config/rl78/rl78.md: Remove useless constraints in expanders.
33073         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
33074         (mulhi3_rl78): Likewise.
33075         (mulhi3_g13): Likewise.
33076         (mulsi3_rl78): Likewise.
33077         (es_addr): Move to before the multiply patterns.
33078
33079 2015-04-15  Alan Modra  <amodra@gmail.com>
33080
33081         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
33082         and sequence_stack.  Add seq.
33083         (seq_stack): Delete.
33084         * function.c (prepare_function_start): Don't access x_last_insn.
33085         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
33086         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
33087         * emit_rtl.c (start_sequence, push_topmost_sequence,
33088         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
33089         sequence accessors.
33090         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
33091         remove_insn): Likewise.  Simplify.
33092         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
33093         and pop_topmost_sequence.
33094         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
33095         debug insns.
33096         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
33097
33098 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
33099
33100         PR target/65729
33101         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
33102         the assertiion.
33103
33104 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33105
33106         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
33107         (LEGACY_INT_REGNO_P): Ditto.
33108         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
33109         (ANY_MASK_REG_P): Remove.
33110         (BND_REG_P): Rename from ANY_BND_REG_P.
33111         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
33112         legacy integer registers.  Do not handle MMX_REG_P in a special way.
33113         Merge 64byte and 32byte SSE handling.
33114
33115 2015-04-14  Nick Clifton  <nickc@redhat.com>
33116
33117         * expr.c (expand_assignment): Force an address offset computation
33118         into a register before changing its mode.
33119         (expand_expr_real_1): Likewise.
33120
33121 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
33122
33123         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
33124         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
33125         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
33126         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
33127         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
33128         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
33129         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
33130         and __aarch64_vget_lane_any.
33131
33132 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
33133
33134         PR rtl-optimization/65761
33135         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
33136         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
33137
33138 2015-04-14  Richard Biener  <rguenther@suse.de>
33139
33140         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
33141         (graphite_can_represent_scev): Use POINTER_TYPE_P.
33142
33143 2015-04-14  Richard Biener  <rguenther@suse.de>
33144
33145         PR tree-optimization/65758
33146         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
33147         against -1.
33148         (ccp_lattice_meet): Likewise.
33149         (bit_value_unop): Likewise.
33150         (bit_value_binop): Likewise.
33151         (bit_value_assume_aligned): Likewise.
33152
33153 2015-04-14  Christian Bruel  <christian.bruel@st.com>
33154
33155         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
33156         function.
33157
33158 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
33159
33160         PR tree-optimization/63387
33161         * match.pd ((x unord x) | (y unord y) -> (x unord y),
33162         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
33163
33164 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
33165
33166         * config/i386/predicates.md (any_QIreg_operand): Rename from
33167         q_regs_operand.  Do not process subregs.
33168         (QIreg_operand): Use QI_REGNO_P predicate.
33169         (ext_QIreg_operand): Ditto.
33170         (ext_register_operand): Ditto.
33171         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
33172         (AND splitters): Ditto.
33173         (AND with -65536 splitter): Add SWI48 mode for operand 0.
33174         (AND with -256 splitter): Use any_QIreg_operand predicate and
33175         SWI248 mode for operand 0.
33176         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
33177         mode for operand 0.
33178         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
33179
33180 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
33181
33182         * doc/plugins.texi: Rewrite first introductory paragraph.
33183
33184 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33185
33186         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
33187         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
33188
33189 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33190
33191         * ipa-profie.c (ipa_profile): Check number of parameters
33192         and possible polymorphic call targets before
33193         devirtualizing.
33194
33195 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
33196
33197         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
33198         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
33199
33200 2015-04-13  Richard Biener  <rguenther@suse.de>
33201
33202         PR tree-optimization/65204
33203         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
33204         takens for bit-CCP.
33205
33206 2015-04-13  Richard Biener  <rguenther@suse.de>
33207
33208         PR target/65660
33209         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
33210         and cond_not_taken_branch_cost to 4 and 2.
33211         (bdver2_cost): Likewise.
33212         (bdver3_cost): Likewise.
33213         (bdver4_cost): Likewise.
33214
33215 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33216
33217         * hash-table.h (hash_table constructor): Add mem stats.
33218         (alloc_entries): Likewise.
33219
33220 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33221
33222         * ipa-cp.c (ipcp_driver): Relase prev_edge.
33223         * passes.c (execute_one_pass): Only add transform if pass has one.
33224
33225 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
33226
33227         * config/i386/i386.c (ix86_option_override_internal): Don't set
33228         -fprefetch-loop-arrays if optimizing for size.
33229
33230 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
33231             Gerald Pfeifer  <gerald@pfeifer.com>
33232
33233         * doc/contrib.texi (Contributors): Add Martin Jambor and
33234         Michael Matz.
33235
33236 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
33237
33238         * BASE-VER: Set to 6.0.0.
33239
33240         PR tree-optimization/65747
33241         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
33242         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
33243
33244 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33245
33246         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
33247         sentence.  Improve grammar.
33248
33249 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
33250
33251         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
33252
33253 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33254
33255         PR ipa/65743
33256         * ipa-inline-transform.c (speculation_removed): Remove static var.
33257         (check_speculations): New function.
33258         (clone_inlined_nodes): Do not check spculations.
33259         (inline_call): Call check_speculations.
33260         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
33261         consider non-invariants.
33262
33263 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
33264             Martin Liska  <mliska@suse.cz>
33265
33266         PR ipa/65722
33267         * ipa-icf.c (sem_item::compare_cgraph_references): function and
33268         variable can not match.
33269         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
33270         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
33271
33272 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
33273
33274         PR tree-optimization/65735
33275         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
33276         Remove visited_phis argument, add visited_bbs, avoid recursing into the
33277         same bb rather than just into the same phi node.
33278         (thread_through_normal_block): Adjust caller.
33279
33280 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33281
33282         * doc/contrib.texi (Contributors): Add Ira Rosen.
33283
33284 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
33285
33286         * gcov.c (find_source): Fix miswording in error message.
33287         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
33288         (ix86_expand_sse_comi_round): Fix typo in error message.
33289
33290 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
33291
33292         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
33293
33294 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
33295
33296         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
33297
33298 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33299
33300         PR target/65710
33301         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
33302         Print bad_spills_num and insn_pseudos_num.
33303
33304 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33305
33306         PR target/65694
33307         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
33308         when creating +1 values for SImode.
33309
33310 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33311
33312         PR target/65729
33313         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
33314         assert.
33315
33316 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
33317             Iain Sandoe  <iain@codesourcery.com>
33318
33319         PR target/65351
33320         * configure: Regenerate.
33321
33322 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33323
33324         PR target/65671
33325         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
33326
33327 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
33328
33329         * doc/contrib.texi (Contributors): Add John Marino.
33330
33331 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33332
33333         PR tree-optimization/65709
33334         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
33335         TREE_TYPE (TREE_TYPE (t)).
33336
33337 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
33338
33339         PR target/65710
33340         * lra-int.h (lra_bad_spill_regno_start): New.
33341         * lra.c (lra_bad_spill_regno_start): New.
33342         (lra): Set up lra_bad_spill_regno_start.  Set up
33343         lra_constraint_new_regno_start unconditionally.
33344         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
33345         spill preferences.
33346
33347 2015-04-09  Marek Polacek  <polacek@redhat.com>
33348             Jakub Jelinek  <jakub@redhat.com>
33349
33350         PR middle-end/65554
33351         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
33352         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
33353         of STRIP_NOPS.
33354
33355 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
33356
33357         PR rtl-optimization/65693
33358         * combine.c (is_parallel_of_n_reg_sets): Move outside of
33359         #ifndef HAVE_cc0.
33360
33361 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
33362
33363         PR target/65296
33364         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
33365         device specs file if "device-specs%s" didn't resolve to a path.
33366
33367 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
33368
33369         PR target/65676
33370         * config/i386/i386.c (fixup_modeless_constant): New.
33371         (ix86_expand_args_builtin): Fixup modeless constant operand.
33372         (ix86_expand_round_builtin): Ditto.
33373         (ix86_expand_special_args_builtin): Ditto.
33374         (ix86_expand_builtin): Ditto.
33375
33376 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
33377
33378         PR target/65693
33379         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
33380         any pow2 integer in between 2 and 0x80000000U inclusive.
33381
33382 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
33383
33384         PR rtl-optimization/65693
33385         * combine.c (is_parallel_of_n_reg_sets): Change first argument
33386         from an rtx_insn * to an rtx.
33387         (try_combine): Adjust both callers.  Use it once more.
33388
33389 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33390
33391         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
33392         (chkp_make_static_const_bounds): Search existing
33393         symbol by assembler name.  Use make_decl_one_only.
33394         (chkp_get_zero_bounds_var): Remove node search which
33395         is now performed in chkp_make_static_const_bounds.
33396         (chkp_get_none_bounds_var): Likewise.
33397
33398 2015-04-08  Michael Witten  <mfwitten@gmail.com>
33399
33400         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
33401         to an example.
33402
33403 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33404
33405         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
33406
33407 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33408
33409         * doc/extend.texi (__sync Builtins): Fix grammar.
33410
33411 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33412
33413         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
33414
33415 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
33416
33417         * varasm.c (emit_local): Move definition of align.
33418
33419 2015-04-08  Julian Brown  <julian@codesourcery.com>
33420
33421         * config/nvptx/mkoffload.c (process): Support variable mapping.
33422
33423 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
33424
33425         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
33426         alpha_links **.
33427         (alpha_write_one_linkage): Correct typo.
33428
33429 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33430
33431         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
33432
33433 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
33434
33435         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
33436
33437 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
33438
33439         * tree-chkp.h (chkp_insert_retbnd_call): New.
33440         * tree-chkp.c (chkp_insert_retbnd_call): New.
33441         * ipa-split.c (insert_bndret_call_after): Remove.
33442         (split_function): Use chkp_insert_retbnd_call.
33443         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
33444         bounds for instrumented functions.
33445
33446 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
33447
33448         PR ipa/65540
33449         * calls.c (initialize_argument_information): When producing tail
33450         call also turn SSA_NAMES passed by references to original PARM_DECLs
33451
33452 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33453
33454         PR target/65648
33455         * lra-remat.c (do_remat): Process input and non-input insn
33456         registers separately.
33457
33458 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33459
33460         PR debug/65678
33461         * valtrack.c (debug_lowpart_subreg): New function.
33462         (dead_debug_insert_temp): Use it.
33463
33464         PR middle-end/65680
33465         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
33466         into signed HOST_WIDE_INT the same as negative bit_offset.
33467
33468 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
33469
33470         * ipa-comdats.c (ipa_comdats): Visit all thunks
33471         to set proper comdat group.
33472
33473 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33474
33475         PR target/65489
33476         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
33477         on constants for NEON VSTRUCT modes.
33478
33479 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
33480             Iain Sandoe  <iain@codesourcery.com>
33481
33482         PR target/65351
33483         * configure: Regenerate.
33484
33485 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33486
33487         PR target/65614
33488         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
33489         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
33490         that LFD is used to load double constants instead of LFS.  Add
33491         defaults for all costs structures.  Add comments for missing
33492         initialization fields.
33493         (size32_cost): Likewise.
33494         (size64_cost): Likewise.
33495         (rs64a_cost): Likewise.
33496         (mpccore_cost): Likewise.
33497         (ppc403_cost): Likewise.
33498         (ppc405_cost): Likewise.
33499         (ppc440_cost): Likewise.
33500         (ppc476_cost): Likewise.
33501         (ppc601_cost): Likewise.
33502         (ppc603_cost): Likewise.
33503         (ppc604_cost): Likewise.
33504         (ppc604e_cost): Likewise.
33505         (ppc620_cost): Likewise.
33506         (ppc630_cost): Likewise.
33507         (ppccell_cost): Likewise.
33508         (ppc750_cost): Likewise.
33509         (ppc7450_cost): Likewise.
33510         (ppc8540_cost): Likewise.
33511         (ppce300c2c3_cost): Likewise.
33512         (ppce500mc_cost): Likewise.
33513         (ppce500mc64_cost): Likewise.
33514         (ppce5500_cost): Likewise.
33515         (ppce6500_cost): Likewise.
33516         (titan_cost): Likewise.
33517         (power4_cost): Likewise.
33518         (power6_cost): Likewise.
33519         (power7_cost): Likewise.
33520         (power8_cost): Likewise.
33521         (ppca2_cost): Likewise.
33522         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
33523
33524         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
33525         instead of XXLOR to copy SFmode to clear out dirty bits created
33526         when SFmode denormals are generated.
33527         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
33528         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
33529
33530 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33531
33532         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
33533         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
33534         * config/aarch64/aarch64-tune.md: Regenerate.
33535
33536 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
33537
33538         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
33539         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
33540         * config/arm/arm-cores.def (exynos-m1): New core.
33541         * config/arm/arm-tune.md: Regenerate.
33542         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
33543         * config/arm/bpabi.h: Likewise.
33544
33545 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33546
33547         * ipa-cp (set_single_call_flag): Remove too
33548         restrictive assert.
33549
33550 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
33551
33552         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
33553         GOMP_offload_unregister from the destructor.
33554
33555 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
33556
33557         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
33558         flags for instrumentation thunk.
33559         (chkp_produce_thunks): Likewise.
33560
33561 2015-04-05  Martin Liska  <mliska@suse.cz>
33562
33563         PR ipa/65665
33564         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
33565         has computed data structure.
33566         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33567
33568 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
33569
33570         * invoke.texi (inline-unit-growth): Increase growth to 20%
33571         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
33572
33573 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
33574
33575         PR target/65647
33576         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
33577         value checking.
33578         (lra_rematerialization_iter): New.
33579         * lra.c (lra): Initialize lra_rematerialization_iter.
33580         Stop updating lra_constraint_new_regno_start after switching of
33581         inheritance and rematerialization.
33582         * lra-remat.c (lra_rematerialization_iter): New.
33583         (lra_remat): Add printing pass iteration.  Do rematerialization
33584         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
33585
33586 2015-04-04  Richard Biener  <rguenther@suse.de>
33587
33588         PR tree-optimization/64909
33589         PR tree-optimization/65660
33590         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
33591         to take a cost vector for scalar iteration cost.
33592         (vect_get_single_scalar_iteration_cost): Likewise.
33593         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
33594         Compute the scalar iteration cost into a cost vector.
33595         (vect_get_known_peeling_cost): Use the scalar cost vector to
33596         account for the cost of the peeled iterations.
33597         (vect_estimate_min_profitable_iters): Likewise.
33598         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
33599         Likewise.
33600
33601 2015-04-04  Alan Modra  <amodra@gmail.com>
33602
33603         PR target/65576
33604         PR target/65240
33605         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
33606         0.0 constant unless TARGET_VSX.
33607         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
33608         alternative.
33609
33610 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33611
33612         PR ipa/65654
33613         * ipa-inline-transform.c (inline_call): Skip sanity check to work
33614         around the ICE
33615
33616 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33617
33618         PR ipa/65655
33619         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
33620         speculative indirect edges to avoid ordering issue.
33621
33622 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
33623
33624         PR ipa/65076
33625         * ipa-inline.c (edge_badness): Add combined size to the denominator.
33626
33627 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
33628
33629         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
33630         TYPE_ARTIFICIAL on the .omp_data* types.
33631
33632 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33633
33634         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
33635         instrumentation thunks.
33636
33637 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33638
33639         * config/i386/i386.c (ix86_expand_call): Avoid nested
33640         PARALLEL in returned call value.
33641
33642 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33643
33644         * lto-cgraph.c (input_cgraph_1): Always link instrumented
33645         assembler name with original one.
33646
33647 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33648
33649         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
33650
33651 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33652
33653         Revert parts of r216820.
33654         * config/i386/i386.md (movqi_internal): Correct type calculation
33655         for alternatives 3 and 5.
33656
33657 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
33658
33659         PR preprocessor/61977
33660         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
33661         predefine __vector/__bool/__pixel macros nor context sensitive
33662         macros for CLK_ASM.
33663         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
33664
33665 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
33666
33667         * config/pa/pa.c (pa_output_move_double): Directly handle register
33668         indexed memory operand.  Simplify handling of scaled register indexed
33669         memory operands.
33670
33671 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33672
33673         PR driver/65444
33674         * config/i386/linux-common.h (MPX_SPEC): New.
33675         (CHKP_SPEC): Add MPX_SPEC.
33676         * doc/invoke.texi (-fcheck-pointer-boudns): Document
33677         possible issues with '-z bndplt' support in linker.
33678
33679 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
33680
33681         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
33682         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
33683         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
33684         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
33685         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
33686
33687 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
33688
33689         * config/i386/sync.md (UNSPEC_MOVA): Remove.
33690         (atomic_load<mode>): Change operand 0 predicate to
33691         nonimmediate_operand and fix up the destination when needed.
33692         Use UNSPEC_LDA.
33693         (atomic_loaddi_fpu): Use UNSPEC_LDA.
33694         (atomic_store<mode>): Change operand 1 predicate to
33695         nonimmendate_operand and move the source to register when needed.
33696         Use UNSPEC_STA.
33697         (atomic_store<mode>_1): Use UNSPEC_STA.
33698         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
33699         Fix moves from memory operand.  Use UNSPEC_STA.
33700
33701 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33702
33703         * expmed.c (strict_volatile_bitfield_p): Check that the access will
33704         not cross a MODESIZE boundary.
33705         (store_bit_field, extract_bit_field): Added assertions in the
33706         strict volatile bitfields code path.
33707
33708 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33709
33710         PR target/65624
33711         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
33712         Increase args array size by one to avoid buffer overflow.
33713
33714 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33715
33716         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
33717         split_part.
33718         * ipa-inline.c (edge_badness): Add wrapper penalty.
33719         (sum_callers): Move up.
33720         (inline_small_functions): Set single_caller.
33721         * ipa-inline.h (inline_summary): Add single_caller.
33722         * ipa-split.c (split_function): Set split_part.
33723         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
33724         * cgraph.h (cgraph_node): Add split_part.
33725
33726 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
33727
33728         PR target/58945
33729         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
33730         Do not split operands 0 and operands 2 to halfmode.
33731         (atomic_compare_and_swap<mode>): Update for
33732         atomic_compare_and_swap<dwi>_doubleword changes.
33733
33734 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
33735
33736         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
33737         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
33738         no caching is done.
33739
33740 2015-03-31  Martin Liska  <mliska@suse.cz>
33741
33742         PR ipa/65557
33743         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
33744         has already filled up function summary.
33745         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
33746
33747 2015-03-31  Richard Biener  <rguenther@suse.de>
33748
33749         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
33750         of types.
33751
33752 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33753
33754         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
33755         nested functions.
33756         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
33757         (s390_asm_output_function_label): Adapt to new signature of
33758         s390_function_num_hotpatch_hw
33759         Optimise the code generating assembler output.
33760         Add comments to assembler file.
33761
33762 2015-03-31  Richard Biener  <rguenther@suse.de>
33763
33764         PR middle-end/65626
33765         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
33766         of the noreturn call so it is last and cleanup_control_flow_bb
33767         can do the CFG part.
33768
33769 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
33770
33771         PR target/65531
33772         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
33773         same_comdat_group for external symbols.
33774         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
33775         infinite same_comdat_group traversal loop.
33776
33777 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
33778
33779         PR plugins/61176
33780         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
33781         automatically to $headers.
33782
33783 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
33784
33785         PR ipa/65610
33786         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
33787         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
33788         function.
33789         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
33790         Use it.
33791         * ipa-prop.c (param_type_may_change_p): Likewise.
33792         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
33793         (remove_unused_scope_block_p): Add in_ctor_dtor_block
33794         argument.  Before inlining, preserve
33795         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
33796         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
33797         recursive calls.
33798         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
33799
33800 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33801
33802         PR ipa/65076
33803         * ipa-inline.c (edge_badness): Base denominator on callee's
33804         grwoth squared.
33805
33806 2015-03-27  Martin Jambor  <mjambor@suse.cz>
33807
33808         PR ipa/65478
33809         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
33810         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
33811         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
33812         node_calling_single_call.
33813         * ipa-cp.c (count_callers): New function.
33814         (set_single_call_flag): Likewise.
33815         (initialize_node_lattices): Count callers and set single_flag_call if
33816         necessary.
33817         (incorporate_penalties): New function.
33818         (good_cloning_opportunity_p): Use it, dump new flags.
33819         (propagate_constants_topo): Set node_within_scc flag if appropriate.
33820         * doc/invoke.texi (ipa-cp-recursion-penalty,
33821         ipa-cp-single-call-pentalty): Document.
33822
33823 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33824
33825         PR ipa/65588
33826         * symtab.c (symtab_node::get_partitioning_class): Register vars
33827         are duplicated.
33828         * varpool.c (symbol_table::output_variables) Do not assemble unefined
33829         decls for non-symbols.
33830
33831 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
33832
33833         PR target/65248
33834         * output.h (default_binds_local_p_2): New.
33835         * varasm.c (default_binds_local_p_2): Renamed to ...
33836         (default_binds_local_p_3): This.  Don't return true on protected
33837         data symbol if protected data may be external.
33838         (default_binds_local_p): Use default_binds_local_p_3.
33839         (default_binds_local_p_1): Likewise.
33840         (default_binds_local_p_2): New.
33841         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
33842         default_binds_local_p_2 if TARGET_MACHO is undefined.
33843
33844 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
33845
33846         PR target/65593
33847         * config/i386/i386.c (legitimize_pic_address): If base
33848         is SYMBOL_REF or LABEL_REF using %rip addressing, force
33849         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
33850
33851 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33852
33853         PR target/65531
33854         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
33855         comdat groups.
33856
33857 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
33858
33859         PR ipa/65600
33860         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
33861         of optimized out indirect call.
33862         (redirect_to_unreachable): Always build symbol table node for
33863         BUILT_IN_UNREACHABLE
33864
33865 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
33866
33867         PR target/65407
33868         * ira-costs.c (record_reg_classes): Process all constraint string
33869         containing 0-9.
33870
33871 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
33872
33873         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
33874         memory_operand.
33875
33876         PR target/65052
33877         * config/c6x/constraints.md (S3): New constraint.
33878         * config/c6x/c6x.md (real_jump): Use it.
33879
33880 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33881
33882         PR middle-end/65595
33883         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
33884         do redirection if the call is not optimized out.
33885
33886 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
33887
33888         PR target/65495
33889         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
33890         (fchkp-check-incomplete-type): Add LTO.
33891         (fchkp-zero-input-bounds-for-main): Likewise.
33892         (fchkp-first-field-has-own-bounds): Likewise.
33893         (fchkp-narrow-bounds): Likewise.
33894         (fchkp-narrow-to-innermost-array): Likewise.
33895         (fchkp-use-static-bounds): Likewise.
33896         (fchkp-use-static-const-bounds): Likewise.
33897         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
33898
33899 2015-03-27  Marek Polacek  <polacek@redhat.com>
33900
33901         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
33902
33903 2015-03-27  Marek Polacek  <polacek@redhat.com>
33904
33905         PR sanitizer/65583
33906         * ubsan.c (ubsan_create_edge): New function.
33907         (instrument_bool_enum_load): Call it.
33908         (instrument_nonnull_arg): Likewise.
33909         (instrument_nonnull_return): Likewise.
33910         (instrument_object_size): Likewise.
33911
33912 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33913
33914         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
33915         auto_vec.
33916
33917 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33918
33919         PR lto/65536
33920         * lto-streamer.h (class lto_location_cache): New.
33921         (struct data_in): Add location_cache.
33922         (lto_input_location): Update prototype.
33923         (stream_input_location_now): New.
33924         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
33925         pointer to location.
33926         (stream_input_location): Update.
33927         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
33928         (warn_odr): Apply location cache before warning.
33929         (lto_input_location): Update prototype.
33930         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
33931         Use stream_input_location_now.
33932         * lto-streamer-in.c (lto_location_cache::current_cache): New static
33933         variable.
33934         (lto_location_cache::cmp_loc): New function.
33935         (lto_location_cache::apply_location_cache): New function.
33936         (lto_location_cache::accept_location_cache): New function.
33937         (lto_location_cache::revert_location_cache): New function.
33938         (lto_location_cache::input_location): New function.
33939         (lto_input_location): Do location caching.
33940         (stream_input_location_now): New function.
33941         (input_eh_region, input_struct_function_base): Use
33942         stream_input_location_now.
33943         (lto_data_in_create): use new.
33944         (lto_data_in_delete): Use delete.
33945         * tree-streamer-in.c (unpack_ts_block_value_fields,
33946         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
33947         lto_input_ts_exp_tree_pointers): Update for cached location api.
33948
33949 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33950
33951         PR ipa/65076
33952         * passes.def: Add pass_nothrow.
33953         * ipa-pure-const.c: (pass_data_nothrow): New.
33954         (pass_nothrow): New.
33955         (pass_nothrow::execute): New.
33956         (make_pass_nothrow): New.
33957         * tree-pass.h (make_pass_nothrow): Declare.
33958
33959 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33960
33961         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
33962         edge to change by speculation resolution or redirection.
33963         (edge_set_predicate): Likewise.
33964         (inline_summary_t::duplicate): Likewise.
33965         (remap_edge_summaries): Likewise.
33966
33967 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33968
33969         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
33970         New macros.
33971         (can_inline_edge_p): Relax option matching for always inline functions.
33972
33973 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
33974
33975         PR target/65561
33976         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
33977         Check operand 4 and operand 0 for equality.
33978         (avx512f_vextract<shuffletype>32x4_1_maskm):
33979         Check operand 6 and operand 0 for equality.
33980         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
33981         for equality.
33982         (vec_extract_hi_<mode>_maskm): Ditto.
33983
33984 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33985
33986         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
33987         dead calls back to live.
33988         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
33989         cross check to ...
33990         (cgraph_node::verify_node): ... here; verify only callee edges,
33991         not caller.
33992         * cif-code.def (CILK_SPAWN): New code.
33993
33994 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33995
33996         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
33997         (edge_set_predicate): Use it to mark unreachable edges.
33998         (inline_summary_t::duplicate): Remove unnecesary code.
33999         (remap_edge_summaries): Likewise.
34000         (dump_inline_summary): Report contains_cilk_spawn.
34001         (compute_inline_parameters): Compute contains_cilk_spawn.
34002         (inline_read_section, inline_write_summary): Stream
34003         contains_cilk_spawn.
34004         * ipa-inline.c (can_inline_edge_p): Do not touch
34005         DECL_STRUCT_FUNCTION that may not be available;
34006         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
34007         remove check for callee_fun->can_throw_non_call_exceptions and
34008         replace it by optimization attribute check; check for flag_exceptions.
34009         * ipa-inline-transform.c (inline_call): Maintain
34010         DECL_FUNCTION_PERSONALITY
34011         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
34012
34013 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34014
34015         PR tree-optimization/65551
34016         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
34017         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
34018
34019 2015-03-26  Richard Biener  <rguenther@suse.de>
34020
34021         PR middle-end/65555
34022         * tree-cfg.c (verify_gimple_call): Do not require a call to
34023         have no LHS if it wasn't recognized as control altering yet.
34024
34025 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
34026
34027         PR tree-optimization/64715
34028         * passes.def: Add another instance of pass_object_sizes before ccp1.
34029         * tree-object-size.c (pass_object_sizes::execute): In
34030         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
34031         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
34032         __bos result and the computed constant.  Remove redundant
34033         checks, obsoleted by gimple_call_builtin_p test.
34034
34035         * var-tracking.c (variable_tracking_main_1): Don't track
34036         variables for targetm.no_register_allocation targets.
34037
34038 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
34039
34040         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
34041         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
34042
34043 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
34044
34045         PR target/65569
34046         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
34047         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
34048         0.0 is correctly setup.
34049         (extenddftf2_internal): Likewise.
34050
34051 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
34052
34053         PR tree-optimization/65177
34054         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
34055         (bb_in_bbs): New.
34056         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
34057         edges not adjacent on the path to the original code.
34058
34059 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
34060
34061         PR bootstrap/65537
34062         * doc/install.texi (Building a native compiler): Document new
34063         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
34064         configuration assumes that the host supports the linker plugin.
34065
34066 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
34067
34068         PR target/65508
34069         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
34070         chain for generated call.
34071
34072 2015-03-25  Richard Biener  <rguenther@suse.de>
34073
34074         * passes.c (pass_manager::execute_early_local_passes): Guard
34075         execution of pass_chkp_instrumentation_passes with
34076         flag_check_pointer_bounds.
34077         (pass_chkp_instrumentation_passes::gate): Likewise.
34078
34079 2015-03-25  Martin Liska  <mliska@suse.cz>
34080
34081         PR tree-optimization/65538
34082         * symbol-summary.h (function_summary::~function_summary):
34083         Relese memory for allocated summaries.
34084         (function_summary::release): New function.
34085
34086 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
34087
34088         PR lto/65515
34089         * lto-streamer-out.c (DFS::worklist): New struct.
34090         (DFS::worklist_vec): New data member.
34091         (DFS::next_dfs_num): Remove.
34092         (DFS::DFS): Rewritten using worklist instead of recursion,
34093         using most of code from DFS::DFS_write_tree.
34094         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
34095         pass it to DFS_write_tree calls.
34096         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
34097         quick initial checks push it into worklist_vec and return.
34098
34099 2015-03-25  Richard Biener  <rguenther@suse.de>
34100
34101         PR middle-end/65519
34102         * genmatch.c (expr::gen_transform): Re-write to avoid
34103         using gimple_build.
34104
34105 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34106
34107         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
34108
34109 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
34110
34111         * config/arm/arm.opt (print_tune_info): New option.
34112         * config/arm/arm.c (arm_print_tune_info): New function.
34113         (arm_file_start): Call arm_print_tune_info.
34114         * config/arm/arm-protos.h (struct tune_params): Add comment.
34115         * doc/invoke.texi (@item -mprint-tune-info): New item.
34116         (-mtune): mention it in ARM Option Summary.
34117
34118 2015-03-25  DJ Delorie  <dj@redhat.com>
34119
34120         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
34121         correct clause.
34122
34123 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
34124             Martin Liska  <mliska@suse.cz>
34125
34126         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
34127         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
34128         (sem_item::add_type): New function.
34129         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
34130         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
34131         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
34132         (sem_function::equals_wpa): Fix typo.
34133         * ipa-icf.h (sem_item::add_type): New function.
34134         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
34135         order.
34136
34137 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
34138
34139         PR tree-optimization/65533
34140         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
34141         with swapped operands, call vect_free_slp_tree on
34142         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
34143         vector.
34144
34145 2015-03-24  Richard Biener  <rguenther@suse.de>
34146
34147         PR middle-end/65517
34148         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
34149         for fixup if necessary.
34150
34151 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
34152
34153         * doc/extend.texi (Function Attributes): Add @cindex entries
34154         for all attributes and regularize their format.  Delete text
34155         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
34156         information about "eightbit_data", "tiny_data", and "model"
34157         variable attributes to the Variable Attributes section.  Fix
34158         some obvious typos and copy-editing issues.
34159         (Variable Attributes, Type Attributes): Likewise add/fix
34160         @cindex entries for all attributes.
34161
34162 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34163
34164         PR target/65523
34165         * tree-chkp.c (chkp_build_returned_bound): Ignore
34166         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
34167
34168 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
34169
34170         PR target/65505
34171         * config/sh/predicates.md (simple_mem_operand,
34172         displacement_mem_operand): Add test for reg.
34173         (short_displacement_mem_operand): Test for displacement_mem_operand
34174         before invoking sh_disp_addr_displacement.
34175         * config/sh/constraints.md (Sdd, Sra): Simplify.
34176         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
34177         Remove redundant displacement_mem_operand tests.
34178
34179 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
34180
34181         PR target/65296
34182         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
34183         the same -mmcu=MCU more than once.
34184
34185 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
34186
34187         PR bootstrap/65522
34188         * ipa-devirt.c: Remove duplicate demangle.h include.
34189
34190         PR target/65504
34191         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
34192         on the pseudo.
34193         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
34194         REG_POINTER on *destptr after adjusting it for prologue size.
34195
34196         PR ipa/65521
34197         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
34198         ultimate_alias_target ()->order ints instead of
34199         ultimate_alias_target () pointers.
34200
34201 2015-03-23  Richard Biener  <rguenther@suse.de>
34202
34203         PR tree-optimization/65518
34204         * tree-vect-stmts.c (vectorizable_load): Reject single-element
34205         interleaving cases we generate absymal code for.
34206
34207 2015-03-23  Richard Biener  <rguenther@suse.de>
34208
34209         PR tree-optimization/65494
34210         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
34211         matches here.
34212         (vect_analyze_slp_instance): But do that here, always and once.
34213
34214 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34215
34216         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
34217         adding T or multiplying by T+1 and subracting T.
34218
34219 2015-03-22  Jeff Law  <law@redhat.com>
34220
34221         PR rtl-optimization/64317
34222         * Makefile.in (OBJS): Add gcse-common.c
34223         * gcse.c: Include gcse-common.h
34224         (struct modify_pair_s): Move structure definition to gcse-common.h
34225         (compute_transp): Move function to gcse-common.c.
34226         (canon_list_insert): Similarly.
34227         (record_last_mem_set_info): Break out some code and put it into
34228         gcse-common.c.  Call into the new common code.
34229         (compute_local_properties): Pass additional arguments to compute_transp.
34230         * postreload-gcse.c: Include gcse-common.h and df.h
34231         (modify_mem_list_set, blocks_with_calls): New variables.
34232         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
34233         (get_bb_avail_insn): Pass in the expression index too.
34234         (alloc_mem): Allocate memory for the new bitmaps and lists.
34235         (free_mem): Free memory for the new bitmaps and lists.
34236         (insert_expr_in_table): Record a bitmap index for each entry we
34237         add to the table.
34238         (record_last_mem_set_info): Call into common code in gcse-common.c.
34239         (get_bb_avail_insn): If no available insn was found in the requested
34240         BB.  If BB has a single predecessor, see if the expression is
34241         transparent in BB and available in that single predecessor.
34242         (compute_expr_transp): New wrapper for compute_transp.
34243         (eliminate_partially_redundant_load): Pass expression's bitmap_index
34244         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
34245         (gcse_after_reload_main): If there are elements in the hash table,
34246         then compute transparency for all the elements in the hash table.
34247         * gcse-common.h: New file.
34248         * gcse-common.c: New file.
34249
34250 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
34251
34252         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
34253         as an adjective.
34254         (System Headers): Likewise.
34255         (Ifdef): Likewise.
34256         (Traditional macros): Likewise.
34257         (Invocation): Likewise.
34258         (Option Index): Likewise.
34259         * doc/cppopts.texi (-M): Likewise.
34260         (-finput-charset): Likewise.
34261         (--help): Likewise.
34262         * doc.invoke.texi (AVR Options): Likewise.
34263         (V850 Options): Likewise.
34264
34265 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
34266
34267         PR ipa/65475
34268         * ipa-devirt.c: Include demangle.h
34269         (odr_type_d): Add field rtti_broken.
34270         (odr_subtypes_equivalent_p): Do not require name to match.
34271         (compare_virtual_tables): Fix typo; if type already has ODR violation,
34272         bypass the tests; be ready for function referneces in vtables that are
34273         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
34274         (warn_odr): Give up for nameless types.
34275         (warn_types_mismatch): Report mismatch in mangled names;
34276         report mismatch in anonymous namespaces; look into component types to
34277         give useful error; report when mismatch is dragged in from other ODR
34278         type.
34279         (odr_types_equivalent_p): Match types for being polymorphic; avoid
34280         duplicated diagnostics.
34281         (add_type_duplicate): Reorder checks so more informative ones come
34282         first; fix typo; do not output "the extra base is defined here" when
34283         we did not warn.
34284         (BINFO_N_BASE_BINFOS): Relax sanity check.
34285
34286 2015-03-22  Martin Liska  <mliska@suse.cz>
34287             Jakub Jelinek  <jakub@redhat.com>
34288
34289         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
34290         masks that can potentially include a builtin.
34291         (ix86_add_new_builtins): Introduce fast filter for isa values
34292         that cannot trigger builtin inclusion.
34293
34294 2015-03-22  Martin Liska  <mliska@suse.cz>
34295
34296         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
34297         (sem_item::update_hash_by_local_refs): Likewise.
34298         (sem_variable::get_hash): Empty line is fixed.
34299         (sem_item_optimizer::execute): Include adding of hash references.
34300         (sem_item_optimizer::update_hash_by_addr_refs): New function.
34301         (sem_item_optimizer::build_hash_based_classes): Use local hash.
34302         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
34303         (sem_item::update_hash_by_local_refs): Likewise.
34304
34305 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34306
34307         PR ipa/65502
34308         * ipa-comdats.c (enqueue_references): Walk through thunks.
34309         (ipa_comdats): Likewise.
34310         (set_comdat_group_1): New function.
34311
34312 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34313
34314         PR ipa/65475
34315         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
34316         non-polymorphic
34317
34318 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
34319             Gerald Pfeifer  <gerald@pfeifer.com>
34320
34321         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
34322
34323 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
34324             Sandra Loosemore  <sandra@codesourcery.com>
34325
34326         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
34327         function parameter declaration.
34328         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
34329         Update arguments to nios2_adjust_call_address().
34330         (sibcall_internal): Rename from *sibcall.
34331         (sibcall_value_internal): Rename from *sibcall_value.
34332         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
34333         (nios2_large_got_address): Add target temp reg parameter.
34334         (nios2_got_address): Adjust call to nios2_large_got_address, add
34335         force_reg around it.
34336         (nios2_load_pic_address): Add target temp reg parameter, replace call
34337         to nios2_got_address with corresponding code.
34338         (nios2_legitimize_constant_address): Update call to
34339         nios2_load_pic_address.
34340         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
34341         to use temp reg for PIC loading purposes.
34342         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
34343         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34344         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
34345
34346 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34347
34348         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
34349         usage of "the @option{...}".
34350         (-Wopenmp-simd): Likewise.
34351         (-fsanitize-recover): Likewise.
34352         (-fsanitize-undefined-trap-on-error): Likewise.
34353         (-flto): Likewise.
34354         (tracer-dynamic-coverage-feedback): Likewise.
34355         (reorder-block-duplicate-feedback): Likewise.
34356         (loop-unroll-jam-size): Likewise.
34357         (-B): Likewise.
34358         (-I-): Likewise.
34359         (-mabs=legacy): Likewise.
34360         (-mupper-regs-df): Likewise.
34361         (-mupper-regs-sf): Likewise.
34362         (-mpointers-to-nested-functions): Likewise.
34363
34364 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34365
34366         * doc/extend.texi (Cilk Plus Builtins): Add markup.
34367
34368 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
34369
34370         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
34371         additional index entries and cross-references.
34372         (-fchkp-check-incomplete-type): Likewise.
34373         (-fchkp-first-field-has-own-bounds): Likewise.
34374         (-fchkp-narrow-to-innermost-array): Likewise.
34375         (-fchkp-use-fast-string-functions): Likewise.
34376         (-fchkp-use-nochk-string-functions): Likewise.
34377         (-fchkp-use-static-const-bounds): Likewise.
34378         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
34379         (-fchkp-instrument-marked-only): Likewise.
34380         (-fchkp-use-wrappers): Likewise.
34381         (-static-libmpx): Likewise.
34382         (-static-libmpxwrappers): Likewise.
34383         * doc/extend.texi (bnd_legacy): Likewise.
34384         (bnd_instrument): Likewise.
34385         (bnd_variable_size): Likewise.
34386         (Pointer Bounds Checker builtins): Likewise.
34387
34388 2015-03-21  Tom de Vries  <tom@codesourcery.com>
34389
34390         PR tree-optimization/65458
34391         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
34392         * cgraph.h (cgraph_node): Add parallelized_function field.
34393         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
34394         (input_overwrite_node): Read parallelized_function field.
34395         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
34396         parallelized_function on cgraph_node for child_fn.
34397         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
34398         Remove include of gt-tree-parloops.h.
34399         (parallelized_functions): Remove static variable.
34400         (parallelized_function_p): Rewrite using parallelized_function field of
34401         cgraph_node.
34402         (create_loop_fn): Remove adding to parallelized_functions.
34403         * Makefile.in (GTFILES): Remove tree-parloops.c
34404
34405 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
34406
34407         PR rtl-optimization/64366
34408         * lra.c (lra_update_insn_regno_info): Consider regs in
34409         CALL_INSN_FUNCTION_USAGE memory.
34410
34411 2015-03-20  Richard Biener  <rguenther@suse.de>
34412
34413         PR middle-end/64715
34414         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
34415         for type comparison and gcc_checking_assert.
34416         (chrec_fold_plus_poly_poly): Likewise.
34417         (chrec_fold_multiply_poly_poly): Likewise.
34418         (chrec_convert_1): Likewise.
34419         * gimplify.c (gimplify_expr): Remove premature folding of
34420         &X + CST to &MEM[&X, CST].
34421
34422 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
34423
34424         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
34425         already is final.
34426         (ipa_inline): Recompute inline_failed codes.
34427         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34428         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
34429         CIF_FINAL_ERROR.
34430
34431 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
34432
34433         PR rtl-optimization/60851
34434         * recog.c (constrain_operands): Accept a pseudo register before reload
34435         for LRA enabled targets.
34436
34437 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
34438
34439         PR target/65240
34440         * config/rs6000/predicates.md (easy_fp_constant): Remove special
34441         -ffast-math handling that kept non-0 constants live in the RTL
34442         until reload.  Remove logic testing the number of instructions it
34443         took to create a constant in a GPR that was never used, due to a
34444         test for soft-float earlier.
34445         (memory_fp_constant): Delete, no longer used.
34446
34447         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
34448         alternatives for loading non-0 constants into GPRs for hard
34449         floating point that is no longer needed due to changes in
34450         easy_fp_constant.  Add support for loading 0.0 into GPRs.
34451         (mov<mode>_hardfloat32): Likewise.
34452         (mov<mode>_hardfloat64): Likewise.
34453         (mov<mode>_64bit_dm): Likewise.
34454         (movtd_64bit_nodm): Likewise.
34455         (pre-reload move FP constant define_split): Delete define_split,
34456         since it is no longer used.
34457         (extenddftf2_internal): Remove GHF constraints that are not valid
34458         for extenddftf2.
34459
34460 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
34461
34462         PR rtl-optimization/63491
34463         * lra-constraints.c (check_and_process_move): Use src instead of
34464         sreg.  Remove some dead code.
34465
34466 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
34467
34468         PR ipa/65380
34469         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
34470         (sem_variable::merge): Likewise.
34471
34472 2015-03-19  Martin Liska  <mliska@suse.cz>
34473
34474         PR ipa/65465
34475         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
34476         all fields of cgraph_thunk_info.
34477
34478 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
34479
34480         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
34481         clone instrumented thunks.
34482
34483 2015-03-19  Richard Biener  <rguenther@suse.de>
34484
34485         Revert
34486         2015-03-10  Richard Biener  <rguenther@suse.de>
34487
34488         PR middle-end/63155
34489         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34490         * tree-ssa-coalesce.c: Include timevar.h.
34491         (attempt_coalesce): Handle graph being NULL.
34492         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34493         Split out abnormal coalescing to ...
34494         (perform_abnormal_coalescing): ... this function.
34495         (coalesce_ssa_name): Perform abnormal coalescing without computing
34496         live/conflict.
34497         (verify_ssa_coalescing_worker): New function.
34498         (verify_ssa_coalescing): Likewise.
34499
34500 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34501             Jakub Jelinek  <jakub@redhat.com>
34502
34503         PR sanitizer/65400
34504         * tsan.c (instrument_gimple): Clear tail call flag on
34505         calls.
34506
34507 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
34508
34509         PR sanitizer/65400
34510         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
34511         call in the return bb.
34512         (find_split_points): Add RETURN_BB argument, don't call
34513         find_return_bb.
34514         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
34515         if true append TSAN_FUNC_EXIT internal call after the call to
34516         the split off function.
34517         (execute_split_functions): Call find_return_bb here.
34518         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
34519         Adjust find_split_points and split_function calls.
34520
34521 2015-03-18  DJ Delorie  <dj@redhat.com>
34522
34523         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
34524         (iorqi3_virt): Likewise.
34525
34526 2015-03-18  Tom de Vries  <tom@codesourcery.com>
34527
34528         * tree-parloops.c (parallelize_loops): Make static.
34529         * tree-parloops.h (parallelize_loops): Remove extern declaration.
34530
34531 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
34532
34533         PR middle-end/64491
34534         Revert:
34535         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
34536
34537         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
34538         condition would be removed due to undefined behaviour.
34539
34540 2015-03-18  Martin Liska  <mliska@suse.cz>
34541
34542         PR ipa/65432
34543         * cgraph.c (cgraph_node::get_create): Remove unnecessary
34544         xstrdup_for_dump wrapper.
34545         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
34546         sem_item::name.
34547         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
34548         with xstrdup_for_dump.
34549         (sem_variable::equals): Likewise.
34550         (sem_item_optimizer::read_section): Use symtab_node::name instead of
34551         sem_item::name.
34552         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
34553         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
34554         symtab_node::asm_name with xstrdup_for_dump.
34555         (congruence_class::dump): Use symtab_node::name instead of
34556         sem_item::name.
34557         * ipa-icf.h (symtab_node::name): Remove.
34558         (symtab_node::asm_name): Likewise.
34559
34560 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34561
34562         PR tree-optimization/65450
34563         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
34564         function.
34565         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
34566         it instead of duplicate_ssa_name_ptr_info.
34567
34568         PR target/65222
34569         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
34570
34571 2015-03-18  Richard Biener  <rguenther@suse.de>
34572
34573         * tree-data-ref.h (struct access_matrix): Remove.
34574         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
34575         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
34576         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
34577         (am_vector_index_for_loop): Likewise.
34578         (struct data_reference): Remove access_matrix member.
34579         (DR_ACCESS_MATRIX): Remove.
34580         (lambda_vector_new): Add comment.
34581         (lambda_matrix_new): Use XOBNEWVEC.
34582
34583 2015-03-18  Richard Biener  <rguenther@suse.de>
34584
34585         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
34586         (pass_ch::execute): Cleanup the CFG only if we did sth.
34587         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
34588
34589 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34590
34591         * expmed.c (synth_mult): Use std::swap instead of manually
34592         swapping algorithms.
34593
34594 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
34595
34596         PR target/65078
34597         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
34598
34599 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
34600
34601         PR target/65296
34602         * config/avr/avr.opt (-nodevicelib): New option.
34603         * doc/invoke.texi (AVR Options): Document it.
34604         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
34605         libgcc.a, libc.a, libm.a.
34606         * config/avr/specs.h: Same.
34607         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
34608         which don't (directly) depend on the device.  Print more help.
34609         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
34610         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
34611         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
34612         case of an error.
34613         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
34614         for specs file name.
34615         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
34616         * config/avr/avr-mcus.def: Adjust initializers and comments.
34617
34618 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
34619
34620         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
34621         DECL_ONE_ONLY to check if decl is one only.
34622         * ipa-split.c (consider_split): Limit splitt of one only functions.
34623
34624 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34625
34626         PR tree-optimization/65427
34627         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
34628         functions.
34629         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
34630
34631 2015-03-16  Marek Polacek  <polacek@redhat.com>
34632
34633         * cgraph.h (add_new_static_var): Remove declaration.
34634         * varpool.c (add_new_static_var): Remove function.
34635
34636 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
34637
34638         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
34639         instead of vec<tree> * with vec_alloc and release for args.
34640         Adjust all users.
34641
34642         PR middle-end/65431
34643         * omp-low.c (delete_omp_context): Only splay_tree_delete
34644         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
34645         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
34646
34647 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
34648
34649         PR sanitizer/64820
34650         * cfgexpand.c (align_base): New function.
34651         (alloc_stack_frame_space): Call it.
34652         (expand_stack_vars): Align prev_frame to be sure
34653         data->asan_vec elements aligned properly.
34654
34655 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
34656
34657         PR middle-end/65409
34658         * expr.c (store_field): Do not do a direct block copy if the source is
34659         a PARALLEL with BLKmode.
34660
34661 2015-03-16  Tom de Vries  <tom@codesourcery.com>
34662
34663         PR middle-end/65414
34664         Revert:
34665         2015-03-12  Tom de Vries  <tom@codesourcery.com>
34666
34667         PR rtl-optimization/64895
34668         * lra-lives.c (check_pseudos_live_through_calls): Use
34669         actual_call_used_reg_set instead of call_used_reg_set, if available.
34670
34671 2015-03-16  Alan Modra  <amodra@gmail.com>
34672
34673         PR target/63150
34674         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
34675         Modify Z->r bswapdi splitter to use dest in place of scratch.
34676         In r->Z and Z->r bswapdi splitter rename word_high, word_low
34677         to word1, word2 and rearrange logic to suit.
34678         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
34679         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
34680         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
34681         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
34682         early clobber.
34683
34684 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
34685
34686         PR tree-optimization/65369
34687         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
34688         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
34689         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
34690
34691         PR tree-optimization/65418
34692         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
34693         are casts in the first PLUS_EXPR operand, ensure tbias and
34694         *totallowp are in the inner type.
34695
34696         PR rtl-optimization/65401
34697         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
34698         argument.  If true, adjust_address_nv of x with big-endian
34699         correction for the mode widening to GET_MODE (y).
34700         (make_field_assignment): Don't do MEM mode widening here.
34701         Use MEM_P instead of GET_CODE == MEM.
34702
34703 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
34704
34705         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
34706         the external decls.
34707
34708 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34709
34710         PR target/64600
34711         * config/arm/arm.c (arm_gen_constant, AND case): Use
34712         ARM_SIGN_EXTEND when constructing AND mask.
34713
34714 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34715
34716         * graph.c (print_graph_cfg): Make function names visible and append
34717         parenthesis to it.  Also make groups of basic blocks belonging to the
34718         same function visible.
34719
34720 2015-03-12  Richard Biener  <rguenther@suse.de>
34721
34722         PR middle-end/44563
34723         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
34724         to avoid quadratic behavior with inline expansion splitting blocks.
34725         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
34726         with the successor if the predecessor will be merged with it.
34727         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
34728         entry block with its successor.
34729
34730 2015-03-13  Richard Biener  <rguenther@suse.de>
34731
34732         PR middle-end/44563
34733         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
34734         (cleanup_tree_cfg_1): Do not call it.
34735         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
34736         (fixup_noreturn_call): Mark the stmt as control altering.
34737         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
34738         here.
34739         (pass_data_fixup_cfg): Produce a dump file.
34740         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
34741         (need_noreturn_fixup): New global.
34742         (pass_dominator::execute): Fixup queued noreturn calls.
34743         (optimize_stmt): Queue calls that became noreturn for fixup.
34744         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
34745         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
34746         (el_to_fixup): New global.
34747         (eliminate_dom_walker::before_dom_childre): Queue calls that
34748         became noreturn for fixup.
34749         (eliminate): Fixup queued noreturn calls.
34750         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
34751         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
34752         (substitute_and_fold_dom_walker::before_dom_children): Queue
34753         alls that became noreturn for fixup.
34754         (substitute_and_fold): Fixup queued noreturn calls.
34755
34756 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
34757
34758         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
34759         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
34760         are building; for methods check ODR type of class they belong to if
34761         they may lead to a polymorphic call.
34762         (sem_function::compare_polymorphic_p): Be bit smarter about testing
34763         when function may lead to a polymorphic call.
34764         (sem_function::compare_type_list): Remove.
34765         (sem_variable::equals): Update use of compatible_types_p.
34766         (sem_variable::parse_tree_refs): Remove.
34767         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
34768         cdtor.
34769         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
34770         matching here.
34771         (func_checker::compatible_polymorphic_types_p): Break out from ...
34772         (unc_checker::compatible_types_p): ... here.
34773         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
34774         Declare.
34775         (unc_checker::compatible_types_p): Update.
34776         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
34777         Remove.
34778
34779 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34780
34781         PR rtl-optimization/65235
34782         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
34783         When first element of vec_concat is const_int, calculate its size
34784         using second element.
34785
34786 2015-03-12  Richard Biener  <rguenther@suse.de>
34787
34788         PR middle-end/65270
34789         * fold-const.c (operand_equal_p): Fix ordering of resetting
34790         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
34791
34792 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34793
34794         * config/s390/s390.c (s390_reorg): Move code to output nops after label
34795         to s390_reorg ().
34796         (s390_asm_output_function_label): Likewise.
34797         * config/s390/s390.c (s390_asm_output_function_label):
34798         Fix function label alignment with -mhtopatch.
34799         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
34800         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
34801         ("nop_2_byte"): New define_insn.
34802         ("nop_4_byte"): Likewise.
34803         ("nop_6_byte"): Likewise.
34804         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
34805         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
34806
34807 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34808
34809         PR target/65103
34810         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
34811         register.
34812
34813 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
34814
34815         PR target/65044
34816         * toplev.c (process_options): Restrict Pointer Bounds Checker
34817         usage with Address Sanitizer.
34818
34819 2015-03-12  Richard Biener  <rguenther@suse.de>
34820
34821         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
34822         to split on.
34823         * omp-low.c (expand_omp_taskreg): Split block before removing
34824         the stmt.
34825         (expand_omp_target): Likewise.
34826         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
34827         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
34828         stmt to split_block.
34829
34830 2015-03-12  Tom de Vries  <tom@codesourcery.com>
34831
34832         PR rtl-optimization/64895
34833         * lra-lives.c (check_pseudos_live_through_calls): Use
34834         actual_call_used_reg_set instead of call_used_reg_set, if available.
34835
34836 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34837
34838         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
34839         (cgraph_node::remove): Likewise.
34840         (cgraph_node::get_untransformed_body): Likewise.
34841         * varpool.c (varpool_node::remove): Likewise.
34842         (varpool_node::get_constructor): Add sanity check.
34843
34844 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
34845
34846         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
34847         old GCC versions.
34848         (-fabi-compat-version): Likewise.
34849         (-ffriend-injection): Likewise.
34850         (-Wdeclaration-after-statement): Likewise.
34851         (-fomit-frame-pointer): Likewise.
34852         (-ftree-coalesce-inlined-vars): Likewise.
34853         (-fvisibility=): Likewise.
34854         * doc/extend.texi (Typeof): Likewise.
34855         (Zero Length): Likewise.
34856         (Escaped Newlines): Likewise.
34857         (Compound Literals): Likewise.
34858         (Function Attributes): Likewise.
34859         (Label Attributes): Likewise.
34860         (Type Attributes): Likewise.
34861         (Function Names): Likewise.
34862         (Other Builtins): Likewise.
34863         (Function Specific Option Pragmas): Likewise.
34864         (C++ Interface): Likewise.
34865
34866 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
34867
34868         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
34869
34870 2015-03-11  Marek Polacek  <polacek@redhat.com>
34871
34872         PR tree-optimization/65388
34873         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
34874
34875 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34876
34877         PR target/65296
34878         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
34879         * configure: Regenerate.
34880         * config.in: Regenerate.
34881         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
34882         [-mn-flash]: Document it.
34883         [__AVR_ARCH__]: Document avrtiny.
34884
34885         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
34886         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
34887         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
34888
34889 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34890
34891         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
34892
34893 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
34894
34895         PR target/65242
34896         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
34897         allow reloads of PLUS in floating point/VSX registers.
34898
34899 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
34900
34901         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
34902         crypto_sha256_fast.
34903         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
34904
34905 2015-03-11  Richard Biener  <rguenther@suse.de>
34906
34907         PR tree-optimization/65310
34908         * tree-sra.c (build_ref_for_offset): Also preserve larger
34909         alignment.
34910
34911 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
34912
34913         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
34914
34915 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34916
34917         PR target/65368
34918         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
34919         new define_expand.
34920         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
34921
34922 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34923
34924         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
34925         (sem_function::equals_wpa): ... here.
34926
34927 2015-03-10  Marek Polacek  <polacek@redhat.com>
34928             Jakub Jelinek  <jakub@redhat.com>
34929
34930         PR sanitizer/65367
34931         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
34932         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
34933         separately.
34934
34935 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34936
34937         PR target/65286
34938         * config/rs6000/t-linux: For powerpc64* target set
34939         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
34940
34941 2015-03-10  Richard Biener  <rguenther@suse.de>
34942
34943         PR middle-end/44563
34944         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
34945         for redirect_all_calls.
34946
34947 2015-03-10  Marek Polacek  <polacek@redhat.com>
34948
34949         * gdbinit.in (pcfun): Define and document.
34950
34951 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
34952
34953         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
34954         of libgomp-plugin.h.
34955         (find_target_compiler): Support a case when the path to gcc is
34956         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
34957         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
34958         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
34959         libgomp-plugin.h.
34960         (main): Use GCC_INSTALL_NAME as target_driver_name.
34961         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
34962         define.
34963         (mkoffload.o): Remove obsolete include path and defines.
34964         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
34965
34966 2015-03-10  Richard Biener  <rguenther@suse.de>
34967
34968         PR middle-end/63155
34969         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34970         * tree-ssa-coalesce.c: Include timevar.h.
34971         (attempt_coalesce): Handle graph being NULL.
34972         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34973         Split out abnormal coalescing to ...
34974         (perform_abnormal_coalescing): ... this function.
34975         (coalesce_ssa_name): Perform abnormal coalescing without computing
34976         live/conflict.
34977         (verify_ssa_coalescing_worker): New function.
34978         (verify_ssa_coalescing): Likewise.
34979
34980 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34981
34982         PR target/65296
34983         * config.gcc (extra_options) [avr]: Remove.
34984         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
34985         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
34986         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
34987
34988         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
34989         (-mmcu=): Add Var and MissingArgError properties.
34990         (-march=): Remove.
34991         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
34992         * config/avr/t-multilib: Regenerate.
34993         * config/avr/specs.h: New file.
34994         * config/avr/driver-avr.c: New file.
34995         * config/avr/genopt.sh: Remove file.
34996         * config/avr/avr-tables.opt: Remove file.
34997         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
34998         * config/avr/avr-c.c: Same.
34999         * avr-arch.h: Same.
35000         (avr_current_device): Remove proto.
35001         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
35002         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
35003         (EXTRA_SPEC_FUNCTIONS): Define.
35004         (avr_devicespecs_file): New specs function proto.
35005         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
35006         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
35007         (avr_current_device): Remove definition and usage.
35008         (avr_set_core_architecture): New static function.
35009         (avr_option_override): Use it.
35010         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
35011         (mcu_name): New static array.
35012         (comparator, avr_archs_str, avr_mcus_str): New static functions.
35013         (avr_inform_devices, avr_inform_core_architectures): New functions.
35014         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
35015         (avrlibc.h) [WITH_AVRLIBC]: Include.
35016         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
35017         (print_mcu): Rewrite from scratch.
35018         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
35019         Forward to avr-specific specs defined in device-specs file.
35020         * config/avr/t-avr (driver-avr.o): New rule.
35021         (avr-devices.o): Depend on avr-arch.h.
35022         (avr-mcus): No more depend on avr-tables.opt.
35023         (avr-tables.opt): Remove rule.
35024         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
35025
35026 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35027
35028         * c-family/c.opt (fchkp-use-wrappers): New.
35029         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
35030         (chkp_wrap_function): New.
35031         (chkp_build_instrumented_fndecl): Support wrapped
35032         functions.
35033         * doc/invoke.texi (-fcheck-pointer-bounds): New.
35034         (-fchkp-check-incomplete-type): New.
35035         (-fchkp-first-field-has-own-bounds): New.
35036         (-fchkp-narrow-bounds): New.
35037         (-fchkp-narrow-to-innermost-array): New.
35038         (-fchkp-optimize): New.
35039         (-fchkp-use-fast-string-functions): New.
35040         (-fchkp-use-nochk-string-functions): New.
35041         (-fchkp-use-static-bounds): New.
35042         (-fchkp-use-static-const-bounds): New.
35043         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
35044         (-fchkp-check-read): New.
35045         (-fchkp-check-write): New.
35046         (-fchkp-store-bounds): New.
35047         (-fchkp-instrument-calls): New.
35048         (-fchkp-instrument-marked-only): New.
35049         (-fchkp-use-wrappers): New.
35050         (-static-libmpx): New.
35051         (-static-libmpxwrappers): New.
35052
35053 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35054
35055         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
35056         (CHKP_SPEC): Add wrappers library.
35057         * c-family/c.opt (static-libmpxwrappers): New.
35058
35059 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
35060
35061         * config/i386/linux-common.h (LIBMPX_LIBS): New.
35062         (LIBMPX_SPEC): New.
35063         (CHKP_SPEC): New.
35064         * gcc.c (CHKP_SPEC): New.
35065         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
35066         * c-family/c.opt (static-libmpx): New.
35067
35068 2015-03-10  Richard Biener  <rguenther@suse.de>
35069
35070         PR middle-end/44563
35071         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
35072         for compare_type.
35073         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
35074         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
35075         (cgraph_add_edge_to_call_site_hash): Likewise.
35076         (cgraph_node::get_edge): Likewise.
35077         (cgraph_edge::set_call_stmt): Likewise.
35078         (cgraph_edge::remove_caller): Likewise.
35079
35080 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
35081
35082         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
35083         (callee_saved_gpr_regs_size): ... this.
35084         (callee_saved_regs_first_regno): Rename to ...
35085         (callee_saved_first_gpr_regno): ... this.
35086         (callee_saved_regs_last_regno) Rename to ...
35087         (callee_saved_last_gpr_regno): ... this.
35088         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
35089         variables.
35090         (nds32_initial_elimination_offset): Likewise.
35091         (nds32_expand_prologue): Likewise.
35092         (nds32_expand_epilogue): Likewise.
35093         (nds32_expand_prologue_v3push): Likewise.
35094         (nds32_expand_epilogue_v3pop): Likewise.
35095         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
35096         Adjust renamed variables.
35097         (nds32_output_stack_pop): Likewise.
35098
35099 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35100
35101         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
35102         code in comment.
35103
35104 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
35105
35106         PR rtl-optimization/65321
35107         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
35108         than shift mode.
35109         * var-tracking.c (use_narrower_mode): Likewise.
35110
35111 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
35112
35113         PR tree-optimization/65355
35114         * varasm.c (notice_global_symbol): Do not produce RTL.
35115         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
35116         anchor.
35117         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
35118         check for section anchors.
35119
35120 2015-03-10  Alan Modra  <amodra@gmail.com>
35121
35122         PR target/65286
35123         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
35124         to be single-arch by default.  Set cpu_is_64bit for powerpc64
35125         given --with-cpu=native.
35126         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
35127         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
35128         and powerpc64le.
35129         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
35130         rs6000_isa_flags rather than TARGET_64BIT.
35131
35132 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
35133             Kaz Kojima  <kkojima@gcc.gnu.org>
35134
35135         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
35136
35137 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
35138
35139         PR lto/65361
35140         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
35141         on a TREE_BINFO, instead use BINFO_TYPE.
35142
35143 2015-03-09  Richard Biener  <rguenther@suse.de>
35144
35145         PR middle-end/65270
35146         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
35147         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
35148         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
35149         of that.  When comparing dereferences compare alignment.
35150         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
35151
35152 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35153
35154         * ipa-inline-analysis.c (check_callers): Check
35155         node->can_remove_if_no_direct_calls_and_refs_p.
35156         (growth_likely_positive): Reorganize to call
35157         can_remove_if_no_direct_calls_p later.
35158         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
35159         will_be_removed_from_program_if_no_direct_calls_p): Add
35160         will_inline parameter.
35161         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
35162         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35163         Handle inliner case correctly.
35164
35165 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35166
35167         PR tree-optimization/63743
35168         * cfgexpand.c (reorder_operands): Also reorder if only second operand
35169         had its definition forwarded by TER.
35170
35171 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
35172
35173         PR lto/65316
35174         * ipa-utils.h (types_odr_comparable): Add strict argument.
35175         * ipa-devirt.c: Fix whitespace;
35176         (odr_hasher): Remove.
35177         (odr_name_hasher, odr_vtable_hasher): New hashers.
35178         (can_be_name_hashed_p): New predicate.
35179         (hash_type_name): remove.
35180         (hash_odr_name): New.
35181         (odr_name_hasher::hash): new.
35182         (can_be_vtable_hashed_p): New.
35183         (hash_odr_vtable): New.
35184         (odr_vtable_hasher::hash): New.
35185         (types_same_for_odr): Add strict parameter.
35186         (types_odr_comparable): Likewise.
35187         (odr_name_hasher::equal): New.
35188         (odr_vtable_hasher::equal): New.
35189         (odr_name_hasher::remove): New.
35190         (odr_hash_type): Change to hash_table<odr_name_hasher>.
35191         (odr_vtable_hash_type): New.
35192         (odr_vtable_hash): New.
35193         (odr_subtypes_equivalent_p): Do strict comparsion.
35194         (add_type_duplicate): Merge type names; cleanup; avoid type
35195         duplicates.
35196         (register_odr_type): Initialize vtable hash.
35197         (build_type_inheritance_graph): Likewise
35198         (get_odr_type): Reorg to use two hashes.
35199         (dump_possible_polymorphic_call_targets): Move sanity check after debug
35200         output.
35201         (ipa_devirt): Dump type_inheritance_graph.
35202         (types_same_for_odr): Add strict mode.
35203
35204 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35205
35206         PR ipa/65334
35207         * cgraph.h (symtab_node): Add definition_alignment,
35208         can_increase_alignment_p and increase_alignment.
35209         * symtab.c (symtab_node::can_increase_alignment_p,
35210         increase_alignment_1, symtab_node::increase_alignment,
35211         symtab_node::definition_alignment): New.
35212         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
35213         can_increase_alignment_p.
35214         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
35215         * tree-vect-stmts.c (ensure_base_align): Likewise.
35216         * varasm.c (function_section_1): Use definition_alignment.
35217         (assemble_start_function): Likewise.
35218         (emit_local): likewise.
35219         (build_constant_desc): Likewsie.
35220         (output_constant_def_contents): Likewise.
35221         (place_block_symbol): Likewise.
35222         (output_object_block): Likewise.
35223
35224 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35225
35226         PR ipa/65316
35227         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
35228         when outputting debug.
35229
35230 2015-03-07  Marek Polacek  <polacek@redhat.com>
35231             Martin Uecker  <uecker@eecs.berkeley.edu>
35232
35233         PR sanitizer/65280
35234         * doc/invoke.texi: Update description of -fsanitize=bounds.
35235
35236 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
35237
35238         * tree-ssa-phiopt.c (neg_replacement): Remove.
35239         (tree_ssa_phiopt_worker): Remove negate optimization.
35240
35241 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35242
35243         PR ipa/65302
35244         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
35245
35246 2015-03-06  Richard Biener  <rguenther@suse.de>
35247
35248         PR middle-end/64928
35249         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
35250         and liveout_obstack members.
35251         (calculate_live_on_exit): Remove.
35252         (calculate_live_ranges): Change declaration.
35253         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
35254         (new_tree_live_info): Adjust.
35255         (calculate_live_ranges): Delete livein when not wanted.
35256         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
35257         Deal with partly deleted live info.
35258         (loe_visit_block): Remove temporary bitmap by using
35259         bitmap_ior_and_compl_into.
35260         (live_worklist): Adjust accordingly.
35261         (calculate_live_on_exit): Make static.
35262         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
35263         we do not need livein.
35264
35265 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
35266
35267         * real.c (real_from_string): Fix typo in assertion.
35268
35269 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
35270
35271         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
35272         the patch.
35273
35274 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
35275
35276         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
35277
35278 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
35279
35280         PR target/64342
35281         * lra-assigns.c (find_hard_regno_for): Rename to
35282         find_hard_regno_for_1.  Add a new parameter.
35283         (find_hard_regno_for): New function using find_hard_regno_for_1.
35284
35285 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35286
35287         PR rtl-optimization/65067
35288         * expmed.c (store_bit_field, extract_bit_field): Reworked the
35289         strict volatile bitfield handling.
35290
35291 2015-03-05  Martin Liska  <mliska@suse.cz>
35292
35293         PR ipa/65318
35294         * ipa-icf.c (sem_variable::equals): Compare variables types.
35295
35296 2015-03-05  Richard Henderson  <rth@redhat.com>
35297
35298         PR target/65121
35299         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
35300         correctly check weak symbol binding.
35301
35302 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
35303
35304         PR middle-end/65315
35305         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
35306         needed alignment.
35307
35308 2015-03-05  Martin Liska  <mliska@suse.cz>
35309
35310         * ipa-inline.c (inline_small_functions): Set default value to
35311         prevent warning during bootstrap.
35312         * tree.h: Add pragma guard that ignores false positives during
35313         bootstrap.
35314
35315 2015-03-05  Richard Biener  <rguenther@suse.de>
35316
35317         PR tree-optimization/65310
35318         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
35319         Properly preserve alignment of the base of the access.
35320
35321 2015-03-05  Richard Biener  <rguenther@suse.de>
35322
35323         PR ipa/65270
35324         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
35325         Compare dependence info.
35326
35327 2015-03-05  Richard Biener  <rguenther@suse.de>
35328
35329         PR middle-end/65233
35330         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
35331         tree-into-ssa.h.
35332         (walk_ssa_copies): Revert last chage.  Instead do not walk
35333         SSA names registered for SSA update.
35334
35335 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35336
35337         PR ipa/65270
35338         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
35339         vtable references for their containing type.
35340         (sem_function::equals_wpa): Compare TYPE_RESTRICT
35341         and type attributes.
35342
35343 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
35344
35345         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
35346         before negating it.
35347         * stor-layout.c (finalize_record_size): Revert latest change.
35348
35349 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
35350
35351         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
35352
35353 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35354
35355         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
35356         for correct comdat handling.
35357         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
35358         Likewise.
35359         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
35360         (used_from_object_file_p_worker): Remove.
35361         (cgraph_node::only_called_directly_or_alised): Add
35362         used_from_object_file_p.
35363         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
35364         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
35365         can_remove_if_no_direct_calls_and_refs_p.
35366
35367 2015-03-04  Nick Clifton  <nickc@redhat.com>
35368
35369         * config/rl78/rl78.h (enum reg_class): Remove real registers from
35370         General register class.
35371         * config/rl78/rl78-real.md: Replace general register constraints
35372         with real+virtual register constraints.
35373
35374 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35375
35376         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
35377         from checking for -mhtm option.
35378
35379 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
35380
35381         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
35382         (struct ipa_sra_check_caller_data): Add has_thunk field.
35383         (ipa_sra_check_caller): Check for thunk.
35384         (ipa_sra_preliminary_function_checks): Give up on function with
35385         thunks.
35386         (ipa_early_sra): Use call_for_symbol_and_aliases.
35387
35388 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
35389
35390         PR target/65249
35391         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
35392         called for __stack_chk_guard symbol.
35393
35394 2015-03-03  DJ Delorie  <dj@redhat.com>
35395
35396         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
35397         inc/dec.
35398         (*addhi3_real): Likewise.
35399         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
35400         pattern to match incrementing memory.
35401         * config/rl78/predicates.md (rl78_1_2_operand): New.
35402         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
35403         it's the same and only mem.
35404         (rl78_alloc_physical_registers_op2): If there's effectively only
35405         one MEM, transcode it into HL.
35406         (rl78_far_p): Reject addresses that aren't legitimate.
35407
35408 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35409
35410         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
35411         negating it.
35412
35413         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
35414
35415 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35416
35417         Implement call0 ABI for xtensa
35418         * config/xtensa/constraints.md ("a" constraint): Include stack
35419         pointer in case of call0 ABI.
35420         ("q" constraint): Make empty in case of call0 ABI.
35421         ("D" constraint): Include stack pointer in case of call0 ABI.
35422         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
35423         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
35424         prototypes.
35425         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
35426         variable.
35427         (xtensa_regno_to_class): Make it a local variable in the
35428         function xtensa_regno_to_class.
35429         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
35430         macro, function prototype and implementation.
35431         (reg_nonleaf_alloc_order): Make it a local variable in the
35432         function order_regs_for_local_alloc.
35433         (xtensa_conditional_register_usage): New function.
35434         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
35435         (xtensa_valid_move): Allow direct moves to stack pointer
35436         register in call0 ABI.
35437         (xtensa_setup_frame_addresses): Only spill register windows in
35438         windowed ABI.
35439         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
35440         call0 ABI respectively.
35441         (xtensa_function_arg_1): Only mark a7 register for copying in
35442         windowed ABI.
35443         (xtensa_call_save_reg): New function.
35444         (compute_frame_size): Add space for callee saved register
35445         storage to the frame size in call0 ABI.
35446         (xtensa_expand_prologue): Generate code to set up stack frame
35447         and save callee-saved registers in call0 ABI.
35448         (xtensa_expand_epilogue): New function.
35449         (xtensa_set_return_address): New function.
35450         (xtensa_return_addr): Calculate return address in call0 ABI.
35451         (xtensa_builtin_saveregs): Only mark a7 register for copying and
35452         emit copying code in windowed ABI.
35453         (order_regs_for_local_alloc): Add preferred register allocation
35454         order for non-leaf function in call0 ABI.
35455         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
35456         (xtensa_asm_trampoline_template): Add trampoline generation for
35457         call0 ABI.
35458         (xtensa_trampoline_init): Add trampoline initialization for
35459         call0 ABI.
35460         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
35461         functions.
35462         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
35463         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
35464         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
35465         ABI call-used registers.
35466         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
35467         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
35468         call0 ABI.
35469         (REG_CLASS_CONTENTS): Include all registers into the preferred
35470         reload registers set, adjust the set in the
35471         xtensa_conditional_register_usage.
35472         (xtensa_regno_to_class): Drop variable declaration.
35473         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
35474         function.
35475         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
35476         respectively.
35477         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
35478         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
35479         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
35480         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
35481         location in call0 ABI.
35482         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
35483         stack adjustment size when handling exception.
35484         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
35485         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
35486         definitions.
35487         ("return" pattern): Generate ret.n/ret in call0 ABI.
35488         ("epilogue" pattern): Expand epilogue.
35489         ("nonlocal_goto" pattern): Use default in call0 ABI.
35490         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
35491         emit eh_set_a0_* depending on ABI.
35492         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
35493         ("eh_set_a0_call0", "blockage"): New patterns.
35494
35495 2015-03-03  Martin Liska  <mliska@suse.cz>
35496
35497         PR ipa/65287
35498         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
35499
35500 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
35501
35502         PR 65138/target
35503         * config/rs6000/rs6000-tables.opt: Regenerate table.
35504
35505 2015-03-03  Renlin Li  <renlin.li@arm.com>
35506
35507         * doc/md.texi (@item ^): Change ? into ^.
35508
35509 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
35510
35511         * doc/tm.texi: Regenerated.
35512
35513 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
35514
35515         * builtins.c (expand_builtin_return_addr): Add
35516         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
35517         surrounding #ifdef.
35518         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
35519         definition to 1.
35520         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
35521         Likewise.
35522         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
35523         undefined.
35524         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
35525         paragraph.
35526
35527 2015-03-03  Martin Jambor  <mjambor@suse.cz>
35528             Eric Botcazou  <ebotcazou@adacore.com>
35529
35530         * tree-sra.c (ipa_sra_check_caller_data): New type.
35531         (has_caller_p): Removed.
35532         (ipa_sra_check_caller): New function.
35533         (ipa_sra_preliminary_function_checks): Use it.
35534
35535 2015-03-03  Martin Liska  <mliska@suse.cz>
35536
35537         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
35538         instead of if branch.
35539
35540 2015-03-03  Martin Liska  <mliska@suse.cz>
35541
35542         PR ipa/65282
35543         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
35544
35545 2015-03-23  Jeff Law  <law@redhat.com>
35546
35547         PR tree-optimization/65241
35548         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
35549         hash table if INSERT is true.
35550
35551 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35552
35553         PR target/65296
35554         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
35555
35556 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35557
35558         PR target/64331
35559         * config/avr/avr.c (context.h, tree-pass.h): Include them.
35560         (avr_pass_data_recompute_notes): New static variable.
35561         (avr_pass_recompute_notes): New class.
35562         (avr_register_passes): New static function.
35563         (avr_option_override): Call it.
35564
35565 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
35566
35567         Fix various problems with specs file generation.
35568
35569         PR target/65296
35570         * config.gcc (extra_gcc_objs) [avr]: Remove.
35571         * config/avr/driver-avr.c: Remove file.
35572         * config/avr/t-avr (driver-avr.o): Remove rule.
35573         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
35574         INCLUDES to build.  Depend on TM_H.
35575         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
35576         build warnings.  Fix non-matching types and non-existing %-codes.
35577         (tm.h): Include.
35578         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
35579         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
35580         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
35581         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
35582         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
35583         (LIBGCC_SPEC): Remove definitions.
35584
35585 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35586
35587         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
35588         to create a register in testing mode.
35589
35590 2015-03-03  Martin Liska  <mliska@suse.cz>
35591             Jan Hubicka  <hubicka@ucw.cz>
35592
35593         PR ipa/65263
35594         * cgraph.c (cgraph_node::has_thunk_p): New function.
35595         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
35596         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
35597         (sem_function::merge): Assert is changed.
35598
35599 2015-03-03  Martin Liska  <mliska@suse.cz>
35600             Martin Jambor  <mjambor@suse.cz>
35601
35602         PR ipa/65087
35603         * ipa-icf.c (sem_item_optimizer::execute): Change function
35604         return value to boolean.
35605         (sem_item_optimizer::merge_classes): Likewise.
35606         (ipa_icf_driver): Return TODO_remove_functions in case there's
35607         a merge operation processed.
35608         * ipa-icf.h: Change function return value to boolean.
35609
35610 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
35611
35612         PR 65138/target
35613         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
35614         processor type for 64-bit little endian PowerPC.
35615
35616         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
35617         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
35618         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
35619         printing built-in mask so it does not pass NULL pointers.
35620
35621         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
35622         -mcpu=powerpc64le.
35623
35624 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
35625
35626         PR target/58158
35627         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
35628         !ISA_HAS_FP_CONDMOVE.
35629
35630 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
35631
35632         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
35633         reload_completed.
35634
35635 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
35636
35637         * doc/invoke.texi (Options for Code Generation Conventions):
35638         Fix URL of DSO paper.
35639
35640 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35641
35642         PR ipa/65130
35643         * ipa-inline.c (check_callers): Looks for recursion.
35644         (inline_to_all_callers): Give up on uninlinable or recursive edges.
35645         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
35646         summary of inline clones.
35647         (do_estimate_growth_1): Fix recursion check.
35648
35649 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35650
35651         PR ipa/64988
35652         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
35653         comdat groups.
35654
35655 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
35656             Aldy Hernandez  <aldyh@redhat.com>
35657
35658         PR lto/65276
35659         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
35660         when checking TYPE_BINFO.
35661
35662 2015-03-02  Richard Biener  <rguenther@suse.de>
35663
35664         PR ipa/65270
35665         * ipa-icf-gimple.c: Include builtins.h.
35666         (func_checker::compare_memory_operand): Compare base alignment.
35667
35668 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35669
35670         PR target/65184
35671         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
35672         passed by reference.
35673
35674 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
35675
35676         PR target/65183
35677         * tree-chkp.c (chkp_check_lower): Don't check against
35678         zero bounds for already instrumented functions.
35679         (chkp_check_upper): Likewise.
35680         (chkp_fini): Clean pass local data to avoid wrong reusage.
35681
35682 2015-02-28  Martin Liska  <mliska@suse.cz>
35683             Jan Hubicka  <hubicka@ucw.cz>
35684
35685         * ipa-icf.c (sem_variable::equals): Improve debug output;
35686         get variable constructor.
35687         (sem_variable::parse): Do not filter out too early; give up on
35688         volatile and register vars.
35689         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
35690         variables.
35691         * ipa-icf.h (sem_variable::init): Do not set ctor.
35692         (sem_variable::ctor): Remove.
35693
35694 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
35695
35696         PR middle-end/65233
35697         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
35698
35699 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35700
35701         * ipa-icf.c: Include stor-layout.h
35702         (sem_function::compare_cgraph_references): Rename to ...
35703         (sem_item::compare_cgraph_references): ... this one.
35704         (sem_variable::equals_wpa): New function
35705         (sem_variable::equals): Do not check stuff already verified by
35706         equals_wpa.
35707         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
35708         * ipa-icf.h (sem_item): Add compare_cgraph_references.
35709         (sem_function): Remove compare_cgraph_references.
35710         (sem_variable): Turns equals_wpa into non-inline.
35711
35712 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35713
35714         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
35715         (sem_item::add_expr): New function.
35716         (sem_function::hash_stmt): Handle operands of most statements.
35717         (sem_variable::get_hash): Hash the actual constructor.
35718         * ipa-icf.h (sem_item): Add add_expr.
35719         (sem_function): Update prototype of hash_stmt
35720
35721 2015-02-28  Martin Liska  <mliska@suse.cz>
35722             Jan Hubicka  <hubicka@ucw.cz>
35723
35724         PR ipa/65245
35725         * ipa-icf-gimple.c (func_checker::compare_function_decl):
35726         Remove.
35727         (func_checker::compare_variable_decl): Skip symtab vars.
35728         (func_checker::compare_cst_or_decl): Update.
35729         * ipa-icf.c (sem_function::parse): Do not consider aliases.
35730         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
35731         use correct symtab predicates.
35732         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
35733         (sem_variable::parse):  Update comment.
35734         (sem_item_optimizer::build_graph): Consider ultimate aliases
35735         for references.
35736
35737 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35738
35739         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
35740         of OBJ_TYPE_REF.
35741
35742 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35743
35744         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
35745         (sem_variable::merge) Likewise.
35746
35747 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35748
35749         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
35750         target; also match flag_ipa_devirt.
35751
35752 2015-03-01  Martin Liska  <mliska@suse.cz>
35753             Jan Hubicka  <hubicka@ucw.cz>
35754
35755         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
35756         Validate variable alignment.
35757         * ipa-icf.c (sem_function::equals_private): Be more precise
35758         about non-common function attributes.
35759         (sem_variable::equals): Likewise.
35760
35761 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35762
35763         PR ipa/65237
35764         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
35765         across COMDAT group boundary.
35766
35767 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35768
35769         PR ipa/65232
35770         * ipa-icf.c (clear_decl_rtl): New function.
35771         (sem_function::merge): Clear RTL before forming alias.
35772         (sem_variable::merge): Clear RTL before forming alias.
35773
35774 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
35775
35776         PR ipa/65236
35777         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
35778
35779 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
35780
35781         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
35782         to neon_to_gp<q>.
35783
35784 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35785
35786         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
35787         a typo in the description.
35788
35789 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35790
35791         PR target/64317
35792         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35793         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
35794         * lra-constraints.c: Include "params.h".
35795         (EBB_PROBABILITY_CUTOFF): Use
35796         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
35797         (lra_inheritance): Use '<' instead of '<=' for
35798         EBB_PROBABILITY_CUTOFF.
35799         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
35800         Document change.
35801
35802 2015-02-27  Martin Liska  <mliska@suse.cz>
35803
35804         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
35805         vector length condition.
35806
35807 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
35808
35809         * doc/extend.texi (x86 transactional memory intrinsics):
35810         Reorganize discussion of _xbegin.  Clarify that the return
35811         value is a bit mask.  Expand example and move to end of section.
35812
35813 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35814             Aldy Hernandez  <aldyh@redhat.com>
35815
35816         PR rtl-optimization/65220
35817         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
35818
35819 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
35820
35821         PR target/65032
35822         * lra-remat.c (update_scratch_ops): New.
35823         (do_remat): Call it.
35824         * lra.c (lra_register_new_scratch_op): New. Take code from ...
35825         (remove_scratches): ... here.
35826         * lra-int.h (lra_register_new_scratch_op): New prototype.
35827
35828 2015-02-27  Marek Polacek  <polacek@redhat.com>
35829
35830         PR c/65040
35831         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
35832         -Wformat-signedness anymore.
35833
35834 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35835
35836         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
35837         function.
35838         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
35839
35840 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35841
35842         * config/s390/s390.c (enum s390_builtin):
35843         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
35844         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
35845         (s390_init_builtins): Generate new builtin functions.
35846         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
35847         (s390_sfpc, s390_efpc): New pattern definitions.
35848
35849 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35850
35851         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
35852         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
35853         (s390_builtin_decls): New array.
35854         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
35855         (s390_builtin_decl): New function.
35856         (TARGET_BUILTIN_DECL): Define macro.
35857
35858 2015-02-27  Richard Biener  <rguenther@suse.de>
35859
35860         PR middle-end/63175
35861         * builtins.c (get_object_alignment_2): Make sure to re-apply
35862         the ANDed mask after recursing to its operand gets us a new
35863         misalignment bit position.
35864
35865 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
35866             Martin Liska  <mliska@suse.cz>
35867
35868         PR bootstrap/65150
35869         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
35870         Use address_matters_p.
35871         (redirect_all_callers, set_addressable): New functions.
35872         (sem_function::merge): Reorganize and fix merging issues.
35873         (sem_variable::merge): Likewise.
35874         (sem_variable::compare_sections): Remove.
35875         * common.opt (fmerge-all-constants, fmerge-constants): Remove
35876         Optimization flag.
35877         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
35878         redirect them.
35879         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
35880         decl is used.
35881         (address_matters_1): New function.
35882         (symtab_node::address_matters_p): New function.
35883         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
35884         check for merged flag.
35885         * cgraph.h (address_matters_p): Declare.
35886         (symtab_node::address_taken_from_non_vtable_p): Remove.
35887         (symtab_node::address_can_be_compared_p): New method.
35888         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
35889         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
35890         Remove.
35891         (comdat_can_be_unshared_p_1) Use address_matters_p.
35892         (update_vtable_references): Fix formating.
35893         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
35894         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
35895         * cgraphclones.c: Preserve merged and icf_merged flags.
35896
35897 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
35898
35899         * doc/extend.texi (Function Attributes): Fix spelling and typos.
35900         (Label Attributes): Likewise.
35901         (Cilk Plus Builtins): Likewise.
35902         (ARC SIMD Built-in Functions): Likewise.
35903         (ARM C Language Extensions (ACLE)): Likewise.
35904         (PowerPC Built-in Functions): Likewise.
35905         (PowerPC Hardware Transactional Memory Built-in Functions):
35906         Likewise.
35907
35908 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35909
35910         PR tree-optimization/65216
35911         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
35912         new stmt and new SSA_NAME for lhs whenever the arguments have
35913         changed and weren't just swapped.  Fix comment typo.
35914
35915         PR tree-optimization/65215
35916         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
35917         for PDP endian targets.
35918         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
35919         Fix up formatting issues.
35920         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
35921         size is smaller than the original, adjust MEM_REF offset by the
35922         difference of sizes.  Use is_gimple_mem_ref_addr instead of
35923         is_gimple_min_invariant test to avoid adding address temporaries.
35924
35925 2015-02-26  Martin Liska  <mliska@suse.cz>
35926             Jan Hubicka  <hubicka@ucw.cz>
35927
35928         PR ipa/64693
35929         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
35930         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
35931         (sem_item_optimizer::process_cong_reduction): Include division by
35932         sensitive references.
35933         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
35934         * ipa-ref.c (ipa_ref::address_matters_p): New function.
35935         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
35936
35937 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
35938
35939         PR target/65192
35940         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
35941         Remove.
35942         * config/avr/avr.c: Same.
35943         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
35944         Refuse any constant address not in 0..0xbf.
35945         * config/avr/avr.md (*mov<mode>, *movsf): Remove
35946         tiny_valid_direct_memory_access_range from insn conditions.
35947         (mov<mode>): Don't special-case expansion of avrtiny addresses.
35948
35949 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
35950
35951         PR target/61142
35952         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
35953         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
35954         * config/sh/predicates.md (const_logical_operand): New predicate.
35955         * config/sh/sh.md: Add new peephole2 patterns.
35956
35957 2015-02-26  Marek Polacek  <polacek@redhat.com>
35958
35959         PR ipa/65008
35960         * ipa-inline.c (early_inliner): Recompute inline parameters.
35961
35962 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35963
35964         PR target/65171
35965         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
35966         instructions with TImode operands are included in the analysis.
35967
35968 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35969
35970         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
35971         of an EDGE_FSM_THREAD.
35972
35973 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
35974
35975         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
35976
35977 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
35978
35979         PR debug/46102
35980         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
35981
35982 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35983
35984         PR tree-optimization/65048
35985         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
35986         (thread_through_all_blocks): Call valid_jump_thread_path.
35987         Remove invalid FSM jump-thread paths.
35988
35989 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35990
35991         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
35992         (ipa_write_optimization_summaries): Likewise.
35993         * tree-streamer.h: Include data-streamer.h.
35994         (streamer_mode_table): Declare extern variable.
35995         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
35996         * lto-streamer-out.c (lto_output_init_mode_table,
35997         lto_write_mode_table): New functions.
35998         (produce_asm_for_decls): Call lto_write_mode_table when streaming
35999         offloading LTO.
36000         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
36001         (lto_create_simple_input_block): Add mode_table argument to the
36002         lto_input_block constructors.
36003         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
36004         Likewise.
36005         * data-streamer-in.c (string_for_index): Likewise.
36006         * ipa-inline-analysis.c (inline_read_section): Likewise.
36007         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
36008         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
36009         * lto-streamer-in.c (lto_read_body_or_constructor,
36010         lto_input_toplevel_asms): Likewise.
36011         (lto_input_mode_table): New function.
36012         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
36013         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
36014         Use bp_pack_machine_mode.
36015         * real.h (struct real_format): Add name field.
36016         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
36017         (class lto_input_block): Add mode_table member.
36018         (lto_input_block::lto_input_block): Add mode_table_ argument,
36019         initialize mode_table.
36020         (struct lto_file_decl_data): Add mode_table field.
36021         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
36022         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
36023         unpack_ts_decl_common_value_fields,
36024         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
36025         * tree-streamer.c (streamer_mode_table): New variable.
36026         * real.c (ieee_single_format, mips_single_format,
36027         motorola_single_format, spu_single_format, ieee_double_format,
36028         mips_double_format, motorola_double_format,
36029         ieee_extended_motorola_format, ieee_extended_intel_96_format,
36030         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
36031         ibm_extended_format, mips_extended_format, ieee_quad_format,
36032         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
36033         decimal_single_format, decimal_double_format, decimal_quad_format,
36034         ieee_half_format, arm_half_format, real_internal_format): Add name
36035         field.
36036         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
36037
36038 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
36039
36040         PR target/65161
36041         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
36042         reordering for selective scheduling.
36043
36044 2015-02-26  Terry Guo  <terry.guo@arm.com>
36045
36046         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
36047         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
36048         (arm_arch_no_volatile_ce): Declare new global variable.
36049         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
36050         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
36051         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
36052         (TARGET_NO_VOLATILE_CE): New macro.
36053         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
36054         volatile memory access in IT block
36055
36056 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36057
36058         PR tree-optimization/61917
36059         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
36060         that reduc_def_stmt is null.
36061
36062 2015-02-25  Martin Liska  <mliska@suse.cz>
36063
36064         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
36065         hard register variables.
36066
36067 2015-02-25  Kai Tietz  <ktietz@redhat.com>
36068
36069         PR target/64212
36070         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
36071         (symtab::noninterposable_alias): Likewise.
36072
36073 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
36074
36075         PR target/65167
36076         * config/i386/i386.c (ix86_function_arg_regno_p): Support
36077         bounds registers.
36078         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
36079
36080 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
36081
36082         PR target/64997
36083         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
36084         as split condition; force split via '#' in output pattern.
36085
36086 2015-02-25  Richard Biener  <rguenther@suse.de>
36087             Kai Tietz  <ktietz@redhat.com>
36088
36089         PR tree-optimization/61917
36090         * tree-vect-loop.c (vectorizable_reduction): Allow
36091         vect_internal_def without reduction to exit graceful.
36092
36093 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36094
36095         PR target/65196
36096         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
36097         only with NONDEBUG_INSN_P.
36098
36099 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
36100
36101         Use variadic macros with avr-log.c.
36102
36103         * config/avr/avr-protos.h (avr_vdump): New prototype.
36104         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
36105         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
36106         * config/avr/avr-log.c: Adjust comments.
36107         (avr_vdump): New function.
36108         (avr_vadump): Pass caller as 2nd argument instead of format string.
36109         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
36110         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
36111
36112 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
36113
36114         PR lto/64374
36115         * target.def (target_option_stream_in): New target hook.
36116         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
36117         targetm.target_option.post_stream_in if non-NULL.
36118         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
36119         * doc/tm.texi: Updated.
36120         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
36121         function.
36122         (TARGET_OPTION_POST_STREAM_IN): Redefine.
36123
36124 2015-02-24  Jeff Law  <law@redhat.com>
36125
36126         PR target/65117
36127         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
36128         of operand 0 and operand 2.
36129         (zero_cost_loop_end, loop_end): Similarly.
36130
36131 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
36132
36133         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
36134         CXX_MEM_STAT_INFO.
36135
36136 2015-02-24  DJ Delorie  <dj@redhat.com>
36137
36138         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
36139         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
36140         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
36141         instead of hardcoding SImode.
36142
36143 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
36144
36145         * omp-low.c (create_omp_child_function): Tag entrypoint
36146         functions with a special attribute.
36147
36148 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
36149
36150         PR target/65058
36151         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
36152
36153 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
36154
36155         PR rtl-optimization/65123
36156         * lra-remat.c (operand_to_remat): Check hard regs in insn
36157         definition too.
36158
36159 2015-02-24  Nick Clifton  <nickc@redhat.com>
36160
36161         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
36162         to the assembler.
36163
36164 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
36165
36166         PR libgomp/64625
36167         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
36168         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
36169         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
36170         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
36171         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
36172         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
36173         (BUILT_IN_GOACC_PARALLEL): Specify as
36174         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
36175         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
36176         * builtin-types.def
36177         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36178         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36179         Remove function types.
36180         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
36181         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
36182         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
36183         New function types.
36184
36185 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
36186
36187         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
36188
36189 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
36190
36191         PR tree-optimization/65170
36192         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
36193         if val[1] < 0, clear also val[2] and return 3.
36194
36195 2015-02-24  Alan Modra  <amodra@gmail.com>
36196
36197         PR target/65172
36198         * config/rs6000/rs6000.c (get_memref_parts): Only return true
36199         when *base is a reg.  Handle nested plus addresses.  Simplify
36200         pre_modify test.
36201
36202 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
36203
36204         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
36205         use natural alignment when optimizing for size.
36206
36207 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
36208
36209         PR target/65153
36210         * config/sh/sh.md (movsicc_true+3): Remove peephole.
36211         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
36212         * config/sh/sh.c (replace_n_hard_rtx): Remove.
36213
36214 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
36215
36216         PR fortran/63427
36217         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
36218         too big for a wide_int.  Implement missing wrapping operation.
36219
36220 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
36221
36222         PR target/65163
36223         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
36224         instead of const_int 4294901760.
36225
36226 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
36227
36228         * config/avr/t-avr: Fix typo in comment.
36229
36230 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
36231
36232         * doc/rtl.texi (fma): Clarify documentation.
36233
36234 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
36235
36236         PR debug/58123
36237         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
36238         over input_location.
36239
36240 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36241
36242         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
36243         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
36244         restrict alignments to absolute_biggest_alignment.
36245         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
36246         Define.
36247         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
36248         * doc/tm.texi: Regenerate.
36249         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
36250
36251 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
36252
36253         PR target/64172
36254         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
36255
36256 2015-02-20  Richard Biener  <rguenther@suse.de>
36257
36258         PR tree-optimization/65136
36259         * tree-ssa-propagate.c: Include cfgloop.h.
36260         (replace_phi_args_in): Avoid replacing loop latch edge PHI
36261         arguments with constants.
36262
36263 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
36264             Martin Liska  <mliska@suse.cz>
36265
36266         PR target/63892
36267         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
36268         don't try to create_thunk if stdarg_p.  If
36269         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
36270         redirect_callers if possible.
36271         (sem_item_optimizer::execute): Call unregister_hooks here...
36272         (ipa_icf_driver): ... instead of here.
36273
36274 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36275
36276         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
36277         Mark operand 0 as earlyclobber in 2nd alternative.
36278         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
36279         Write negated shift amount into QI lowpart operand 0 and use it
36280         in the shift step.
36281         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
36282
36283 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36284
36285         * cgraph.h (clone_function_name_1): Declare.
36286         * cgraphclones.c (clone_function_name_1): New function.
36287         (clone_function_name): Use it.
36288         * lto-partition.c: Include "stringpool.h".
36289         (must_not_rename, maybe_rewrite_identifier)
36290         (validize_symbol_for_target): New static functions.
36291         (privatize_symbol_name): Use must_not_rename.
36292         (promote_symbol): Call validize_symbol_for_target.
36293         (lto_promote_cross_file_statics): Likewise.
36294         (lto_promote_statics_nonwpa): Likewise.
36295
36296 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
36297
36298         PR target/64452
36299         * config/avr/avr.md (pushhi_insn): New insn.
36300         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
36301
36302 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
36303             Jakub Jelinek  <jakub@redhat.com>
36304
36305         * tree-streamer.c (preload_common_nodes): Don't preload
36306         TI_VA_LIST* for offloading.
36307         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
36308         in_lto_p.
36309
36310 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
36311
36312         * config/pa/pa.c (pa_emit_move_sequence): Always force
36313         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
36314         note on insn.
36315
36316         * config/pa/pa.c (pa_reloc_rw_mask): New function.
36317         (TARGET_ASM_RELOC_RW_MASK): Define.
36318         (pa_cannot_force_const_mem): Revert previous change.
36319
36320 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
36321             Jan Hubicka  <hubicka@ucw.cz>
36322
36323         PR ipa/65028
36324         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
36325         across jump functions.
36326
36327 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
36328
36329         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
36330
36331 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
36332
36333         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
36334
36335 2015-02-19  Richard Henderson  <rth@redhat.com>
36336
36337         PR middle-end/65074
36338         * varasm.c (default_binds_local_p_2): Don't test node->definition;
36339         test DECL_EXTERNAL independent of symtab_node.
36340
36341 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
36342
36343         PR lto/65012
36344         * varpool.c (varpool_node::get_constructor): Return early
36345         if this->lto_file_data is NULL.
36346
36347 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36348
36349         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
36350         (rank_for_schedule_debug): Update.
36351         (ready_sort): Make static.  Move sorting logic to ...
36352         (ready_sort_debug, ready_sort_real): New static functions.
36353         (schedule_block): Sort both debug insns and real insns in preparation
36354         for ready list trimming.  Improve debug output.
36355         * sched-int.h (ready_sort): Remove global declaration.
36356
36357 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
36358
36359         * ipa-icf.c (sem_function::equals_private): Adjust.
36360         (sem_function::bb_dict_test): Take a vec<int> * instead of
36361         auto_vec<int>.
36362         * ipa-icf.h (bb_dict_test): Likewise.
36363
36364 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36365
36366         PR gcov-profile/64634
36367         * tree-eh.c (frob_into_branch_around): Fix up typos
36368         in function comment.
36369         (lower_catch): Put eh_seq resulting from EH lowering of
36370         the cleanup sequence after the cleanup rather than before it.
36371
36372 2015-02-18  Tom de Vries  <tom@codesourcery.com>
36373
36374         * common.opt (fstdarg-opt): New option.
36375         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
36376         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
36377         (@item -fstdarg-opt): New item.
36378
36379 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
36380
36381         PR target/65064
36382         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
36383         for common symbols.
36384
36385 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36386
36387         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
36388         insn-modes.h.
36389         (ALL_HOST_OBJS): Add mkoffload.o.
36390         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
36391
36392 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
36393
36394         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
36395         (compare_virtual_tables): Be smarter about skipping typeinfos;
36396         do sane output on virtual table table mismatch.
36397         (warn_odr): Be ready for forward declarations of enums;
36398         output sane info on base mismatch and virtual table mismatch.
36399         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
36400         when only one type is polymorphic.
36401         (get_odr_type): Fix hashtable corruption.
36402         (dump_odr_type): Dump mangled names.
36403
36404 2015-02-18  Richard Biener  <rguenther@suse.de>
36405
36406         PR tree-optimization/65063
36407         * tree-predcom.c (determine_unroll_factor): Return 1 if we
36408         have replaced looparound PHIs.
36409
36410 2015-02-18  Martin Liska  <mliska@suse.cz>
36411
36412         * lto-streamer.c (lto_streamer_init): Encapsulate
36413         streamer_check_handled_ts_structures with checking macro.
36414
36415 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
36416
36417         PR ipa/65087
36418         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
36419         section if !implicit_section.
36420         (cgraph_node::create_version_clone_with_body): Likewise.
36421         * trans-mem.c (ipa_tm_create_version): Likewise.
36422
36423 2015-02-18  Richard Biener  <rguenther@suse.de>
36424
36425         PR tree-optimization/62217
36426         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
36427         into BIVs.
36428
36429 2015-02-18  Marek Polacek  <polacek@redhat.com>
36430
36431         PR sanitizer/65081
36432         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
36433         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
36434         is in range [-16K, -1].  Don't issue run-time error if
36435         (ptr > ptr + offset).
36436
36437 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
36438
36439         * doc/install.texi (nvptx-*-none): New section.
36440         * doc/invoke.texi (Nvidia PTX Options): Likewise.
36441         * config/nvptx/nvptx.opt: Update.
36442
36443         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
36444         (access_check): New functions, copied from
36445         config/i386/intelmic-mkoffload.c.
36446         (main): For non-installed testing, look in all COMPILER_PATHs for
36447         GCC_INSTALL_NAME.
36448
36449         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
36450
36451 2015-02-18  Andrew Pinski  <apinski@cavium.com>
36452             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
36453
36454         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
36455         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
36456
36457 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36458
36459         * ipa-visibility.c (function_and_variable_visibility): Only
36460         check locality if node is not already local.
36461         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36462         call_for_symbol_and_aliases instead of
36463         call_for_symbol_thunks_and_aliases.
36464         (ipa_inline): Likewise.
36465         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36466         first walk aliases.
36467         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36468         call_for_symbol_and_aliases.
36469         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36470         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36471         (ipa_propagate_frequency): Update.
36472         (ipa_profile): Add opt_for_fn gueards.
36473
36474 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36475
36476         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
36477         * doc/invoke.texi (SH options): Document it.
36478         * config/sh/sh.c (sh_insn_length_adjustment): Check
36479         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
36480
36481 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
36482
36483         * common.opt (fipa-cp-alignment): New.
36484         * ipa-cp.c (ipcp_store_alignment_results): Check
36485         flag_ipa_cp_alignment.
36486         * opts.c (default_options_table): Enable -fipa-cp-alignment for
36487         -O2.
36488         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
36489         * doc/invoke.texi: Document -fipa-cp-alignment.
36490
36491 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
36492
36493         PR target/64793
36494         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
36495         to nil.  Adjust comments.
36496
36497 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
36498
36499         * ipa-visibility.c (function_and_variable_visibility): Only
36500         check locality if node is not already local.
36501         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
36502         call_for_symbol_and_aliases instead of
36503         call_for_symbol_thunks_and_aliases.
36504         (ipa_inline): Likewise.
36505         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
36506         first walk aliases.
36507         * ipa.c (symbol_table::remove_unreachable_nodes): Use
36508         call_for_symbol_and_aliases.
36509         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
36510         (ipa_propagate_frequency_1): Use it; use opt_for_fn
36511         (ipa_propagate_frequency): Update.
36512         (ipa_profile): Add opt_for_fn guards.
36513
36514 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
36515
36516         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
36517         skipping of "strange" tokens.
36518
36519 2015-02-17  Jeff Law  <law@redhat.com>
36520
36521         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
36522         obsolete comment.
36523
36524 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
36525
36526         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
36527         as forcing a HARD_DEP between instructions, thereby
36528         disallowing rewriting to break dependencies.
36529
36530 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36531
36532         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
36533         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
36534         variables in boundary that have no inlitalizer encoded and are
36535         not aliases.
36536         * varasm.c (default_binds_local_p_2): External definitions do not
36537         count as definitions here.
36538
36539 2015-02-16  Jeff Law  <law@redhat.com>
36540
36541         PR tree-optimization/64823
36542         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
36543         statements.
36544         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36545         threading through blocks with PHIs, but no statements.
36546         (thread_through_normal_block): Distinguish between blocks where
36547         we did not process all the statements and blocks with no statements.
36548
36549 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
36550             James Greenhalgh  <james.greenhalgh@arm.com>
36551
36552         PR ipa/64963
36553         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
36554         section if not linkonce.  Fix up formatting.
36555         (cgraph_node::create_version_clone_with_body): Copy section.
36556         * trans-mem.c (ipa_tm_create_version): Likewise.
36557
36558 2015-02-16  Richard Biener  <rguenther@suse.de>
36559
36560         PR tree-optimization/65077
36561         * tree-ssa-structalias.c (get_constraint_for_1): Handle
36562         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
36563         (find_func_aliases): Allow float values to carry pointers again.
36564
36565 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
36566
36567         * doc/install.texi (Specific): Reorder targets list to put
36568         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
36569         from the top menu.
36570
36571 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
36572             David Edelsohn  <dje.gcc@gmail.com>
36573
36574         PR target/65058
36575         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
36576         mapping class to external variable or function reference.
36577         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
36578         mapping class.
36579
36580 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
36581
36582         PR target/53348
36583         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
36584         ASM_WEAKEN_DECL if defined.
36585
36586 2015-02-16  Richard Biener  <rguenther@suse.de>
36587
36588         PR lto/65015
36589         * varasm.c (default_file_start): For LTO produced units
36590         emit <artificial> as file directive.
36591
36592 2015-02-16  Richard Biener  <rguenther@suse.de>
36593
36594         PR tree-optimization/63593
36595         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
36596         stmts and releasing SSA names until...
36597         (execute_pred_commoning): ... after processing all chains.
36598
36599 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
36600
36601         PR ipa/65059
36602         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
36603         external functions.
36604
36605 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
36606
36607         * doc/bugreport.texi: Adjust section titles throughout the file
36608         to use "Title Case".
36609         * doc/extend.texi: Likewise.
36610         * doc/gcov.texi: Likewise.
36611         * doc/implement-c.texi: Likewise.
36612         * doc/implement-cxx.texi: Likewise.
36613         * doc/invoke.texi: Likewise.
36614         * doc/objc.texi: Likewise.
36615         * doc/standards.texi: Likewise.
36616         * doc/trouble.texi: Likewise.
36617
36618 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
36619
36620         * cgraph.h (symtab_node::has_aliases_p): Simplify.
36621         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
36622         * tree.c (lookup_binfo_at_offset): Make static.
36623         (get_binfo_at_offset): Do not shadow offset; add explanatory
36624         comment.
36625
36626 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
36627
36628         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
36629         for all floading point loads and stores except those using a register
36630         index address.
36631         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
36632         to a register.
36633
36634 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36635
36636         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
36637         (do_estimate_growth_1): Record if any uninlinable edge was seen.
36638         (estimate_growth): Handle uninlinable edges correctly.
36639         (check_callers): New.
36640         (growth_likely_positive): Handle aliases correctly.
36641
36642 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
36643
36644         * ipa-chkp.c: Use iterate_direct_aliases.
36645         * symtab.c (resolution_used_from_other_file_p): Move inline.
36646         (symtab_node::create_reference): Fix formating.
36647         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36648         (symtab_node::iterate_reference): Move inline.
36649         (symtab_node::iterate_referring): Move inline.
36650         (symtab_node::iterate_direct_aliases): Move inline.
36651         (symtab_node::used_from_object_file_p_worker): Inline into ...
36652         (symtab_node::used_from_object_file_p): ... this one; move inline.
36653         (symtab_node::call_for_symbol_and_aliases): Move inline;
36654         use iterate_direct_aliases.
36655         (symtab_node::call_for_symbol_and_aliases_1): New method.
36656         (cgraph_node::call_for_symbol_and_aliases): Move inline;
36657         use iterate_direct_aliases.
36658         (cgraph_node::call_for_symbol_and_aliases_1): New method.
36659         (varpool_node::call_for_node_and_aliases): Rename to ...
36660         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
36661         use iterate_direct_aliases.
36662         (varpool_node::call_for_symbol_and_aliases_1): New method.
36663         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
36664         (ipa_discover_readonly_nonaddressable_var): Update.
36665         * ipa-devirt.c: Fix formating.
36666         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
36667         Move inline.
36668         (cgraph_node::call_for_symbol_and_aliases): Move inline.
36669         (cgraph_node::call_for_symbol_and_aliases_1): New function..
36670         * cgraph.h (used_from_object_file_p_worker): Remove.
36671         (resolution_used_from_other_file_p): Move inline.
36672         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
36673         (symtab_node::iterate_reference): Move inline.
36674         (symtab_node::iterate_referring): Move inline.
36675         (symtab_node::iterate_direct_aliases): Move inline.
36676         (symtab_node::used_from_object_file_p_worker): Inline into ...
36677         (symtab_node::used_from_object_file_p): Move inline.
36678         * tree-emutls.c (ipa_lower_emutls): Update.
36679         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
36680         (varpool_node::call_for_node_and_aliases): Remove.
36681
36682 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
36683
36684         PR tree-optimization/62209
36685         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
36686         op == range->exp, insert seq and gimplified code after labels
36687         instead of after the phi.
36688
36689 2015-02-13  Jeff Law  <law@redhat.com>
36690
36691         PR bootstrap/65060
36692         Revert my change for tree-optimization/64823.
36693
36694 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36695
36696         PR tree-optimization/65053
36697         * tree-ssa-phiopt.c (value_replacement): When moving assign before
36698         cond, either reset VR on lhs or set it to phi result VR.
36699
36700 2015-02-13  Jeff Law  <law@redhat.com>
36701
36702         PR tree-optimization/64823
36703         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
36704         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
36705         threading through blocks with PHIs, but no statements.
36706         (thread_through_normal_block): Distinguish between blocks where
36707         we did not process all the statements and blocks with no statements.
36708
36709         PR rtl-optimization/47477
36710         * match.pd (convert (plus/minus (convert @0) (convert @1): New
36711         simplifier to narrow arithmetic.
36712
36713 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
36714
36715         PR ipa/65028
36716         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
36717         polymorphic call info when type is not known to be preserved.
36718
36719 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
36720
36721         PR ipa/65028
36722         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
36723         (inline_call): Use it.
36724
36725 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
36726
36727         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
36728         GOMP_DEVICE_NVIDIA_PTX.
36729
36730 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
36731
36732         PR ipa/65034
36733         * stmt.c (emit_case_nodes): Use void_type_node instead of
36734         NULL_TREE as LABEL_DECL type.
36735
36736 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
36737
36738         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
36739         constraints.
36740         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
36741         symbolic references to data to be forced to constant memory on the
36742         SOM target.
36743
36744 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
36745
36746         PR tree-optimization/65002
36747         * tree-cfg.c (pass_data_fixup_cfg): Don't update
36748         SSA on start.
36749         * tree-sra.c (some_callers_have_no_vuse_p): New.
36750         (ipa_early_sra): Reject functions whose callers
36751         assume function is read only.
36752
36753 2015-02-13  Richard Biener  <rguenther@suse.de>
36754
36755         PR lto/65015
36756         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
36757         for LTO produced CUs.
36758
36759 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
36760
36761         PR tree-optimization/64705
36762         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
36763         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
36764         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
36765         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
36766         expand_simple_operations.
36767
36768 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
36769             Richard Henderson  <rth@redhat.com>
36770
36771         PR rtl/32219
36772         * cgraphunit.c (cgraph_node::finalize_function): Set definition
36773         before notice_global_symbol.
36774         (varpool_node::finalize_decl): Likewise.
36775         * varasm.c (default_binds_local_p_2): Rename from
36776         default_binds_local_p_1, add weak_dominate argument.  Use direct
36777         returns instead of assigning to local variable.  Unify varpool and
36778         cgraph paths via symtab_node.  Reject undef weak variables before
36779         testing visibility.  Reorder tests for simplicity.
36780         (default_binds_local_p): Use default_binds_local_p_2.
36781         (default_binds_local_p_1): Likewise.
36782         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
36783         via symtab_node.
36784         (default_elf_asm_output_external): Emit visibility when specified.
36785
36786 2015-02-13  Alan Modra  <amodra@gmail.com>
36787
36788         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
36789         code setting up r11 for out-of-line fp restore.
36790
36791 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
36792
36793         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
36794         (muser-mode): Likewise.
36795
36796 2015-02-13  Alan Modra  <amodra@gmail.com>
36797
36798         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
36799         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
36800
36801 2015-02-12  David Howells  <dhowells@redhat.com>
36802
36803         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
36804         warning.
36805         * tree-ssa-uninit.c (dump_predicates): Likewise.
36806         * opts.c (print_filtered_help): Likewise.
36807
36808 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36809
36810         * dwarf2out.c (output_die): Use "%s", name instead of name to
36811         avoid -Wformat-security warning.
36812
36813         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
36814         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36815         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
36816         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
36817
36818 2015-02-12  Jason Merrill  <jason@redhat.com>
36819
36820         * common.opt (-flifetime-dse): New.
36821
36822 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
36823
36824         PR sanitizer/65019
36825         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
36826
36827         PR tree-optimization/65014
36828         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
36829         use original second operand of arg0 or arg1 instead of
36830         that adjusted by STRIP_NOPS.
36831
36832 2015-02-11  Jeff Law  <law@redhat.com>
36833
36834         PR target/63347
36835         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
36836         that needs to be queued, just queue it for a single cycle.
36837
36838 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
36839
36840         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
36841         bodies of thunks; comment on why.
36842         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
36843         symbols are extern.
36844
36845 2015-02-11  Richard Henderson  <rth@redhat.com>
36846
36847         PR sanitize/65000
36848         * tree-eh.c (mark_reachable_handlers): Mark source and destination
36849         regions of __builtin_eh_copy_values.
36850
36851 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36852
36853         PR middle-end/65003
36854         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
36855         ultimate alias is MEM with SYMBOL_REF satisfying
36856         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
36857         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
36858
36859 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
36860
36861         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
36862         "diagnostic-core.h".
36863         (main): Initialize progname, and call diagnostic_initialize.
36864
36865         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
36866         instead of __OPENMP_TARGET__.
36867
36868         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
36869         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
36870         hard-coding PTX_ID.
36871
36872 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
36873
36874         * doc/sourcebuild.texi (pie_enabled): Document.
36875
36876 2015-02-11  Martin Liska  <mliska@suse.cz>
36877
36878         PR ipa/64813
36879         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
36880         a return value for call to a function that is noreturn.
36881
36882 2015-02-11  Richard Biener  <rguenther@suse.de>
36883
36884         PR lto/65015
36885         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
36886         and -fresolution.
36887
36888 2015-02-11  Andrew Pinski  <apinski@cavium.com>
36889
36890         PR target/64893
36891         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
36892         Change the first argument type to size_type_node and add another
36893         size_type_node.
36894         (aarch64_simd_expand_builtin): Handle the new argument to
36895         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
36896         print an out when the first two arguments are not
36897         nonzero integer constants.
36898         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
36899         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
36900
36901 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
36902
36903         PR target/61925
36904         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
36905         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
36906         (ix86_set_current_function): Rewritten.
36907         (ix86_add_new_builtins): Temporarily clear current_target_pragma
36908         when creating builtin fndecls.
36909
36910 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36911
36912         PR ipa/65005
36913         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
36914         function.
36915         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
36916         have no comdat group.
36917         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
36918         (lto_output_varpool_node): Always output alias info.
36919         (output_refs): Output refs of boundary aliases, too.
36920         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
36921         (output_symtab): Output call eges in thunks in boundary.
36922         (get_alias_symbol): Remove.
36923         (input_node, input_varpool_node): Do not special case weakrefs.
36924         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
36925         alias and thunks targets in the boundary; do not take removed symbols
36926         from their comdat groups.
36927         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
36928         (cgraph_node::global_info): Remove.
36929         (cgraph_node::rtl_info): Look through aliases and thunks.
36930         * cgrpah.h (global_info): Remove.
36931         (non_local_p): Remove.
36932
36933 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36934             Sandra Loosemore  <sandra@codesourcery.com>
36935
36936         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
36937         to inline asm.  List dialects in proper order.
36938
36939 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36940             Sandra Loosemore  <sandra@codesourcery.com>
36941
36942         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
36943
36944 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36945
36946         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
36947         modified) reference to Solaris.
36948
36949 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
36950
36951         * doc/extend.texi (Extended Asm): Fix typos.
36952
36953 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
36954
36955         PR sanitizer/65004
36956         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
36957
36958 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
36959
36960         PR target/64661
36961         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
36962         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
36963         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
36964         * config/sh/constraints.md (Ara, Add): New constraints.
36965         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
36966         predicates.
36967         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
36968         atomic_mem_operand_0.  Don't use force_reg on the memory address.
36969         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
36970         Sra constraint.  Convert to insn_and_split.  Add workaround for
36971         PR 64974.
36972         (atomic_compare_and_swap<mode>_hard): Copy to
36973         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
36974         Use atomic_mem_operand_0 predicate.
36975         (atomic_compare_and_swap<mode>_soft_gusa,
36976         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
36977         AraAdd constraints.
36978         (atomic_compare_and_swap<mode>_soft_tcb,
36979         atomic_compare_and_swap<mode>_soft_imask,
36980         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
36981         atomic_mem_operand_0 predicate and SraSdd constraints.
36982         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
36983         constraint.
36984         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
36985         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
36986         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
36987         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
36988         force_reg on the memory address.
36989         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
36990         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
36991         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
36992         atomic_mem_operand_1 predicate and Sra constraint.
36993         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
36994         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36995         Use atomic_mem_operand_1 predicate.
36996         (atomic_<fetchop_name><mode>_hard): Copy to
36997         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36998         Use atomic_mem_operand_1 predicate.
36999         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
37000         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37001         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
37002         insn_and_split.  Use atomic_mem_operand_1 predicate.
37003         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
37004         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
37005         Use atomic_mem_operand_1 predicate.
37006         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
37007         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
37008         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
37009         in generated insn with original mem operand before emitting the insn.
37010         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
37011         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
37012         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
37013         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
37014         Use atomic_mem_operand_1 predicate and AraAdd constraints.
37015         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
37016         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
37017         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
37018         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
37019         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
37020         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
37021         atomic_not_fetch<mode>_soft_tcb,
37022         atomic_<fetchop_name>_fetch<mode>_soft_imask,
37023         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
37024         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
37025         Use atomic_mem_operand_1 predicate and SraSdd constraints.
37026
37027 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
37028
37029         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
37030         and 3 earlyclobber operands.
37031
37032 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37033
37034         * common.opt (fstack-reuse): Mark as optimization.
37035
37036 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
37037
37038         PR ipa/64982
37039         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
37040
37041 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
37042
37043         PR tree-optimization/64326
37044         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
37045
37046 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
37047
37048         PR gcov-profile/61889
37049         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
37050
37051 2015-02-10  Richard Biener  <rguenther@suse.de>
37052
37053         PR tree-optimization/64995
37054         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
37055         value we use is final.
37056         (visit_reference_op_store): Always valueize op.
37057         (visit_use): Properly valueize vuses.
37058
37059 2015-02-10  Richard Biener  <rguenther@suse.de>
37060
37061         PR tree-optimization/64909
37062         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
37063         pass a scalar-stmt count estimate to the cost model.
37064         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
37065
37066 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
37067
37068         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
37069         enabled by default together with var-tracking.
37070
37071 2015-02-10  Nick Clifton  <nickc@redhat.com>
37072
37073         * config/rl78/rl78.c: Remove DIV attribute code accidentally
37074         included in previous rl78 commit.
37075
37076 2015-02-10  Richard Biener  <rguenther@suse.de>
37077
37078         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
37079         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
37080         return the bitpack.
37081
37082 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37083
37084         PR gcov-profile/61889
37085         * config.in: regenerate.
37086         * configure.in: Likewise.
37087         * configure.ac: Check for ftw.h.
37088         * gcov-tool.c: Check for ftw.h before using nftw.
37089
37090 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
37091
37092         PR lto/64076
37093         * ipa-visibility.c (update_visibility_by_resolution_info): Only
37094         assert when not in lto mode.
37095
37096 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
37097
37098         * ira-color.c (setup_left_conflict_sizes_p): Simplify
37099         initialization/assignment of conflict_size.
37100
37101 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
37102
37103         PR ipa/64978
37104         * ipa-cp.c (gather_caller_stats): Skip thunks.
37105         (propagate_constants_topo): Skip aliases.
37106
37107 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
37108
37109         PR target/64761
37110         * config/sh/sh.c (sh_option_override): Don't change
37111         -freorder-blocks-and-partition to -freorder-blocks even when
37112         unwinding is enabled.
37113         (sh_can_follow_jump): Return false if the followee jump is
37114         a crossing jump when -freorder-blocks-and-partition is specified.
37115         * config/sh/sh.md (*jump_compact_crossing): New insn.
37116
37117 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
37118             Kaz Kojima  <kkojima@gcc.gnu.org>
37119
37120         PR target/64761
37121         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
37122         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
37123         (sh_can_redirect_branch): Rename to ...
37124         (sh_can_follow_jump): ... this.  Constify argument types.
37125         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
37126         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
37127         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
37128         * doc/tm.texi: Regenerate.
37129
37130 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37131
37132         PR sanitizer/64981
37133         * builtins.c (expand_builtin): Call targetm.expand_builtin
37134         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
37135
37136 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37137
37138         PR ipa/61548
37139         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
37140
37141 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37142
37143         PR ipa/63566
37144         * ipa-icf.c (set_local): New function.
37145         (sem_function::merge): Use it.
37146
37147 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37148
37149         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
37150         (add_type_duplicate): Fix comparison of BINFOs.
37151
37152 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37153
37154         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
37155         on getting VOID pointer.
37156
37157 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
37158
37159         PR target/64979
37160         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
37161         va_list escapes.
37162
37163 2015-02-09  Richard Biener  <rguenther@suse.de>
37164
37165         * genmatch.c (replace_id): Copy expr_type.
37166
37167 2015-02-09  Richard Biener  <rguenther@suse.de>
37168
37169         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
37170         (streamer_write_tree_bitfields): Declare.
37171         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
37172         properly unpack padding.
37173         (unpack_value_fields): Inline ...
37174         (streamer_read_tree_bitfields): ... here.
37175         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
37176         and properly add padding bits.
37177         (streamer_pack_tree_bitfields): Fold into ...
37178         (streamer_write_tree_bitfields): ... this new function,
37179         exposing the bitpack object.
37180         * lto-streamer-out.c (lto_write_tree_1): Call
37181         streamer_write_tree_bitfields.
37182
37183 2015-02-09  Richard Biener  <rguenther@suse.de>
37184
37185         PR tree-optimization/54000
37186         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
37187         (struct ivopts_data): Add loop_loc member.
37188         (tree_ssa_iv_optimize_loop): Dump loop location.
37189         (create_new_ivs): Likewise, also dump number of IVs generated.
37190
37191 2015-02-09  Martin Liska  <mliska@suse.cz>
37192
37193         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
37194         just if not yet registered.
37195         (ipa_icf_generate_summary): Register callgraph hooks.
37196
37197 2015-02-08  Andrew Pinski  <apinski@cavium.com>
37198
37199         * config/aarch64/aarch64.c (gty_dummy): Delete.
37200
37201 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37202
37203         PR ipa/63566
37204         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
37205         (cgraph_node::local_p): Remove thunk related FIXME.
37206
37207 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37208
37209         PR ipa/63566
37210         * i386.c (ix86_function_regparm): Look through aliases to see if callee
37211         is local and optimized.
37212         (ix86_function_sseregparm): Likewise; also use target's SSE math
37213         settings; error out instead of silently generating wrong code
37214         on mismatches.
37215         (init_cumulative_args): Look through aliases.
37216
37217 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37218
37219         PR ipa/63566
37220         * ipa-split.c (execute_split_functions): Split if function has aliases.
37221
37222 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
37223
37224         PR ipa/63566
37225         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
37226         aliases before trying to expand it.
37227         (cgraph_node::expand_thunk): Fix formating.
37228
37229 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
37230
37231         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
37232         (Using Assembly Language with C): Expand introduction.
37233         (Basic Asm): Copy-edit.  Add more information about uses of
37234         basic asm.
37235         (Extended Asm): Copy-edit.  Document new escape syntax and
37236         %l[label] syntax.
37237         (Global Reg Vars): Copy-edit.
37238         (Local Reg Vars): Likewise.
37239
37240 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
37241
37242         PR debug/2714
37243         PR bootstrap/64256
37244         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
37245         (DBX_CONTIN_CHAR): Define.
37246
37247 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
37248             Brian Rzycki  <b.rzycki@samsung.com>
37249
37250         PR tree-optimization/64878
37251         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
37252         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
37253         Stop recursion at loop phi nodes after having visited a loop phi node.
37254
37255 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37256
37257         * toplev.c (process_options): Change flag_ipa_ra before creating
37258         optimization_{default,current}_node.
37259
37260         PR ipa/64896
37261         * cgraphunit.c (cgraph_node::expand_thunk): If
37262         restype is not is_gimple_reg_type nor the thunk_fndecl
37263         returns aggregate_value_p, set restmp to a temporary variable
37264         instead of resdecl.
37265
37266 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
37267
37268         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
37269
37270 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37271
37272         PR target/64205
37273         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
37274         add a general secondary reload handler for SDmode, unless we have
37275         both read/write support for SDmode.
37276
37277 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37278
37279         PR middle-end/64937
37280         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
37281         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
37282         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
37283         1 before, push it to abstract_vec.
37284         (dwarf2out_abstract_function): Adjust caller.  Don't call
37285         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
37286         DECL_ABSTRACT_P flags for all abstract_vec elts.
37287
37288 2015-02-06  Renlin Li  <renlin.li@arm.com>
37289
37290         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
37291         complex gimple.
37292         * tree-ssa.c (execute_update_addresses_taken): Likewise.
37293
37294 2015-02-06  Jeff Law  <law@redhat.com>
37295
37296         PR target/64889
37297         * config/h8300/h8300.c (push): New argument "in_prologue".
37298         Pass "in_prologue" along to "F".
37299         (h8300_push_pop): Corresponding changes.
37300         (h8300_expand_prologue): Likewise.
37301         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
37302
37303 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
37304
37305         PR rtl-optimization/64957
37306         PR debug/64817
37307         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
37308         IOR rather than for AND.
37309
37310 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
37311
37312         PR target/62631
37313         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
37314         of shift-add and (add + shift) operations.  Rename local variable.
37315
37316 2015-02-05  Jeff Law  <law@redhat.com>
37317
37318         PR target/17306
37319         * config/h8300/constraints.md (U): Correctly dectect
37320         "eightbit_data" memory addresses.
37321         * config/h8300/h8300.c (eightbit_constant_address_p): Also
37322         handle (const (plus (symbol_ref (x)))) where x is declared
37323         as an 8-bit data memory address.
37324         * config/h8300/h8300.md (call, call_value): Correctly detect
37325         "funcvec" functions.
37326
37327         PR target/43264
37328         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
37329         24 to 28 bits for the H8/300.
37330
37331 2015-02-06  Alan Modra  <amodra@gmail.com>
37332
37333         PR target/64876
37334         * config/rs6000/rs6000.c (chain_already_loaded): New function.
37335         (rs6000_call_aix): Use it.
37336
37337 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
37338
37339         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
37340         check.
37341
37342 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
37343
37344         * config/h8300/constraints.md ("U" constraint): Use strict
37345         variant of REG_OK_FOR_BASE_P after reload has started.
37346
37347 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
37348
37349         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
37350         define to zero if !TARGET_NEON.
37351         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
37352
37353 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37354             Trevor Saunders  <tsaunders@mozilla.com>
37355
37356         PR ipa/61548
37357         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
37358
37359 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37360
37361         PR ipa/61548
37362         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
37363         when removing varpool nodes.
37364
37365 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37366
37367         PR ipa/61548
37368         * varpool.c (varpool_node::remove): Fix order of variables.
37369
37370 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37371
37372         PR ipa/64686
37373         * ipa-inline.c (inline_small_functions): Fix ordering issue between
37374         speculation resolution and key updates.
37375
37376 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37377
37378         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
37379         about not letting any speculative edges unupdated.
37380
37381 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37382
37383         PR gcov/64123
37384         * gcov-io.c (gcov_var): Export.
37385
37386 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37387
37388         PR middle-end/64922
37389         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
37390         edges that become speculative.
37391
37392 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37393
37394         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
37395         or DW_LANG_Fortran08.
37396         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
37397         DW_LANG_Fortran08.
37398         (gen_compile_unit_die): Handle "GNU Fortran2003" and
37399         "GNU Fortran2008" language strings.
37400         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
37401         * langhooks.h (lang_GNU_Fortran): New prototype.
37402         * langhooks.c (lang_GNU_Fortran): New function.
37403         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
37404         lang_GNU_Fortran.
37405
37406 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37407
37408         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
37409         (RTX_OK_FOR_OLO10_P): Likewise.
37410
37411 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
37412
37413         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
37414
37415 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
37416
37417         PR middle-end/64922
37418         * gimple.c: Include gimple-ssa.h.
37419         (maybe_remove_unused_call_args): New function.
37420         * gimple.h (maybe_remove_unused_call_args): Declare.
37421         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
37422         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
37423         * gimple-fold.c (gimple_fold_call): Likewise.
37424
37425 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
37426
37427         PR rtl-optimization/64905
37428         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
37429         pointer alignment if it isn't needed.
37430
37431 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37432
37433         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
37434         cortex-a72.cortex-a53.
37435         * config/aarch64/aarch64-tune.md: Regenerate.
37436         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
37437
37438 2015-02-04  Nick Clifton  <nickc@redhat.com>
37439
37440         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
37441         inside a MEM.
37442
37443 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
37444
37445         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
37446         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
37447         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
37448         of DEF_BUILTIN.
37449         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
37450         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
37451         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
37452         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
37453         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
37454         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
37455         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
37456         * tree-core.h (enum built_in_function): In between
37457         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
37458         for builtins that use DEF_BUILTIN_CHKP macro.
37459
37460 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
37461
37462         PR debug/64817
37463         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
37464         operands for tcc_comparison exprs.  Fix typos.
37465
37466         PR debug/64817
37467         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
37468         of two XORs that have an intervening AND or IOR.
37469
37470         PR debug/64817
37471         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
37472         simplification of XOR of AND to not allocate new rtx before
37473         committing to a simplification.
37474
37475 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37476
37477         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
37478         manual swaps in all peepholes.
37479
37480 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37481
37482         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
37483         of manual swapping implementation.
37484         (aarch64_expand_vec_perm_const_1): Likewise.
37485
37486 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
37487
37488         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
37489         (generic_addrcost_table): Remove NAMED_PARAM.
37490         (cortexa57_addrcost_table): Likewise.
37491         (xgene1_addrcost_table): Likewise.
37492         (generic_regmove_table): Likewise.
37493         (cortexa53_regmove_table): Likewise.
37494         (xgene1_regmove_table): Likewise.
37495         (generic_vector_table): Likewise.
37496         (cortexa57_vector_table): Likewise.
37497         (xgene1_vector_table): Likewise.
37498         (generic_tunings): Likewise.
37499         (cortexa53_tunings): Likewise.
37500         (cortexa57_tunings): Likewise.
37501         (xgene1_tunings): Likewise.
37502
37503 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
37504
37505         * config/arm/arm-cores.def: Add cortex-a72 and
37506         cortex-a72.cortex-a53.
37507         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
37508         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
37509         * config/arm/arm-tune.md: Regenerate.
37510         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
37511         "cortex-a72.cortex-a53".
37512         * doc/invoke.texi (ARM Options/-mtune): Likewise.
37513
37514 2015-02-04  Nick Clifton  <nickc@redhat.com>
37515
37516         PR target/64408
37517         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
37518         of accepted codes.
37519         (nonimmediate_di_operand): Likewise.
37520
37521         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
37522         prefixes of known F5 using MSP430 MCUs.
37523
37524 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37525
37526         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
37527         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
37528         instead of __builtin_sqrt.
37529
37530 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
37531
37532         * varasm.c (do_assemble_alias): Follow transparent alias
37533         chain for target.
37534         (default_assemble_visibility): Follow transparent alias
37535         chain for decl name.
37536
37537 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37538
37539         PR middle-end/62103
37540         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
37541         to compute size of referenced value in the constant case.
37542
37543 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37544
37545         PR rtl-optimization/64756
37546         * cse.c (invalidate_dest): New function.
37547         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
37548         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
37549         invalidate and do not record it.
37550
37551 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
37552
37553         PR target/64660
37554         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
37555         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
37556         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
37557         atomic_nand<mode>_soft_tcb): New insns.
37558         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
37559         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
37560         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
37561         Split into atomic_not_fetchsi_hard if operands[0] is unused.
37562         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
37563         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37564         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
37565         atomic_not<mode>_hard if operands[0] is unused.
37566         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
37567         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
37568         if operands[0] is unused.
37569         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
37570         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
37571         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
37572         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37573         unused.
37574         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
37575         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37576         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
37577         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
37578         if operands[0] is unused.
37579         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
37580         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
37581         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
37582         atomic_nand_fetchsi_hard if operands[0] is unused.
37583         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
37584         atomic_nand<mode>_hard if operands[0] is unused.
37585         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
37586         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
37587         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
37588         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37589         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
37590         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
37591         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
37592         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
37593         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
37594         atomic_not<mode>_hard if operands[0] is unused.
37595         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
37596         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
37597         unused.
37598         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37599         into atomic_not<mode>_soft_tcb if operands[0] is unused.
37600         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
37601         atomic_nand<mode>_hard if operands[0] is unused.
37602         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
37603         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
37604
37605 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
37606
37607         PR jit/64810
37608         * Makefile.in (GCC_OBJS): Add gcc-main.o.
37609         * gcc-main.c: New file, containing "main" taken from gcc.c.
37610         * gcc.c (do_self_spec): Free decoded_options.
37611         (class driver): Move declaration to gcc.h.
37612         (main): Move declaration and implementation to new file
37613         gcc-main.c.
37614         (driver_get_configure_time_options): New function.
37615         * gcc.h (class driver): Move this declaration here, from
37616         gcc.c.
37617         (driver_get_configure_time_options): New declaration.
37618
37619 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
37620
37621         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
37622         cross-module inlining.
37623         * cgraph.h (cgraph_node): Add flag merged.
37624         * ipa-icf.c (sem_function::merge): Maintain it.
37625
37626 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
37627
37628         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
37629         instead of OBJECT_P.
37630
37631 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
37632
37633         PR target/62631
37634         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
37635         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
37636         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
37637         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
37638
37639 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
37640
37641         PR other/63504
37642         * combine.c (reg_n_sets_max): New variable.
37643         (can_change_dest_mode, reg_nonzero_bits_for_combine,
37644         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
37645         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
37646         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
37647         (rest_of_handle_combine): Initialize reg_n_sets_max.
37648
37649 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
37650
37651         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
37652         if some always_inline was inlined, apply changes before inlining
37653         heuristically.
37654
37655 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
37656
37657         PR jit/64810
37658         * config/arm/arm.c (arm_option_override): Set
37659         arm_selected_arch/cpu/tune to NULL on entry.
37660
37661 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
37662             Andrew Pinski  <pinskia@gcc.gnu.org>
37663             Jakub Jelinek  <jakub@gcc.gnu.org>
37664
37665         PR target/64231
37666         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
37667         integer typing for small model. Use IN_RANGE.
37668
37669 2015-02-02  Richard Biener  <rguenther@suse.de>
37670
37671         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
37672         * tree-vrp.c (vrp_valueize_1): Likewise.
37673
37674 2015-02-02  Alan Modra  <amodra@gmail.com>
37675
37676         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
37677         than mem for toc_restore.
37678         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
37679         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
37680         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
37681
37682 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
37683
37684         PR target/64047
37685         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
37686         explicit default options.
37687
37688 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
37689
37690         PR ipa/64872
37691         * ipa-utils.c (ipa_merge_profiles): Add release argument.
37692         * ipa-icf.c (sem_function::merge): Do not release body when merging.
37693         * ipa-utils.h (ipa_merge_profiles): Update prototype.
37694
37695 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
37696
37697         PR debug/64817
37698         * cfgexpand.c (deep_ter_debug_map): New variable.
37699         (avoid_deep_ter_for_debug): New function.
37700         (expand_debug_expr): If TERed SSA_NAME is in
37701         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
37702         instead of trying to expand SSA_NAME's def stmt.
37703         (expand_debug_locations): When expanding debug bind
37704         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
37705         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
37706         value.
37707         (pass_expand::execute): Call avoid_deep_ter_for_debug on
37708         all debug bind stmts.  Delete deep_ter_debug_map after
37709         expand_debug_location if non-NULL and clear it.
37710
37711 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
37712
37713         PR target/64851
37714         * config/sh/sync.md (atomic_fetch_notsi_hard,
37715         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
37716         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
37717         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
37718         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
37719         atomic_not_fetch<mode>_soft_imask): New insns.
37720
37721 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37722
37723         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
37724         (rank_for_schedule_debug): Split from ...
37725         (rank_for_schedule): ... this.
37726         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
37727         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
37728
37729 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37730
37731         * doc/md.texi (Machine Constraints): Alphabetize table by target.
37732         * doc/extend.texi (x86 Variable Attributes): Move section to
37733         correct alphabetization after renaming.
37734         (x86 Type Attributes): Likewise.
37735         (Target Builtins): Re-alphabetize menu.
37736         (x86 Built-in Functions): Move section to correct alphabetization
37737         after renaming.
37738         (x86 transactional memory intrinsics): Likewise.
37739         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
37740         and x86 Windows Options in table and menu.
37741         (x86 Options): Move section to correct alphabetization after
37742         renaming.
37743         (x86 Windows Options): Likewise.
37744
37745 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
37746
37747         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
37748         preferred names of the architecture and its 32- and 64-bit
37749         variants.
37750         * doc/invoke.texi: Likewise.
37751         * doc/md.texi: Likewise.
37752
37753 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37754
37755         PR target/64882
37756         * config/i386/predicates.md (address_no_seg_operand): Reject
37757         non-CONST_INT_P operands in invalid mode.
37758
37759 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
37760
37761         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
37762         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
37763         * config/i386/predicates.md (address_no_seg_operand): Call
37764         address_operand with VOIDmode.
37765         (vsib_address_operand): Ditto.
37766         (address_mpx_no_base_operand): Ditto.
37767         (address_mpx_no_index_operand): Ditto.
37768
37769 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37770
37771         PR target/64688
37772         * lra-constraints.c (original_subreg_reg_mode): New.
37773         (simplify_operand_subreg): Try to simplify subreg of const.  Use
37774         original_subreg_reg_mode for it.
37775         (swap_operands): Update original_subreg_reg_mode.
37776         (curr_insn_transform): Set up original_subreg_reg_mode.
37777
37778 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
37779
37780         PR target/64617
37781         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
37782         function.
37783         (process_alt_operands): Use it.
37784         (curr_insn_transform): Check the optional reload pseudo class is
37785         ok for the mode.
37786
37787 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
37788
37789         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
37790         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
37791         prototype.
37792         * toplev.h (init_asm_output): Update comment on use of
37793         UNKNOWN_LOCATION with fatal_error.
37794         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
37795         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
37796         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
37797         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
37798         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
37799         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
37800         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
37801         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
37802         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
37803         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
37804         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
37805         fatal_error changed to pass input_location as first argument.
37806
37807 2015-01-30  Martin Liska  <mliska@suse.cz>
37808
37809         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
37810         in #pragma GCC diagnostic guards.
37811
37812 2015-01-30  Richard Biener  <rguenther@suse.de>
37813
37814         PR tree-optimization/64829
37815         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
37816         not add a widening conversion pattern but hand off extra
37817         widenings to callers.
37818         (vect_recog_widen_mult_pattern): Handle extra widening produced
37819         by vect_handle_widen_op_by_const.
37820         (vect_recog_widen_shift_pattern): Likewise.
37821         (vect_pattern_recog_1): Remove excess vertical space in dumping.
37822         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
37823         (vect_init_vector_1): Likewise.
37824         (vect_get_vec_def_for_operand): Likewise.
37825         (vect_finish_stmt_generation): Likewise.
37826         (vectorizable_load): Likewise.
37827         (vect_analyze_stmt): Likewise.
37828         (vect_is_simple_use): Likewise.
37829
37830 2015-01-29  Jeff Law  <law@redhat.com>
37831
37832         * combine.c (try_combine): Fix typo in comment.
37833
37834 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
37835
37836         PR target/64580
37837         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
37838         (rs6000_stack_info): Add assert.
37839         (rs6000_output_savres_externs): New function, split off from...
37840         (rs6000_output_function_prologue): ... here.  Do not call it for
37841         thunks.
37842
37843 2015-01-29  Jeff Law  <law@redhat.com>
37844
37845         PR target/15184
37846         * combine.c (try_combine): If I0 is a memory load and I3 a store
37847         to a related address, increase the "goodness" of doing a 4-insn
37848         combination with I0-I3.
37849         (make_field_assignment): Handle SUBREGs in the ior+and case.
37850
37851 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
37852
37853         PR tree-optimization/64746
37854         * tree-if-conv.c (mask_exists): New function.
37855         (predicate_mem_writes): Save created mask with given size for further
37856         use.
37857         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
37858         (ifcvt_repair_bool_pattern): Collect all statements that are root
37859         of bool pattern and use iterative algorithm to remove multiple uses
37860         of predicates, display number of required iterations.
37861
37862 2015-01-29  Richard Biener  <rguenther@suse.de>
37863
37864         PR tree-optimization/64853
37865         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
37866         stmt will get simulated again.
37867         * tree-ssa-ccp.c (valueize_op_1): Likewise.
37868
37869 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37870
37871         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
37872         return_in_pc.  Remove redundant assignments.
37873         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
37874         (arm_expand_epilogue): Don't compare boolean with true in if condition.
37875
37876 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
37877
37878         * config/i386/i386.c (ix86_mode_after): Make static.
37879
37880 2015-01-29  Richard Biener  <rguenther@suse.de>
37881
37882         PR tree-optimization/64844
37883         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
37884         dump cost model analysis.
37885         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
37886         Do not register adjusted load/store costs here.
37887
37888 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37889             Uros Bizjak  <ubizjak@gmail.com>
37890
37891         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
37892         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
37893         using x86_use_pseudo_pic_reg.
37894         * config/i386/i386.c (ix86_conditional_register_usage): Remove
37895         support for fixed PIC register.
37896         (ix86_use_pseudo_pic_reg): Not static any more.
37897
37898 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
37899
37900         PR middle-end/64805
37901         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
37902         to avoid error in cgraph node verification.
37903
37904 2015-01-29  Marek Polacek  <polacek@redhat.com>
37905
37906         * doc/standards.texi: Reflect that the default for C is gnu11.
37907
37908 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
37909
37910         PR target/64761
37911         * reorg.c (switch_text_sections_between_p): New function.
37912         (relax_delay_slots): Call it when testing if the jump insn
37913         is removable.  Use targetm.can_follow_jump when testing if
37914         the conditional branch can follow an unconditional jump.
37915
37916 2015-01-27  Caroline Tice  <cmtice@google.com>
37917
37918         Committing VTV Cywin/Ming patch for Patrick Wollgast
37919         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
37920         if -fvtable-verify=preinit/std is used.
37921         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
37922         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
37923         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
37924         if -fvtable-verify=preinit/std is used.
37925         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
37926         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
37927         if -fvtable-verify=preinit/std is used.
37928         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
37929         * config/i386/mingw32.h (LIB_SPEC): Likewise.
37930         * varasm.c (assemble_variable): Add code to properly set the comdat
37931         section and name for the .vtable_map_vars section in case the
37932         target is PE or COFF.
37933
37934 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37935
37936         PR ipa/64801
37937         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
37938         make sane BB profile.
37939         (cgraph_node::expand_thunk): Make sane BB profile.
37940         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
37941         * cgraph.h (init_lowered_empty_function): Update prototype.
37942         * config/i386/i386.c (make_resolver_func): Update call.
37943         * predict.c (gate): Disable branch prediction pass if
37944         profile is already there.
37945
37946 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37947
37948         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
37949         * opth-gen.awk: Likewise.
37950         * common.opt: Mark flag_fp_contract_mode as Optimization.
37951
37952 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37953
37954         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
37955         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
37956
37957 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
37958
37959         PR target/64659
37960         * config/sh/predicates.md (atomic_arith_operand,
37961         atomic_logical_operand): Remove.
37962         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
37963         (atomic_arith_operand_0): New predicate.
37964         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
37965         Use atomic_arith_operand_0 for input values.
37966         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
37967         atomic_compare_and_swap<mode>_soft_gusa,
37968         atomic_compare_and_swap<mode>_soft_tcb,
37969         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
37970         arith_reg_operand instead of register_operand.
37971         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
37972         atomic_arith_operand_0 for newval input.
37973         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
37974         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
37975         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
37976         arith_reg_operand instead of register_operand.
37977         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
37978         fetchop_predicate_1, fetchop_constraint_1_llcs,
37979         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
37980         fetchop_constraint_1_imask): New code iterator attributes.
37981         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
37982         register_operand.  Use fetchop_predicate_1.
37983         (atomic_fetch_<fetchop_name>si_hard,
37984         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
37985         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
37986         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
37987         and arith_reg_operand instead of register_operand.  Use
37988         fetchop_predicate_1, fetchop_constraint_1_gusa.
37989         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
37990         and arith_reg_operand instead of register_operand.  Use
37991         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
37992         to allow R0 usage.
37993         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
37994         and arith_reg_operand instead of register_operand.  Use
37995         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
37996         to allow R0 usage.
37997         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
37998         register_operand.  Use atomic_logical_operand_1.
37999         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
38000         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
38001         arith_reg_operand instead of register_operand.
38002         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
38003         Use arith_reg_dest and arith_reg_operand instead of register_operand.
38004         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
38005         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
38006         register_operand.  Use fetchop_predicate_1.
38007         (atomic_<fetchop_name>_fetchsi_hard,
38008         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
38009         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38010         fetchop_constraint_1_llcs.
38011         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
38012         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38013         fetchop_constraint_1_gusa.
38014         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
38015         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38016         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
38017         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
38018         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
38019         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
38020         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
38021         register_operand.  Use atomic_logical_operand_1.
38022         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
38023         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
38024         arith_reg_operand instead of register_operand.
38025         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
38026         arith_reg_operand instead of register_operand.  Use logical_operand
38027         and K08.  Adjust asm sequence to allow R0 usage.
38028         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
38029         arith_reg_operand instead of register_operand.  Use logical_operand
38030         and K08.
38031
38032 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38033
38034         PR other/63504
38035         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
38036         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
38037         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
38038         only get_full_len HOST_WIDE_INTs from get_val () array rather than
38039         all bits in *val_wide.
38040
38041 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
38042
38043         * varpool.c (tls_model_names): Fix names.
38044         (varpool_node::dump): Dump tls- prefix for tls models.
38045
38046 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
38047             Bernd Schmidt  <bernds@codesourcery.com>
38048             Nathan Sidwell  <nathan@codesourcery.com>
38049
38050         * config/nvptx/mkoffload.c: New file.
38051         * config/nvptx/t-nvptx: Add build rules for it.
38052         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
38053         (extra_programs): Add mkoffload.
38054         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
38055         function.
38056         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
38057
38058 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
38059
38060         PR middle-end/64809
38061         * cfgexpand.c (reorder_operands): Skip debug gimples.
38062
38063 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
38064
38065         PR tree-optimization/64277
38066         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
38067         range info when possible to refine estimation.
38068
38069 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38070
38071         PR tree-optimization/64718
38072         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
38073         be a 16bit unsigned integer when n->range is 16.
38074         (bswap_replace): Convert src to that type if necessary for all bswap
38075         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
38076         set in pass_optimize_bswap::execute ().
38077
38078 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
38079
38080         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
38081         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
38082         integer and floating point variants.
38083         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
38084
38085 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
38086
38087         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
38088         for all vector modes.
38089
38090 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
38091
38092         PR bootstrap/64612
38093         * doc/sourcebuild.texi (comdat_group): Document.
38094
38095 2015-01-28  Terry Guo  <terry.guo@arm.com>
38096
38097         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
38098
38099 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
38100
38101         * toplev.c (print_version): Add param "show_global_state", and
38102         only print GGC and plugin information if it is true.
38103         (init_asm_output): Pass in "true" for the new param when calling
38104         print_version.
38105         (process_options): Likewise.
38106         (toplev::main): Likewise.
38107         * toplev.h (print_version): Add new param to decl.
38108
38109 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38110
38111         PR ipa/60871
38112         PR ipa/64139
38113         * tree.c (lookup_binfo_at_offset): New function.
38114         (get_binfo_at_offset): Use it.
38115
38116 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
38117
38118         PR ipa/64282
38119         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
38120         on vtable being vtable.
38121
38122 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38123
38124         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
38125         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
38126         -mhotpatch= option.
38127         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
38128         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
38129         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
38130         Renamed.
38131         (s390_hotpatch_trampoline_halfwords_max): Renamed.
38132         (s390_hotpatch_hw_max): New name.
38133         (s390_hotpatch_trampoline_halfwords): Renamed.
38134         (s390_hotpatch_hw_before_label): New name.
38135         (get_hotpatch_attribute): Removed.
38136         (s390_hotpatch_hw_after_label): New name.
38137         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
38138         attribute.
38139         (s390_attribute_table): Ditto.
38140         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
38141         (s390_function_num_hotpatch_hw): New name.
38142         Remove special handling of inline functions and hotpatching.
38143         Return number of nops before and after the function label.
38144         (s390_can_inline_p): Removed.
38145         (s390_asm_output_function_label): Emit a configurable number of nops
38146         after the function label.
38147         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
38148         (TARGET_CAN_INLINE_P) Removed.
38149         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
38150
38151 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38152             Jiong Wang  <jiong.wang@arm.com>
38153
38154         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
38155         of scratch reg.
38156         (cb<optab><mode>1): Likewise.
38157         * config/aarch64/iterators.md (bcond): New define_code_attr.
38158
38159 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38160
38161         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
38162         memory accesses.
38163
38164 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38165
38166         * config/s390/s390.c (s390_register_move_cost): Increase costs for
38167         FPR->GPR moves.
38168
38169 2015-01-27  Richard Biener  <rguenther@suse.de>
38170
38171         * tree-vrp.c (update_value_range): Intersect the range with
38172         old recorded SSA name range information.
38173
38174 2015-01-27  Nick Clifton  <nickc@redhat.com>
38175
38176         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
38177         BC, DE and HL registers directly, not via AX.
38178         When decrementing the stack pointer by a large amount, transfer SP
38179         into AX and perform the subtraction there.
38180         (rl78_expand_epilogue): Perform the inverse of the above
38181         enhancements.
38182
38183 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38184
38185         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
38186
38187 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38188             Yury Gribov  <y.gribov@samsung.com>
38189
38190         PR ubsan/64741
38191         * ubsan.c (ubsan_source_location): Refactor code.
38192         (ubsan_type_descriptor): Update type size. Refactor code.
38193
38194 2015-01-27  Richard Biener  <rguenther@suse.de>
38195
38196         PR tree-optimization/56273
38197         PR tree-optimization/59124
38198         PR tree-optimization/64277
38199         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
38200         from the first VRP pass.
38201
38202 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38203
38204         PR ipa/64776
38205         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
38206         handle the first argument in the same loop as all the other arguments.
38207
38208         PR rtl-optimization/61058
38209         * jump.c (cleanup_barriers): Update basic block boundaries
38210         if BLOCK_FOR_INSN is non-NULL on PREV.
38211
38212 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
38213
38214         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
38215         bounds narrowing, already instrumented calls and calls to
38216         not instrumentable functions.
38217
38218 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
38219
38220         PR tree-optimization/64807
38221         * wide-int.cc (wi::divmod_internal): Clear
38222         b_dividend[dividend_blocks_needed].
38223
38224 2015-01-26  DJ Delorie  <dj@redhat.com>
38225
38226         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
38227         volatile memory references.
38228
38229 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
38230
38231         PR target/49263
38232         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
38233         remove_insn.
38234         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
38235         shifts if it already fits into K08.
38236
38237 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38238
38239         PR ipa/64730
38240         * ipa-inline.c (inline_small_functions): Print "unknown" even
38241         if edge->call_stmt is non-NULL, but has builtins or unknown
38242         location.
38243
38244         PR middle-end/64421
38245         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
38246         with asterisk, skip the first character.
38247
38248 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38249
38250         PR target/64806
38251         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
38252         order change.
38253
38254 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
38255
38256         PR target/64795
38257         * config/i386/i386.md (*movdi_internal): Also check operand 0
38258         to determine TYPE_LEA operand.
38259         (*movsi_internal): Ditto.
38260
38261 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
38262
38263         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
38264         OPTION_MASK_QUAD_MEMORY_ATOMIC.
38265
38266 2015-01-26  Renlin Li  <renlin.li@arm.com>
38267
38268         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
38269         the comment.
38270         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
38271         for higher part.
38272
38273 2015-01-26  Richard Biener  <rguenther@suse.de>
38274
38275         PR middle-end/64764
38276         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
38277         combining two BIT_AND_EXPR predicates.
38278
38279 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
38280
38281         PR bootstrap/64754
38282         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
38283
38284 2015-01-26  Terry Guo  <terry.guo@arm.com>
38285
38286         * config/arm/arm.c (arm_file_start): Update the assignment of
38287         Tag_ABI_HardFP_use.
38288
38289 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
38290
38291         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
38292         pipeline model.
38293         config/arm/arm.md: Include the new Cortex-A57 model.
38294         (generic_sched): Don't use generic_sched when tuning for
38295         Cortex-A57.
38296
38297 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
38298             Uros Bizjak  <ubizjak@gmail.com>
38299
38300         * config/i386/i386.c (get_builtin_code_for_version): Add
38301         support for BMI and BMI2 multiversion functions.
38302
38303 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38304
38305         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
38306         (extract_bit_field): Likewise.
38307         (extract_low_bits): Likewise.
38308         (expand_mult): Likewise.
38309         (expand_mult_highpart_adjust): Likewise.
38310
38311 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
38312
38313         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
38314         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
38315         * config/i386/i386.c (processor_model): Add
38316         M_INTEL_COREI7_BROADWELL.
38317         (arch_names_table): Add "broadwell".
38318
38319 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
38320
38321         PR target/49263
38322         PR target/53987
38323         PR target/64345
38324         PR target/59533
38325         PR target/52933
38326         PR target/54236
38327         PR target/51244
38328         * config/sh/sh-protos.h
38329         (sh_extending_set_of_reg::can_use_as_unextended_reg,
38330         sh_extending_set_of_reg::use_as_unextended_reg,
38331         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
38332         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
38333         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
38334         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
38335         (sh_treg_insns): New class.
38336         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
38337         (scope_counter): New class.
38338         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
38339         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
38340         sh_extending_set_of_reg::can_use_as_unextended_reg,
38341         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
38342         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
38343         sh_split_treg_set_expr): New functions.
38344         (addsubcosts): Handle treg_set_expr.
38345         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
38346         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
38347         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
38348         (sh_insn_operands_modified_between_p): Make non-static.
38349         * config/sh/predicates.md (zero_extend_movu_operand): Allow
38350         simple_mem_operand in addition to displacement_mem_operand.
38351         (zero_extend_operand): Don't allow zero_extend_movu_operand.
38352         (treg_set_expr, treg_set_expr_not_const01,
38353         arith_reg_or_treg_set_expr): New predicates.
38354         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
38355         arith_or_int_operand instead of logical_operand.  Convert to
38356         insn_and_split.  Try to optimize constant operand in splitter.
38357         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
38358         (*tstqi_t_zero): Delete.
38359         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
38360         (tstsi_t_and_not): Delete.
38361         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
38362         Convert to insn_and_split.
38363         (unnamed split, tstsi_t_zero_extract_xor,
38364         tstsi_t_zero_extract_subreg_xor_little,
38365         tstsi_t_zero_extract_subreg_xor_big): Delete.
38366         (*tstsi_t_shift_mask): New insn_and_split.
38367         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
38368         to recombine with surrounding insns when splitting.
38369         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
38370         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
38371         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
38372         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
38373         (*cbranch_div0s: Delete.
38374         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38375         Try to recombine with surrounding insns when splitting.  Add operand
38376         order variants.
38377         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
38378         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
38379         *addc_r_r_msb, *addc_2r_msb): Delete.
38380         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
38381         order variant.
38382         (*addc_negreg_t): New insn_and_split.
38383         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
38384         Try to recombine with surrounding insns when splitting.
38385         Add operand order variants.
38386         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
38387         insn_and_split patterns.
38388         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
38389         surrounding insns when splitting.
38390         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
38391         (*rotcl): Likewise.  Add zero_extract variant.
38392         (*ashrsi2_31): New insn_and_split.
38393         (*negc): Convert to insn_and_split.  Use treg_set_expr.
38394         (*zero_extend<mode>si2_disp_mem): Update comment.
38395         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
38396         condition.
38397         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
38398         with surrounding insns when splitting.
38399         (any_treg_expr_to_reg): New insn_and_split.
38400         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
38401         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
38402         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
38403         *zero_extract_2): New single bit zero extract patterns.
38404         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
38405         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
38406         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
38407         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
38408         set destination.
38409         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
38410         register_operand for set source.
38411
38412 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
38413
38414         * i386.opt (prefetch_sse): New targetsave.
38415         * i386.c (ix86_function_specific_save): Save prefetch_sse.
38416         (ix86_function_specific_restore): Restore prefetch_sse and initialize
38417         ix86_cost/ix86_tune_cost.
38418
38419 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38420
38421         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
38422         Support the JIT by using 0 as the language type.
38423
38424 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
38425
38426         PR target/64317
38427         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
38428         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
38429         (mark_regno_live, process_bb_lives): Pass new parameter value to
38430         make_hard_regno_born.
38431
38432 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38433
38434         PR rtl-optimization/63637
38435         PR rtl-optimization/60663
38436         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
38437         if elt->cost is MAX_COST for ASM_OPERANDS.
38438         (find_sets_in_insn): Fix up comment typo.
38439         (cse_insn): Don't set src_volatile for all non-volatile
38440         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
38441         or with "memory" clobber.  Set elt->cost to MAX_COST
38442         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
38443         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
38444
38445 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38446
38447         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
38448         alternative 1.
38449
38450 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
38451
38452         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
38453         libgcc/config/i386/elf-lib.h.
38454
38455 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38456
38457         PR driver/64737
38458         * gcc.c (print_configuration): Don't print a blank line at the end
38459         here...
38460         (run_attempt): ... but here unstead.
38461
38462         PR middle-end/64734
38463         * omp-low.c (scan_sharing_clauses): Don't ignore
38464         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
38465         on target data/update constructs.
38466
38467 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38468
38469         PR target/50928
38470         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
38471         (DEBUG_RELOAD): Removed define.
38472         (m32c_limit_reload_class): Enable traces with if DEBUG0.
38473         (m32c_function_arg): Added a type cast.
38474         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
38475         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
38476         * config/m32c/bitops.md (andqi3_16): Likewise.
38477         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
38478         (push_a01_l): Likewise.
38479
38480 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38481
38482         PR jit/64721
38483         * main.c (main): Construct toplev instances with init_signals=true.
38484         * toplev.c (general_init): Add param "init_signals", and use it to
38485         conditionalize the calls to signal and host_hooks.extra_signals.
38486         (toplev::toplev): Add param "init_signals".
38487         (toplev::main): When invoking general_init, pass m_init_signals
38488         to control whether signal-handlers are installed.
38489         * toplev.h (toplev::toplev): Add param "init_signals".
38490         (toplev::m_init_signals): New field.
38491
38492 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
38493
38494         PR jit/64722
38495         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
38496         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
38497         latter may be affected by the former (e.g. on i686).
38498
38499 2015-01-23  Martin Liska  <mliska@suse.cz>
38500
38501         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
38502         false positive during profiledbootstrap.
38503
38504 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38505
38506         PR libgomp/64672
38507         * lto-opts.c (lto_write_options): Output non-explicit conservative
38508         -fno-openacc.
38509         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
38510         (append_compiler_options): Pass -fopenacc through.
38511
38512 2015-01-23  Tom de Vries  <tom@codesourcery.com>
38513
38514         PR libgomp/64707
38515         * lto-opts.c (lto_write_options): Output non-explicit conservative
38516         -fno-openmp.
38517         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
38518         (append_compiler_options): Pass -fopenmp through.
38519
38520 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
38521
38522         PR debug/64511
38523         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
38524         GTY markup.
38525
38526         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
38527         * diagnostic.def (DK_ICE_NOBT): New kind.
38528         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
38529         like DK_ICE, but never print backtrace.
38530         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
38531         (internal_error_no_backtrace): New function.
38532         * gcc.c (execute): Use internal_error_no_backtrace instead of
38533         internal_error.
38534
38535 2015-01-22  Jeff Law  <law@redhat.com>
38536
38537         PR target/52076
38538         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
38539         improve code density for small immediate to memory case.
38540         (insv): Better handle bitfield assignments when the field is
38541         being set to all ones.
38542         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
38543         operand predicate.
38544
38545 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38546             Jakub Jelinek  <jakub@redhat.com>
38547
38548         PR middle-end/64729
38549         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
38550         for !TARGET_LIBC_PROVIDES_SSP version and
38551         -fstack-protector-{all,strong,explicit} otherwise.
38552         * config/freebsd.h (LINK_SSP_SPEC): Handle
38553         -fstack-protector-{strong,explicit}.
38554
38555 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
38556             H.J. Lu  <hongjiu.lu@intel.com>
38557
38558         PR ipa/64694
38559         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
38560         heap.
38561
38562 2015-01-22  Wei Mi  <wmi@google.com>
38563
38564         PR rtl-optimization/64557
38565         * dse.c (record_store): Call get_addr for mem_addr.
38566         (check_mem_read_rtx): Likewise.
38567
38568 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
38569
38570         * fold-const.c (const_binop): Add early return for non-tcc_binary.
38571
38572 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
38573
38574         * toplev.c (init_local_tick): Process the failure when read
38575         fails for random_seed.
38576
38577         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
38578         'pretty_name' to avoid memory overflow.
38579
38580 2015-01-22  Richard Biener  <rguenther@suse.de>
38581
38582         PR middle-end/64728
38583         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
38584         abnormal coalescing on undefined SSA names.
38585
38586 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
38587
38588         PR target/64688
38589         PR target/64477
38590         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
38591         for alternative 3.
38592         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
38593
38594 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
38595
38596         PR middle-end/63325
38597         * fold-const.c (fold_checksum_tree): Don't include value of
38598         expr->decl_with_vis.symtab_node in the checksum.
38599
38600 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38601
38602         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
38603
38604 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
38605
38606         PR driver/64690
38607         * gcc.c (insert_comments): New function.
38608         (try_generate_repro): Call it.
38609         (append_text): Removed.
38610
38611 2015-01-22  Richard Biener  <rguenther@suse.de>
38612
38613         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
38614         with IL incompatible options.  Properly honor user optimize
38615         attributes.
38616
38617 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
38618
38619         PR rtl-optimization/64682
38620         * combine.c (distribute_notes): When moving a death note for
38621         a register that is set in the new I2, make sure to put it
38622         before that new I2.
38623
38624 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
38625
38626         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
38627         not TARGET_DEFAULT.
38628
38629 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
38630
38631         PR debug/64511
38632         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
38633         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
38634         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
38635
38636         PR sanitizer/64706
38637         * doc/invoke.texi (-fsanitize=vptr): Document.
38638
38639         PR rtl-optimization/62078
38640         * dse.c: Include cfgcleanup.h.
38641         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
38642         anything call purge_all_dead_edges and cleanup_cfg at the end
38643         of the pass.
38644
38645 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
38646
38647         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
38648         edges.
38649
38650 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38651
38652         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
38653         decl attribute.
38654
38655 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38656             Tejas Belagod <Tejas.Belagod@arm.com>
38657
38658         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
38659         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
38660         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
38661         Removed.
38662
38663 2015-01-21  David Sherwood  <david.sherwood@arm.com>
38664             Tejas Belagod <Tejas.Belagod@arm.com>
38665
38666         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
38667         (aarch64_reverse_mask): New decls.
38668         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
38669         (insn_count): New mode_attr.
38670         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
38671         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
38672         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
38673         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
38674         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
38675         (aarch64_simd_st4): New patterns.
38676         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
38677         (aarch64_reverse_mask): New functions.
38678
38679 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38680
38681         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
38682         Declare.
38683         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
38684         addressing modes for BE.
38685         (aarch64_print_operand): Add 'R' specifier.
38686         (aarch64_simd_disambiguate_copy): Delete.
38687         (aarch64_simd_emit_reg_reg_move): New function.
38688         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
38689         in define_splits for structural moves.
38690         (mov<mode>): Use less restrictive predicates.
38691         (*aarch64_mov<mode>): Simplify and only allow for LE.
38692         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
38693
38694 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
38695
38696         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
38697
38698 2015-01-21  Richard Henderson  <rth@redhat.com>
38699
38700         PR target/64669
38701         * ccmp.c (used_in_cond_stmt_p): Remove.
38702         (expand_ccmp_expr): Don't use it.
38703
38704 2015-01-21  Nick Clifton  <nickc@redhat.com>
38705
38706         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
38707         PARALLELs.
38708
38709 2015-01-21  Richard Biener  <rguenther@suse.de>
38710
38711         PR middle-end/64313
38712         * tree-core.h (builtin_info, builtin_info_type): Turn from
38713         an object with two arrays into an array of an object with
38714         decl and two flags, implicit_p and declared_p.
38715         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
38716         set_builtin_decl, set_builtin_decl_implicit_p,
38717         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
38718         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
38719         * builtins.c (builtin_info): Adjust.
38720         * gimplify.c (gimplify_addr_expr): References to builtins
38721         that have been declared by the user makes them eligible for
38722         use by the compiler.  Call set_builtin_decl_implicit_p on them.
38723
38724 2015-01-20  Jeff Law  <law@redhat.com>
38725
38726         PR target/59946
38727         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
38728         allow pc-relative addresses in operand predicates or constraints.
38729
38730 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
38731
38732         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
38733         neon on aarch32 processors for stringops.
38734
38735 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38736
38737         PR ipa/63576
38738         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
38739
38740 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38741
38742         PR lto/45375
38743         * ipa-inline.c: Include lto-streamer.h
38744         (report_inline_failed_reason): Output source file differences and
38745         flags on optimization/target node mismatch.
38746         (can_inline_edge_p): Consider caller to be the outer inline function;
38747         be less restrictive about matching opimize and optimize_size attributes.
38748         (inline_account_function_p): Break out from ...
38749         (inline_small_functions): ... here.
38750         * ipa-inline-transform.c (clone_inlined_nodes): Use
38751         inline_account_function_p.
38752         (inline_call): Use optimize attribution; use inline_account_function_p.
38753         (inline_transform): Use opt_for_fn.
38754         * ipa-inline.h (inline_account_function_p): Declare.
38755
38756 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
38757
38758         PR debug/64663
38759         * dwarf2out.c (decl_piece_node): Don't put bitsize into
38760         mode if bitsize <= 0.
38761         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
38762         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
38763         sizes and positions.
38764
38765 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
38766
38767         * config/nios2/nios2.c (nios2_asm_file_end): Implement
38768         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
38769         needed.
38770         (TARGET_ASM_FILE_END): Define.
38771
38772 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38773
38774         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
38775         (struct tune_params): Use the enum.
38776         * arm.c (arm_*_tune): Update.
38777         (arm_option_override): Update.
38778
38779 2015-01-20  Richard Biener  <rguenther@suse.de>
38780
38781         PR ipa/64684
38782         * ipa-reference.c (add_static_var): Inline ...
38783         (analyze_function): ... here after splitting out from ...
38784         (is_proper_for_analysis): ... this.
38785
38786 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
38787
38788         PR target/64149
38789         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
38790         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
38791         replace the conditional with it's true branch.
38792         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
38793         (arm_lra_p): Remove.
38794
38795 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
38796
38797         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
38798
38799 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38800
38801         * config/tilegx/mul-tables.c: Move symtab.h include after
38802         coretypes.h include.
38803         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
38804         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
38805         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
38806         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
38807         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38808
38809 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
38810
38811         PR bootstrap/64676
38812         Revert:
38813         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38814
38815         PR rtl-optimization/64081
38816         * loop-iv.c (def_pred_latch_p): New function.
38817         (latch_dominating_def): Allow specific cases with non-single
38818         definitions.
38819         (iv_get_reaching_def): Likewise.
38820         (check_complex_exit_p): New function.
38821         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38822         with exits not executing on any iteration.
38823
38824 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38825
38826         PR lto/45375
38827         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
38828         to set branch cost.
38829
38830 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38831
38832         PR lto/45375
38833         * i386.c (gate): Check flag_expensive_optimizations and
38834         optimize_size.
38835         (ix86_option_override_internal): Drop optimize_size condition
38836         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
38837         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
38838         MASK_PREFER_AVX128.
38839         (ix86_avx256_split_vector_move_misalign,
38840         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
38841         * sse.md (all uses of TARGET_PREFER_AVX128): Add
38842         optimize_insn_for_speed_p check.
38843
38844 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38845
38846         * config/mips/mips.h (FP_ASM_SPEC): New define.
38847         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
38848         instead.
38849
38850 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
38851
38852         PR target/53988
38853         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
38854         nullptr for insn when reaching the first insn.
38855         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
38856         (sh_insn_operands_modified_between_p): Add nullptr check.
38857         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
38858         sign extending mem load if the insn contains any UNSPEC or
38859         UNSPEC_VOLATILE.
38860
38861 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38862
38863         * params.def (inline-unit-growth): Drop to 15%.
38864         * invoke.texi (inline-unit-growth): Document change.
38865
38866 2015-01-19  Martin Liska  <mliska@suse.cz>
38867
38868         PR ipa/64668
38869         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
38870         function for second argument of OBJ_TYPE_REF.
38871
38872 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38873
38874         PR ipa/64218
38875         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
38876         whether function is an alias.
38877
38878 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
38879
38880         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
38881         cases.
38882
38883 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
38884
38885         PR rtl-optimization/64671
38886         * lra-remat.c (operand_to_remat): Don't consider jump and call
38887         insns.
38888
38889 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
38890
38891         PR target/59828
38892         * config/rs6000/default64.h: Include rs6000-cpus.def.
38893         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
38894         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
38895         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
38896         and POWER8.
38897         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
38898         POWER8.
38899         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
38900         pseudo-op to specify assembler dialect.
38901
38902 2015-01-19  Martin Liska  <mliska@suse.cz>
38903
38904         PR ipa/64664
38905         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
38906         Handle safe potentially removed nodes during filtering.
38907
38908 2015-01-19  Martin Liska  <mliska@suse.cz>
38909
38910         * doc/extend.texi (no_icf): Add new attribute description.
38911         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
38912         where the pass attempts to merge a function with no_icf attribute.
38913
38914 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38915
38916         PR target/64532
38917         * doc/md.texi (ARM Options): Document register constraints.
38918
38919 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
38920             Andrew Pinski  <apinski@cavium.com>
38921
38922         PR target/64304
38923         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
38924         (ashl<mode>3): Don't expand if operands[2] is not constant.
38925
38926 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38927
38928         PR target/64448
38929         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
38930         Match xor-and-xor RTL pattern.
38931
38932 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
38933
38934         PR rtl-optimization/64081
38935         * loop-iv.c (def_pred_latch_p): New function.
38936         (latch_dominating_def): Allow specific cases with non-single
38937         definitions.
38938         (iv_get_reaching_def): Likewise.
38939         (check_complex_exit_p): New function.
38940         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38941         with exits not executing on any iteration.
38942
38943 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
38944
38945         * common.opt (fgraphite): Fix a typo.
38946
38947 2015-01-19  Felix Yang  <felix.yang@huawei.com>
38948
38949         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
38950         pattern.
38951         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
38952         uminp, smax_nanp, smin_nanp): New builtins.
38953         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
38954         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
38955         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
38956         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
38957         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
38958         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
38959         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
38960         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
38961         vpminnms_f32): Rewrite using builtin functions.
38962
38963 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
38964
38965         PR libgomp/64625
38966         * omp-low.c (offload_symbol_decl): Remove variable.
38967         (get_offload_symbol_decl): Remove function.
38968         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
38969         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
38970         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
38971         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
38972         BUILT_IN_GOACC_UPDATE don't pass it at all.
38973
38974 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38975
38976         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
38977         callers.
38978
38979 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38980
38981         * ipa-chkp.c (chkp_produce_thunks): Add early param
38982         to split thunks production into two passes.  Keep
38983         'always_inline' function bodies after the first pass.
38984         (pass_data_ipa_chkp_early_produce_thunks): New.
38985         (pass_ipa_chkp_early_produce_thunks): New.
38986         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
38987         chkp_produce_thunks signature.
38988         (make_pass_ipa_chkp_early_produce_thunks): New.
38989         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
38990         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
38991         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
38992
38993 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38994
38995         * cgraph.c (cgraph_node::dump): Dump profile flags.
38996
38997 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
38998
38999         PR target/64652
39000         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
39001         reg appear first in the parallel.
39002
39003 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39004
39005         * ipa-reference.c (set_reference_optimization_summary,
39006         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
39007         disabled.
39008         (ignore_module_statics): New static var.
39009         (propagate_bits): If ipa-reference is disabled, do not look into local
39010         properties.
39011         (analyze_function): Disable analysis when ipa_reference is disabled.
39012         (generate_summary): Do not dump when reference is disabled;
39013         collect vars accessed from functions with ipa-reference disabled.
39014         (get_read_write_all_from_node): When ipa-reference is disabled, use the
39015         node flags.
39016         (gate): Enable for LTO.
39017         (ignore_edge_p): New function.
39018         (propagate): Skip functions w/o ipa-reference analysis.
39019         * optc-save-gen.awk: Handle optimize_debug correctly.
39020         * opth-gen.awk: Likewise.
39021         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
39022         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
39023         fira-share-save-slots, fira-share-spill-slots,
39024         fmodulo-sched-allow-regmoves, fpartial-inlining,
39025         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
39026         ftracer, ftree-parallelize-loops, fassociative-math,
39027         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
39028         Optimization
39029         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
39030         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
39031         Optimization.
39032         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
39033         Fix for IPA.
39034
39035 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
39036
39037         PR ipa/64378
39038         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
39039         flag correctly.
39040         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
39041
39042 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
39043
39044         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
39045         Remove duplicate option listings.
39046
39047 2015-01-18  Felix Yang  <felix.yang@huawei.com>
39048
39049         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
39050         (autofdo_source_profile::get_callsite_total_count,
39051         function_instance::get_function_instance_by_decl,
39052         string_table::get_index, string_table::get_index_by_decl,
39053         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
39054         Fix comment typos. Reformatting and minor code rearrangement.
39055
39056 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39057
39058         * config/rs6000/rs6000.md (probe_stack): Delete.
39059         (probe_stack_address): New.
39060
39061 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39062
39063         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
39064         to test for 32-bit ABIs, not !TARGET_POWERPC64.
39065
39066 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39067
39068         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
39069         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
39070         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
39071         snafu.
39072         (rs6000_libcall_value): Use the new function.
39073
39074 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
39075
39076         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
39077
39078 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39079
39080         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
39081         implement a more precise life analysis for it during backward scan.
39082
39083 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
39084
39085         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
39086
39087 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
39088
39089         PR rtl-optimization/52773
39090         * calls.c (emit_library_call_value): When pushing arguments use
39091         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
39092         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
39093         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
39094
39095 2015-01-17  Jeff Law  <law@redhat.com>
39096
39097         PR rtl-optimization/32790
39098         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
39099         not ZERO_EXTEND in SET_DESTs.
39100
39101 2015-01-17  Alan Modra  <amodra@gmail.com>
39102
39103         * cprop.c (do_local_cprop): Revert last change.
39104
39105 2015-01-16  DJ Delorie  <dj@redhat.com>
39106             Nick Clifton  <nickc@redhat.com>
39107
39108         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
39109         (addhi3_real): Likewise.  Fix [HL+0] syntax.
39110         (subqi3_real): Likewise.
39111         (subhi3_real): Likewise.
39112         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
39113         (cbranchhi4_real): Likewise.
39114         (cbranchhi4_real_inverted): Likewise.
39115         (cbranchsi4_real_lt): Likewise.
39116         (cbranchsi4_real_ge): Likewise.
39117         (cbranchsi4_real_ge): Likewise.
39118         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
39119         (sub<mode>3_virt): Likewise.
39120         (cbranchqi4_virt): Likewise.
39121         (cbranchhi4_virt): Likewise.
39122         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
39123         always use '[reg+imm]' even when imm is zero.
39124         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
39125         (rl78_general_operand): New.
39126         (rl78_nonimmediate_operand): New.
39127         (rl78_nonfar_operand): Use them.
39128         (rl78_nonfar_nonimm_operand): Likewise.
39129         (rl78_stack_based_mem): Fix.
39130         * config/rl78/constraints.md (Ibqi): New.
39131         (IBqi): New.
39132         (Wsa): New.
39133         (Wsf): New.
39134         (Cs1): Fix.
39135         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
39136         (iorqi3): Likewise.
39137         (xorqi3): Likewise.
39138         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
39139
39140         * config/rl78/constrains (Qs8): New constraint.
39141         * config/rl78/rl78.c (rl78_flags_already_set): New function.
39142         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
39143         * config/rl78/rl78-real.md (update_Z): New attribute.
39144         Update patterns to set it.
39145         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
39146         shorter compare and branch sequence can be used.
39147         (cbranchhi4_real): Likewise.
39148         (cbranchhi4_real_inverted): Likewise.
39149
39150         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
39151         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
39152         address space.
39153         * config/rl78/rl78.c (rl78_get_name_encoding): New.
39154         (rl78_option_override): Allow -mes0 only if C.
39155         (characterize_address): Support subregs of symbol_refs.
39156         (rl78_addr_space_address_mode): Move.  Add __near.
39157         (rl78_far_p): Likewise.
39158         (rl78_addr_space_pointer_mode): Likewise.
39159         (rl78_as_legitimate_address): Likewise.
39160         (rl78_addr_space_subset_p): Likewise.
39161         (rl78_addr_space_convert): Likewise.
39162         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
39163         symbols with -mes0.
39164         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
39165         addressing.
39166         (rl78_alloc_physical_registers_op1): Change logic to prefer
39167         symbol[BC] addressing.
39168         (frodata_section): New.
39169         (rl78_asm_init_sections): Initialize it.
39170         (rl78_select_section): Put __far readonly symbols in .frodata.
39171         (rl78_make_type_far): New.
39172         (rl78_insert_attributes): Force all readonly symbols to be
39173         __far when -mes0.
39174         (rl78_asm_out_integer): New.
39175         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
39176         * config/rl78/rl78.opt (-mes0): New.
39177
39178         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
39179         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
39180         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
39181         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
39182         (rl78_saddr_p): New.
39183         (rl78_output_aligned_common): New.
39184         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
39185         (rl78_handle_saddr_attribute): New.
39186         (rl78_handle_naked_attribute): New.
39187         (rl78_attribute_table): Add saddr.
39188         (rl78_print_operand_1): Don't print '!' on saddr operands.
39189         (rl78_print_operand_1): Strip encodings.
39190         (rl78_sfr_p): New.
39191         (rl78_strip_name_encoding): New.
39192         (rl78_attrlist_to_encoding): New.
39193         (rl78_encode_section_info): New.
39194         (rl78_asm_init_sections): New.
39195         (rl78_select_section): New.
39196         (rl78_output_labelref): New.
39197         (rl78_output_aligned_common): New.
39198         (rl78_asm_out_integer): New.
39199         (rl78_asm_ctor_dtor): New.
39200         (rl78_asm_constructor): New.
39201         (rl78_asm_destructor): New.
39202
39203         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
39204         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
39205         (transcode_memory_rtx): Update.
39206         (rl78_expand_epilogue): Use A_REG instead of 0.
39207
39208 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39209
39210         * config/arm/arm-protos.h (struct tune_params): New field
39211         sched_autopref_queue_depth.
39212         * config/arm/arm.c (sched-int.h): Include header.
39213         (arm_first_cycle_multipass_dfa_lookahead_guard,)
39214         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
39215         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
39216         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
39217         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
39218         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
39219         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
39220         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
39221         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
39222         * config/arm/t-arm (arm.o): Update.
39223         * haifa-sched.c (update_insn_after_change): Update.
39224         (rank_for_schedule): Use auto-prefetcher model, if requested.
39225         (autopref_multipass_init): New static function.
39226         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
39227         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
39228         variable for debug dumps.
39229         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
39230         (autopref_multipass_dfa_lookahead_guard): New global function that
39231         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
39232         (init_h_i_d): Update.
39233         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
39234         * sched-int.h (enum autopref_multipass_data_status): New const enum.
39235         (autopref_multipass_data_): Structure for auto-prefetcher data.
39236         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
39237         (struct _haifa_insn_data:autopref_multipass_data): New field.
39238         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
39239         (autopref_multipass_dfa_lookahead_guard): Declare.
39240
39241 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39242
39243         * rtlanal.c (get_base_term): Handle SCRATCH.
39244
39245 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
39246
39247         * config/aarch64/aarch64.c
39248         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
39249         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39250         * config/arm/arm.c
39251         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
39252         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
39253
39254 2015-01-17  Alan Modra  <amodra@gmail.com>
39255
39256         * cprop.c (do_local_cprop): Disallow replacement of fixed
39257         hard registers.
39258
39259 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39260
39261         PR target/62066
39262         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
39263         early return 0.
39264
39265 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39266
39267         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
39268         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
39269
39270 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39271
39272         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
39273         * config/arm/thumb1.md: ... Here.
39274
39275 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39276
39277         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
39278         TImode for TARGET_32BIT.
39279
39280 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39281
39282         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
39283         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
39284         as ...
39285         (rs6000_abi_word_mode): New function.
39286
39287 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39288
39289         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
39290         instead of UNITS_PER_WORD to describe the size of stack slots.
39291
39292 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39293
39294         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
39295         as rs6000_promote_function_mode.  Move comment to there.
39296         (rs6000_promote_function_mode): New function.
39297
39298 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
39299
39300         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
39301         -mpowerpc64 is active.
39302
39303 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39304
39305         PR middle-end/64353
39306         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
39307         virtuals on start.
39308
39309 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39310
39311         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
39312         introduced in revision 219724.
39313
39314 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39315             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
39316
39317         PR target/64263
39318         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
39319         destination is not a GP reg.
39320         (*movdi_aarch64): Likewise.
39321
39322 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
39323
39324         PR target/64623
39325         * config/rs6000/default64.h: Revert ISA change.
39326
39327 2015-01-16  Richard Biener  <rguenther@suse.de>
39328
39329         PR middle-end/64614
39330         * tree-ssa-uninit.c: Include tree-cfg.h.
39331         (MAX_SWITCH_CASES): New define.
39332         (convert_control_dep_chain_into_preds): Handle switch statements.
39333         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
39334         (normalize_one_pred_1): Do not split bit-manipulations.
39335         Record (x & CST).
39336
39337 2015-01-16  Richard Biener  <rguenther@suse.de>
39338
39339         PR tree-optimization/64568
39340         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
39341         complex load rewriting for TARGET_MEM_REFs.
39342
39343 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
39344
39345         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
39346
39347 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
39348
39349         PR target/64149
39350         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
39351         variable.
39352         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
39353         (aarch64_lra_p): Remove.
39354
39355 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
39356
39357         PR target/64363
39358         * ipa-chkp.h (chkp_instrumentable_p): New.
39359         * ipa-chkp.c: Include tree-inline.h.
39360         (chkp_instrumentable_p): New.
39361         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
39362         Fix processing of not instrumentable functions.
39363         (chkp_versioning): Use chkp_instrumentable_p. Warn about
39364         not instrumentable functions.
39365         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
39366         chkp_instrumentable_p.
39367         * tree-inline.h (copy_forbidden): New.
39368         * tree-inline.c (copy_forbidden): Not static anymore.
39369
39370 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39371
39372         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
39373         ptr1, ptr2 unused.
39374
39375 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39376
39377         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
39378         type OP_OUT to OP_INOUT.
39379
39380 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
39381
39382         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
39383         (high x) y) to y if x and y have the same base.
39384
39385 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
39386
39387         * config/arm/cortex-a57.md: New.
39388         * config/aarch64/aarch64.md: Include it.
39389         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
39390         * config/aarch64/aarch64-tune.md: Regenerate.
39391
39392 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
39393
39394         PR target/64015
39395         * ccmp.c (expand_ccmp_next): New function.
39396         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
39397         and compare insn sequence.
39398         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
39399         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
39400         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
39401         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
39402         (*ccmp_ior): Changed to ccmp_ior<mode>.
39403         (cmp<mode>): New pattern.
39404         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
39405         parameters.
39406         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
39407
39408 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
39409
39410         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
39411         _mm256_bsrli_epi128): New.
39412         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
39413
39414 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39415
39416         * expmed.c (store_bit_field_using_insv): Improve warning message.
39417         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
39418
39419 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
39420
39421         PR rtl-optimization/64011
39422         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
39423         there is partial overflow.
39424
39425 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39426
39427         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
39428         prototype.
39429         (nds32_expand_epilogue_v3pop): Likewise.
39430         * config/nds32/nds32.md (sibcall): Define this for sibling call
39431         optimization.
39432         (sibcall_register): Likewise.
39433         (sibcall_immediate): Likewise.
39434         (sibcall_value): Likewise.
39435         (sibcall_value_register): Likewise.
39436         (sibcall_value_immediate): Likewise.
39437         (sibcall_epilogue): Likewise.
39438         (epilogue): Pass false to indicate this is not a sibcall epilogue.
39439         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
39440         (nds32_expand_epilogue_v3pop): Likewise.
39441
39442 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39443
39444         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
39445         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
39446         (return_internal): New.
39447         (return): Define this named pattern.
39448         (simple_return): Define this named pattern.
39449         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
39450         pattern instead of unspec_volatile_func_return.
39451         (nds32_expand_epilogue_v3pop): Likewise.
39452         (nds32_can_use_return_insn): New function.
39453
39454 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39455
39456         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
39457         * config/nds32/nds32.md (pop25return): New.
39458         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
39459         pop25return pattern.
39460
39461 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39462
39463         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
39464         -mforbid-fp-as-gp, and -mex9 options.
39465
39466 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
39467
39468         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
39469         remove -mgp-direct option.
39470
39471 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39472
39473         * doc/invoke.texi (--param early-inlining-insns): Update default value.
39474         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
39475
39476 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39477
39478         * ipa-inline.c (inline_small_functions): Work around hints
39479         cache issue.
39480
39481 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
39482
39483         PR target/59710
39484         * doc/invoke.texi (Option Summary): Document new Nios II
39485         -mgpopt= syntax.
39486         (Nios II Options): Likewise.
39487         * config/nios2/nios2.opt: Add -mgpopt= option support.
39488         Modify existing -mgpopt and -mno-gpopt options to be aliases.
39489         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
39490         * config/nios2/nios2.c (nios2_option_override): Adjust
39491         -mgpopt defaulting.
39492         (nios2_in_small_data_p): Return true for explicit small data
39493         sections even with -G0.
39494         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
39495         option choices.
39496
39497 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39498
39499         PR ipa/64612
39500         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
39501         of comdat locals.
39502         (inline_call): Fix removal of aliases.
39503
39504 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39505
39506         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
39507         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
39508         * opts.c (common_handle_option): Add -fsanitize=vptr.
39509         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
39510         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
39511         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
39512         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
39513         (ubsan_expand_vptr_ifn): New prototype.
39514         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
39515         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
39516         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
39517         expand_LOOP_VECTORIZED): Make argument nameless, remove
39518         ATTRIBUTE_UNUSED.
39519         (expand_UBSAN_VPTR): New function.
39520         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
39521         in fn spec.
39522         (UBSAN_VPTR): New internal function.
39523         * sanopt.c (tree_map_traits): Renamed to ...
39524         (sanopt_tree_map_traits): ... this.
39525         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
39526         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
39527         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
39528         (maybe_optimize_ubsan_vptr_ifn): New function.
39529         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
39530         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
39531         -fsanitize=vptr.
39532         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
39533         internal calls like pure functions for aliasing, even when they
39534         have other side-effects that prevent making them ECF_PURE.
39535         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
39536         (ubsan_expand_vptr_ifn): New function.
39537
39538 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
39539
39540         PR rtl-optimization/64110
39541         * stmt.c (parse_output_constraint): Process '^' and '$'.
39542         (parse_input_constraint): Ditto.
39543         * lra-constraints.c (process_alt_operands): Process the new
39544         constraints.
39545         * ira-costs.c (record_reg_classes): Process the new constraint
39546         '^'.
39547         * genoutput.c (indep_constraints): Add '^' and '$'.
39548         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
39549         * doc/md.texi: Add description of the new constraints.
39550
39551 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
39552             Bernd Schmidt  <bernds@codesourcery.com>
39553             Cesar Philippidis  <cesar@codesourcery.com>
39554             James Norris  <jnorris@codesourcery.com>
39555             Tom de Vries  <tom@codesourcery.com>
39556             Ilmir Usmanov  <i.usmanov@samsung.com>
39557             Dmitry Bocharnikov  <dmitry.b@samsung.com>
39558             Evgeny Gavrin  <e.gavrin@samsung.com>
39559             Jakub Jelinek  <jakub@redhat.com>
39560
39561         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
39562         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39563         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39564         New function types.
39565         * builtins.c: Include "gomp-constants.h".
39566         (expand_builtin_acc_on_device): New function.
39567         (expand_builtin, is_inexpensive_builtin): Handle
39568         BUILT_IN_ACC_ON_DEVICE.
39569         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
39570         New macros.
39571         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
39572         flag_openmp.
39573         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
39574         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
39575         i386/intelmic-offload.h.
39576         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
39577         to libgomp and its dependencies.
39578         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
39579         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
39580         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
39581         * config/ia64/hpux.h (LIB_SPEC): Likewise.
39582         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
39583         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
39584         * doc/generic.texi: Update for OpenACC changes.
39585         * doc/gimple.texi: Likewise.
39586         * doc/invoke.texi: Likewise.
39587         * doc/sourcebuild.texi: Likewise.
39588         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
39589         GF_OMP_FOR_KIND_OACC_LOOP.
39590         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
39591         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
39592         GF_OMP_TARGET_KIND_OACC_UPDATE,
39593         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39594         Dump more data.
39595         * gimple.c: Update comments for OpenACC changes.
39596         * gimple.def: Likewise.
39597         * gimple.h: Likewise.
39598         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
39599         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39600         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
39601         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
39602         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
39603         appropriate place.
39604         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
39605         * gimplify.c: Include "gomp-constants.h".
39606         Update comments for OpenACC changes.
39607         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
39608         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
39609         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39610         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
39611         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39612         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39613         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
39614         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39615         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
39616         OMP_CLAUSE_SEQ.
39617         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
39618         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39619         OMP_CLAUSE_SET_MAP_KIND.
39620         (gimplify_oacc_cache): New function.
39621         (gimplify_omp_for): Handle OACC_LOOP.
39622         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
39623         OACC_DATA.
39624         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
39625         OACC_EXIT_DATA, OACC_UPDATE.
39626         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
39627         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
39628         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
39629         (gimplify_body): Consider flag_openacc next to flag_openmp.
39630         * lto-streamer-out.c: Include "gomp-constants.h".
39631         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
39632         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
39633         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
39634         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
39635         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
39636         (BUILT_IN_ACC_ON_DEVICE): New builtins.
39637         * omp-low.c: Include "gomp-constants.h".
39638         Update comments for OpenACC changes.
39639         (struct omp_context): Add reduction_map, gwv_below, gwv_this
39640         members.
39641         (extract_omp_for_data, use_pointer_for_field, install_var_field)
39642         (new_omp_context, delete_omp_context, scan_sharing_clauses)
39643         (create_omp_child_function, scan_omp_for, scan_omp_target)
39644         (check_omp_nesting_restrictions, lower_reduction_clauses)
39645         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
39646         Update for OpenACC changes.
39647         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
39648         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
39649         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
39650         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
39651         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
39652         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
39653         OMP_CLAUSE_MAP_*.
39654         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
39655         Handle GF_OMP_FOR_KIND_OACC_LOOP.
39656         (expand_omp_target, lower_omp_target): Handle
39657         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
39658         GF_OMP_TARGET_KIND_OACC_UPDATE,
39659         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
39660         GF_OMP_TARGET_KIND_OACC_DATA.
39661         (pass_expand_omp::execute, execute_lower_omp)
39662         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
39663         flag_openmp.
39664         (offload_symbol_decl): New variable.
39665         (oacc_get_reduction_array_id, oacc_max_threads)
39666         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
39667         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
39668         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
39669         (oacc_gimple_assign, oacc_initialize_reduction_data)
39670         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
39671         functions.
39672         (is_targetreg_ctx): Remove function.
39673         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
39674         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
39675         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
39676         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
39677         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
39678         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
39679         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
39680         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
39681         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
39682         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
39683         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
39684         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
39685         * tree-core.h: Update comments for OpenACC changes.
39686         (enum omp_clause_map_kind): Remove.
39687         (struct tree_omp_clause): Change type of map_kind member from enum
39688         omp_clause_map_kind to unsigned char.
39689         * tree-inline.c: Update comments for OpenACC changes.
39690         * tree-nested.c: Likewise.  Include "gomp-constants.h".
39691         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
39692         (convert_tramp_reference_stmt, convert_gimple_call): Update for
39693         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
39694         OMP_CLAUSE_SET_MAP_KIND.
39695         * tree-pretty-print.c: Include "gomp-constants.h".
39696         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
39697         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
39698         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
39699         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
39700         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
39701         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
39702         instead of OMP_CLAUSE_MAP_*.
39703         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
39704         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
39705         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
39706         * tree-streamer-in.c: Include "gomp-constants.h".
39707         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
39708         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
39709         * tree-streamer-out.c: Include "gomp-constants.h".
39710         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
39711         OMP_CLAUSE_MAP_*.
39712         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
39713         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
39714         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
39715         * tree.c (omp_clause_num_ops): Update accordingly.
39716         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
39717         Likewise.
39718         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
39719         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
39720         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
39721         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
39722         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
39723         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
39724         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
39725         (OMP_CLAUSE_SET_MAP_KIND): New macro.
39726         * varpool.c (varpool_node::get_create): Consider flag_openacc next
39727         to flag_openmp.
39728         * config/i386/intelmic-offload.h: New file.
39729         * config/nvptx/offload.h: Likewise.
39730
39731 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39732
39733         * explow.h: Remove duplicate contents.
39734         * dojump.h: Likewise.
39735
39736 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
39737
39738         * arm.c (arm_xgene_tune): Add default initializer for instruction
39739         fusion.
39740
39741 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
39742
39743         PR ipa/64068
39744         PR ipa/64559
39745         * ipa.c (symbol_table::remove_unreachable_nodes):
39746         Do not put abstract origins into boundary.
39747
39748 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
39749
39750         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
39751         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
39752
39753 2015-01-15  Steve Ellcey  <sellcey@mips.com>
39754
39755         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
39756         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
39757         builtins.def, and chkp-builtins.def.
39758
39759 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
39760
39761         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
39762         ISA 2.7 (POWER8).
39763
39764 2015-01-15  Richard Biener  <rguenther@suse.de>
39765
39766         PR tree-optimization/61743
39767         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
39768         information on PHIs for some simple cases.
39769
39770 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39771
39772         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
39773         Include xgene1.md.
39774         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
39775         * config/arm/arm-cores.def (xgene1): New entry.
39776         * config/arm/arm-tables.opt: Regenerate.
39777         * config/arm/arm-tune.md: Regenerate.
39778         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
39779
39780 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39781
39782         * tree-if-conv.c: Include hash-map.h.
39783         (aggressive_if_conv): New variable.
39784         (fold_build_cond_expr): Add simplification of non-zero condition.
39785         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
39786         destination block is not always executed.
39787         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
39788         than two predecessors if AGGRESSIVE_IF_CONV is true.
39789         (if_convertible_stmt_p): Fix commentary.
39790         (all_preds_critical_p): New function.
39791         (has_pred_critical_p): New function.
39792         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
39793         BB can have more than two predecessors and all incoming edges can be
39794         critical.
39795         (predicate_bbs): Skip predication for loop exit block, use build2_loc
39796         to compute predicate for true edge.
39797         (find_phi_replacement_condition): Delete this function.
39798         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
39799         Allow interchange PHI arguments if EXTENDED is false.
39800         Change check that block containing reduction statement candidate
39801         is predecessor of phi-block since phi may have more than two arguments.
39802         (phi_args_hash_traits): New helper structure.
39803         (struct phi_args_hash_traits): New type.
39804         (phi_args_hash_traits::hash): New function.
39805         (phi_args_hash_traits::equal_keys): New function.
39806         (gen_phi_arg_condition): New function.
39807         (predicate_scalar_phi): Add handling of phi nodes with more than two
39808         arguments, delete COND and TRUE_BB arguments, insert body of
39809         find_phi_replacement_condition to predicate ordinary phi nodes.
39810         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
39811         delete call of find_phi_replacement_condition and invoke
39812         predicate_scalar_phi with two arguments.
39813         (insert_gimplified_predicates): Add assert that non-predicated block
39814         don't have statements to insert.
39815         (ifcvt_split_critical_edges): New function.
39816         (ifcvt_split_def_stmt): Likewise.
39817         (ifcvt_walk_pattern_tree): Likewise.
39818         (stmt_is_root_of_bool_pattern): Likewise.
39819         (ifcvt_repair_bool_pattern): Likewise.
39820         (ifcvt_local_dce): Likewise.
39821         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
39822         is copy of inner or outer loop force_vectorize field, invoke
39823         ifcvt_split_critical_edges, ifcvt_local_dce and
39824         ifcvt_repair_bool_pattern for aggressive if-conversion.
39825
39826 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
39827
39828         * config/aarch64/aarch64.md: Include xgene1.md.
39829         * config/aarch64/xgene1.md: New file.
39830
39831 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
39832
39833         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
39834         xgene1 (APM XGene-1) core definition.
39835         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
39836         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
39837         * doc/invoke.texi: Document -mcpu=xgene1.
39838
39839 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39840
39841         * dojump.h: New header file.
39842         * explow.h: Likewise.
39843         * expr.h: Remove includes.
39844         Move expmed.c prototypes to expmed.h.
39845         Move dojump.c prototypes to dojump.h.
39846         Move alias.c prototypes to alias.h.
39847         Move explow.c prototypes to explow.h.
39848         Move calls.c prototypes to calls.h.
39849         Move emit-rtl.c prototypes to emit-rtl.h.
39850         Move varasm.c prototypes to varasm.h.
39851         Move stmt.c prototypes to stmt.h.
39852         (saved_pending_stack_adjust): Move to dojump.h.
39853         (adjust_address): Move to explow.h.
39854         (adjust_address_nv): Move to emit-rtl.h.
39855         (adjust_bitfield_address): Likewise.
39856         (adjust_bitfield_address_size): Likewise.
39857         (adjust_bitfield_address_nv): Likewise.
39858         (adjust_automodify_address_nv): Likewise.
39859         * explow.c (expr_size): Move to expr.c.
39860         (int_expr_size): Likewise.
39861         (tree_expr_size): Likewise.
39862         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39863         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39864         * genemit.c (main): Generate includes statistics.h, real.h,
39865         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
39866         stmt.h.
39867         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
39868         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
39869         explow.h, emit-rtl.h, stmt.h.
39870         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
39871         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
39872         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
39873         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
39874         emit-rtl.h, varasm.h, stmt.h.
39875         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
39876         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
39877         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
39878         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
39879         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
39880         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
39881         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
39882         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
39883         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
39884         tm.h tree.h varasm.h vec.h wide-int.h.
39885         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39886         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39887         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
39888         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
39889         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
39890         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
39891         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
39892         * loop-iv.c: Likewise.
39893         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
39894         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
39895         statistics.h stmt.h tree.h varasm.h wide-int.h.
39896         * lra-constraints.c: Likewise.
39897         * lra-eliminations.c: Likewise.
39898         * lra-lives.c: Likewise.
39899         * lra-remat.c: Likewise.
39900         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39901         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
39902         statistics.h stmt.h tree.h varasm.h wide-int.h.
39903         * hw-doloop.c: Likewise.
39904         * ira-color.c: Likewise.
39905         * ira-emit.c: Likewise.
39906         * loop-doloop.c: Likewise.
39907         * loop-invariant.c: Likewise.
39908         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39909         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
39910         statistics.h stmt.h tree.h varasm.h wide-int.h.
39911         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
39912         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
39913         statistics.h stmt.h tree.h varasm.h wide-int.h.
39914         * combine-stack-adj.c: Likewise.
39915         * cse.c: Likewise.
39916         * ddg.c: Likewise.
39917         * ifcvt.c: Likewise.
39918         * ira-costs.c: Likewise.
39919         * jump.c: Likewise.
39920         * lra-coalesce.c: Likewise.
39921         * lra-spills.c: Likewise.
39922         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39923         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
39924         stmt.h varasm.h wide-int.h.
39925         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
39926         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39927         varasm.h.
39928         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
39929         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
39930         statistics.h stmt.h varasm.h wide-int.h.
39931         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
39932         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
39933         varasm.h wide-int.h.
39934         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
39935         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39936         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
39937         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
39938         statistics.h stmt.h.
39939         * config/tilepro/tilepro.c: Likewise.
39940         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
39941         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
39942         * config/pdp11/pdp11.c: Likewise.
39943         * config/xtensa/xtensa.c: Likewise.
39944         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
39945         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39946         varasm.h.
39947         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39948         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39949         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
39950         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39951         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39952         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
39953         * rtl-chkp.c: Likewise.
39954         * tree-chkp-opt.c: Likewise.
39955         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
39956         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39957         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
39958         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39959         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39960         statistics.h stmt.h.
39961         * tree-vect-data-refs.c: Likewise.
39962         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
39963         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39964         rtl.h statistics.h stmt.h varasm.h.
39965         * internal-fn.c: Likewise.
39966         * ipa-icf-gimple.c: Likewise.
39967         * lto-section-out.c: Likewise.
39968         * tree-data-ref.c: Likewise.
39969         * tree-nested.c: Likewise.
39970         * tree-outof-ssa.c: Likewise.
39971         * tree-predcom.c: Likewise.
39972         * tree-pretty-print.c: Likewise.
39973         * tree-scalar-evolution.c: Likewise.
39974         * tree-ssa-strlen.c: Likewise.
39975         * tree-vect-loop.c: Likewise.
39976         * tree-vect-patterns.c: Likewise.
39977         * tree-vect-slp.c: Likewise.
39978         * tree-vect-stmts.c: Likewise.
39979         * tsan.c: Likewise.
39980         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39981         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
39982         stmt.h.
39983         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
39984         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39985         statistics.h stmt.h varasm.h.
39986         * loop-unroll.c: Likewise.
39987         * ubsan.c: Likewise.
39988         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
39989         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
39990         stmt.h varasm.h.
39991         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39992         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
39993         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
39994         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39995         statistics.h stmt.h.
39996         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
39997         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39998         statistics.h stmt.h varasm.h.
39999         * gimple-match-head.c: Likewise.
40000         * lto-cgraph.c: Likewise.
40001         * lto-section-in.c: Likewise.
40002         * lto-streamer-in.c: Likewise.
40003         * lto-streamer-out.c: Likewise.
40004         * tree-affine.c: Likewise.
40005         * tree-cfg.c: Likewise.
40006         * tree-cfgcleanup.c: Likewise.
40007         * tree-if-conv.c: Likewise.
40008         * tree-into-ssa.c: Likewise.
40009         * tree-ssa-alias.c: Likewise.
40010         * tree-ssa-copyrename.c: Likewise.
40011         * tree-ssa-dse.c: Likewise.
40012         * tree-ssa-forwprop.c: Likewise.
40013         * tree-ssa-live.c: Likewise.
40014         * tree-ssa-math-opts.c: Likewise.
40015         * tree-ssa-pre.c: Likewise.
40016         * tree-ssa-sccvn.c: Likewise.
40017         * tree-tailcall.c: Likewise.
40018         * tree-vect-generic.c: Likewise.
40019         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40020         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
40021         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40022         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
40023         * varasm.c: Likewise.
40024         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40025         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
40026         varasm.h.
40027         * init-regs.c: Likewise.
40028         * ira.c: Likewise.
40029         * omp-low.c: Likewise.
40030         * stack-ptr-mod.c: Likewise.
40031         * tree-ssa-reassoc.c: Likewise.
40032         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40033         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
40034         varasm.h.
40035         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40036         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
40037         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40038         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
40039         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40040         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
40041         * tree-ssa-phiopt.c: Likewise.
40042         * config/darwin.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.
40044         * config/fr30/fr30.c: Likewise.
40045         * config/frv/frv.c: Likewise.
40046         * expr.c: Likewise.
40047         * final.c: Likewise.
40048         * optabs.c: Likewise.
40049         * passes.c: Likewise.
40050         * simplify-rtx.c: Likewise.
40051         * stmt.c: Likewise.
40052         * toplev.c: Likewise.
40053         * var-tracking.c: Likewise.
40054         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40055         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40056         * lower-subreg.c: Likewise.
40057         * postreload-gcse.c: Likewise.
40058         * ree.c: Likewise.
40059         * reginfo.c: Likewise.
40060         * store-motion.c: Likewise.
40061         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40062         fixed-value.h hashtab.h real.h stmt.h varasm.h.
40063         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40064         fixed-value.h hashtab.h statistics.h stmt.h.
40065         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40066         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
40067         * except.c: Likewise.
40068         * explow.c: Likewise.
40069         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40070         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
40071         varasm.h.
40072         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40073         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
40074         * tree-ssa-structalias.c: Likewise.
40075         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40076         fixed-value.h insn-config.h real.h statistics.h.
40077         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40078         fixed-value.h insn-config.h real.h statistics.h stmt.h.
40079         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40080         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40081         * cfgbuild.c: Likewise.
40082         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40083         fixed-value.h real.h rtl.h statistics.h stmt.h.
40084         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40085         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40086         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40087         fixed-value.h real.h statistics.h stmt.h.
40088         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
40089         fixed-value.h real.h statistics.h stmt.h varasm.h.
40090         * cprop.c: Likewise.
40091         * modulo-sched.c: Likewise.
40092         * postreload.c: Likewise.
40093         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40094         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
40095         statistics.h stmt.h varasm.h.
40096         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
40097         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40098         rtl.h statistics.h stmt.h varasm.h.
40099         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
40100         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
40101         varasm.h.
40102         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
40103         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
40104         varasm.h.
40105         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
40106         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
40107         varasm.h.
40108         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
40109         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40110         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40111         function.h real.h statistics.h stmt.h varasm.h.
40112         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40113         insn-config.h real.h statistics.h stmt.h.
40114         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
40115         statistics.h stmt.h.
40116         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
40117         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
40118         statistics.h stmt.h varasm.h.
40119         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
40120         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
40121         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40122         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
40123         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
40124         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
40125         statistics.h stmt.h varasm.h.
40126         * ipa-polymorphic-call.c: Likewise.
40127         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
40128         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40129         statistics.h stmt.h.
40130         * config/c6x/c6x.c: Likewise.
40131         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
40132         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
40133         statistics.h stmt.h varasm.h.
40134         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
40135         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
40136         stmt.h varasm.h.
40137         * ipa-split.c: Likewise.
40138         * tree-eh.c: Likewise.
40139         * tree-ssa-dce.c: Likewise.
40140         * tree-ssa-loop-niter.c: Likewise.
40141         * tree-vrp.c: Likewise.
40142         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
40143         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
40144         stmt.h.
40145         * config/nds32/nds32-fp-as-gp.c: Likewise.
40146         * config/nds32/nds32-intrinsic.c: Likewise.
40147         * config/nds32/nds32-isr.c: Likewise.
40148         * config/nds32/nds32-md-auxiliary.c: Likewise.
40149         * config/nds32/nds32-memory-manipulation.c: Likewise.
40150         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
40151         * config/nds32/nds32-predicates.c: Likewise.
40152         * config/nds32/nds32.c: Likewise.
40153         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
40154         fixed-value.h hashtab.h real.h statistics.h.
40155         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
40156         fixed-value.h hashtab.h real.h statistics.h stmt.h.
40157         * config/arm/arm.c: Likewise.
40158         * config/avr/avr.c: Likewise.
40159         * config/bfin/bfin.c: Likewise.
40160         * config/h8300/h8300.c: Likewise.
40161         * config/i386/i386.c: Likewise.
40162         * config/ia64/ia64.c: Likewise.
40163         * config/iq2000/iq2000.c: Likewise.
40164         * config/m32c/m32c.c: Likewise.
40165         * config/m32r/m32r.c: Likewise.
40166         * config/m68k/m68k.c: Likewise.
40167         * config/mcore/mcore.c: Likewise.
40168         * config/mep/mep.c: Likewise.
40169         * config/mips/mips.c: Likewise.
40170         * config/mn10300/mn10300.c: Likewise.
40171         * config/moxie/moxie.c: Likewise.
40172         * config/pa/pa.c: Likewise.
40173         * config/rl78/rl78.c: Likewise.
40174         * config/rx/rx.c: Likewise.
40175         * config/s390/s390.c: Likewise.
40176         * config/sh/sh.c: Likewise.
40177         * config/sparc/sparc.c: Likewise.
40178         * config/spu/spu.c: Likewise.
40179         * config/stormy16/stormy16.c: Likewise.
40180         * config/v850/v850.c: Likewise.
40181         * config/vax/vax.c: Likewise.
40182         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
40183         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
40184         * config/msp430/msp430.c: Likewise.
40185         * predict.c: Likewise.
40186         * value-prof.c: Likewise.
40187         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
40188         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
40189         * config/microblaze/microblaze.c: Likewise.
40190         * config/nios2/nios2.c: Likewise.
40191         * config/rs6000/rs6000.c: Likewise.
40192         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40193         insn-config.h real.h rtl.h statistics.h stmt.h.
40194         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
40195         insn-config.h real.h statistics.h stmt.h.
40196         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
40197         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
40198         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
40199         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
40200         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
40201         fixed-value.h real.h statistics.h stmt.h.
40202         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
40203         fixed-value.h statistics.h stmt.h.
40204         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
40205         stmt.h.
40206
40207 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
40208
40209         * gengtype.c (create_user_defined_type): Workaround
40210         -Wmaybe-uninitialized false positives.
40211         * cse.c (fold_rtx): Likewise.
40212         * loop-invariant.c (gain_for_invariant): Likewise.
40213
40214 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
40215
40216         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
40217         set the memory attributes in all cases but clear MEM_EXPR if need be.
40218
40219 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
40220
40221         PR tree-optimization/64434
40222         * cfgexpand.c (reorder_operands): New function.
40223         (expand_gimple_basic_block): Insert call of reorder_operands if
40224         optimized is true.
40225
40226 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
40227
40228         * config/mips/micromips.md (*swp): Remove explicit parallel.
40229         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
40230         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
40231         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
40232         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
40233         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
40234         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
40235         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
40236         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
40237         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
40238         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
40239         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
40240         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
40241         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
40242         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
40243         (mips_wrdsp): Likewise.
40244         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
40245         parallel.
40246         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
40247         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
40248         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
40249         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
40250         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
40251         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
40252         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
40253         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
40254         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
40255
40256 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40257
40258         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
40259         (mips_print_operand): Support 'y' to print exact log2 in decimal
40260         of a const_int.
40261         * config/mips/mips.h (ISA_HAS_LSA): New define.
40262         (ISA_HAS_DLSA): Likewise.
40263         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
40264         * config/mips/predicates.md (const_immlsa_operand): New predicate.
40265
40266 2015-01-15  Martin Liska  <mliska@suse.cz>
40267
40268         PR target/64377
40269         * optc-save-gen.awk: Add support for array types.
40270
40271 2015-01-15  Richard Biener  <rguenther@suse.de>
40272
40273         PR middle-end/64365
40274         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
40275         for MEM_REF access functions with the same base can never partially
40276         overlap.
40277
40278 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
40279
40280         * common.opt: New option -fstack-protector-explicit.
40281         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
40282         (stack_protect_decl_phase): Handle stack_protect attribute for
40283         explicit stack protection requests.
40284         (expand_used_vars): Similarly.
40285         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
40286         * doc/extend.texi: Add documentation for "stack_protect" attribute.
40287         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
40288
40289 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
40290
40291         PR target/53988
40292         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
40293         reg-reg copies.
40294         (sh_extending_set_of_reg): New struct.
40295         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
40296         sh_remove_reg_dead_or_unused_notes): New Declarations.
40297         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
40298         sh_find_extending_set_of_reg, sh_split_tst_subregs,
40299         sh_extending_set_of_reg::use_as_extended_reg): New functions.
40300         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
40301         convert to insn_and_split and use new function sh_split_tst_subregs.
40302
40303 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
40304
40305         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
40306         option.
40307         (Optimization Options): Move -fuse-ld documentation to...
40308         (Link Options): ...here.
40309
40310 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40311
40312         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
40313         offsets.
40314         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
40315         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
40316         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
40317         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
40318         instead of ZR for the memory operand of LL/SC.
40319         (compare_and_swap_12, sync_add<mode>): Likewise.
40320         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
40321         (sync_new_<optab>_12, sync_nand_12): Likewise.
40322         (sync_old_nand_12, sync_new_nand_12): Likewise.
40323         (sync_sub<mode>, sync_old_add<mode>): Likewise.
40324         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
40325         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
40326         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
40327         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
40328         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
40329         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
40330         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
40331         * doc/md.texi (ZC): Update description.
40332
40333 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40334
40335         * builtins.c (expand_builtin_atomic_exchange): Remove error when
40336         memory model is CONSUME.
40337         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
40338         expand_builtin_atomic_store): Change invalid memory model errors to
40339         warnings.
40340         (expand_builtin_atomic_clear): Change invalid model errors to warnings
40341         and issue warning for CONSUME.
40342
40343 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
40344
40345         * lto-cgraph: Update function comments for
40346         lto_symtab_encoder_encode_*.
40347
40348 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40349
40350         * Makefile.in (site.exp): Do not set ENABLE_LTO.
40351
40352 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
40353
40354         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
40355         * lto-cgraph.c (select_what_to_stream): Remove argument, use
40356         lto_stream_offload_p instead.
40357         * lto-streamer.h (select_what_to_stream): Remove argument.
40358         * passes.c (ipa_write_summaries): Likewise.
40359         * tree-pass.h (ipa_write_summaries): Likewise.
40360
40361 2015-01-14  Richard Biener  <rguenther@suse.de>
40362
40363         PR tree-optimization/59354
40364         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
40365         groups larger than the slp group size as having gaps.
40366
40367 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
40368
40369         PR middle-end/59448
40370         * builtins.c (get_memmodel): Promote consume to acquire always.
40371
40372 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40373
40374         PR target/64386
40375         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
40376         V32HImode.
40377
40378 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40379
40380         PR target/64393
40381         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
40382         Enable AVX512BW.
40383         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
40384         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
40385         AVX512VBMI, as it implies AVX512BW.
40386
40387 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
40388
40389         PR target/64387
40390         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
40391         (vec_unpacks_hi_v16sf): Ditto.
40392
40393 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40394
40395         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
40396         is not available.
40397
40398 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40399
40400         * doc/invoke.texi (mapcs): Mention deprecation.
40401         (mapcs-frame): Likewise.
40402
40403 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40404
40405         PR target/64453
40406         * config/arm/arm.c (callee_saved_reg_p): Define.
40407         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
40408         register is callee saved instead of !call_used_regs[reg].
40409         (thumb1_compute_save_reg_mask): Likewise.
40410
40411 2015-01-14  Hale Wang  <hale.wang@arm.com>
40412
40413         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
40414         Cortex-M7.
40415
40416 2015-01-14  Richard Biener  <rguenther@suse.de>
40417
40418         PR lto/64415
40419         * tree-inline.c (insert_debug_decl_map): Check destination
40420         function MAY_HAVE_DEBUG_STMTS.
40421         (insert_init_debug_bind): Likewise.
40422         (insert_init_stmt): Remove redundant check.
40423         (remap_gimple_stmt): Drop debug stmts if the destination
40424         function has var-tracking assignments disabled.
40425
40426 2015-01-14  Martin Liska  <mliska@suse.cz>
40427
40428         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
40429         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
40430
40431 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40432
40433         PR target/64460
40434         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
40435         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
40436
40437 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
40438
40439         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
40440         level from an ARCH; do not inject the default.
40441         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
40442         MIPS_ISA_LEVEL_SPEC.
40443         (MIPS_ISA_NAN2008_SPEC): Update comment.
40444         (BASE_DRIVER_SELF_SPECS): Likewise.
40445         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
40446         MIPS_DEFAULT_ISA_LEVEL_SPEC.
40447         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
40448         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
40449         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
40450
40451 2015-01-14  Richard Biener  <rguenther@suse.de>
40452
40453         PR tree-optimization/64493
40454         PR tree-optimization/64495
40455         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
40456         assign the proper vectorized PHI to the inner loop exit PHIs.
40457
40458 2015-01-14  Joey Ye  <joey.ye@arm.com>
40459
40460         * config/arm/arm.c (arm_compute_save_reg_mask):
40461         Do not save lr in case of tail call.
40462         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
40463
40464 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
40465
40466         * tree-vrp.c (check_array_ref): Emit more warnings
40467         for warn_array_bounds >= 2.
40468         * common.opt: New option -Warray-bounds=.
40469         * doc/invoke.texi: Document -Warray-bounds=.
40470
40471 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
40472
40473         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
40474         (mforbid-fp-as-gp): Remove.
40475         (mex9): Remove.
40476         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
40477         (nds32_symbol_load_store_p): Remove.
40478         (nds32_fp_as_gp_check_available): Clean up implementation.
40479         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
40480         cases.
40481         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
40482         fp-as-gp and ex9 cases.
40483
40484 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40485
40486         * tree-profile.c (init_ic_make_global_vars): Drop workaround
40487         for bintuils bug 14342.
40488         (init_ic_make_global_vars): Likewise.
40489         (gimple_init_edge_profiler): Likewise.
40490         (gimple_gen_ic_func_profiler): Likewise.
40491
40492 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
40493
40494         * ipa-inline.c (inline_small_functions): Swap the operands in
40495         enum.
40496
40497 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40498
40499         PR ipa/64481
40500         * ipa-inline-analysis.c (node_growth_cache): Remove.
40501         (initialize_growth_caches): Do not initialize it.
40502         (free_growth_caches): Do not free it.
40503         (do_estimate_growth): Rename to ...
40504         (estimate_growth): ... this one; drop growth cache code.
40505         (growth_likely_positive): Always go the heuristics way.
40506         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
40507         (reset_edge_caches): Do not reset node growth.
40508         (heap_edge_removal_hook): Do not maintain cache.
40509         (inline_small_functions): Likewise; strenghten sanity check.
40510         (ipa_inline): Do not maintain caches.
40511         * ipa-inline.h (node_growth_cache): Remove.
40512         (do_estimate_growth): Remove to ...
40513         (estimate_growth): this one; remove inline version.
40514         (reset_node_growth_cache): Remove.
40515
40516 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
40517
40518         PR ipa/64565
40519         * ipa-inline.c (inline_small_functions): Update callee keys after
40520         resolving speculation
40521         (inline_small_functions): Always check monotonicity of the queue.
40522
40523 2015-01-13  Marek Polacek  <polacek@redhat.com>
40524
40525         PR middle-end/64391
40526         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
40527
40528 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40529
40530         PR rtl-optimization/64286
40531         * ree.c (combine_reaching_defs): Move part of comment earlier,
40532         remove !SCALAR_INT_MODE_P check.
40533         (add_removable_extension): Don't add vector mode
40534         extensions if all uses of the source register aren't the same
40535         vector extensions.
40536
40537 2015-01-13  Renlin Li  <renlin.li@arm.com>
40538
40539         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
40540         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
40541
40542 2015-01-13  Martin Liska  <mliska@suse.cz>
40543
40544         * ipa-icf.c (sem_function::equals_private): Call new functions
40545         cl_target_option_print_diff and cl_optimization_print_diff.
40546         * optc-save-gen.awk (cl_target_option_print_diff): New function.
40547         (cl_optimization_print_diff): Likewise.
40548         * opth-gen.awk: Likewise.
40549
40550 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40551
40552         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
40553         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
40554         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
40555         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
40556         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
40557         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
40558
40559 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40560
40561         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
40562         instead of src mode.
40563
40564 2015-01-13  Richard Biener  <rguenther@suse.de>
40565
40566         PR lto/64373
40567         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
40568         DECL_CONTEXT.
40569
40570 2015-01-13  Andrew Pinski  <apinski@cavium.com>
40571
40572         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
40573         volatile mems.
40574         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
40575
40576 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
40577
40578         PR middle-end/63974
40579         * cfgexpand.c (expand_computed_goto): Don't call
40580         convert_memory_address here.
40581
40582 2015-01-13  Richard Biener  <rguenther@suse.de>
40583
40584         PR tree-optimization/64406
40585         * tree-loop-distibution.c (pass_loop_distribution::execute):
40586         Reset the SCEV hashtable if we distributed anything.
40587
40588 2015-01-13  Richard Biener  <rguenther@suse.de>
40589
40590         PR tree-optimization/64404
40591         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
40592         SLP types for CSEd loads.
40593
40594 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40595
40596         PR tree-optimization/64436
40597         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
40598         merge of two symbolic numbers for a bitwise OR to ...
40599         (perform_symbolic_merge): This. Also fix computation of the range and
40600         end of the symbolic number corresponding to the result of a bitwise OR.
40601
40602 2015-01-13  Richard Biener  <rguenther@suse.de>
40603
40604         PR tree-optimization/64568
40605         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
40606         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
40607
40608 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40609
40610         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
40611         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
40612
40613 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40614
40615         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
40616         target-specific symbol_ref flag.
40617         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
40618         resides in rodata section.
40619         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
40620         (nds32_encode_section_info): New function.
40621
40622 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40623
40624         * config/nds32/nds32.md (call): Use pseudo instruction bal which
40625         clobbers TA_REGNUM if large code model is specified.
40626         (call_register): Likewise.
40627         (call_immediate): Likewise.
40628         (call_value): Likewise.
40629         (call_value_register): Likewise.
40630         (call_value_immediate): Likewise.
40631
40632 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40633
40634         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
40635         (TARGET_CMODEL_MEDIUM): New macro.
40636         (TARGET_CMODEL_LARGE): New macro.
40637         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
40638         code model setting in assembly code.
40639
40640 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40641
40642         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
40643         Remove MASK_GP_DIRECT flag.
40644         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
40645         one of the multilib default options.
40646         * config/nds32/nds32.opt (mgp-direct): Remove.
40647         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
40648         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
40649
40650 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
40651
40652         * config/nds32/nds32.opt (mcmodel): Add new option.
40653         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
40654         to describe code model.
40655
40656 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
40657
40658         PR target/64479
40659         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
40660
40661 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
40662
40663         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
40664         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
40665         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
40666         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
40667         __builtin_sh_set_fpscr.
40668
40669 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40670
40671         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
40672         after a funtion name just to indicate it is a function.
40673         ([-fsanitize-undefined-trap-on-error]): Likewise.
40674         ([-fdbg-cnt=]): Likewise.
40675         ([-mmemcpy]): Likewise.
40676         ([-mflush-func]): Likewise.
40677         ([-msynci]): Likewise.
40678
40679 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
40680
40681         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
40682         example.
40683
40684 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
40685
40686         PR tree-optimization/64563
40687         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
40688         instead of != VR_VARYING.
40689
40690         PR target/64513
40691         * config/i386/i386.c (ix86_expand_prologue): Add
40692         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
40693
40694         PR tree-optimization/64454
40695         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
40696         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
40697         for signed or [0, op1 - 1] for unsigned modulo.
40698         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
40699         even if op1 does not satisfy integer_pow2p.
40700
40701         PR other/64370
40702         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
40703
40704 2015-01-12  Jeff Law  <law@redhat.com>
40705
40706         PR target/64461
40707         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
40708         (trunchiqi2, truncsihi2): Similarly.
40709
40710         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
40711         rather than calling F.
40712
40713 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40714
40715         * tsan.c (instrument_expr): Use force_gimple_operand.
40716         Use may_be_nonaddressable_p instead of is_gimple_addressable.
40717
40718 2015-01-12  Richard Biener  <rguenther@suse.de>
40719
40720         PR tree-optimization/64530
40721         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
40722         back dr1.
40723
40724 2015-01-12  Richard Biener  <rguenther@suse.de>
40725
40726         PR middle-end/64357
40727         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
40728         latches properly.
40729
40730 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40731
40732         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
40733         Cortex-A17 tuning parameters.
40734         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
40735
40736 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40737
40738         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
40739         * config/arm/arm.c (arm_macro_fusion_p): New function.
40740         (arm_macro_fusion_pair_p): Likewise.
40741         (TARGET_SCHED_MACRO_FUSION_P): Define.
40742         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
40743         (ARM_FUSE_NOTHING): Likewise.
40744         (ARM_FUSE_MOVW_MOVT): Likewise.
40745         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
40746         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
40747         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
40748         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
40749         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
40750         arm_cortex_a5_tune): Specify fuseable_ops value.
40751
40752 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
40753
40754         PR bootstrap/64561
40755         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
40756         test for PIE with copy reloc.
40757         * configure: Regenerated.
40758
40759 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40760
40761         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
40762         in gen_rtx_REG.
40763         (arm_tls_descseq_addr): Likewise.
40764         (arm_gen_movmemqi): Likewise.
40765         (arm_expand_epilogue_apcs_frame): Likewise.
40766         (arm_expand_epilogue): Likewise.
40767         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
40768         in gen_rtx_REG.
40769
40770 2015-01-12  Martin Liska  <mliska@suse.cz>
40771
40772         PR ipa/64550
40773         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
40774         volatility for correct operands.
40775
40776 2015-01-12  Martin Liska  <mliska@suse.cz>
40777
40778         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
40779         indication that a function is not leaf.
40780         (sem_function::compare_polymorphic_p): Likewise.
40781
40782 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
40783
40784         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
40785         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
40786         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
40787         fold-const.h, tree-check.h.
40788
40789 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40790
40791         PR ipa/63967
40792         PR ipa/64425
40793         * ipa-inline.c (compute_uninlined_call_time,
40794         compute_inlined_call_time): Use counts for extra precision when
40795         needed possible.
40796         (big_speedup_p): Fix formating.
40797         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
40798         (relative_time_benefit): Remove.
40799         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
40800         merge guessed and read profile paths.
40801         (inline_small_functions): Count only !optimize_size functions into
40802         initial size; be more lax about sanity check when profile is used;
40803         be sure to update inlined function profile when profile is read.
40804
40805 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
40806
40807         PR ipa/63470
40808         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
40809         cost when edge becomes direct.
40810         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
40811         is resolved or when introducing new speculation.
40812
40813 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
40814
40815         PR ipa/64551
40816         PR ipa/64552
40817         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
40818         '||' to fix typo issue.
40819
40820         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
40821         accept and return NULL.
40822
40823 2015-01-12  Martin Liska  <mliska@suse.cz>
40824
40825         * cgraph.c (cgraph_edge::remove_callee): Move function to header
40826         file for being inlined.
40827         (cgraph_set_edge_callee): Delete.
40828         (cgraph_edge::redirect_callee): Move function to header file
40829         for being inlined.
40830         (cgraph_edge::make_direct): Use new function.
40831         (cgraph_edge::dump_edge_flags): New function created from
40832         static dump_edge_flags function.
40833         (cgraph_node::dump): Use new function.
40834         (cgraph_edge::verify_count_and_frequency): New function created
40835         from verify_edge_count_and_frequency.
40836         (cgraph_edge::verify_corresponds_to_fndecl): New function created
40837         from verify_edge_corresponds_to_fndecl.
40838         (verify_edge_corresponds_to_fndecl): Delete.
40839         (cgraph_node::verify_node): Use new function.
40840         * cgraph.h (cgraph_edge::set_callee): New function.
40841         (cgraph_edge::dump_edge_flags): Likewise.
40842         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
40843
40844 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
40845
40846         * ipa-utils.c (estimate_function_body_sizes): Do not
40847         free node params when called late with early=true.
40848
40849 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
40850
40851         * doc/md.texi (Instruction Patterns): Rewrite text for
40852         clarity.
40853         (Example): Likewise.
40854
40855 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40856
40857         * doc/invoke.texi (Option Summary): Break long lines.
40858         [(-fdiagnostics-color)]: Put long literal in @smallexample
40859         instead of inline.
40860         [(-fsanitize-recover)]: Likewise.
40861         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
40862         [(-ffast-math)]: Likewise.
40863         [(--param max-inline-insns-recursive)]: Likewise.
40864         [(--param max-inline-recursive-depth)]: Likewise.
40865         [(-mno-text-section-literals)]: Likewise.
40866
40867 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
40868
40869         * doc/install.texi: Update for libgomp being renamed from "GNU
40870         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
40871         Runtime Library".
40872         * doc/sourcebuild.texi: Likewise.
40873
40874 2015-01-10  Anthony Green  <green@moxielogic.com>
40875
40876         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
40877         mul.x availability for moxiebox configuration.
40878
40879 2015-01-09  Anthony Green  <green@moxielogic.com>
40880
40881         * config/moxie/moxie.md: Tabify assembly output.
40882
40883 2015-01-09  Anthony Green  <green@moxielogic.com>
40884
40885         * config/moxie/moxie.md (CC_REG): Correct register definition.
40886
40887 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
40888
40889         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
40890         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
40891         of log files.
40892
40893 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40894
40895         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
40896
40897 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
40898             Jakub Jelinek  <jakub@redhat.com>
40899
40900         PR middle-end/64412
40901         * lto-streamer.h (lto_stream_offload_p): New declaration.
40902         * lto-streamer.c (lto_stream_offload_p): New variable.
40903         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
40904         at the same time as section_name_prefix.
40905         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
40906         if lto_stream_offload_p.
40907         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
40908         stream TREE_TARGET_OPTION if lto_stream_offload_p.
40909         (write_ts_function_decl_tree_pointers): Don't
40910         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
40911         * tree-streamer-in.c (unpack_value_fields): Don't stream
40912         TREE_TARGET_OPTION in if ACCEL_COMPILER.
40913         (lto_input_ts_function_decl_tree_pointers): Don't stream
40914         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
40915         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
40916         instead of section_name_prefix string comparisons.
40917
40918 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
40919
40920         PR rtl-optimization/64536
40921         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
40922         tablejumps.
40923
40924 2015-01-09  Michael Collison  <michael.collison@linaro.org>
40925
40926         PR tree-optimization/64322
40927         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
40928         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
40929
40930 2015-01-09  Tom de Vries  <tom@codesourcery.com>
40931
40932         PR rtl-optimization/64539
40933         * regcprop.c (kill_clobbered_values): Factor out of ...
40934         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
40935         instead of note_stores with kill_clobbered_value.
40936
40937 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40938
40939          * ginclude/unwind-arm-common.h: Revert previous commit.
40940
40941 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40942
40943         * config.gcc (arm*-*-freebsd*): New configuration.
40944         * config/arm/freebsd.h: New file.
40945         * config.host: Add extra components for arm*-*-freebsd*.
40946         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
40947         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
40948
40949 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40950
40951         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
40952         for -mcpu=e6500.
40953         * config/rs6000/t-rtems: Add e6500 multilibs.
40954
40955 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40956
40957         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
40958         MPC8540.
40959
40960 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40961
40962         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
40963         MULTILIB_EXCEPTIONS.
40964
40965 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40966
40967         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
40968         MULTILIB_EXCEPTIONS.
40969
40970 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40971
40972         * config/arm/t-rtems-eabi: Rename to...
40973         * config/arm/t-rtems: ...this.
40974         * config/arm/rtems-eabi.h: Rename to...
40975         * config/arm/rtems.h: ...this.
40976         * config.gcc (arm*-*-rtems*): Reflect changes above.
40977
40978 2015-01-09  Richard Biener  <rguenther@suse.de>
40979
40980         PR tree-optimization/64410
40981         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
40982         on the LHS.
40983         (execute_update_addresses_taken): Deal with that.
40984         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
40985         loads/stores for complex variables.
40986
40987 2015-01-09  Martin Liska  <mliska@suse.cz>
40988
40989         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
40990         name comparison.
40991         (func_checker::compare_memory_operand): New function.
40992         (func_checker::compare_operand): Split case to newly
40993         added functions.
40994         (func_checker::compare_cst_or_decl): New function.
40995         (func_checker::compare_gimple_call): Identify
40996         memory operands.
40997         (func_checker::compare_gimple_assign): Likewise.
40998         * ipa-icf-gimple.h: New function.
40999
41000 2015-01-09  Martin Liska  <mliska@suse.cz>
41001
41002         PR ipa/64503
41003         * sreal.c (sreal::dump): Change unsigned format to signed for
41004         m_exp value.
41005         (sreal::to_double): Replace exp2 with scalbln.
41006
41007 2015-01-09  Martin Liska  <mliska@suse.cz>
41008
41009         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
41010         * ipa-icf.c (sem_function::equals_private): Add support for target and
41011         (sem_item_optimizer::merge_classes): Remove redundant function
41012         optimization flags comparison.
41013         * tree.h (target_opts_for_fn): New function.
41014
41015 2015-01-09  Tom de Vries  <tom@codesourcery.com>
41016
41017         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
41018
41019 2015-01-09  Kito Cheng  <kito@0xlab.org>
41020
41021         PR rtl-optimization/64348
41022         * lra-constraints.c (split_reg): Fix caller-save store/restore
41023         instruction generation.
41024
41025 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
41026
41027         PR gcov-profile/61790
41028         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
41029         long long.  Fallback to int64_t if host doesn't have long long and
41030         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
41031
41032 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41033
41034         PR tree-optimization/63989
41035         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
41036         from 1000 to 10000.
41037         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
41038         (get_stridx): If we don't have a record for certain SSA_NAME,
41039         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
41040         constant offset, call get_stridx_plus_constant.
41041         (get_stridx_plus_constant): New function.
41042         (zero_length_string): Don't use get_stridx here.
41043
41044         PR target/55023
41045         PR middle-end/64388
41046         * dse.c (struct insn_info): Mention frame_read set also
41047         before reload for tail calls on some targets.
41048         (scan_insn): Revert 2014-12-22 change.  Set frame_read
41049         also before reload for tail calls if
41050         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
41051         instead of add_non_frame_wild_read for non-const/memset
41052         tail calls after reload.
41053
41054 2015-01-08  Jason Merrill  <jason@redhat.com>
41055
41056         * ubsan.c (do_ubsan_in_current_function): New.
41057         (pass_ubsan::gate): Use it.
41058         * ubsan.h: Declare it.
41059         * convert.c (convert_to_integer): Use it.
41060
41061 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41062
41063         PR target/64338
41064         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
41065         compare_code when it is unconditionally overwritten afterwards.
41066         Use ix86_reverse_condition instead of reverse_condition.  Don't
41067         change code if *reverse_condition* returned UNKNOWN and don't
41068         swap ct/cf and negate diff in that case.
41069
41070 2015-01-08  Mike Stump  <mikestump@comcast.net>
41071
41072         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
41073         (pass_tsan_O0::gate): Likewise.
41074         * extend.texi (Function Attributes): Add no_sanitize_thread
41075         documentation.
41076
41077 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
41078
41079         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
41080         for registering builtins.
41081         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
41082         add -fopenmp to the argv_obstack used when invoking
41083         compile_for_target.
41084
41085         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
41086         add "-m32" or "-m64" to argv_obstack.
41087         (generate_host_descr_file): Likewise, when invoking host_compiler.
41088         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
41089         ld.
41090
41091 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41092
41093         * config/sh/sh-mem.cc: Use constant as second operand when emitting
41094         tstsi_t insns.
41095
41096 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
41097
41098         PR target/55212
41099         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
41100         constant load if constant operand fits into I08.
41101
41102 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
41103
41104         PR sanitizer/64336
41105         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
41106         and TREE_THIS_VOLATILE for MEM_REFs.
41107         (build5_stat): Fix up initialization of TREE_READONLY and
41108         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
41109
41110 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
41111
41112         PR target/64533
41113         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
41114         of r for the second alternative of the destination operand.
41115
41116 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
41117
41118         PR target/36557
41119         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
41120
41121 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41122
41123         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
41124         keywords.
41125         ([-fivar-visibility], [-fvisibility]): Likewise.
41126
41127 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41128
41129         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
41130         the file where @code, @command, etc is more appropriate.
41131
41132 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
41133
41134         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
41135         of -mrecip= documentation.
41136
41137 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
41138
41139         PR target/64505
41140         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
41141         correct reload handler if -m32 -mpowerpc64 is used.
41142
41143 2015-01-06  Tom de Vries  <tom@codesourcery.com>
41144
41145         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
41146
41147 2015-01-08  Christian Bruel  <christian.bruel@st.com>
41148
41149         PR target/64507
41150         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
41151
41152 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41153
41154         PR tree-optimization/63259
41155         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
41156         if optab exists for 16bit byteswap.
41157
41158 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
41159
41160         * opts.c (common_handle_option): Add support for
41161         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
41162         * doc/invoke.texi: Document -fno-sanitize=all,
41163         -f{,no-}sanitize-recover=all.  Document that
41164         -fsanitize=float-cast-overflow is not enabled
41165         by -fsanitize=undefined.  Fix up documentation
41166         of -f{,no-}sanitize-recover.
41167
41168 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
41169
41170         * config.gcc: Add Visium support.
41171         * configure.ac: Likewise.
41172         * configure: Regenerate.
41173         * doc/extend.texi (interrupt attribute): Add Visium.
41174         * doc/invoke.texi: Document Visium options.
41175         * doc/install.texi: Document Visium target.
41176         * doc/md.texi: Document Visium constraints.
41177         * common/config/visium: New directory.
41178         * config/visium: Likewise.
41179
41180 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41181
41182         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
41183         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
41184
41185 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
41186
41187         * combine.c (combine_validate_cost): Do not count the cost of a
41188         split I2 twice.  Do not display it twice in the dump, either.
41189
41190 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41191
41192         Revert parts of r219199.
41193         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
41194         <inttypes.h>.
41195         ([-Wtraditional]): Restore markup on <limits.h>.
41196
41197 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
41198
41199         PR c++/31397
41200         * doc/invoke.texi: Document -Wsuggest-override.
41201
41202 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
41203
41204         PR rtl-optimization/64287
41205         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
41206         (process_options): Disable flag_ipa_ra if profiling.
41207
41208 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41209
41210         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
41211
41212 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
41213
41214         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
41215         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
41216         put under #if TARGET_LOOPS guard.
41217
41218 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
41219
41220         * config/i386/i386.c (output_387_binary_op): Use std::swap.
41221
41222 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
41223
41224         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
41225         * rtl.h (refers_to_regno_p): Add overload.
41226         * cse.c: Use it.
41227         * bt-load.c: Likewise.
41228         * combine.c: Likewise.
41229         * df-scan.c: Likewise.
41230         * sched-deps.c: Likewise.
41231         * config/s390/s390.c: Likewise.
41232         * config/m32r/m32r.c: Likewise.
41233         * config/rs6000/spe.md: Likewise.
41234         * config/rs6000/rs6000.c: Likewise.
41235         * config/pa/pa.c: Likewise.
41236         * config/stormy16/stormy16.c: Likewise.
41237         * config/cris/cris.c: Likewise.
41238         * config/arc/arc.md: Likewise.
41239         * config/arc/arc.c: Likewise.
41240         * config/sh/sh.md: Likewise.
41241         * config/sh/sh.c: Likewise.
41242         * config/frv/frv.c: Likewise.
41243
41244 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41245
41246         PR sanitizer/64265
41247         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
41248         call as cleanup of the whole body.
41249         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
41250         * tsan.c (replace_func_exit): New function.
41251         (instrument_func_exit): Moved earlier.
41252         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
41253         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
41254         been found.
41255         (tsan_pass): Don't call instrument_func_exit.
41256         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
41257         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
41258         inlining.
41259
41260         PR sanitizer/64344
41261         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
41262         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
41263         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
41264         if the result is integer_zerop, return NULL_TREE.
41265         * convert.c (convert_to_integer): Pass expr as ARG.
41266
41267         PR tree-optimization/64465
41268         * tree-inline.c (redirect_all_calls): During inlining
41269         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
41270         changed the stmt to a non-throwing call.
41271
41272 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
41273
41274         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
41275         etc markup throughout the file.
41276
41277 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41278
41279         Enable experimental TSAN support for Ada.
41280         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
41281
41282 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41283
41284         PR tree-optimization/64494
41285         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
41286         clear SSA_NAME_ANTI_RANGE_P flag.
41287
41288 2015-01-05  Marek Polacek  <polacek@redhat.com>
41289
41290         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
41291
41292 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
41293
41294         Update copyright years.
41295
41296         * gcc.c (process_command): Update copyright notice dates.
41297         * gcov-dump.c: Ditto.
41298         * gcov.c: Ditto.
41299         * doc/cpp.texi: Bump @copying's copyright year.
41300         * doc/cppinternals.texi: Ditto.
41301         * doc/gcc.texi: Ditto.
41302         * doc/gccint.texi: Ditto.
41303         * doc/gcov.texi: Ditto.
41304         * doc/install.texi: Ditto.
41305         * doc/invoke.texi: Ditto.
41306
41307         * auto-profile.c, auto-profile.h: Fix up Copyright line.
41308
41309 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
41310
41311         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
41312         verb tense, etc.
41313         ([-fvtable-verify], [-fvtv-debug]): Likewise.
41314         ([-Wabi]): Likewise.
41315         ([-fmessage-length]): Likewise.
41316         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
41317         ([-Wno-discarded-qualifiers]): Likewise.
41318         ([-Wnodiscarded-array-qualifiers]): Likewise.
41319         ([-Wno-virtual-move-assign]): Likewise.
41320         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
41321         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
41322         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
41323         ([-fsanitize-undefined-trap-on-error]): Likewise.
41324         ([-floop-interchange]): Likewise.
41325         ([-ftree-coalesce-inlined-vars]): Likewise.
41326         ([-fvect-cost-model]): Likewise.
41327         ([-flto]): Likewise.
41328         ([--param]): Likewise.
41329         (Spec Files): Likewise.
41330         ([-mstrict-align]): Likewise.
41331         ([-mfix-cortex-a53-835769]): Likewise.
41332         ([-march], [-mtune]): Likewise.
41333         ([-mpic-register]): Likewise.
41334         ([-munaligned-access]): Likewise.
41335         ([-msp8]): Likewise.
41336         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
41337         (AVR Built-in Macros): Likewise.
41338         ([-mpreferred-stack-boundary]): Likewise.
41339         ([-mtune-crtl]): Likewise.
41340         ([-mashf]): Likewise.
41341         ([-mmcu=]): Likewise.
41342         ([-minrt]): Likewise.
41343         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
41344         ([-mupper-regs]): Likewise.
41345         ([-matomic-model]): Likewise.
41346         ([-mdiv]): Likewise.
41347         ([-mzdcbranch]): Likewise.
41348         ([-mdisable-callt]): Likewise.
41349         ([-msoft-float]): Likewise.
41350         ([-m8byte-align]): Likewise.
41351         ([-fstack-reuse]): Likewise.
41352
41353 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41354
41355         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
41356         Fix markup, light copy-editing.
41357         ([-fauto-profile]): Rewrite to fix formatting and content
41358         problems.
41359
41360 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41361
41362         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
41363         Copy-edit description.
41364         ([-fisolate-erroneous-paths-attribute]): Likewise.
41365         * common.opt (fisolate-erroneous-paths-dereference):
41366         Copy-edit description.
41367         (fisolate-erroneous-paths-attribute): Likewise.
41368
41369 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41370
41371         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
41372         tidy grammar.
41373
41374 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
41375
41376         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
41377         ([-fvtv-debug]): Likewise.
41378         ([-Wc++-compat]): Likewise.
41379         ([-Wc++11-compat]): Likewise.
41380         ([-Wc++14-compat]): Likewise.
41381         ([-Wno-sized-deallocation]): Likewise.
41382         ([-femit-class-debug-always]): Likewise.
41383         ([-femit-struct-debug-detailed]): Likewise.
41384         ([-fno-keep-inline-dllexport]): Likewise.
41385         ([-fira-algorithm]): Likewise.
41386         ([-fira-region]): Likewise.
41387         ([-flra-remat]): Likewise.
41388         ([-fipa-ra]): Likewise.
41389         ([-fhoist-adjacent-loads]): Likewise.
41390         ([-fisolate-erroneous-paths-dereference]): Likewise.
41391         ([-fisolate-erroneous-paths-attribute]): Likewise.
41392         ([-ftree-switch-conversion]): Likewise.
41393         ([-ftree-tail-merge]): Likewise.
41394         ([-ftree-loop-if-convert]): Likewise.
41395         ([-ftree-loop-if-convert-stores]): Likewise.
41396         ([-ftree-loop-distribution]): Likewise.
41397         ([-ftree-loop-distribute-patterns]): Likewise.
41398         ([-flto-compression-level]): Likewise.
41399         ([-flto-report]): Likewise.
41400         ([-flto-report-wpa]): Likewise.
41401         ([-fuse-linker-plugin]): Likewise.
41402         ([-mfix-cortex-a53-835769]): Likewise.
41403         ([-mno-fix-cortex-a53-835769]): Likewise.
41404         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
41405         explicit listing; add a note to the discussion indicating they
41406         exist.  Reorder table to group similar options.  Add missing
41407         @opindex entries.  Add @need commands throughout the table to
41408         allow it to be split across multiple pages.
41409         ([-m8bit-idiv]): Fix @opindex.
41410         ([-mavx256-split-unaligned-load]): Likewise.
41411         ([-mavx256-split-unaligned-store]): Likewise.
41412         ([-mstack-protector-guard]): Likewise.
41413         ([-mcpu=]): Likewise.
41414         ([-mcpu]): Likewise.
41415         ([-mpointer-size=]): Likewise.
41416
41417 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
41418
41419         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
41420         instead of `m' constraint.  Likewise for unnamed movb comparison
41421         patterns using reg_before_reload_operand predicate.
41422         * config/pa/predicates.md (reg_before_reload_operand): Tighten
41423         predicate to reject register index and LO_SUM DLT memory forms
41424         after reload.
41425
41426 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41427
41428         * doc/invoke.texi (Option Summary): Fix spelling of
41429         -fdevirtualize-at-ltrans.
41430         ([-fdevirtualize]): Fix markup.
41431         ([-fdevirtualize-speculatively]): Fix typo.
41432         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
41433         implementor-speaky.
41434         * common.opt (fdevirtualize-at-ltrans): Likewise.
41435         * ipa-devirt.c: Fix typos in comments throughout the file.
41436         (ipa_devirt): Fix typos in format strings for dump output.
41437
41438 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
41439
41440         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
41441         discussion of defaults, light copy-editing.
41442
41443 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41444
41445         * tsan.c (instrument_expr): corrected previous checkin.
41446
41447 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
41448
41449         Instrument bit field and unaligned accesses for TSAN.
41450         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
41451         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
41452         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
41453         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
41454         unaligned memory regions.
41455
41456 2015-01-01  Anthony Green  <green@moxielogic.com>
41457
41458         * config/moxie/predicates.md (moxie_general_movsrc_operand):
41459         Restrict move source register offsets to 16 bits.
41460 \f
41461 Copyright (C) 2015 Free Software Foundation, Inc.
41462
41463 Copying and distribution of this file, with or without modification,
41464 are permitted in any medium without royalty provided the copyright
41465 notice and this notice are preserved.